文章

8

粉丝

136

获赞

2

访问

47.7k

头像
合法的C语句题,求详解
C语言
发布于2022年10月22日 22:33
阅读数 11.3k

设变量已正确定义,以下()是合法的C语句。

 

A.

if ( n <= 10 );

 

 

B.

switch ( k ) {
    case 1: printf("one"); break;
    case 2: printf("two"); break;
    case 1: printf("one"); break;
    default: printf("zero"); break;
}

 

 

 

C.

switch ( k%2 ) {
    default: printf("zero"); break;
    case 1: printf("one");
    case 1+1: printf("two");
}

 

 

 

D.

n = 10;
switch ( k ) {
    case n%3: printf("one");
    case n%4: printf("two");
    default: printf("zero");
}
登录查看完整内容


登录后发布评论

3 条评论
快乐小土狗
2022年10月22日 23:22

选A吧,if语句后面跟分号是可以的。

BCD选项的switch语句都有问题

B的话是case值重复了,会产生语法歧义,default后面可以不跟break,跟了也可以。

C的话default应该在case后面,当case分支都不满足就可以default兜底。

D的话case后面需要是常量或者常量表达式,n%3这种不是。

综上,答案选A。

赞(1)

追光 : 回复 快乐小土狗: 这是多选题,是A,C 我查了下 default是缺省默认的意思,default在switch语句中不管放在哪都是从第一个case开始执行,当所有的case都不满足条件时,才执行default。 default在最后一行时下面的break可以省略不写,但如果没有在最后一行,default下面需要加上break,否则执行完default后会继续执行下面的代码直到遇到break跳出循环 不过我终于明白了,谢谢!!

2022年10月23日 16:54

1833958644 : 回复 追光: 谢谢我也懂了

2022年11月16日 23:32