【计算机类职业资格】二级C语言笔试-174及答案解析.doc
《【计算机类职业资格】二级C语言笔试-174及答案解析.doc》由会员分享,可在线阅读,更多相关《【计算机类职业资格】二级C语言笔试-174及答案解析.doc(26页珍藏版)》请在麦多课文档分享上搜索。
1、二级 C 语言笔试-174 及答案解析(总分:98.00,做题时间:90 分钟)一、选择题(总题数:40,分数:70.00)1.若有下面的程序片段:int12=0,*p3,*pp,i;for(i=0;i3;i)pi=&ai*4;pp=p;则对数组元素的错误引用是(分数:2.00)_2.下面能正确进行字符串赋值操作的是(分数:2.00)A.chars5=“ABCDE“;B.char s5=A,b,C,D,E;C.char*s;s=“ABCDE“;D.char*s;scanf(“%s“,s);3.有如下程序main()float x=2.0,y;if(x0.0)y=0.0;else if(x10.
2、0)y=1.0/x;else y=1.0;printf(“%f/n“,y);该程序的输出结果是(分数:2.00)A.0.000000B.0.250000C.0.500000D.1.0000004.设有下面的程序段:char s=“china“; char*p;p=S;则下列叙述正确的是(分数:2.00)A.s 和 p 完全相同B.数组 s 中的内容和指针变量 p 中的内容相同C.s 数组长度和 p 所指向的字符串长度相等D.*p 与 s0相等5.下列程序的输出结果是main()double d=3.2;int x,y;x=1.2;y=(x+3.8)/5.0;printf(“%d/n“,d*y)
3、;(分数:2.00)A.3B.3.2C.0D.3.076.有以下程序int add(int a,int b)return(a+b);main()int k,(*f)(),a=5,b=10;f=add;则以下函数调用语句错误的是(分数:2.00)A.k=(*f)(a,b);B.k=add(a,b);C.k=*f(a,b);D.k=f(a,b);7.设有以下程序段int x=0,s=0;while(!x!=0)s+=+x;printf(“%d“,s);则(分数:2.00)A.运行程序段后输出 0B.运行程序段后输出 1C.程序段中的控制表达式是非法的D.程序段执行无限次8.fwrite 函数的一般
4、调用形式是(分数:2.00)A.fwrite(buffer,count,size,fp);B.fwrite(fp,size,count,buffer);C.fwrite(fp,count,size,buffer);D.fwrite(buffer,size,count,fp);9.相对于数据库系统,文件系统的主要缺陷有数据关联差、数据不一致性和(分数:2.00)A.可重用性差B.安全性差C.非持久性D.冗余性10.结构化程序设计主要强调的是(分数:2.00)A.程序的规模B.程序的效率C.程序设计语言的先进性D.程序易读性11.判断 char 型变量 c1 是否为大写字母的正确表达式是(分数:1
5、.00)A.=c1=ZB.(c1=)&(c1=)C.(=c1)(=c1)D.(c1=)&(c1=)12.以下 scanf 函数调用语句中对结构体变量成员的引用不正确的是char name20;pup5,*p;(分数:1.00)A.scanf(“%s“,pup0.name);B.scanf(“%d“,&pup0.age);C.scanf(“%dT“,&(p-sex);D.scanf(“%d“,p-age);13.以下程序的输出结果是#includestdio.hvoid prt(int *x,int *y,int*z)printf(“%d,%d,%d/n“,+*x,+*y,*(z+);main(
6、)int a=10,b=40,c=20;prt(&a,&b,&c);prr(&a,&b,&c);(分数:1.00)A.11,42,3112,22,41B.11,41,2012,42,20C.11,21,4011,21,21D.11,41,2112,42,2214.下列不属于软件工程的 3 个要素的是(分数:1.00)A.工具B.过程C.方法D.环境15.算法的空间复杂度是指(分数:1.00)A.算法程序的长度B.算法程序中的指令条数C.算法程序所占的存储空间D.算法执行过程中所需要的存储空间16.阅读下列程序,则在执行后,程序的运行结果为#include“stdio.h“#include“st
7、ring.h“main()chara30=“nice to meet you!“;strcpy(a+strlen((分数:1.00)A./2,“you“);printf(“%s/n“,a);A) nice17.下列关于标识符的说法中错误的是(分数:1.00)A.合法的标识符是由字母、数字和下划线组成B.C 语言的标识符中,大写字母和小写字母被认为是两个不同的字符C.C 语言的标识符可以分为三类,即关键字、预定义标识符和用户标识符D.用户标识符与关键字不同时,程序在执行时将给出出错信息18.请选出以下程序的输出结果#includestdio.hmain()int a=1,2,3,4,i;int
8、x=0;for(i=0;i4;i+)sub(a,x);Printf(“%d“,x);printf(“/n“);sub(S,y)int *s,y;static int t=3;y=st;t-;(分数:1.00)A.1 2 3 4B.4 3 2 1C.0 0 0 0D.4 4 4 419.如下程序的输出结果是#includestdio.hmain()chsr ch25=“6937“,“8254“,*p2;int i,j,s=0;for(i=0;i2;i+) pi=chi;for(i=0;i2;i+)for(j=0;pij/0;j+=2)s=10*s+pij-0printf(“%d/n“,s);(分
9、数:1.00)A.69825B.63825C.6385D.69382520.软件开发离不开系统环境资源的支持,其中必要的测试数据属于(分数:1.00)A.硬件资源B.通信资源C.支持软件D.辅助资源21.以下程序的运行结果是#define MAX(A,B) ((分数:2.00)A.(B.(A):(B)#define PRINT(Y) printf(:Y=%d/t“,Y)main()int a=1,b=2,c=3,d=4,t;t:MAX(a+b,c+d);PRINT(t);A) Y=3B) 存在语C.Y=7D.Y=022.算法中,对需要执行的每一步操作,必须给出清楚、严格的规定。这属于算法的(分
10、数:2.00)A.正当性B.可行性C.确定性D.有穷性23.下述关于数据库系统的叙述中正确的是(分数:2.00)A.数据库系统减少了数据冗余B.数据库系统避免了一切冗余C.数据库系统中数据的一致性是指数据类型一致D.数据库系统比文件系统能管理更多的数据24.若有函数 max(a,b),为了让函数指针变量 p 指向函数 max,当调用该函数时,正确的赋值方法是(分数:2.00)A.(*p)max(a,b)B.*pmax(a,b)C.p=max(a,b)D.*p=max(a,25.下面程序的运行结果是#includestdio.hmain()int a=28,b;char s10,*p;p=s;d
11、ob=a%16;if(b10) *p=b+48;else*p=b+55;p+;a=a/5;while(a0);*p=/0;puts(s);(分数:2.00)A.10B.C2C.C51D./026.以下程序输出的结果是#includestdio.h#includestring.hmain()charw10=“ABCD“,“EFGH“,“IJKL“,“MNOP“1,k;for(k=1;k3;k+) printf(“%s/n“,&wkk);(分数:2.00)A.ABCDFGHKLB.ABCEFGUMC.EFGJK0D.FGHKL27.函数 rewind 的作用是(分数:2.00)A.使文件位置指针重
12、新返回文件的开始位置B.将文件位置指针指向文件中所要求的特定位置C.使文件位置指针指向文件的末尾D.使文件位置指针自动移至下一个字符位置28.以下程序中调用 scanf 函数给变量 a 输入数值的方法是错误的,其错误原因是main()int*p,*q,a,b;p=&a;printf(“input a:“);scanf(“%d“,*p);(分数:2.00)A.*p 表示的是指针变量 p 的地址B.*p 表示的是变量 a 的值,而不是变量 a 的地址C.*p 表示的是指针变量 p 的值D.*p 只能用来说明 p 是一个指针变量29.有以下程序main()int i,s=0,t=1,2,3,4,5,
13、6,7,8,9;for(i=0;i9;i+=2)s+=*(t+i);printf(“%d/n“,s);程序执行后的输出结果是(分数:2.00)A.45B.20C.25D.3630.下列叙述中正确的是(分数:2.00)A.一个算法的空间复杂度大,则其时间复杂度也必定大B.一个算法的空间复杂度大,则其时间复杂度必定小C.一个算法的时间复杂度大,则其空间复杂度必定小D.上述三种说法都不对31.设有下列二叉树:(分数:2.00)A.B.C.D.32.以下程序的功能是进行位运算main()unsigned char a,b;a=73;b=4&3;pfintf(“%d%d/n“,a,b);程序运行后的输出
14、结果是(分数:2.00)A.4 3B.7 3C.7 0D.4 033.以下程序执行后 x 的值是main()int x,y=252,i=386,*m=&y,*z=&i;x=(z=y);printf(“%d“,x);(分数:2.00)A.252B.1C.0D.运行时出错,x 无定值34.下列数据模型中,具有坚实理论基础的是(分数:2.00)A.层次模型B.网状模型C.关系模型D.以上 3 个都是35.以下程序的输出结果是#includestdio.hmain()int a=15,b=21,m+0;switch(a%3)case0:m+;bteak;case 1:m+;switch(b%2)def
15、ault:m+;case 0:m+;break;printf(“%d/n“,m);(分数:2.00)A.1B.2C.3D.436.若变量均已正确定义并赋值,以下合法的 C 语言赋值语句是(分数:2.00)A.x=y=5;B.x=n%2.5;C.x+n=i;D.x=5-4+1;37.下列二维数组初始化语句中,正确且与语句 floata3=0,3,8,0,9;等价的是(分数:2.00)A.floata2=0,3,8,0,9;B.float a3=0,3,8,0,9,0;C.float a3=0,3,8,0,9,0;D.float a2=0,3,8,0,9,0;38.栈和队列的共同特点是(分数:2.
16、00)A.都是先进先出B.都是先进后出C.只允许在端点处插入和删除元素D.没有共同点39.下列程序执行后的输出结果是void funcl(int i);void func2(int i);char st=“hello,friend!“;void funcl(int i)printf(“%c“,sti);if(i3)i+=2;func2(i);void func2(int i)printf(“%c“,sti);if(i3)i+=2;func1(i);main()int i=0;func1(i);printf(“/n“);(分数:2.00)A.helloB.helC.hloD.hlm40.以下程序
17、的输出结果是#includestdio.hstruct sti int x;int *y;*p;int dt4=10,20,30,40;struct st aa4=50,&dt0,60,&dt0,60,&it0,60,&dt0,;main()p=aa;printf(“%d/n“,+(p-x);(分数:2.00)A.10B.11C.51D.60二、填空题(总题数:12,分数:28.00)41.长度为 n 的顺序存储线性表中,当在任何位置上插入一个元素概率都相等时,插入一个元素所需移动元素的平均个数为_。(分数:2.00)填空项 1:_42.数据结构分为线性结构和非线性结构,带链的队列属于_。(分
18、数:2.00)填空项 1:_43.软件工程研究的内容主要包括:_技术和软件工程管理。(分数:2.00)填空项 1:_44.常用的黑箱测试有等价分类法、_、因果图法和错误推测法 4 种。(分数:2.00)填空项 1:_45.数据库保护分为安全性、控制性、_、并发性控制和数据恢复。(分数:2.00)填空项 1:_46.以下程序中,函数 fun 的功能是计算 x2-2x+6,主函数中将调用 fun 函数计算:y1=(x+8)2-2(x+8)+6y2=sin2(x)-2sin(x)+6请填空。double fun(double x)return(x*x-2*x+6);double x,y1,y2;pr
19、intf(“Enter x:“);scanf(“%lf“,&x);y1=fun( 6 );y2=fun( 7 );printf(“y1=%lf,y2=%lf/n“,y1,y2);(分数:4.00)填空项 1:_47.以下 isprime 函数的功能是判断形参 a 是否为素数,是素数,函数返回 1,否则返回 0。请填空。int isprime(int a)for(i=2;i=a/2;i+)if(a%i=0) 8 ;9 ;(分数:4.00)填空项 1:_48.下面程序的运行结果是_。main()int i=0,j=10,k=2,s=0;i+=k;if(ij)printf(“%d/n“,s);bre
20、ak;s+=i;(分数:2.00)填空项 1:_49.以下程序的输出结果是_。main()char*p=“BOOL“,“OPK“,“H“,“SP:,;for(i=3;i0;i-,i-)printf(“%c“,*pi);printf(“/n“);(分数:2.00)填空项 1:_50.以下程序用来输出结构体变量 ex 所占存储单元的字节数,请填空。struct stchar name20;double score;main()struct st ex;pfintf(“exsize:%d/n“,sizeof(_);(分数:2.00)填空项 1:_51.以下程序的功能是:利用指针向三个整型变量,并通过
21、指针运算找出三个数中最大值,输出到屏幕上。请填空main()int x,y,z,max,*px,*py,*pz,*pmax;scanf(“%d%d%d“,&x,&y,&z);px=&x;py=&y;pz=&z;pmax=&max;_;if(*pmax*py)*pmax=*py;if(*pmax*pz)*pmax 二*pz;printf(“max=%d/n“,max);(分数:2.00)填空项 1:_52.以下程序中函数 fun 的功能是:构成一个如图所示的带头结点的单词链表,在结点的数据域中放入了具有两个字符的字符串。函数 disp 的功能是显示输出该单链表中所有结点中的字符串。请填空完成函数
22、disp。(分数:2.00)填空项 1:_二级 C 语言笔试-174 答案解析(总分:98.00,做题时间:90 分钟)一、选择题(总题数:40,分数:70.00)1.若有下面的程序片段:int12=0,*p3,*pp,i;for(i=0;i3;i)pi=&ai*4;pp=p;则对数组元素的错误引用是(分数:2.00)_解析:命题目的 考查指向数组的指针。解题要点 本题综合考查一维数组和多维数组指针变量的表示方法。在 C 语言中,引用数组元素的方法有两种,即下标法和指针法。下标法如 ai形式;指针法如*(a+i)或*(p+1)。其中,a 是数组名,p 是指向数组的指针变量,其初值 p=a。再如
23、*(*(p+2)+2)是 a22的值,注意语句中指针型数组的书写格式,不能写成“(*数组名)长度”,因为这是定义指向含有“长度”个元素的一维数组的指针变量。例如有定义语句“int a,b,c,c,*p3=&a,&b,&c2.下面能正确进行字符串赋值操作的是(分数:2.00)A.chars5=“ABCDE“;B.char s5=A,b,C,D,E;C.char*s;s=“ABCDE“; D.char*s;scanf(“%s“,s);解析:命题目的 考查了一维字符数组的定义和初始化。解题要点 选项 A)和 B)定义的数组空间太小,至少应该为 6 个字符的长度才可以。选项 D)中的指针 s未赋初值,
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
5000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 职业资格 二级 语言 笔试 174 答案 解析 DOC
