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

2025-10-29
| 2份
| 32页
| 41人阅读
| 1人下载

内容正文:

编写说明:重庆市高等职业教育分类考试专业综合理论测试-计算机类《C语言程序设计》考点双析卷专辑,依据省教育厅《重庆市高等职业教育分类考试专业综合理论测试计算机类考试说明》编写。“考点双析卷”即围绕一个考点,一份是老师的讲解卷一份是学生的练习卷,助力师生构建“讲练结合”的学习闭环,特别适用于重庆市高等职业教育分类考试第一轮高考复习教学。 本专辑第17卷精准对标重庆市考纲,考试内容及范围【C语言程序设计知识】: (三)分支结构程序设计:多分支语句 重庆市高等职业教育分类考试 计算机类 《C语言程序设计》考点双析卷 第17卷 多分支语句 老师讲解卷 时间:45分钟 总分:100分 班级_______ 姓名_______ 学号_______ 成绩_______ 一、单项选择题(本大题共20小题,每题2分,共40分) 1.下列叙述中正确的是(   ) A.在switch语句中,不一定使用break语句 B.在switch语句中必须使用default C.break语句必须与switch语句中的case配对使用 D.break 语句只能用于switch语句 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.有以下程序段 #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 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 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.程序错误 7.下列程序段的执行结果是(   ) 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 8.有如下程序,该程序的输出结果是(   )     # 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 9.假定等级和分数有以下对应关系: 等级: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 ");}     10.switch 语句中每个case后应该是(   ) A.常量 B.常量或常量表达式 C.变量 D.常量、变量均可 11.以下代码的输出结果是(   ) int x = 1;   switch(x) {       case 1: x += 1;       case 2: x += 2; break;       case 3: x += 3;   }   printf("%d", x); A.2 B.3 C.4 D.5 12.设有以下程序,运行后的输出结果是(   ) main() {int x=1,a=0,b=0; switch (x)   { case  0: b++;     case  1: a++; case  2: a++;b++;} printf("a=%d,b=%d",a,b);} A.2,2 B.2,1 C.1,1 D.1,0 13.以下程序的运行结果是(   ) #include <stdio.h> main() {     int k = 1, j = 2;     {         switch (k) {             case 1 :                 j += k;             case 2 :             case 3 :                 j += k;             default :                 break;         }         k--;     }     printf("%d ", j); } A.5 B.7 C.6 D.4 14.以下程序的运行结果是 (   ) #include <stdio.h> main( ) { int x = 2, y = 2, z = 5, j = 5; switch (x) { case 1:switch (x) { case 2:    j++; case 1:x++;break; } case 2:z++;x++;break; } printf("%d,%d", j, z); } A.5,5 B.6,6 C.5,6 D.6,5 15.执行以下语句后m的值是(   ) inta=21,b=20,m=0; switch (a % 3) { case 0:m++; case 1:m++; switch (b% 2) { case 0:m++; break; default:m++;} default:++m;} A.4 B.5 C.3 D.2 16.执行下面程序段,该程序的输出结果为(   ) int a = 1,b = 2,c = 3; switch(a) { case 0:b++; case 1:b++;c++; case 2:c++; } printf("b = %d,c = %d",b,c); A.b =  5, c =  3 B.b =  3, c =  5 C.b =  3, c =  1 D.b =  1, c =  5 17.以下代码的输出结果是(   ) int num = 0; while (num < 3) {     switch (num) {         case 0:             printf("Zero");             break;         case 1:             printf("One");             break;         case 2:             printf("Two");             break;     }     num++; } A.ZeroOneTwo B.Zero C.OneTwo D.编译错误 18.以下代码的输出结果是(   ) int x = 3; switch (x) {     case 1:         printf("One");         break;     case 2:         printf("Two");         break;     case 3:         printf("Three");         break;     default:         printf("Other"); } A.One B.Two C.Three D.Other 19.以下代码的错误是(   ) const int y = 2; switch (y) {     case y: printf("A");       case 3: printf("B"); } A.case标签不能使用const变量 B.switch表达式必须为变量 C.无错误 D.缺少default 20.以下代码的输出是(   ) int x = 5; switch (x) {     case 5:         x = 10;     case 10:         printf("%d", x); break;     default:         printf("0"); } A.5 B.10 C.0 D.编译错误 二、程序设计题(本大题共4小题,每题15分,共60分) 21.实现以下功能,要求:输入两个整数和一个运算符(+、-、*、/),输出运算结果。若除数为0或运算符非法,输出错误信息。 22.实现以下功能,根据月份输出季节,输入月份(1~12),输出对应的季节(春:3~5,夏:6~8,秋:9~11,冬:12~2)。 23.写给多个学生的成绩评定等级的程序。等级说明:成绩大于等于90小于等于100是A等,小于90大于等于70是B等,小于70大于等于60是C等,小于60大于等于0是D等.    #include<stdio.h>    main(){        int score;        char level;        /*******space*******/       /*******space*******/    } 24.请编fun函数写程序,从键盘输入百分制成绩,要求输出等级制成绩A、B、C、D。90~100分为A,80~89分为B,60~79分为C,1~59分为D。不考虑小数,输入为整数,输出为字符    #include <stdio.h>    /*******space*******/    /*******space*******/    void main() {        int score,n;        char p;        scanf("%d",&score);        n=score/10;        p=fun(n);        printf("%c" , p); } 试卷第6页,共6页 试卷第5页,共6页 学科网(北京)股份有限公司 $ 编写说明:重庆市高等职业教育分类考试专业综合理论测试-计算机类《C语言程序设计》考点双析卷专辑,依据省教育厅《重庆市高等职业教育分类考试专业综合理论测试计算机类考试说明》编写。“考点双析卷”即围绕一个考点,一份是老师的讲解卷一份是学生的练习卷,助力师生构建“讲练结合”的学习闭环,特别适用于重庆市高等职业教育分类考试第一轮高考复习教学。 本专辑第17卷精准对标重庆市考纲,考试内容及范围【C语言程序设计知识】: (三)分支结构程序设计:多分支语句 重庆市高等职业教育分类考试 计算机类 《C语言程序设计》考点双析卷 第17卷 多分支语句 老师讲解卷 时间:45分钟 总分:100分 班级_______ 姓名_______ 学号_______ 成绩_______ 一、单项选择题(本大题共20小题,每题2分,共40分) 1.下列叙述中正确的是(   ) A.在switch语句中,不一定使用break语句 B.在switch语句中必须使用default C.break语句必须与switch语句中的case配对使用 D.break 语句只能用于switch语句 【答案】A 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.有以下程序段 #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 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 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 7.下列程序段的执行结果是(   ) 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 8.有如下程序,该程序的输出结果是(   )     # 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 9.假定等级和分数有以下对应关系: 等级: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 10.switch 语句中每个case后应该是(   ) A.常量 B.常量或常量表达式 C.变量 D.常量、变量均可 【答案】B 11.以下代码的输出结果是(   ) int x = 1;   switch(x) {       case 1: x += 1;       case 2: x += 2; break;       case 3: x += 3;   }   printf("%d", x); A.2 B.3 C.4 D.5 【答案】C 12.设有以下程序,运行后的输出结果是(   ) main() {int x=1,a=0,b=0; switch (x)   { case  0: b++;     case  1: a++; case  2: a++;b++;} printf("a=%d,b=%d",a,b);} A.2,2 B.2,1 C.1,1 D.1,0 【答案】B 13.以下程序的运行结果是(   ) #include <stdio.h> main() {     int k = 1, j = 2;     {         switch (k) {             case 1 :                 j += k;             case 2 :             case 3 :                 j += k;             default :                 break;         }         k--;     }     printf("%d ", j); } A.5 B.7 C.6 D.4 【答案】D 【详解】变量k初始化为1,变量j初始化为2。进入switch(k)语句,控制表达式是k的值,即1。switch语句找到case 1:匹配,开始执行该case下的代码块。j += k; 执行后,j的值变为 2 + 1 = 3。由于case 1后面没有break语句,程序会发生"fall through"现象,继续执行下一个case分支。程序继续执行case 2:和case 3:,这两个case分支也没有break语句,所以j的值再次增加k的值(此时k的值仍为1)。j += k; 执行后,j的值变为 3 + 1 = 4。由于case 3后面也没有break语句,但这是最后一个case,所以没有更多的代码要执行。switch语句执行完毕,然后执行k--;,k的值减少1,变为0。最后,printf("%d ", j); 打印变量j的值,此时j的值为4。程序的输出结果是4。 14.以下程序的运行结果是 (   ) #include <stdio.h> main( ) { int x = 2, y = 2, z = 5, j = 5; switch (x) { case 1:switch (x) { case 2:    j++; case 1:x++;break; } case 2:z++;x++;break; } printf("%d,%d", j, z); } A.5,5 B.6,6 C.5,6 D.6,5 【答案】C 【详解】执行第一个switch(x)匹配case 2,执行z++;x++,打印值j和z分别为5和6。 15.执行以下语句后m的值是(   ) inta=21,b=20,m=0; switch (a % 3) { case 0:m++; case 1:m++; switch (b% 2) { case 0:m++; break; default:m++;} default:++m;} A.4 B.5 C.3 D.2 【答案】A 16.执行下面程序段,该程序的输出结果为(   ) int a = 1,b = 2,c = 3; switch(a) { case 0:b++; case 1:b++;c++; case 2:c++; } printf("b = %d,c = %d",b,c); A.b =  5, c =  3 B.b =  3, c =  5 C.b =  3, c =  1 D.b =  1, c =  5 【答案】B 【详解】a的值为1,执行case 1后的“b++;c++”语句,b的值此时为3,c的值此时为4。因没有break语句,故继续执行case 2后的c++语句,c的值此时为5。 17.以下代码的输出结果是(   ) int num = 0; while (num < 3) {     switch (num) {         case 0:             printf("Zero");             break;         case 1:             printf("One");             break;         case 2:             printf("Two");             break;     }     num++; } A.ZeroOneTwo B.Zero C.OneTwo D.编译错误 【答案】A 18.以下代码的输出结果是(   ) int x = 3; switch (x) {     case 1:         printf("One");         break;     case 2:         printf("Two");         break;     case 3:         printf("Three");         break;     default:         printf("Other"); } A.One B.Two C.Three D.Other 【答案】C 19.以下代码的错误是(   ) const int y = 2; switch (y) {     case y: printf("A");       case 3: printf("B"); } A.case标签不能使用const变量 B.switch表达式必须为变量 C.无错误 D.缺少default 【答案】A 20.以下代码的输出是(   ) int x = 5; switch (x) {     case 5:         x = 10;     case 10:         printf("%d", x); break;     default:         printf("0"); } A.5 B.10 C.0 D.编译错误 【答案】B 二、程序设计题(本大题共4小题,每题15分,共60分) 21.实现以下功能,要求:输入两个整数和一个运算符(+、-、*、/),输出运算结果。若除数为0或运算符非法,输出错误信息。 【答案】#include <stdio.h> int main() {       int a, b;       char op;       scanf("%d %d %c", &a, &b, &op);       switch (op) {           case '+':               printf("%d", a + b);               break;           case '-':               printf("%d", a - b);               break;           case '*':               printf("%d", a * b);               break;           case '/':               if (b != 0) {                   printf("%d", a / b);               } else {                   printf("除数不能为0");               }               break;           default:               printf("运算符错误");       }       return 0;   } 22.实现以下功能,根据月份输出季节,输入月份(1~12),输出对应的季节(春:3~5,夏:6~8,秋:9~11,冬:12~2)。 【答案】#include <stdio.h> int main() {       int month;       scanf("%d", &month);       switch (month) {           case 3: case 4: case 5:               printf("春季");               break;           case 6: case 7: case 8:               printf("夏季");               break;           case 9: case 10: case 11:               printf("秋季");               break;           case 12: case 1: case 2:               printf("冬季");               break;           default:               printf("输入错误");       }       return 0;   } 23.写给多个学生的成绩评定等级的程序。等级说明:成绩大于等于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); 24.请编fun函数写程序,从键盘输入百分制成绩,要求输出等级制成绩A、B、C、D。90~100分为A,80~89分为B,60~79分为C,1~59分为D。不考虑小数,输入为整数,输出为字符    #include <stdio.h>    /*******space*******/    /*******space*******/    void main() {        int score,n;        char p;        scanf("%d",&score);        n=score/10;        p=fun(n);        printf("%c" , p); } 【答案】char fun(int n){        char p;        switch(n){            case 10:            case  9: p=’A’;break;            case  8: p=’B’;break;            case  7:            case  6: p=’C’;break;            default: p=’D’;break;        }        return p; } 试卷第6页,共6页 试卷第5页,共6页 学科网(北京)股份有限公司 $

资源预览图

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