问题详情

【题目描述】

( 14 )若有定义: double a=22;int i=0,k=18; ,则不符合 C 语言规定的赋值语句是

A ) a=a++,i++;

B ) i= ( a+k ) <= ( i+k ) ;

C ) i=a%11;

D ) i = !a;

【我提交的答案】: B【参考答案与解析】:

正确答案:C答案分析:

 

 

参考答案

因为取余运算符(%)是对整形变量(或常量)取余数,而你的变量adouble型的,所以编译肯定会报错的。而我们知道整形可以被自动转换为float或者double,但是反过来是不行的,所以你要是想用上面的语句的话,需要加强制类型转换,即:i=(int)a%11.

您可能感兴趣的试题