请教:2010年3月全国计算机等级考试二级C语言程序设计笔试试卷(标准答案版)第1大题第14小题如何解答?
笔试,试卷,标准
已帮助 人
【题目描述】
(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;
| 【我提交的答案】:D |
| 【参考答案与解析】: 正确答案:C |
答案分析:
【我的疑问】(如下,请求专家帮助解答)
-
A是Double类型,
i=a%11
不符合.因为取余运算符(%)是对整形变量(或常量)取余数,而你的变量a是double型的,所以编译肯定会报错的。而我们知道整形可以被自动转换为float或者double,但是反过来是不行的,所以你要是想用上面的语句的话,需要加强制类型转换,即:i=(int)a%11.
a是double型数,而11是int型数,数据类型不同,不能做模运算
