题目
若变量已正确定义并赋值,以下符合C语言语法的表达式是( )。A. a:=b+1B. a=b=c+2C. int 18.5%3D. a=a+7=c+b
若变量已正确定义并赋值,以下符合C语言语法的表达式是( )。
A. a:=b+1
B. a=b=c+2
C. int 18.5%3
D. a=a+7=c+b
题目解答
答案
B. a=b=c+2
解析
本题考查C语言的表达式语法规范,重点在于识别合法的赋值语句和运算符用法。解题核心在于:
- 赋值运算符的正确形式为
=,而非其他符号; - 赋值语句的结合性:赋值运算符是右结合的,允许连续赋值;
- 运算符与数据类型的匹配:
%运算符仅适用于整数,int关键字不能直接修饰数值; - 表达式的合法性:赋值号右侧必须是有效表达式,左侧必须是可存储的变量。
选项A:a:=b+1
- 错误原因:C语言中没有
:=这种赋值符号,正确形式应为=。 - 结论:语法错误。
选项B:a=b=c+2
- 正确性分析:
- 结合性:赋值运算符右结合,先计算
c+2,赋值给b,再将b的值赋给a。 - 表达式合法性:右侧
c+2是有效表达式,左侧a和b是合法变量。
- 结合性:赋值运算符右结合,先计算
- 结论:语法正确。
选项C:int 18.5%3
- 错误原因:
- 关键字误用:
int只能用于变量声明,不能修饰数值。 - 类型不匹配:
18.5是浮点数,%运算符仅适用于整数。
- 关键字误用:
- 结论:语法和语义均错误。
选项D:a=a+7=c+b
- 错误原因:
- 赋值顺序:按右结合,应解释为
a = (a+7 = c + b),但a+7是临时值,不能作为赋值目标。 - 表达式非法:右侧
a+7 = c + b本身不合法。
- 赋值顺序:按右结合,应解释为
- 结论:语法错误。