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

若有定义: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;
【正确答案】:C
【题目解析】:本题的考查点是C语言赋值表达式。
C语言中,赋值号"="是一个运算符,称为赋值运算符。由赋值运算符组成的表达式称为赋值表达式。
表达式的形式为:变量名=表达式
赋值号的左边必须是一个代表某一存储单元的变量名,赋值号的右边必须是C语言中合法的表达式。%(求余)运算符的运算对象只能是整型,选项C中i=a%11;,变量a为双精度型,所以选项C错误。
故本题答案为C。