符合c语言语法的赋值表达式
❶ 符合c语言语法的赋值表达式是: A.a=9+b+c=d+9 B.a=(9+b, c=d+9) C.a=9+b, b++, c+9 D.a=9+b++=c+9
需要首先明确
1.)赋值操作符的优先级比“+”更低.
2.) 赋值操作符的返回值是赋值后的左操作数的值.
3.) 常量和表达式不能作为左值,不能作为左操作数(即不能放在二元运算符的左边).
A出现9+b+c=d+9这样的式子是不能完成赋值的,可以改为a=9+b+(c=d+9)
D的错误与A相同
C是三条语句,a=9+b;b++;c+9,也就是说后面的b++和c+9在这里没有意义
B括号中是逗号表达式,从左往右执行,返回最后一个表达式的值
❷ 符合c语言语法的赋值表达式是 A. d=9+e,e++,d+9 B. d=9+e,f=d+9 问A和B选项是否都对,请详解
都对。
A相当于(d=9+e),e++,d+9算完括号后是一个逗号表达式。
B相当于(d=9+e),(f=d+9)算完括号后也是一个逗号表达式。
❸ 下面表达式中符合c语言语法的赋值表达式的是
答案是b.
a和d中都有连等,所以显然错误
c选项中,赋值号右边不能用逗号表达式,所以错误。
本题考点在于赋值运算规则的运用。
c语言中不允许连续在一个表达式中出现连续的赋值运算。
❹ 符合C语言语法的赋值表达式是A、d=9+e+f=d+9 B、d=9+e,f=d+9 C、d=9+e,e++,d+9 D、d=9+e++=d+7
需要首先明确
1.)赋值操作符的优先级比“+”更低。
2.) 赋值操作符的返回值是赋值后的左操作数的值。
3.) 常量和表达式不能作为左值,不能作为左操作数(即不能放在二元运算符的左边)。
以上3点判断如下:
A:可以分割为两个连续的赋值操作,连续赋值操作从右至左执行,第一个执行赋值操作左边为(9+e+f)是表达式,错误。编译器应该报错。可以修改为d=9+e+(f=d+9)。
B:正确。
C:d+9是要干什么?也没有赋值。语法错误。
D:同A
建议写出来编译一下。映像会深刻些。某些教材是比较简略的,建议查查C++
primer之类的书籍。