内容正文:
编写说明:考虑到中职学生普遍基础知识相对薄弱的情况,我们依据支架式教学理念,精心编制了《编程语言基础-C语言》(高教版第5版)一课一练。专辑里的每一份练习,都与课堂所授知识点紧密相关,题目围绕课堂所学知识点呈现。目的在于激发学生的学习兴趣,培养他们的学习自觉性,帮助学生扎实掌握课程的基本概念与基本方法,为他们后续的进一步提升奠定坚实基础。
本卷是《编程语言基础-C语言》(高教版第5版)一课一练的第3章的第16练,内容涵盖第3章 分支结构程序设计的3.4 分支结构程序设计实例。
《编程语言基础-C语言》(高教版第5版)第16练
第3章 分支结构程序设计
3.4 分支结构程序设计实例(解析版)
一、单项选择题(本题共5小题)
1、假设要将百分制成绩score转换为等级:90~100为A,80~89为B,70~79为C,60~69为D,0~59为E。以下switch语句片段正确的是( )
A.
switch(score) {
case 90~100: grade='A'; break;
case 80~89: grade='B'; break;
case 70~79: grade='C'; break;
case 60~69: grade='D'; break;
case 0~59: grade='E';
}
B.
switch(score/10) {
case 10: case 9: grade='A'; break;
case 8: grade='B'; break;
case 7: grade='C'; break;
case 6: grade='D'; break;
default: grade='E';
}
C.
switch(score) {
case score>=90: grade='A'; break;
case score>=80: grade='B'; break;
case score>=70: grade='C'; break;
case score>=60: grade='D'; break;
default: grade='E';
}
D.
switch(score) {
case 100-90: grade='A'; break;
case 89-80: grade='B'; break;
case 70-79: grade='A'; break;
case 60-69: grade='B'; break;
default: grade='E';
}
【答案】B
【解析】 switch表达式必须是整型,case后必须是常量表达式。A中“90~100”不是合法写法;C中case后不能跟关系表达式;D中“100-90”虽为常量表达式,但值为10,只能代表一个分数,无法表示范围。
2、以下程序是一个简易计算器,根据输入的操作符(+、-、*、/)执行相应运算,若输入其他字符则提示错误。若输入'*',a=8,b=2,则输出结果为( )
int a, b;
char op;
scanf("%d %c %d", &a, &op, &b);
switch(op) {
case '+': printf("%d", a+b); break;
case '-': printf("%d", a-b); break;
case '*': printf("%d", a*b); break;
case '/': printf("%d", a/b); break;
default: printf("Error");
}
A. 10
B. 6
C. 16
D. 4
【答案】C
【解析】 输入'*'匹配case '*',执行a*b=8*2=16,输出16,然后break跳出switch。
3、执行以下程序,若输入x的值为-5,则输出结果是( )
int x;scanf("%d", &x);
if(x > 0)
printf("positive");
else if(x < 0)
printf("negative");
else
printf("zero");
A. positive
B. negative
C. zero
D. 无输出
【答案】B
【解析】x=-5小于0,满足else if(x<0)的条件,执行printf("negative"),输出"negative"。
4、有以下程序段,执行后变量max的值是( )
int a=5, b=8, c=3, max;
if(a > b)
if(a > c)
max = a;
else
max = c;
else
if(b > c)
max = b;
else
max = c;
A. 5
B. 8
C. 3
D. 不确定
【答案】B
【解析】外层if判断a>b为假(5>8不成立),执行else分支。在else中,判断b>c为真(8>3),执行max=b,因此max=8。
5、关于多分支结构,下列说法正确的是( )
A. switch语句只能用于等值判断,不能用于范围判断
B. if...else if结构不能替代switch结构实现多分支
C. switch语句中的case值必须是按顺序排列的整数
D. default子句必须放在所有case之后,否则会导致逻辑错误
【答案】A
【解析】 switch只能对整型表达式进行等值比较;if...else if可以替代任何switch,但反之不一定;case值可以任意顺序,无需递增排列;default可放在任何位置,只是习惯上放最后。
2、 判断题(本题共5小题)
1、用switch语句实现多分支时,只能处理整型数据,不能处理浮点型。( )
【答案】√
【解析】 switch表达式必须是整型(包括字符型、枚举型),不能是浮点型,这是语法规定。
2、在switch语句中,多个case可以共用同一组执行语句。( )
【答案】√
【解析】 如成绩等级转换中,case 10和case 9可以共用同一个输出语句,只需连续书写case并紧跟执行语句即可。
3、任何多分支结构都可以用if...else if语句实现,但switch语句有时更简洁清晰。( )
【答案】√
【解析】 if...else if可以处理任何条件判断,包括范围和复杂逻辑,但switch在处理等值多分支时代码更简洁易读。
4、如果switch语句中缺少break,可能会导致逻辑错误,但有时也是故意利用的特性。( )
【答案】√
【解析】 缺少break会产生“穿透”,有时确实是需要的,但若不需要则会造成错误,因此使用时需注意。
5、在switch语句中,default子句必须存在,否则当所有case都不匹配时程序会出错。( )
【答案】×
【解析】 default是可选的,若没有default且无匹配case,则程序不执行任何操作,继续执行switch之后的语句。
原创精品资源学科网独家享有版权,侵权必究!
学科网(北京)股份有限公司
$
编写说明:考虑到中职学生普遍基础知识相对薄弱的情况,我们依据支架式教学理念,精心编制了《编程语言基础-C语言》(高教版第5版)一课一练。专辑里的每一份练习,都与课堂所授知识点紧密相关,题目围绕课堂所学知识点呈现。目的在于激发学生的学习兴趣,培养他们的学习自觉性,帮助学生扎实掌握课程的基本概念与基本方法,为他们后续的进一步提升奠定坚实基础。
本卷是《编程语言基础-C语言》(高教版第5版)一课一练的第3章的第16练,内容涵盖第3章 分支结构程序设计的3.4 分支结构程序设计实例。
《编程语言基础-C语言》(高教版第5版)第16练
第3章 分支结构程序设计
3.4 分支结构程序设计实例(原卷版)
一、单项选择题(本题共5小题)
1、假设要将百分制成绩score转换为等级:90~100为A,80~89为B,70~79为C,60~69为D,0~59为E。以下switch语句片段正确的是( )
A.
switch(score) {
case 90~100: grade='A'; break;
case 80~89: grade='B'; break;
case 70~79: grade='C'; break;
case 60~69: grade='D'; break;
case 0~59: grade='E';
}
B.
switch(score/10) {
case 10: case 9: grade='A'; break;
case 8: grade='B'; break;
case 7: grade='C'; break;
case 6: grade='D'; break;
default: grade='E';
}
C.
switch(score) {
case score>=90: grade='A'; break;
case score>=80: grade='B'; break;
case score>=70: grade='C'; break;
case score>=60: grade='D'; break;
default: grade='E';
}
D.
switch(score) {
case 100-90: grade='A'; break;
case 89-80: grade='B'; break;
case 70-79: grade='A'; break;
case 60-69: grade='B'; break;
default: grade='E';
}
【答案】B
【解析】 switch表达式必须是整型,case后必须是常量表达式。A中“90~100”不是合法写法;C中case后不能跟关系表达式;D中“100-90”虽为常量表达式,但值为10,只能代表一个分数,无法表示范围。
2、以下程序是一个简易计算器,根据输入的操作符(+、-、*、/)执行相应运算,若输入其他字符则提示错误。若输入'*',a=8,b=2,则输出结果为( )
int a, b;
char op;
scanf("%d %c %d", &a, &op, &b);
switch(op) {
case '+': printf("%d", a+b); break;
case '-': printf("%d", a-b); break;
case '*': printf("%d", a*b); break;
case '/': printf("%d", a/b); break;
default: printf("Error");
}
A. 10
B. 6
C. 16
D. 4
【答案】C
【解析】 输入'*'匹配case '*',执行a*b=8*2=16,输出16,然后break跳出switch。
3、执行以下程序,若输入x的值为-5,则输出结果是( )
int x;scanf("%d", &x);
if(x > 0)
printf("positive");
else if(x < 0)
printf("negative");
else
printf("zero");
A. positive
B. negative
C. zero
D. 无输出
【答案】B
【解析】x=-5小于0,满足else if(x<0)的条件,执行printf("negative"),输出"negative"。
4、有以下程序段,执行后变量max的值是( )
int a=5, b=8, c=3, max;
if(a > b)
if(a > c)
max = a;
else
max = c;
else
if(b > c)
max = b;
else
max = c;
A. 5
B. 8
C. 3
D. 不确定
【答案】B
【解析】外层if判断a>b为假(5>8不成立),执行else分支。在else中,判断b>c为真(8>3),执行max=b,因此max=8。
5、关于多分支结构,下列说法正确的是( )
A. switch语句只能用于等值判断,不能用于范围判断
B. if...else if结构不能替代switch结构实现多分支
C. switch语句中的case值必须是按顺序排列的整数
D. default子句必须放在所有case之后,否则会导致逻辑错误
【答案】A
【解析】 switch只能对整型表达式进行等值比较;if...else if可以替代任何switch,但反之不一定;case值可以任意顺序,无需递增排列;default可放在任何位置,只是习惯上放最后。
2、 判断题(本题共5小题)
1、用switch语句实现多分支时,只能处理整型数据,不能处理浮点型。( )
【答案】√
【解析】 switch表达式必须是整型(包括字符型、枚举型),不能是浮点型,这是语法规定。
2、在switch语句中,多个case可以共用同一组执行语句。( )
【答案】√
【解析】 如成绩等级转换中,case 10和case 9可以共用同一个输出语句,只需连续书写case并紧跟执行语句即可。
3、任何多分支结构都可以用if...else if语句实现,但switch语句有时更简洁清晰。( )
【答案】√
【解析】 if...else if可以处理任何条件判断,包括范围和复杂逻辑,但switch在处理等值多分支时代码更简洁易读。
4、如果switch语句中缺少break,可能会导致逻辑错误,但有时也是故意利用的特性。( )
【答案】√
【解析】 缺少break会产生“穿透”,有时确实是需要的,但若不需要则会造成错误,因此使用时需注意。
5、在switch语句中,default子句必须存在,否则当所有case都不匹配时程序会出错。( )
【答案】×
【解析】 default是可选的,若没有default且无匹配case,则程序不执行任何操作,继续执行switch之后的语句。
原创精品资源学科网独家享有版权,侵权必究!
学科网(北京)股份有限公司
$