【计算机类职业资格】二级C语言分类模拟题516及答案解析.doc
《【计算机类职业资格】二级C语言分类模拟题516及答案解析.doc》由会员分享,可在线阅读,更多相关《【计算机类职业资格】二级C语言分类模拟题516及答案解析.doc(16页珍藏版)》请在麦多课文档分享上搜索。
1、二级 C语言分类模拟题 516及答案解析(总分:51.00,做题时间:90 分钟)一、选择题(总题数:35,分数:51.00)1.下列程序的输出结果是_。 #includestdio.h main() int a23=1, 2, 3, 4, 5, 6, (*p)3, i; p=a; for(i=0; i3; i+) if(i2) p1i=p1i-1; else p1i=1; printf(“%d/n“, a01+a11+a12); (分数:2.50)A.8B.7C.12D.92.以下叙述中正确的是_。(分数:2.00)A.使用 break语句可以使流程跳出 switch语句体B.break语句
2、不能用于提前结束 for语句的本层循环C.continue语句使得整个循环终止D.在 for语句中,continue 与 break的效果是一样的,可以互换3.有以下程序: #includestdio.h void fun(int*s, int n1, int n2) int i, j, t; i=n1; j=n2; while (ij) t=*(s+i); *(s+i)=*(s+j); *(s+j)=t; i+; j-; main() int a10=1, 2, 3, 4, 5, 6, 7, 8, 9, 0, i, *p=a; fun(p, 0, 3); fun(p, 4, 9); fun(
3、p, 0, 9); for(i=0; i10; i+) printf(“%d“, *(a+i); 程序的输出结果是(分数:1.00)A.0987654321B.4321098765C.5678901234D.09876512344.以下叙述中正确的是_。(分数:2.00)A.只要适当地修改代码,就可以将 do-while与 while相互转换B.对于“for(表达式 1;表达式 2;表达式 3)循环体“首先要计算表达式 2的值,以便决定是否开始循环C.对于“for(表达式 1;表达式 2;表达式 3)循环体“,只在个别情况下才能转换成 while语句D.如果根据算法需要使用无限循环(即通常所称
4、的“死循环”),则只能使用 while语句5.有以下程序: # include stdio.h main() char a=“H“; a=(a=“A“a=“Z“)?(a-“A“+“a“):a; printf(“%c/n“,a); 程序运行后的输出结果是_。(分数:1.00)AABaCHDh6.以下定义数组的语句中错误的是_。(分数:1.00)A.int num=1,2,3,4,5,6;B.int num3=1,2,3,4,5,6;C.int num24=1,2,3,4,5,6;D.int num4=1,2,3,4,5,6;7.设有某函数的说明为: int*func(int a10,int n)
5、; 则下列叙述中,正确的是_。(分数:1.00)A.形参 a对应的实参只能是数组名B.说明中的 a10写成 a或*a 效果完全一样C.func的函数体中不能对 a进行移动指针(如 a+)的操作D.只有指向 10个整数内存单元的指针,才能作为实参传给 a8.有以下程序: #include stdio.h #define N 5 #define M N+1 #define f(x) (x*M) main( ) int i1,i2; i1=f(2); i2=f(1+1); printf(“%d%d/n“,i1,i2); 程序的运行结果是_。(分数:2.00)A.12 7B.12 12C.11 11D
6、.11 79.有以下程序 #includestdio.h main() int b33=0,1,2,0,1,2,0,1,2,i,j,t=1; for(i=0;i3;i+) for(j=i;j=i;j+)t+=bibji; printf(“%d/n“,t); 程序运行后的输出结果是_。(分数:1.00)A.3B.4C.1D.910.循环控制语句“while(!scanf(“%d“, int a=1, b=3, c=2; 则正确的 switch语句是_。(分数:2.00)A.switch(a+b) case 1:printf(“*/n“);case c:printf(“*/n“);B.switch
7、(int)x);case 1:printf(“*/n“);case 2:printf(“*/n“);C.switch(x)case 1.0:printf(“*/n“);case 2.0:printf(“*/n“);D.switch(a+b)case 1:printf(“*/n“);case 2+1:printf(“*/n“);18.有以下程序 #includestdio.h typedef struct int b,p;A; void f(A c) /*注意:c 是结构变量名*/ int j; c.b+=1;c.p+=2; main() int i; A a=1,2; f(a); printf
8、(“%d,%d/n“,a.b,a.p); 程序运行后的输出结果是_。(分数:2.00)A.2,4B.1,2C.1,4D.2,319.有以下程序: #include stdio.h struct link int data; struct link* next; ; main() struct link *h,a,b; h=a.data=10;a.next=b.data=20; 程序运行时不能输出 10,20 的语句是_。(分数:1.00)A.printf(“%d,%d/n“,h-data,a.next.data);B.printf(“%d,%d/n“,a.data,(%a.next).data
9、);C.printf(“%d,%d/n“,h-data,(*a.next).data);D.printf(“%d,%d/n“,a.data,a.next-data);20.有以下程序 #include main() int a=0,b=0; /*给 a赋值 a=10; b=20;给 b赋值*/ printf(“a+b=%d/n“,a+b);/*输出计算结果*/ 程序运行后的输出结果是_。(分数:1.00)A.a+b=0B.a+b=30C.a+b=10D.出错21.若有定义:double a=22;int i=0,k=18;,则不符合 C语言规定的赋值语句是_。(分数:2.00)A.i=(a+k
10、)=(i+k);B.i=a%11;C.a=a+,i+D.i=!a;22.表达式(int)(double)9/2)-9%2 的值是_。(分数:2.00)A.0B.3C.4D.523.若 a是数值类型,则逻辑表达式(a=1)|(a!=1)的值是_。(分数:1.00)A.1B.0C.2D.不知道 a的值,不能确定24.已知字符 A的 ASCII代码值是 65,字符变量 c1的值是 A,c2 的值是 D。则执行语句printf(“%d,%d“,c1,c2-2);的输出结果是_。(分数:1.00)A.A,68B.65,66C.A,BD.65,6825.有以下程序 #includestdio.h #def
11、ine S(x)4*(x)*x+1 main() int k=5,j=2; printf(“%d/n“,S(k+j); 程序运行后的输出结果是_。(分数:2.00)A.143B.197C.33D.2826.有以下程序: #includestdio.h #includestring.h main() char p20=“a“,“b“,“c“,“d“,q=“abc“,r=“abcde“; strcat(p,r);strcpy(p+strlen(q),q); printf(“%d/n“,strlen(p); 程序运行后的输出结果是_。(分数:1.00)A.11B.9C.6D.727.软件按功能可以分
12、为:应用软件、系统软件和支撑软件(或工具软件)。下面属于应用软件的是_。(分数:1.00)A.编译程序B.操作系统C.教务管理系统D.汇编程序28.以下_不属于对象的基本特征。(分数:2.50)A.继承性B.封装性C.分类性D.多态性29.若指针 p已正确定义并指向如图所示存储单元: (分数:1.00)A.20B.30C.21D.3130.有以下程序: #includestdio.h main() int a, b, k, m, *p1, *p2; k=1, m=8; p1= a=/*p1-m; b=*p1+*p2+6; printf(“%d“, a); printf(“%d/n“, b);
13、编译时编译器提示错误信息,你认为出错的语句是_。(分数:1.00)A.a=/*p1-m;B.b=*p1+*p2+6;C.k=1, m=8;D.p1=31.以下程序的输出结果是_。 #include stdio.h main() int k, j, m; for (k=5; k=1; k-) m=0; for (j=k; j=5; j+) m=m+k*j; printf(“% d/n“, m); (分数:2.50)A.124B.25C.36D.1532.在下列语句中,其含义为“q 是一个函数指针,该指针指向整型数据”的定义语句是_。(分数:2.50)A.int*q;B.int(*q)();C.i
14、nt*q;D.int*q();33.以下选项中可用作 C程序合法实数的是_。(分数:1.00)A1e0B.3.0e0.2CE9D.9.12E34.设 x,y,z 均为实型变量,代数式 (分数:1.00)A.x/y*zB.x%y%zC.x/y/zD.x*z/y35.有如下程序: #include stdio.h main() int i; for(i=0;i5;i+) putchar(“9“-i); printf(“/n“); 程序运行后的输出结果是_。(分数:1.00)A.54321B.98765C.“9“8“7“6“5“D.“43210“二级 C语言分类模拟题 516答案解析(总分:51.0
15、0,做题时间:90 分钟)一、选择题(总题数:35,分数:51.00)1.下列程序的输出结果是_。 #includestdio.h main() int a23=1, 2, 3, 4, 5, 6, (*p)3, i; p=a; for(i=0; i3; i+) if(i2) p1i=p1i-1; else p1i=1; printf(“%d/n“, a01+a11+a12); (分数:2.50)A.8B.7 C.12D.9解析:解析 本题考查 for循环及 ifelse语句嵌套,第 1次执行 for循环,p10=p10=p10-1=3;第 2次执行 for循环,p11=p11-1=4;第 3次
16、执行 for循环,p12=1,最后输出的是a01+a11+a12=2+4+1=7。2.以下叙述中正确的是_。(分数:2.00)A.使用 break语句可以使流程跳出 switch语句体 B.break语句不能用于提前结束 for语句的本层循环C.continue语句使得整个循环终止D.在 for语句中,continue 与 break的效果是一样的,可以互换解析:解析 break 跳出 switch语句或循环语句,contiune 结束本次循环,继续进行剩余的循环。所以答案选择 A。3.有以下程序: #includestdio.h void fun(int*s, int n1, int n2)
17、 int i, j, t; i=n1; j=n2; while (ij) t=*(s+i); *(s+i)=*(s+j); *(s+j)=t; i+; j-; main() int a10=1, 2, 3, 4, 5, 6, 7, 8, 9, 0, i, *p=a; fun(p, 0, 3); fun(p, 4, 9); fun(p, 0, 9); for(i=0; i10; i+) printf(“%d“, *(a+i); 程序的输出结果是(分数:1.00)A.0987654321B.4321098765C.5678901234 D.0987651234解析:4.以下叙述中正确的是_。(分数
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
5000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 职业资格 二级 语言 分类 模拟 516 答案 解析 DOC
