【计算机类职业资格】二级C语言笔试-321及答案解析.doc
《【计算机类职业资格】二级C语言笔试-321及答案解析.doc》由会员分享,可在线阅读,更多相关《【计算机类职业资格】二级C语言笔试-321及答案解析.doc(15页珍藏版)》请在麦多课文档分享上搜索。
1、二级 C语言笔试-321 及答案解析(总分:110.00,做题时间:90 分钟)一、B选择题/B(总题数:40,分数:80.00)1.下列说法正确的是( )。(分数:2.00)A.在 C语言中,可以使用动态内存分配技术定义元素个数可变的数组B.在 C语言中,数组元素的个数可以不确定,允许随机变动C.在 C语言中,数组元素的数据类型可以不一致D.在 C语言中,定义了一个数组后,就确定了它所容纳的元素的个数2.有下列程序: main() int y=20; doy-; while(-y); printf(“%d/n“,y-); 当执行程序时,输出的结果是( )。(分数:2.00)A.-1B.1C.
2、4D.03.下列程序的输出结果是( )。 main() char a7“aO/OaO/0“;int i,j; i=sizeof(a); j=strlen(a);printf(“%d %d/n“,i,j); (分数:2.00)A.2 2B.7 6C.7 2D.6 24.下列程序的运行结果是( )。 inty=5,x=14; y=(x=3*y,x+1),x-1; printf(“x=%d,y=%d“,x,y);(分数:2.00)A.x=27,y=27B.x=12,y=13C.x=15,y=14D.x=y=275.若已包括头文件stdio.h和string.h,运行下列程序段时输出结果是( )。 i
3、nt i=0; char s110=“ABCD“,s210=“EFG“; strcat(s1,S2); while(s2i+!=/0) s2i=s1i; puts(s2);(分数:2.00)A.ABCB.ABCDEFC.EBCDEFGD.CBD6.函数 fseek()的正确调用形式是( )。(分数:2.00)A.fseek(位移量,起始点,文件类型指针);B.fseek(文件类型指针,位移量,起始点);C.fseek(文件类型指针,起始点,位移量);D.fseek(起始点,位移量,文件类型指针);7.分析下列程序: #includestdio.h main() int*p1,*p2,*p; i
4、nt a=6,b=9; p1=p2=p1=p2;p2=p; printf(“%d,%d“,*p1,*p2); printf(“%d,%d“,a,b); 程序的输出结果为( )。(分数:2.00)A.9,6 6,9B.6,9 9,6C.6,9 6,9D.9,6 9,68.下列的程序用来输出两个字符串前 7个字符中对应相等的字符及其位置号,程序空白处应该填写的是( )。#includestdio.h main() Char sl=“Chinese“,s2=“japnese“; int i; for(i=0;s1i!=/0i+) if(s1i=s2i (分数:2.00)A.putchar(s2;pu
5、tchar(B.puts(s1,C.printf(“%c%d/n“,s2,D.printf(“%c“,s1);printf(“%d/n“,9.下列函数值的类型是( )。 fun(double x) float y; y=3*x-4; return y; (分数:2.00)A.intB.不确定C.voidD.float10.有下列程序: 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(
6、kOint*y;*pt; int a=1,2,b=3,4; struct st c2=10,a,20,b; pt=c; 下列选项中表达式的值为 11的是( )。(分数:2.00)A.*pt-yB.pt-xC.+pt-xD.(pt+)-x22.有下列二叉树,对此二叉树前序遍历的结果为( )。 (分数:2.00)A.ACBEDGFHB.ABDGCEHFC.HGFEDCBAD.ABCDEFGH23.为了避免在嵌套的条件语句 ifelse中产生二义性,C 语言规定,else 子句总是与( )配对。(分数:2.00)A.缩排位置相同 ifB.其前面最近的 ifC.其后面最近的 ifD.同一行上的 if2
7、4.下列程序执行输出的结果是( )。 #includestdio.h f(int a) int b=0; static c=3; a=C+;b+; return(a); main() int a=2,i,k; for(i=0;i2;i+) k=f(a+); printf(“%d/n“,k); (分数:2.00)A.3B.4C.5D.625.下列程序输出的结果是( )。 main() int a; a=-4+4*5-6;printf(“%d“,a); a=4+4%5-6;printf(“%d“,a); a=-3+4%6/5;printf(“%d“,a); a=(7+6)%5/2;printf(“
8、%d“,a); (分数:2.00)A.102-3 1B.10-22 1C.11-22 1D.1022 126.对关系 S和 R进行集合运算,结果中既包含 S中的所有元组也包含 R中的所有元组,这样的集合运算称为( )。(分数:2.00)A.并运算B.交运算C.差运算D.积运算27.下列程序的运行结果是( )。 #inCludestdio.h main() static char a=“Languagef“,b=“programe“; Char*p1,*p2;int k; p1=a;p2=b; for(0;k=8;k+) if(*p1+k)=*(p2+k)printf(“%c“,*(p1+k);
9、 (分数:2.00)A.gaeB.angC.programD.有语法错28.设 int x=1,y=1;表达式(!x-y)的值是( )。(分数:2.00)A.0B.1C.2D.-129.若有下列定义和语句: int u=011,v=0x11,w=11; printf(“%o,%x,%d/n“,u,v,w); 则输出结果是( )。(分数:2.00)A.9,17,11B.9,11,11C.11,11,11D.11,17,1130.对建立良好的程序设计风格,下列描述中正确的是( )。(分数:2.00)A.程序应该简单、清晰、可读性好B.符号名的命名只需要符合语法C.充分考虑程序的执行效率D.程序的注
10、释可有可无31.有下列程序段: int k=0,a=1,b=2,c=3; k=ab?b:a;k=kc?C:k; 执行该程序段后,k 的值是( )。(分数:2.00)A.3B.2C.1D.032.若定义下列结构体,结构体变量 p的出生年份赋值正确的语句是( )。 struct st int x; int y; int z; struct worker char name20; char sex; struct st birth; p;(分数:2.00)A.x=1987B.birtx=1987;C.birtx=1987;D.x=1987;33.设在 C语言中,float 类型数据占 4个字节,则
11、double类型数据占( )个字节。(分数:2.00)A.1B.2C.8D.434.算法的时间复杂度是指( )。(分数:2.00)A.执行算法程序所需要的时间B.算法程序的长度C.算法执行过程中所需要的基本运算次数D.算法程序中的指令条数35.表达式0x11 的值是( )。(分数:2.00)A.0xFFEEB.0x71C.0x0071D.0xFFE136.使用白盒测试法时,确定测试数据应该根据( )和指定的覆盖标准。(分数:2.00)A.程序的内部逻辑B.程序的复杂结构C.使用说明书D.程序的功能37.下列不属于软件工程的 3个要素的是( )。(分数:2.00)A.工具B.过程C.方法D.环境
12、38.设有下列的程序段: char str=“Hello World“; char*ptr; ptr=str; 执行上面的程序段后,*(ptr+10)的值为( )。(分数:2.00)A./0B.0C.不确定的值D.0的地址39.对于下列定义,不正确的叙述是( )。 union data int a; char b; double c; x=y;(分数:2.00)A.变量 x所占内存的长度等于成员 c的长度B.变量 x的地址和它的各成员地址都是相同的C.可以在定义时对 x初始化D.不能对变量 x赋值,故 x=y非法40.按照“先进后出”原则组织数据的数据结构是( )。(分数:2.00)A.队列B
13、.栈C.双向链表D.二叉树二、B填空题/B(总题数:15,分数:30.00)41.在算法的 4个特性中,算法必须能在执行有限个步骤之后终止指的是算法的 1 特性。(分数:2.00)填空项 1:_42.按照逻辑结构分类,结构可以分为线性结构和非线性结构,栈属于 1。(分数:2.00)填空项 1:_43.栈中允许进行插入和删除的一端叫做 1。(分数:2.00)填空项 1:_44.在面向对象程序设计中,从外面看只能看到对象有外部特征,而不知道也无需知道数据的具体结构以及实现操作的算法,这称为对象的 1。(分数:2.00)填空项 1:_45.软件工程研究的内容主要包括: 1 技术和软件工程管理。(分数
14、:2.00)填空项 1:_46.表达式 pow(2.8,sqrt(float(x)值的数据类型为 1 型。(分数:2.00)填空项 1:_47.下列表达式用于判断 y是否为闰年。闰年的判断条件是:年号能被 4整除但不能被 100整除或年号能被 400整除,请填空 1。(分数:2.00)填空项 1:_48.下列程序的运行结果是_。 #includestdio.h main() int a=10,b=3; printf(“%d“,a%b);printf(“%d,(a-b,a+b); printf(“%d/n“,a-b?a-b:a+b); (分数:2.00)填空项 1:_49.要求使下列程序输出 5
15、个整数,请填空。 for(i=0;i=_;printf(“%d/n“,i+=2);(分数:2.00)填空项 1:_50.下列的 for语句的循环次数为_。 for(x=1,y=0;(y!=19)x+);(分数:2.00)填空项 1:_51.函数调用语句:“fgets(buf,n,fp);”从中指向的文件中读入 n个字符放到 buf字符数组中,函数返回值为 1。(分数:2.00)填空项 1:_52.若有下列定义:int a=1,2,3,4,5,6,7,8,9,10,*p=a;,则值为 3的表达式为: 1。(分数:2.00)填空项 1:_53.若有说明 char s1=“That girl“,s2
16、=“is beautiful“;则使用函数 strcmp(s1,s2)后,结果是 1。(分数:2.00)填空项 1:_54.在宏定义#define P13.14159 中,用宏名 PI代替一个 1。(分数:2.00)填空项 1:_55.下列程序的输出结果是_。 #includestdio.h sb(int s,int b) static int n=3; b=sn; n-; return(b); main() int s=1,5,6,8; int i,x=0; for(i=0;i4;i+) x=sb(s,x); printf(“%d“,x); printf(“/n“); (分数:2.00)填空
17、项 1:_二级 C语言笔试-321 答案解析(总分:110.00,做题时间:90 分钟)一、B选择题/B(总题数:40,分数:80.00)1.下列说法正确的是( )。(分数:2.00)A.在 C语言中,可以使用动态内存分配技术定义元素个数可变的数组B.在 C语言中,数组元素的个数可以不确定,允许随机变动C.在 C语言中,数组元素的数据类型可以不一致D.在 C语言中,定义了一个数组后,就确定了它所容纳的元素的个数 解析:解析 本题考查数组的两个知识点:在 C语言中,数组元素的个数是确定的,不允许随机变动,数组定义好后,它所能容纳的元素的个数也就确定了;同一个数组中所有元素的类型是一样的。2.有下
18、列程序: main() int y=20; doy-; while(-y); printf(“%d/n“,y-); 当执行程序时,输出的结果是( )。(分数:2.00)A.-1B.1C.4D.0 解析:解析 本题考查 dowhile循环。当-y 是 0(即 y是 0)时结束循环,输出 y-是先输出 y的值再将 y的值减 1。3.下列程序的输出结果是( )。 main() char a7“aO/OaO/0“;int i,j; i=sizeof(a); j=strlen(a);printf(“%d %d/n“,i,j); (分数:2.00)A.2 2B.7 6C.7 2 D.6 2解析:解析 函数
19、 sizeof(a)的功能:求出字符串 a中的字符占用存储空间的大小,由于字符数组 a有长度为 7,所以 i=7;函数 strlen(a)的功能:求出字符串 a的长度。而每个字符串都以/0为字符串的结束标记,所以 j 的值等于 2。4.下列程序的运行结果是( )。 inty=5,x=14; y=(x=3*y,x+1),x-1; printf(“x=%d,y=%d“,x,y);(分数:2.00)A.x=27,y=27B.x=12,y=13C.x=15,y=14 D.x=y=27解析:解析 逗号表达式的求解步骤是先求解表达式 1,然后依次求解表达式 2,直到表达式 N的值。整个逗号表达式的值就是最
20、后一个表达式 N的值。 表达式(x=3*y,x+1)中,第一个表达式 x=3*y=3*5=15;第二个表达式 x+1=16,但没有给 x或 y赋值,所以 x还是等于 15;第 3个表达式 x-1=15-1=14,所以 y的值为 14。5.若已包括头文件stdio.h和string.h,运行下列程序段时输出结果是( )。 int i=0; char s110=“ABCD“,s210=“EFG“; strcat(s1,S2); while(s2i+!=/0) s2i=s1i; puts(s2);(分数:2.00)A.ABCB.ABCDEFC.EBCDEFG D.CBD解析:解析 strcat(s1
21、,s2)把 s2连接到 s1的后面,s1=ABCDEFG,执行 while(s2i+!=/0)后 i的值变为 1,往后执行 s2i=s1i时是从把 s1的第二位给 s2的第二位开始,把 s1赋给 s2。6.函数 fseek()的正确调用形式是( )。(分数:2.00)A.fseek(位移量,起始点,文件类型指针);B.fseek(文件类型指针,位移量,起始点); C.fseek(文件类型指针,起始点,位移量);D.fseek(起始点,位移量,文件类型指针);解析:解析 改变文件位置的指针函数 fseek()的调用形式: fseek(fp,offset,position);。 fseek 函数参
22、数说明:“fp”是指向该文件的文件型指针;“offset”为位移量,指从起始点 position到要确定的新位置的字节数。也就是以起点为基准,向前移动的字节数。“position”为起始点,指出以文件的什么位置为基准进行移动,position 的值用整型常数表示,“0”表示文件的开头,“1”表示文件的当前位置,“2”表示文件的末尾。7.分析下列程序: #includestdio.h main() int*p1,*p2,*p; int a=6,b=9; p1=p2=p1=p2;p2=p; printf(“%d,%d“,*p1,*p2); printf(“%d,%d“,a,b); 程序的输出结果为
23、( )。(分数:2.00)A.9,6 6,9 B.6,9 9,6C.6,9 6,9D.9,6 9,6解析:解析 通过 p1=s1i!=/0i+) if(s1i=s2i (分数:2.00)A.putchar(s2;putchar(B.puts(s1,C.printf(“%c%d/n“,s2, D.printf(“%c“,s1);printf(“%d/n“,解析:解析 putchar(s)的功能是把字符 s输出到标准输出设备;puts(s1)是把 s1指向的字符串输出到标准输出设备。9.下列函数值的类型是( )。 fun(double x) float y; y=3*x-4; return y;
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
5000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 职业资格 二级 语言 笔试 321 答案 解析 DOC
