内容正文:
编写说明:江苏省中职职教高考专业综合理论考试-计算机类《C语言程序设计》考点双析卷专辑,依据省教育厅《江苏省中职职教高考专业综合理论考试大纲》编写。“考点双析卷”即围绕一个考点,一份是老师的讲解卷一份是学生的练习卷,助力师生构建“讲练结合”的学习闭环,特别适用于江苏省中职职教高考专业综合理论考试第一轮高考复习教学。
本专辑第19卷精准对标江苏省考纲,考试内容及范围【C语言程序设计】:
(六)选择结构程序设计:理解switch语句实现多分支选择;
江苏省中职职教高考专业综合理论考试 计算机类
《C语言程序设计》考点双析卷 第19卷
多分支语句 老师讲解卷
时间:45分钟 总分:100分
班级_______ 姓名_______ 学号_______ 成绩_______
一、单项选择题(本大题共20小题,每题3分,共60分)
1.有以下程序段
#include <stdio.h>
main(){
int x=1,y=0,a=0,b=0;
switch(x)
{ case 1:
switch(y)
{
case 0: a++; break;
case 1: b++; break;
}
case 2 : a++; b++; break;
case 3: a++; b++;
}
printf("a=%d,b=%d
",a,b);
}
以下关于程序段执行情况的叙述,正确的是( )
A.a=2,b=2 B.a=2,b=1
C.a=1,b=1 D.a=1,b=0
2.有以下程序,程序运行后的输出结果是( )
#include <stdio.h> main( )
{ int k=5, n=0;
do { switch (k)
{ case 1: case 3: n+=1; k--; break;
default: n=0; k--;
case 2: case 4: n+ =2; k--; break; }
printf("%d " ,n);
}while (k>0 && n<5); }
A.235 B.0234 C.02356 D.2356
3.下列叙述中正确的是( )
A.在switch语句中,不一定使用break语句
B.在switch语句中必须使用default
C.break语句必须与switch语句中的case配对使用
D.break 语句只能用于switch语句
4.C 语言的 switch 语句中,case 后( )
A.只能为常量
B.只能为常量或常量表达式
C.可为常量及表达式或有确定值的变量及表达式
D.可为任何量或表达式
5.若有定义: float x=1.5; int a =1,b=3,c=2;则正确的switch语句是( )
A.switch(a+b)
{case 1: printf("*
");
case 2+1 : printf("**
");}
B.switch( (int)x );
{ case 1: printf("*
");
case 2 : printf("**
");}
C.switch( x );
{ case 1.0: printf("*
");
case 2.0 : printf("**
");}
D.switch( a+b )
{ case 1: printf("*
");
case c: printf("**
");}
6.下列程序段的执行结果是( )
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
7.有如下程序,该程序的输出结果是( )
# 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
8.假定等级和分数有以下对应关系:
等级: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
");}
9.switch 语句中每个case后应该是( )
A.常量 B.常量或常量表达式
C.变量 D.常量、变量均可
10.下列程序的执行结果是( )
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
11.若有定义 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(“++”);}
12.以下程序段的运行结果是( )
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
13.执行以下程序段的输出结果是( )
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.*
14.执行下列程序段时输入: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.无输出
15.执行以下程序段时输入: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!
16.执行下列程序段时输入: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
17.执行下列程序段时输入: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
18.以下程序段的输出结果是( )
int a=60,b=40,c=50,d;d=a>30?b:c;
switch(d)
{case 30:printf("%d",a);case 40:printf("%d",b);
case 50:printf("%d",c);default:printf("error");}
A.605040 B.50error C.40error D.4050error
19.以下程序段的输出结果是( )
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
20.执行以下程序段的输出结果是( )
int a=15,b=21,m=0;
switch(a%3)
{case 0:m++;break;
case 1:m++;
switch(b%2)
{default:m++;
case 0:m++;break;}}printf("%d",m);
A.1 B.2 C.3 D.4
二、判断题(本大题共5小题,每题3分,共15分)
21.switch 语句的表达式可以是字符串。( )
22.switch语句中,default子句必须放在最后,否则会导致语法错误。( )
23.switch 语句中的 case 标签后面必须跟常量表达式。( )
24.switch 语句中的 break 语句只能跳出当前的 switch 语句。( )
25.switch 语句中的 case 分支常量表达式的值可以重复。( )
三、读程序写答案题(本大题共5小题,每题5分,共25分)
26.以下程序的运行结果是( )
#include <stdio.h>
#include<conio.h>
main()
{int n='b';
switch(++n)
{default:printf("error!");break;
case 'a':case 'A':case 'b':case 'B':printf("pass!");break;
case 'c':case 'C':printf("good ");
case 'd':case 'D':printf("luck!");}
getch();}
27.以下程序的运行结果是( )
#include <stdio.h>
#include<conio.h>
main()
{int x=2,y=7,z=5;
if(x<y&&y>z)
{switch(x>2)
{default:printf("6");
case 1:switch(y>0)
{case 1:printf("1");break;
case 2:printf("2");break;}
case 0:switch(z==5)
{case 0:printf("3");break;
case 1:printf("4");break;
default:printf("5");}}}
getch();}
28.以下程序的运行结果是( )
#include <stdio.h>
#include<conio.h>
main()
{int a=11,b=20,n=0;
switch(a%2)
{case 0:n+=1;break;
case 1:n+=2;
case 3:n+=3;
switch(b%5)
{default:n++;
case 0:n++;break;}}
printf("%d
",n);
getch();}
29.以下程序的运行结果是( )
#include <stdio.h>
#include<conio.h>
main()
{int a=2 ,b=7,c=5;
switch (a>0)
{case 1:switch (b<0)
{case 1:printf("@");break;
case 2:printf("!");break;}
case 0:switch(c==5)
{case 0:printf("*"); break;
case 1:printf("#");break;
default:break;}
default:printf("$");}
printf("
");
getch();}
30.以下程序的运行结果是( )
#include <stdio.h>
#include<conio.h>
main()
{float x,y;char o;
double r;
scanf("%f %f %c",&x,&y,&o);
switch(o){ case '+':r=x+y;break;
case '-':r=x-y;break;
case '*':r=x*y;break;
case '/':r=x/y;break;}
printf("%f",r);
getch();}
运行时输入:2 6 *<回车>
试卷第6页,共6页
试卷第5页,共6页
学科网(北京)股份有限公司
$
编写说明:江苏省中职职教高考专业综合理论考试-计算机类《C语言程序设计》考点双析卷专辑,依据省教育厅《江苏省中职职教高考专业综合理论考试大纲》编写。“考点双析卷”即围绕一个考点,一份是老师的讲解卷一份是学生的练习卷,助力师生构建“讲练结合”的学习闭环,特别适用于江苏省中职职教高考专业综合理论考试第一轮高考复习教学。
本专辑第19卷精准对标江苏省考纲,考试内容及范围【C语言程序设计】:
(六)选择结构程序设计:理解switch语句实现多分支选择;
江苏省中职职教高考专业综合理论考试 计算机类
《C语言程序设计》考点双析卷 第19卷
多分支语句 老师讲解卷
时间:45分钟 总分:100分
班级_______ 姓名_______ 学号_______ 成绩_______
一、单项选择题(本大题共20小题,每题3分,共60分)
1.有以下程序段
#include <stdio.h>
main(){
int x=1,y=0,a=0,b=0;
switch(x)
{ case 1:
switch(y)
{
case 0: a++; break;
case 1: b++; break;
}
case 2 : a++; b++; break;
case 3: a++; b++;
}
printf("a=%d,b=%d
",a,b);
}
以下关于程序段执行情况的叙述,正确的是( )
A.a=2,b=2 B.a=2,b=1
C.a=1,b=1 D.a=1,b=0
【答案】B
2.有以下程序,程序运行后的输出结果是( )
#include <stdio.h> main( )
{ int k=5, n=0;
do { switch (k)
{ case 1: case 3: n+=1; k--; break;
default: n=0; k--;
case 2: case 4: n+ =2; k--; break; }
printf("%d " ,n);
}while (k>0 && n<5); }
A.235 B.0234 C.02356 D.2356
【答案】A
3.下列叙述中正确的是( )
A.在switch语句中,不一定使用break语句
B.在switch语句中必须使用default
C.break语句必须与switch语句中的case配对使用
D.break 语句只能用于switch语句
【答案】A
4.C 语言的 switch 语句中,case 后( )
A.只能为常量
B.只能为常量或常量表达式
C.可为常量及表达式或有确定值的变量及表达式
D.可为任何量或表达式
【答案】B
5.若有定义: float x=1.5; int a =1,b=3,c=2;则正确的switch语句是( )
A.switch(a+b)
{case 1: printf("*
");
case 2+1 : printf("**
");}
B.switch( (int)x );
{ case 1: printf("*
");
case 2 : printf("**
");}
C.switch( x );
{ case 1.0: printf("*
");
case 2.0 : printf("**
");}
D.switch( a+b )
{ case 1: printf("*
");
case c: printf("**
");}
【答案】A
6.下列程序段的执行结果是( )
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
7.有如下程序,该程序的输出结果是( )
# 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
8.假定等级和分数有以下对应关系:
等级: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
9.switch 语句中每个case后应该是( )
A.常量 B.常量或常量表达式
C.变量 D.常量、变量均可
【答案】B
10.下列程序的执行结果是( )
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
11.若有定义 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
12.以下程序段的运行结果是( )
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
13.执行以下程序段的输出结果是( )
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
14.执行下列程序段时输入: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
15.执行以下程序段时输入: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
16.执行下列程序段时输入: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
17.执行下列程序段时输入: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
18.以下程序段的输出结果是( )
int a=60,b=40,c=50,d;d=a>30?b:c;
switch(d)
{case 30:printf("%d",a);case 40:printf("%d",b);
case 50:printf("%d",c);default:printf("error");}
A.605040 B.50error C.40error D.4050error
【答案】D
19.以下程序段的输出结果是( )
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
20.执行以下程序段的输出结果是( )
int a=15,b=21,m=0;
switch(a%3)
{case 0:m++;break;
case 1:m++;
switch(b%2)
{default:m++;
case 0:m++;break;}}printf("%d",m);
A.1 B.2 C.3 D.4
【答案】A
二、判断题(本大题共5小题,每题3分,共15分)
21.switch 语句的表达式可以是字符串。( )
【答案】错误
22.switch语句中,default子句必须放在最后,否则会导致语法错误。( )
【答案】错误
23.switch 语句中的 case 标签后面必须跟常量表达式。( )
【答案】正确
24.switch 语句中的 break 语句只能跳出当前的 switch 语句。( )
【答案】正确
25.switch 语句中的 case 分支常量表达式的值可以重复。( )
【答案】错误
三、读程序写答案题(本大题共5小题,每题5分,共25分)
26.以下程序的运行结果是( )
#include <stdio.h>
#include<conio.h>
main()
{int n='b';
switch(++n)
{default:printf("error!");break;
case 'a':case 'A':case 'b':case 'B':printf("pass!");break;
case 'c':case 'C':printf("good ");
case 'd':case 'D':printf("luck!");}
getch();}
【答案】good luck!
27.以下程序的运行结果是( )
#include <stdio.h>
#include<conio.h>
main()
{int x=2,y=7,z=5;
if(x<y&&y>z)
{switch(x>2)
{default:printf("6");
case 1:switch(y>0)
{case 1:printf("1");break;
case 2:printf("2");break;}
case 0:switch(z==5)
{case 0:printf("3");break;
case 1:printf("4");break;
default:printf("5");}}}
getch();}
【答案】4
28.以下程序的运行结果是( )
#include <stdio.h>
#include<conio.h>
main()
{int a=11,b=20,n=0;
switch(a%2)
{case 0:n+=1;break;
case 1:n+=2;
case 3:n+=3;
switch(b%5)
{default:n++;
case 0:n++;break;}}
printf("%d
",n);
getch();}
【答案】6
29.以下程序的运行结果是( )
#include <stdio.h>
#include<conio.h>
main()
{int a=2 ,b=7,c=5;
switch (a>0)
{case 1:switch (b<0)
{case 1:printf("@");break;
case 2:printf("!");break;}
case 0:switch(c==5)
{case 0:printf("*"); break;
case 1:printf("#");break;
default:break;}
default:printf("$");}
printf("
");
getch();}
【答案】#$
30.以下程序的运行结果是( )
#include <stdio.h>
#include<conio.h>
main()
{float x,y;char o;
double r;
scanf("%f %f %c",&x,&y,&o);
switch(o){ case '+':r=x+y;break;
case '-':r=x-y;break;
case '*':r=x*y;break;
case '/':r=x/y;break;}
printf("%f",r);
getch();}
运行时输入:2 6 *<回车>
【答案】12.000000
试卷第6页,共6页
试卷第5页,共6页
学科网(北京)股份有限公司
$