int a=1,b=2,c=3;? 执行语句a += b *= c;后a的值是()。 A . 5 B . 4 C . 7 D . 1
时间: 2024-06-04 10:08:57 浏览: 31
在 C 语言中,赋值运算符 `=`、复合赋值运算符 `+=` 和 `*=` 的优先级都比算术运算符 `+` 和 `*` 低。而且,复合赋值运算符的优先级比赋值运算符低。
因此,表达式 `a += b *= c` 的求值顺序是先计算 `b *= c`,即将变量 `b` 乘以变量 `c` 的结果赋值给变量 `b`,此时 `b` 的值变为 6。然后再计算 `a += 6`,即将变量 `a` 加上变量 `b` 的结果赋值给变量 `a`,此时 `a` 的值变为 7。
因此,选项 C 正确。
相关问题
int a=9,b=6,c,执行语句c=a/b+0.8,c的值
根据C++的算术运算符优先级规则,除法运算符 `/` 的优先级高于加法运算符 `+`,因此先计算 `a/b` 的值,但是 `a` 和 `b` 都是整型,因此执行整数除法,结果为 `1`。然后再将 `1` 和 `0.8` 相加,得到 `1.8`。最后将 `1.8` 赋值给变量 `c`,因为 `c` 是整型,所以会将小数部分直接舍去,所以最终 `c` 的值为 `1`。
inta=1, b=1; a>1&& b++>2的值
请问下列哪些条件满足?
A. int sum = a + b;
B. if (a > b) { cout << "a is greater than b"; }
C. for (int i = 0; i < a; i++) { cout << i; }
D. while (a > 0) { a--; b++; }
答案:A、B、C、D
解析:
A. int sum = a + b; 无论a、b的值如何,这条语句都能成功执行。
B. 如果a > b,就输出字符串"a is greater than b",满足条件。
C. 循环从0到a-1依次输出i,满足条件。
D. 当a > 0时,a--,b++,循环继续执行,满足条件。