内容正文:
编写说明:考虑到中职学生普遍基础知识相对薄弱的情况,我们依据支架式教学理念,精心编制了《编程语言基础-C语言》(高教版第5版)一课一练。专辑里的每一份练习,都与课堂所授知识点紧密相关,题目围绕课堂所学知识点呈现。目的在于激发学生的学习兴趣,培养他们的学习自觉性,帮助学生扎实掌握课程的基本概念与基本方法,为他们后续的进一步提升奠定坚实基础。
本卷是《编程语言基础-C语言》(高教版第5版)一课一练的第3章的第15练,内容涵盖第3章 分支结构程序设计的3.3 多分支语句。
《编程语言基础-C语言》(高教版第5版)第15练
第3章 分支结构程序设计
3.3 多分支语句(解析版)
一、单项选择题(本题共5小题)
1、下列关于C语言switch语句的说法,正确的是( )
A. switch后面的表达式只能是整型常量表达式
B. case后面的常量表达式值可以相同
C. switch语句中必须包含default子句
D. 每个case分支中可以使用多条语句,且不需要用花括号括起来
【答案】D
【解析】 switch后面的括号中的表达式一般是整形表达式或字符型表达式;同一switch语句中case常量值必须互不相同;default子句是可选的;case后面允许多条语句,可不用花括号。
2、有以下程序段:
int x = 2;
switch(x) {
case 1: printf("A");
case 2: printf("B");
case 3: printf("C"); break;
default: printf("D");
}
执行后的输出结果是( )
A. B
B. BC
C. BCD
D. ABC
【答案】B
【解析】 x=2匹配case 2,由于该case后没有break语句,程序会继续向下执行,直到遇到break或switch结束。因此会执行case 2和case 3,输出"BC"后遇到break退出。
3、若要求输入1~7分别输出Monday~Sunday,输入其他值输出"Error",则switch语句中default子句应放在( )
A. 只能放在最前面
B. 只能放在最后面
C. 可以放在任意位置,但通常放在最后
D. 必须放在中间
【答案】C
【解析】 default子句的位置是任意的,可以放在任何case之前或之后。但按照编程习惯,通常将default放在所有case之后,使代码更清晰易读。
4、以下关于switch语句中break的作用,说法错误的是( )
A. break用于跳出当前的switch语句
B. 每个case后面都必须有break
C. 没有break时会发生case穿透
D. break也可以用于循环语句中
【答案】B
【解析】 break的功能就是跳出switch;break并非必须,当需要多个case执行相同操作时,可以有意识利用case穿透而不加break;无break会继续向下执行;break也可用于循环。
5、执行以下程序,输入字符'B',输出结果是( )
char ch;
scanf("%c", &ch);
switch(ch) {
case 'A': printf("优秀");
case 'B': printf("良好");
case 'C': printf("及格");
default: printf("继续努力");
}
A. 良好
B. 良好及格
C. 良好及格继续努力
D. 优秀良好及格继续努力
【答案】C
【解析】 字符类型可以作为switch表达式。输入'B'匹配case 'B',但由于该case和后面case都没有break语句,会产生穿透,依次执行case 'B'、case 'C'和default,输出"良好及格继续努力"。
2、 判断题(本题共5小题)
1、switch语句中的表达式可以是float或double类型。( )
【答案】×
【解析】 switch后面的表达式必须是整型,不能是实型(float/double)。
2、在switch语句中,如果某个case后面没有break,程序会继续执行下一个case中的代码。( )
【答案】√
【解析】 这是switch语句的"case穿透"特性。case只相当于入口标号,没有break时会顺序执行后续case直到遇到break或switch结束。
3、default子句必须放在switch语句的最后,否则会出错。( )
【答案】×
【解析】 default子句可以放在switch语句的任意位置,不影响程序逻辑。只是习惯上通常放在最后。
4、同一个switch语句中,两个不同的case后面的常量表达式值不能相同。( )
【答案】√
【解析】 如果case值相同,程序无法确定应该执行哪个分支,编译器会报错。
5、switch语句中的case后面只能跟一个语句,如果有多条语句必须用花括号括起来。( )
【答案】×
【解析】 case后面允许多条语句,且不需要用花括号括起来。switch会自动识别case后的所有语句,直到遇到下一个case、default或switch结束。
原创精品资源学科网独家享有版权,侵权必究!
学科网(北京)股份有限公司
$
编写说明:考虑到中职学生普遍基础知识相对薄弱的情况,我们依据支架式教学理念,精心编制了《编程语言基础-C语言》(高教版第5版)一课一练。专辑里的每一份练习,都与课堂所授知识点紧密相关,题目围绕课堂所学知识点呈现。目的在于激发学生的学习兴趣,培养他们的学习自觉性,帮助学生扎实掌握课程的基本概念与基本方法,为他们后续的进一步提升奠定坚实基础。
本卷是《编程语言基础-C语言》(高教版第5版)一课一练的第3章的第15练,内容涵盖第3章 分支结构程序设计的3.3 多分支语句。
《编程语言基础-C语言》(高教版第5版)第15练
第3章 分支结构程序设计
3.3 多分支语句(原卷版)
一、单项选择题(本题共5小题)
1、下列关于C语言switch语句的说法,正确的是( )
A. switch后面的表达式只能是整型常量表达式
B. case后面的常量表达式值可以相同
C. switch语句中必须包含default子句
D. 每个case分支中可以使用多条语句,且不需要用花括号括起来
2、有以下程序段:
int x = 2;
switch(x) {
case 1: printf("A");
case 2: printf("B");
case 3: printf("C"); break;
default: printf("D");
}
执行后的输出结果是( )
A. B
B. BC
C. BCD
D. ABC
3、若要求输入1~7分别输出Monday~Sunday,输入其他值输出"Error",则switch语句中default子句应放在( )
A. 只能放在最前面
B. 只能放在最后面
C. 可以放在任意位置,但通常放在最后
D. 必须放在中间
4、以下关于switch语句中break的作用,说法错误的是( )
A. break用于跳出当前的switch语句
B. 每个case后面都必须有break
C. 没有break时会发生case穿透
D. break也可以用于循环语句中
5、执行以下程序,输入字符'B',输出结果是( )
char ch;
scanf("%c", &ch);
switch(ch) {
case 'A': printf("优秀");
case 'B': printf("良好");
case 'C': printf("及格");
default: printf("继续努力");
}
A. 良好
B. 良好及格
C. 良好及格继续努力
D. 优秀良好及格继续努力
2、 判断题(本题共5小题)
1、switch语句中的表达式可以是float或double类型。( )
2、在switch语句中,如果某个case后面没有break,程序会继续执行下一个case中的代码。( )
3、default子句必须放在switch语句的最后,否则会出错。( )
4、同一个switch语句中,两个不同的case后面的常量表达式值不能相同。( )
5、switch语句中的case后面只能跟一个语句,如果有多条语句必须用花括号括起来。( )
原创精品资源学科网独家享有版权,侵权必究!
学科网(北京)股份有限公司
$