C语言这道题为什么选a?

2024-11-05 05:38:56
推荐回答(3个)
回答1:

1 整型常数, 默认是int类型。 要写长整型, 必须在结尾加L
所以 只有A对。
2 赋值的时候 如果多个=符号。 那么左边的 都必须是变量
D选项 相当于
b+c=1
a=b+c;
明显 b+c=1这个是不合法的。
而C选项 是
k=i==j
根据优先级 等效于 k=(i==j)
即判断i j是否相等。 如果相等, k为1. 否则为0

回答2:

switch的执行过程是,如果 case 语句不包含 break,控制流将会继续执行后续的 case,直到结束或者遇到 break 为止。在题目中,不存在break的,所以当匹配到case 1时,会执行相应的a++,因为没有break,所以会继续执行case 2中的语句。

回答3:

switch ... case 语句一定要在case后面加break语句,否则执行完当前case会接着执行下一个case。
此题中case 1结束后,没有break,所以直接进入case 2,所以a两次++,b一次++,答案为A。