内容正文:
编写说明:广西高等职业教育考试-电子与信息类《C语言程序设计》考点双析卷专辑,依据省教育厅《广西高等职业教育考试大纲与说明》编写。“考点双析卷”即围绕一个考点,一份是老师的讲解卷一份是学生的练习卷,助力师生构建“讲练结合”的学习闭环,特别适用于广西高等职业教育考试第一轮高考复习教学。
本专辑第19卷精准对标广西壮族自治区考纲,考试内容及范围【C语言程序设计】:
(三)选择结构程序设计:掌握 switch 语句的使用
广西高等职业教育考试 电子与信息类
《C语言程序设计》考点双析卷 第19卷
多分支语句 老师讲解卷
时间:45分钟 总分:100分
班级_______ 姓名_______ 学号_______ 成绩_______
一、单项选择题(本大题共20小题,每题3分,共60分)
1.下列程序段的执行结果是( )
main() {
int i;
for (i = 0; i < 3; i++)
switch (i) {
case 1:
printf("%d", i);
case 2:
printf("%d", i);
break;
default:
printf("%d", i);
}
}
A.0112 B.0 1 1 2 C.0,1,1,2 D.程序错误
【答案】A
2.下列程序段的执行结果是( )
main() {
int k = 5, n = 0;
while (k > 0)
{switch (k)
{default:break;
case 1:n += k;
case 2:
case 3:n += k;
}
k--;
}
printf("%d
", n);
}
A.5 B.6 C.7 D.8
【答案】C
3.有如下程序,该程序的输出结果是( )
# include<stdio.h>
main(){
int x=1,a=10,b=10;
switch(x){
case 0:b++:
case l:a++:
case 2:a++;b++;)
printf("%d",a);}
A.10 B.11 C.12 D.13
【答案】C
4.假定等级和分数有以下对应关系:
等级:A 分数:85-100
等级:B 分数:60-84
等级:C 分数:60以下
对于等级grade 输出相应的分数区间,能够完成该功能的程序段是( )
A.switch(grade){
case 'A':printf("85--100
");
case 'B’:printf("60--84
");
case 'C’:printf("<60
");
default:printf( "grade is etror!
");
B.switch(grade){
case 'A':printf("85--100
");break;
case 'B':printf("60--84
");
case 'C’:printf("<60
");
default :printf( "grade is error!
");}
C.switch(grade)
case 'A’:printf("85--100
"):break;
case 'B’:printf("60--84
");breaks;
case ’C’:printf("<60
");
default: printf("grade is error!
");}
D.switch (grade){
case 'C':printf("<60
");break;
case 'B’:printf("60--84
");break;
default: printf("grade is error!
") ;break:
case 'A':printf("85--100
");}
【答案】D
5.switch 语句中每个case后应该是( )
A.常量 B.常量或常量表达式
C.变量 D.常量、变量均可
【答案】B
6.下列程序的执行结果是( )
main()
{ int a=4,m=0;
switch(a%2==0)
{ case 0:m++;
case l:m++;break;
case 2:m++;}
printf(“%d”,m);}
A.1 B.2 C.3 D.0
【答案】A
7.若有定义 float xtint a,b;,则下列四段代码中合法的一段是( )
A.switch(x)
{ case 0: printf(“**”);
case l: printf(“++”);}
B.switch(a)
{ case 0:printf(“**”);
case l:printf(“++”);}
C.switch(a)
{ case l.0:printf(“**”);
case 2.0:printf(“++”);}
D.switch(x)
{ case l:printf(“**”);
case 2+3:printf(“++”);}
【答案】B
8.以下程序段的运行结果是( )
int i;
for(i=0ni<=3;i++)
switch(i)
{case l:printf("%d",i); break;
case 2:printf("%d",i):break:
default:printf("%d",++i);}
A.012 B.023 C.123 D.124
【答案】D
9.执行以下程序段的输出结果是( )
int x=0,y=2,z=3;
switch(x+1)
{case 1:switch(y==2)
{case 1:printf("*");break;
case 2:printf("%");break;}
case 2:switch(z)
{case 1:printf("$");break;
case 2:printf("*");break;
default:printf("#");}}
A.*# B.*$* C.*%$*# D.*
【答案】A
10.执行下列程序段时输入:A<回车>后的输出结果是( )
char ch;scanf("%c",&ch);
switch(ch%2)
{case 0:printf("偶数");break;
case 1:printf("奇数");break;
default:printf("error");}
A.偶数 B.奇数 C.error D.无输出
【答案】B
11.执行以下程序段时输入:H<回车>,输出结果是( )
char ch;ch=getchar();
switch(ch)
{case 'H':printf("%s","Hello! ");
case 'G':printf("%s","Good morning! ");break;
default:printf("%s","Bye Bye!");}
A.Hello! B.Hello! Good morning!
C.Hello! Good morning! Bye Bye! D.Good morning! Bye Bye!
【答案】B
12.执行下列程序段时输入:A<回车>,输出结果是( )
char a;a=getchar();
switch(++a)
{case 65:printf("%c",'A');
case 66:printf("%d",'A');break;
default:printf("%s","other");}
A.65 B.A C.66 D.B
【答案】A
13.执行下列程序段时输入:A<回车>,输出结果是( )
char a;a=getchar();
switch(a)
{case 65:printf("%c",'A');
case 66:printf("%d",'A');
default:printf("%s","other");}
A.AAother B.65Aother C.6565other D.A65other
【答案】D
14.以下程序段的输出结果是( )
int k=8;switch(k)
{case 9:k++;
case 10:k++;
case 11:k++;break;
default:k++;}printf("%d",k);
A.9 B.10 C.11 D.12
【答案】A
15.以下程序段的输出结果是( )
int a=1;
switch(a)
{printf("good");case 0:printf("a");case 1:printf("b");
default:printf("c");case 3:printf("d");}
A.bcd B.goodabcd C.good D.bdc
【答案】A
16.执行以下程序段时输入:D<回车>,输出结果为( )
char grade;grade=getchar();
switch(grade)
{case 'A':printf("优秀");break;
case 'B':printf("良好"); break;
case 'C':printf("及格"); break;
case 'D':printf("不及格");}
A.优秀 B.良好 C.及格 D.不及格
【答案】D
17.执行以下程序段的输出结果是( )
int x=5,y;
switch(x)
{ case 1:case 2:case 3:case 4:printf("x<5,");
case 5:printf("x=5,",x);default:printf("The value of x is unknown.
");}
A.x<5,The value of x is unknown. B.x<5,
C.x=5,The value of x is unknown. D.The value of x is unknown.
【答案】C
18.以下程序段的输出结果是( )
int x=1,y=0;
switch(x)
{case 1:switch(y)
{case 0:printf("**1**");break;
case 1:printf("**2**");break;}
case 2:printf("**3**");}
A.**1****2****3**
B.**1****2**
C.**1****3**
D.**2****3**
【答案】C
19.若有以下程序段,且grade 的值为C,则输出结果是( )
switch(grade){
case 'A':printf("85~100;");
case 'B':printf("70~84;");
case 'C' :printf("60~69;");
case 'D':printf("〈60;");
default:printf("error!");}
A.60~69;<60;error!
B.60~69;
C.<60;error!
D.error!
【答案】A
20.已有定义:int x,y;下列正确的switch语句是( )
A.switch(x){case 1.0:printf(“1”);case 2.0:printf(“2”);}
B.switch(int(x)){case 1.0:printf(“1”);case 2.0:printf(“2”);}
C.switch(x/1.0){case 1:printf(“1”);case 2:printf(“2”);}
D.switch(x+y){case 1:printf(“1”);case 2:printf(“2”);}
【答案】D
二、判断题(本大题共5小题,每题2分,共10分)
21.case语句后可以跟多个语句,无需用花括号括起。( )
【答案】正确
22.switch语句中可以嵌套另一个switch语句( )
【答案】正确
23.在 switch 语句中,default 分支是必须的。( )
【答案】错误
24.多个 case 分支可以共用同一个执行语句。( )
【答案】正确
25.switch (ch)中,ch可以是浮点型变量。( )
【答案】错误
三、程序设计题(本大题共3小题,每题10分,共30分)
26.下面是一个计算出租车收费的程序,当里程在3公里以内含3公里时收费12元,超过3公里的部分每公里收费2元
#include<stdio.h>
main(){
int m,n;
scanf("%d",&m);
/*******space*******/
/*******space*******/
printf("n=%d",n);
}
【答案】switch(m){
case 1:
case 2:
case 3:n=12;break;
default:n=12+(n-3)*2;
}
【详解】利用switch语句的一个执行特点,当匹配到某个case后执行对应的语句后,一直遇到break语句时,switch才会停止。1,2,3公里收费均为12元,故省略了相同结果的break,否则是按照超出3公里部分每公里收费2元,即满足公式n=12+(n-3)*2;
27.函数fun的功能是:统计长整数n的各位上出现数字1、2、3的次数,并用外部(全局)变量c1、c2、 c3返回主函数。例如,当n= 123114350时,结果应该为: c1=3 c2=1 c3=2。
#include <stdio.h>
void fun(long n)
{
int c1,c2,c3;
c1=c2=c3=0;
while(n)
{
/*******space*******/
/*******space*******/
}
}
void main()
{
long n=123114350L;
fun(n);
printf("【The result: 】
");
printf("c1=%d c2=%d c3=%d
",c1,c2,c3);
}
【答案】switch(n%10)
{
case 1:c1++;break;
case 2:c2++;break;
case 3:c3++;break;
}
【详解】利用数为分离将其个位进行分离,再利用switch..case进行匹配,匹配上对应的值时让其对应的计数器累计即可。
28.写给多个学生的成绩评定等级的程序。等级说明:成绩大于等于90小于等于100是A等,小于90大于等于70是B等,小于70大于等于60是C等,小于60大于等于0是D等.
#include<stdio.h>
main(){
int score;
char level;
/*******space*******/
/*******space*******/
}
【答案】scanf(“%d”,&score);
switch(score/10){
case 10:
case 9: level=’A’;break;
case 8:
case 7: level=’B’;break;
case 6: level=’C’;break;
default: level=’D’; }
printf(“等级为%c”,level);
试卷第6页,共6页
试卷第5页,共6页
学科网(北京)股份有限公司
$
编写说明:广西高等职业教育考试-电子与信息类《C语言程序设计》考点双析卷专辑,依据省教育厅《广西高等职业教育考试大纲与说明》编写。“考点双析卷”即围绕一个考点,一份是老师的讲解卷一份是学生的练习卷,助力师生构建“讲练结合”的学习闭环,特别适用于广西高等职业教育考试第一轮高考复习教学。
本专辑第19卷精准对标广西壮族自治区考纲,考试内容及范围【C语言程序设计】:
(三)选择结构程序设计:掌握 switch 语句的使用
广西高等职业教育考试 电子与信息类
《C语言程序设计》考点双析卷 第19卷
多分支语句 老师讲解卷
时间:45分钟 总分:100分
班级_______ 姓名_______ 学号_______ 成绩_______
一、单项选择题(本大题共20小题,每题3分,共60分)
1.下列程序段的执行结果是( )
main() {
int i;
for (i = 0; i < 3; i++)
switch (i) {
case 1:
printf("%d", i);
case 2:
printf("%d", i);
break;
default:
printf("%d", i);
}
}
A.0112 B.0 1 1 2 C.0,1,1,2 D.程序错误
2.下列程序段的执行结果是( )
main() {
int k = 5, n = 0;
while (k > 0)
{switch (k)
{default:break;
case 1:n += k;
case 2:
case 3:n += k;
}
k--;
}
printf("%d
", n);
}
A.5 B.6 C.7 D.8
3.有如下程序,该程序的输出结果是( )
# include<stdio.h>
main(){
int x=1,a=10,b=10;
switch(x){
case 0:b++:
case l:a++:
case 2:a++;b++;)
printf("%d",a);}
A.10 B.11 C.12 D.13
4.假定等级和分数有以下对应关系:
等级:A 分数:85-100
等级:B 分数:60-84
等级:C 分数:60以下
对于等级grade 输出相应的分数区间,能够完成该功能的程序段是( )
A.switch(grade){
case 'A':printf("85--100
");
case 'B’:printf("60--84
");
case 'C’:printf("<60
");
default:printf( "grade is etror!
");
B.switch(grade){
case 'A':printf("85--100
");break;
case 'B':printf("60--84
");
case 'C’:printf("<60
");
default :printf( "grade is error!
");}
C.switch(grade)
case 'A’:printf("85--100
"):break;
case 'B’:printf("60--84
");breaks;
case ’C’:printf("<60
");
default: printf("grade is error!
");}
D.switch (grade){
case 'C':printf("<60
");break;
case 'B’:printf("60--84
");break;
default: printf("grade is error!
") ;break:
case 'A':printf("85--100
");}
5.switch 语句中每个case后应该是( )
A.常量 B.常量或常量表达式
C.变量 D.常量、变量均可
6.下列程序的执行结果是( )
main()
{ int a=4,m=0;
switch(a%2==0)
{ case 0:m++;
case l:m++;break;
case 2:m++;}
printf(“%d”,m);}
A.1 B.2 C.3 D.0
7.若有定义 float xtint a,b;,则下列四段代码中合法的一段是( )
A.switch(x)
{ case 0: printf(“**”);
case l: printf(“++”);}
B.switch(a)
{ case 0:printf(“**”);
case l:printf(“++”);}
C.switch(a)
{ case l.0:printf(“**”);
case 2.0:printf(“++”);}
D.switch(x)
{ case l:printf(“**”);
case 2+3:printf(“++”);}
8.以下程序段的运行结果是( )
int i;
for(i=0ni<=3;i++)
switch(i)
{case l:printf("%d",i); break;
case 2:printf("%d",i):break:
default:printf("%d",++i);}
A.012 B.023 C.123 D.124
9.执行以下程序段的输出结果是( )
int x=0,y=2,z=3;
switch(x+1)
{case 1:switch(y==2)
{case 1:printf("*");break;
case 2:printf("%");break;}
case 2:switch(z)
{case 1:printf("$");break;
case 2:printf("*");break;
default:printf("#");}}
A.*# B.*$* C.*%$*# D.*
10.执行下列程序段时输入:A<回车>后的输出结果是( )
char ch;scanf("%c",&ch);
switch(ch%2)
{case 0:printf("偶数");break;
case 1:printf("奇数");break;
default:printf("error");}
A.偶数 B.奇数 C.error D.无输出
11.执行以下程序段时输入:H<回车>,输出结果是( )
char ch;ch=getchar();
switch(ch)
{case 'H':printf("%s","Hello! ");
case 'G':printf("%s","Good morning! ");break;
default:printf("%s","Bye Bye!");}
A.Hello! B.Hello! Good morning!
C.Hello! Good morning! Bye Bye! D.Good morning! Bye Bye!
12.执行下列程序段时输入:A<回车>,输出结果是( )
char a;a=getchar();
switch(++a)
{case 65:printf("%c",'A');
case 66:printf("%d",'A');break;
default:printf("%s","other");}
A.65 B.A C.66 D.B
13.执行下列程序段时输入:A<回车>,输出结果是( )
char a;a=getchar();
switch(a)
{case 65:printf("%c",'A');
case 66:printf("%d",'A');
default:printf("%s","other");}
A.AAother B.65Aother C.6565other D.A65other
14.以下程序段的输出结果是( )
int k=8;switch(k)
{case 9:k++;
case 10:k++;
case 11:k++;break;
default:k++;}printf("%d",k);
A.9 B.10 C.11 D.12
15.以下程序段的输出结果是( )
int a=1;
switch(a)
{printf("good");case 0:printf("a");case 1:printf("b");
default:printf("c");case 3:printf("d");}
A.bcd B.goodabcd C.good D.bdc
16.执行以下程序段时输入:D<回车>,输出结果为( )
char grade;grade=getchar();
switch(grade)
{case 'A':printf("优秀");break;
case 'B':printf("良好"); break;
case 'C':printf("及格"); break;
case 'D':printf("不及格");}
A.优秀 B.良好 C.及格 D.不及格
17.执行以下程序段的输出结果是( )
int x=5,y;
switch(x)
{ case 1:case 2:case 3:case 4:printf("x<5,");
case 5:printf("x=5,",x);default:printf("The value of x is unknown.
");}
A.x<5,The value of x is unknown. B.x<5,
C.x=5,The value of x is unknown. D.The value of x is unknown.
18.以下程序段的输出结果是( )
int x=1,y=0;
switch(x)
{case 1:switch(y)
{case 0:printf("**1**");break;
case 1:printf("**2**");break;}
case 2:printf("**3**");}
A.**1****2****3**
B.**1****2**
C.**1****3**
D.**2****3**
19.若有以下程序段,且grade 的值为C,则输出结果是( )
switch(grade){
case 'A':printf("85~100;");
case 'B':printf("70~84;");
case 'C' :printf("60~69;");
case 'D':printf("〈60;");
default:printf("error!");}
A.60~69;<60;error!
B.60~69;
C.<60;error!
D.error!
20.已有定义:int x,y;下列正确的switch语句是( )
A.switch(x){case 1.0:printf(“1”);case 2.0:printf(“2”);}
B.switch(int(x)){case 1.0:printf(“1”);case 2.0:printf(“2”);}
C.switch(x/1.0){case 1:printf(“1”);case 2:printf(“2”);}
D.switch(x+y){case 1:printf(“1”);case 2:printf(“2”);}
二、判断题(本大题共5小题,每题2分,共10分)
21.case语句后可以跟多个语句,无需用花括号括起。( )
22.switch语句中可以嵌套另一个switch语句( )
23.在 switch 语句中,default 分支是必须的。( )
24.多个 case 分支可以共用同一个执行语句。( )
25.switch (ch)中,ch可以是浮点型变量。( )
三、程序设计题(本大题共3小题,每题10分,共30分)
26.下面是一个计算出租车收费的程序,当里程在3公里以内含3公里时收费12元,超过3公里的部分每公里收费2元
#include<stdio.h>
main(){
int m,n;
scanf("%d",&m);
/*******space*******/
/*******space*******/
printf("n=%d",n);
}
27.函数fun的功能是:统计长整数n的各位上出现数字1、2、3的次数,并用外部(全局)变量c1、c2、 c3返回主函数。例如,当n= 123114350时,结果应该为: c1=3 c2=1 c3=2。
#include <stdio.h>
void fun(long n)
{
int c1,c2,c3;
c1=c2=c3=0;
while(n)
{
/*******space*******/
/*******space*******/
}
}
void main()
{
long n=123114350L;
fun(n);
printf("【The result: 】
");
printf("c1=%d c2=%d c3=%d
",c1,c2,c3);
}
28.写给多个学生的成绩评定等级的程序。等级说明:成绩大于等于90小于等于100是A等,小于90大于等于70是B等,小于70大于等于60是C等,小于60大于等于0是D等.
#include<stdio.h>
main(){
int score;
char level;
/*******space*******/
/*******space*******/
}
试卷第6页,共6页
试卷第5页,共6页
学科网(北京)股份有限公司
$