请教: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

答案分析:

 

【我的疑问】(如下,请求专家帮助解答)

 

热搜:浙江省消防条例是2010年9月1日开始

答案解析

难度★★☆ 搜索
  • A是Double类型,

    i=a%11
    不符合.

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

    a是double型数,而11是int型数,数据类型不同,不能做模运算