第18卷 多分支语句 重庆市高等职业教育分类考试-计算机类《C语言程序设计知识考点双析卷》

2025-10-29
| 2份
| 30页
| 82人阅读
| 0人下载

内容正文:

编写说明:重庆市高等职业教育分类考试专业综合理论测试-计算机类《C语言程序设计》考点双析卷专辑,依据省教育厅《重庆市高等职业教育分类考试专业综合理论测试计算机类考试说明》编写。“考点双析卷”即围绕一个考点,一份是老师的讲解卷一份是学生的练习卷,助力师生构建“讲练结合”的学习闭环,特别适用于重庆市高等职业教育分类考试第一轮高考复习教学。 本专辑第18卷精准对标重庆市考纲,考试内容及范围【C语言程序设计知识】: (三)分支结构程序设计:多分支语句 重庆市高等职业教育分类考试 计算机类 《C语言程序设计》考点双析卷 第18卷 多分支语句 学生练习卷 时间:45分钟 总分:100分 班级_______ 姓名_______ 学号_______ 成绩_______ 一、单项选择题(本大题共20小题,每题2分,共40分) 1.下列程序的执行结果是(   ) 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 2.若有定义 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 3.以下程序段的运行结果是(   ) 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 4.执行下列程序段时输入: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 5.执行以下程序段的输出结果是(   ) 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 6.执行以下程序段时输入: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 7.执行下列程序段时输入: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 8.以下程序段的输出结果是(   ) 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 9.以下程序的运行结果是(   ) #include <stdio.h> int main() { int k = 5, n = 0; do {   switch (k) {    default:     break;    case 1:     n += k;    case 2:    case 3:     n += k;   }   k --; } while (k > 0); printf("%d ", n); } A.5 B.7 C.6 D.4 【答案】B 10.以下代码的输出是(   ) int x = 2; switch (x << 1) {  // x左移1位(即乘以2)     case 2: printf("A"); break;     case 4: printf("B"); break;     default: printf("C"); } A.A B.B C.C D.编译错误 【答案】B 11.以下代码的输出是(   ) int x = 4; switch (x % 3) {     case 1: x += 1;     case 2: x += 2;     default: x += 3; } printf("%d", x); A.4 B.6 C.9 D.10 【答案】D 12.以下代码的输出是(   ) int x = 2; switch (x) {     case 1: printf("A");     case 2: printf("B");     case 3: printf("C");     default: printf("D"); } A.B B.BC C.BCD D.D 【答案】C 13.下列语句中说法正确的是(   ) A.Switch后表达式的类型可以和case后表达式或常量类型不一致。 B.case后可以是任何类型表达式。 C.case语句后面必须要有break。 D.不同的case可以共用一个语句组。 【答案】D 【详解】A选项A.Switch后表达式的类型可以和case后表达式或常量类型要一致。B选项case后只能是整型、字符型或者枚举型。C选项case语句后面可以有break。 14.若有以下定义int a,b;float c;char d;变量均正确赋值,下列语句中,语法正确的是(   ) A.switch a+b        { case  1: a++;         case  2:b++;       case  3:d++; } B.switch (a+1)        { case  a: a++;         case  b:b++;         case  d:d++; } C.switch (d)   { case  ‘C’: a++;    case  ‘B’:b++;    case  ‘c’:a++;b++; } D.switch (a+b)    { case  ‘A’: a++;    case  ‘B’:b++;    case  ‘C’:d++; } 【答案】C 【详解】A选项中,switch后表达式没有加括号;B选项中,case后面不能是变量;D选项中,switch表达式的数据类型要和case后面常量的数据类型保持一致。故选C。 15.假定等级和分数有以下对应关系: 等级: 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("等级错误! "); } B.switch (grade) { case 'A':printf("85--100 ");break; case 'B':printf("60--84 "); case 'C':printf("60 以下 "); default:printf(" 等级错误! "); } C.switch (grade) { case 'A':printf("85--100 ");break; case 'B':printf("60--84 ");break; case 'C':printf("60 以下 "); default:printf("等级错误! "); } D.switch (grade) { case 'A':printf("85--100 ");break; case 'B':printf("60--84 ");break; case 'C':printf("60 以下 ");break; default:printf("等级错误! "); } 【答案】D 【详解】选项A缺少所有的 break 语句,这将导致程序执行“级联”到下一个 case。选项B在 'A' 和 'B' 之后的 printf 语句缺少 break 语句,这同样会导致级联问题。同时 'C' 之后的 printf 语句也缺少 break。选项C在 'A' 和 'B' 之后的 printf 语句同样缺少 break 语句。 16.以下代码的输出结果是(   ) int x = 5;   switch(x) {       case 5: x += 2;       case 6: x += 3;       default: x += 4;   }   printf("%d", x); A.5 B.7 C.10 D.14 【答案】D 17.以下关于 switch 语句和 if - else if - else 语句的说法,错误的是(   ) A.switch 语句更适合处理多分支的等值判断 B.if - else if - else 语句可以处理范围判断,switch 语句一般不能 C.switch 语句的执行效率一定比 if - else if - else 语句高 D.switch 语句和 if - else if - else 语句都可以实现多分支选择结构 【答案】C 18.以下代码: char c = 'B'; switch (c) {     case 'A': printf("等级 A"); break;     case 'B': printf("等级 B");     case 'C': printf("等级 C");     default: printf("其他等级"); } 输出结果是(   ) A.等级 B B.等级 B 等级 C C.等级 B 等级 C 其他等级 D.等级 B 其他等级 【答案】C 19.有如下代码: int n = 3; switch (n) {     case 1:     case 2: printf("小"); break;     case 3:     case 4: printf("中"); break;     default: printf("大"); } 输出结果是(   ) A.小 B.中 C.大 D.无输出 【答案】B 20.有如下 switch 语句: int a = 2; switch (a) {     case 1: printf("1");     case 2: printf("2");     case 3: printf("3");     default: printf("default"); } 其输出结果是(   ) A.2 B.default C.23 D.23default 【答案】D 二、程序设计题(本大题共4小题,每题15分,共60分) 21.输入一个0~6的整数,输出星期几。 【答案】#include <stdio.h> main() {     int i;     printf("请输入一个0-6的整数:");     scanf("%d", &i);     switch (i) {         case 0:             printf("星期日");             break;         case 1:             printf("星期一");             break;         case 2:             printf("星期二");             break;         case 3:             printf("星期三");             break;         case 4:             printf("星期四");             break;         case 5:             printf("星期五");             break;         case 6:             printf("星期六");             break;         default:             printf("输入错误");     } } 22.输入一个年月日,计算出该日期是该年的第几天    #include<stdio.h>    main(){        int year,month,day,days;        /*******space*******/       /*******space*******/    } 【答案】scanf(“%d-%d-%d”,&year,&month,&day);        switch(month){            case 1:days=0;break;            case 2:days=31;break;            case 3:days=31+28;break;            case 4:days=31+28+31;break;            case 5:days=31+28+31+30;break;            case 6:days=31+28+31+30+31;break;            case 7:days=31+28+31+30+31+30;break;            case 8:days=31+28+31+30+31+30+31;break;            case 9:days=31+28+31+30+31+30+31+31;break;            case 10:days=31+28+31+30+31+30+31+31+30;break;            case 11:days=31+28+31+30+31+30+31+31+30+31;break;            case 12:days=31+28+31+30+31+30+31+31+30+31+30;break;        }        days=days+day;        if(year%4==0 && month>2) days=days+1;        printf(“%d年-%d月-%d日是该年的第%d天”,year,month,day,days); 23.下面是一个计算出租车收费的程序,当里程在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; 24.函数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进行匹配,匹配上对应的值时让其对应的计数器累计即可。 试卷第6页,共6页 试卷第5页,共6页 学科网(北京)股份有限公司 $ 编写说明:重庆市高等职业教育分类考试专业综合理论测试-计算机类《C语言程序设计》考点双析卷专辑,依据省教育厅《重庆市高等职业教育分类考试专业综合理论测试计算机类考试说明》编写。“考点双析卷”即围绕一个考点,一份是老师的讲解卷一份是学生的练习卷,助力师生构建“讲练结合”的学习闭环,特别适用于重庆市高等职业教育分类考试第一轮高考复习教学。 本专辑第18卷精准对标重庆市考纲,考试内容及范围【C语言程序设计知识】: (三)分支结构程序设计:多分支语句 重庆市高等职业教育分类考试 计算机类 《C语言程序设计》考点双析卷 第18卷 多分支语句 学生练习卷 时间:45分钟 总分:100分 班级_______ 姓名_______ 学号_______ 成绩_______ 一、单项选择题(本大题共20小题,每题2分,共40分) 1.下列程序的执行结果是(   ) 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 2.若有定义 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(“++”);} 3.以下程序段的运行结果是(   ) 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 4.执行下列程序段时输入: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.无输出 5.执行以下程序段的输出结果是(   ) 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.* 6.执行以下程序段时输入: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! 7.执行下列程序段时输入: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 8.以下程序段的输出结果是(   ) 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 9.以下程序的运行结果是(   ) #include <stdio.h> int main() { int k = 5, n = 0; do {   switch (k) {    default:     break;    case 1:     n += k;    case 2:    case 3:     n += k;   }   k --; } while (k > 0); printf("%d ", n); } A.5 B.7 C.6 D.4 10.以下代码的输出是(   ) int x = 2; switch (x << 1) {  // x左移1位(即乘以2)     case 2: printf("A"); break;     case 4: printf("B"); break;     default: printf("C"); } A.A B.B C.C D.编译错误 11.以下代码的输出是(   ) int x = 4; switch (x % 3) {     case 1: x += 1;     case 2: x += 2;     default: x += 3; } printf("%d", x); A.4 B.6 C.9 D.10 12.以下代码的输出是(   ) int x = 2; switch (x) {     case 1: printf("A");     case 2: printf("B");     case 3: printf("C");     default: printf("D"); } A.B B.BC C.BCD D.D 13.下列语句中说法正确的是(   ) A.Switch后表达式的类型可以和case后表达式或常量类型不一致。 B.case后可以是任何类型表达式。 C.case语句后面必须要有break。 D.不同的case可以共用一个语句组。 14.若有以下定义int a,b;float c;char d;变量均正确赋值,下列语句中,语法正确的是(   ) A.switch a+b        { case  1: a++;         case  2:b++;       case  3:d++; } B.switch (a+1)        { case  a: a++;         case  b:b++;         case  d:d++; } C.switch (d)   { case  ‘C’: a++;    case  ‘B’:b++;    case  ‘c’:a++;b++; } D.switch (a+b)    { case  ‘A’: a++;    case  ‘B’:b++;    case  ‘C’:d++; } 15.假定等级和分数有以下对应关系: 等级: 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("等级错误! "); } B.switch (grade) { case 'A':printf("85--100 ");break; case 'B':printf("60--84 "); case 'C':printf("60 以下 "); default:printf(" 等级错误! "); } C.switch (grade) { case 'A':printf("85--100 ");break; case 'B':printf("60--84 ");break; case 'C':printf("60 以下 "); default:printf("等级错误! "); } D.switch (grade) { case 'A':printf("85--100 ");break; case 'B':printf("60--84 ");break; case 'C':printf("60 以下 ");break; default:printf("等级错误! "); } 16.以下代码的输出结果是(   ) int x = 5;   switch(x) {       case 5: x += 2;       case 6: x += 3;       default: x += 4;   }   printf("%d", x); A.5 B.7 C.10 D.14 17.以下关于 switch 语句和 if - else if - else 语句的说法,错误的是(   ) A.switch 语句更适合处理多分支的等值判断 B.if - else if - else 语句可以处理范围判断,switch 语句一般不能 C.switch 语句的执行效率一定比 if - else if - else 语句高 D.switch 语句和 if - else if - else 语句都可以实现多分支选择结构 18.以下代码: char c = 'B'; switch (c) {     case 'A': printf("等级 A"); break;     case 'B': printf("等级 B");     case 'C': printf("等级 C");     default: printf("其他等级"); } 输出结果是(   ) A.等级 B B.等级 B 等级 C C.等级 B 等级 C 其他等级 D.等级 B 其他等级 19.有如下代码: int n = 3; switch (n) {     case 1:     case 2: printf("小"); break;     case 3:     case 4: printf("中"); break;     default: printf("大"); } 输出结果是(   ) A.小 B.中 C.大 D.无输出 20.有如下 switch 语句: int a = 2; switch (a) {     case 1: printf("1");     case 2: printf("2");     case 3: printf("3");     default: printf("default"); } 其输出结果是(   ) A.2 B.default C.23 D.23default 二、程序设计题(本大题共4小题,每题15分,共60分) 21.输入一个0~6的整数,输出星期几。 22.输入一个年月日,计算出该日期是该年的第几天    #include<stdio.h>    main(){        int year,month,day,days;        /*******space*******/       /*******space*******/    } 23.下面是一个计算出租车收费的程序,当里程在3公里以内含3公里时收费12元,超过3公里的部分每公里收费2元    #include<stdio.h>    main(){ int m,n; scanf("%d",&m); /*******space*******/ /*******space*******/ printf("n=%d",n);    } 24.函数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); } 试卷第6页,共6页 试卷第5页,共6页 学科网(北京)股份有限公司 $

资源预览图

第18卷 多分支语句 重庆市高等职业教育分类考试-计算机类《C语言程序设计知识考点双析卷》
1
第18卷 多分支语句 重庆市高等职业教育分类考试-计算机类《C语言程序设计知识考点双析卷》
2
第18卷 多分支语句 重庆市高等职业教育分类考试-计算机类《C语言程序设计知识考点双析卷》
3
所属专辑
由于学科网是一个信息分享及获取的平台,不确保部分用户上传资料的 来源及知识产权归属。如您发现相关资料侵犯您的合法权益,请联系学科网,我们核实后将及时进行处理。