一个C语言的题目,问了,但是出现几个答案,不知道哪个正确啊

来源:百度知道 编辑:UC知道 时间:2024/06/27 21:43:56
以下合法的赋值语句是
A) x=y=100 B) d--;
C) x+y; D) c=int(a+b);

结果是多少啊?为什么这么做啊?

刚才问这个题的时候,有选择A的,有选择C的,有选择B的,不知道到底选什么啊,请求帮助

这个要从三个方面要考虑
“合法的” “赋值” “语句”
A排除 A最后没有“;”肯定是错的
C排除 C不是赋值,只是简单的相加减
D排除 D不合法

选择B d--其实是d = d - 1的简写

如果楼主打字没有错误的话,这道题没有答案
刚刚特意翻看了一下C的教材,对赋值表达式的定义是由赋值运算符将一个变量和一个表达式连接起来的式子,然后赋值语句的定义是由赋值表达式加一个分号构成构成。
A 没有分号,不是语句,排除
B C 都没有赋值运算符,排除
D 貌似是强制类型转换后赋值,但这是C++中的用法,楼主说这是C语言的问题,而C语言中这样是违法的,刚也试了一下,用C语言会编译出错,用C++编译通过

所以,这题没答案

A 没有分号
C 执行后变量值没有变化
D ,如果a和b 为单精度型,'=' : truncation from 'const double' to 'float' 应该 c = (int)(a+b);
B 语句执行后,d = d - 1,是合法赋值语句

选B

是B
A少了个分号
B是d=d-1;
C没有赋值
D是强制转换少了个括号c=(int)(a+b);

选D,

A 分号打漏了吧
B是自减运算
C没值
D应该是c=(int)(a+b)强制把a+b转换为整形赋值给C