【计算机类职业资格】二级C语言笔试-25及答案解析.doc
《【计算机类职业资格】二级C语言笔试-25及答案解析.doc》由会员分享,可在线阅读,更多相关《【计算机类职业资格】二级C语言笔试-25及答案解析.doc(25页珍藏版)》请在麦多课文档分享上搜索。
1、二级 C语言笔试-25 及答案解析(总分:110.00,做题时间:90 分钟)一、选择题(总题数:40,分数:80.00)1.一颗二叉树中共有 70个叶子节点与 80个度为 1的节点,则二叉树的总节点数为_。(分数:2.00)A.219B.221C.229D.2312.按照 C语言规定的用户标识符命名规则,不能出现在标识符中的是_。(分数:2.00)A.大写字母B.连接符C.数字字符D.下划线3.有以下程序:#includestdio.hmain()int a=1,2,3,4,y,*p=a3;-p;y=*p;printf(“y=%d/n“,y);程序的运行结果是_。(分数:2.00)A.y=0
2、B.y=1C.y=2D.y=34.有以下程序段:typedef struct node(int data;struct node*next;)*NODE;NODE P;以下叙述中正确的是_。(分数:2.00)A.P是指向 struct node结构变量的指针的指针B.NODE p;语句出错C.P是指向 struct node结构变量的指针D.P是 struct node结构变量5.若变量已正确定义,有以下程序段:i=0;do prinntf(“%d,i“);while(i+);printf(“%d/n“,i);其输出结果是_。(分数:2.00)A.0,0B.0,1C.1,1D.程序进入无限循环
3、6.有以下程序:struct Sint n;int a20;;void f(struct S*P)int i,j,t;for(i=0;iP-n-1;i+)for(j=j+1;jP-n-1;j+)if(p-aip-aj)t=P-ai;p-ai=P-aj;p-aj=tmain()int i;struct S s10,2,3,1,6,8,7,5,4,10,9;f(s);for(i=0;is.n;i+)printf(“%d“,s.ai);程序运行后的输出结果是_。(分数:2.00)A.3B.4C.5D.67.有以下程序:float f1(float n)return n*n;float f2(floa
4、t n)return 2*n;main()float(*p1)(float),(*p2)(float),(*t)(float),y1,y2;p1=f1;p2=f2;y1=p2(p1(2.0);t=p1;p1=p2;p2=t;y2=p2(p1(2.0);printf(“%3.0f,%3.0f/n“,y1,y2);程序运行后的输出结果是_。(分数:2.00)A.8,16B.8,8C.16,16D.4,88.以下选项中不属于字符常量的是_。(分数:2.00)A.CB.“C“C./xCCD./0729.有以下程序:main()int a=1,b=3,c=5;int*p1=a,*p2=b,*p=c;*p
5、=*p1*(*p2);printf(“%d/n“,c);执行后的输出结果是_。(分数:2.00)A.1B.2C.3D.410.下列叙述中错误的是_。(分数:2.00)A.计算机不能直接执行用 C语言编写的源程序B.C程序经 C编译后,生成后缀为.obj 的文件是一个二进制文件C.后缀为.obj 的文件,经连接程序生成后缀为.exe 的文件是一个二进制文件D.后缀为.obj 和.exe 的二进制文件都可以直接运行11.有以下程序:fun(int x)int p;if(x=0|x=1)return(3);p=x-fun(x-2);return p;main()printf(“%d/n“,fun(7
6、);执行后的输出结果是_。(分数:2.00)A.7B.3C.2D.012.有以下程序:main()char ch=“uvwxyz“,*pc;pc=ch;printf(“%c/n“,*(pc+5);程序运行后的输出结果是_。(分数:2.00)A.zB.0C.元素 ch5地址D.字符 y的地址13.设有如下关系表:R S TA B C A B C A B C1 1 2 3 1 3 1 1 22 2 3 2 2 33 1 3则下列操作中正确的是_。(分数:2.00)A.T=RSB.T=RSC.T=RSD.T=R/S14.有以下程序:main()int i;for(i=1,i=40;i+)if(i+%
7、5=0)if(+i%8=0)printf(“%d“,i);printf (“/n“);执行后的输出结果是_。(分数:2.00)A.5B.24C.32D.4015.有以下程序段:int n,t=1,S=0;scanf(“%d“,n);dos=s+t;t=t-2;while(t!=n);为使此程序段不陷入死循环,从键盘输入的数据应该是_。(分数:2.00)A.任意正奇数B.任意负偶数C.任意正偶数D.任意负奇数16.有以下程序:main()int a44=1,4,3,2,8,6,5,7,3,7,2,5,4,8,6,1,),i,j,k,t;for(i=0;i4;i+)for(j=0;j3;j+)fo
8、r(k=j+1;k4;k+)if(ajiaki)t=aji;aji=aki;aki=t;/*按列排序*/for(i=0;i4;i+)printf(“%d,“,aii);程序运行后的输出结果是_。(分数:2.00)A.1,6,5,7,B.8,7,3,1,C.4,7,5,2,D.1,6,2,1,17.以下关于字符串的叙述中正确的是_。(分数:2.00)A.C语言中有字符类型的常量和变量B.两个字符串中的字符个数相同时才能进行字符串大小的比较C.可以用关系运算符对字符串的大小进行比较D.空串一定比空格打头的字符串小18.现有以下结构体说明和变量定义,如图所示,指针 p、q、r 分别指向一个链表中连续
9、的三个节点。struct nodechar data;struct node*next;*p,*q,*r;(分数:2.00)A.B.C.D.19.下列对于线性链表的描述中正确的是_。(分数:2.00)A.存储空间不一定是连续,且各元素的存储顺序是任意的B.存储空间不一定是连续,且前件元素一定存储在后件元素的前面C.存储空间必须连续,且各前件元素一定存储在后件元素的前面D.存储空间必须连续,且各元素的存储顺序是任意的20.在软件设计中,不属于过程设计工具的是_。(分数:2.00)A.PDL(过程设计语言)B.PAD图C.N-S图D.DFD图21.在面向对象方法中,实现信息隐蔽是依靠_。(分数:2
10、.00)A.对象的继承B.对象的多态C.对象的封装D.对象的分类22.在一个 C源程序文件中所定义的全局变量,其作用域为_。(分数:2.00)A.所在文件的全部范围B.所在程序的全部范围C.所在函数的全部范围D.由具体定义位置和 extern说明来决定范围23.数据库系统的核心是_。(分数:2.00)A.数据模型B.数据库管理系统C.数据库D.数据库管理员24.以下选项中值为 1的表达式是_。(分数:2.00)A.1-0B.1-/0C.1-0D./0-025.有以下程序:main()int x,y,z;x=y=1;z=x+,y+,+y;printf(“%d,%d,%d,%d/n“,x,y,z)
11、;程序运行后的输出结果是_。(分数:2.00)A.2,3,3B.2,3,2C.2,3,1D.2,2,126.以下叙述中正确的是_。(分数:2.00)A.break语句只能用于 switch语句体中B.continue语句的作用是使程序的执行流程跳出包含它的所有循环C.break语句只能用在循环体内和 switch语句体内D.在循环体内使用 break语句和 continue语句的作用相同27.有以下程序:main()unsigned char a=2,b=4,c=5,d;d=a|b;d=c;printf(“%d/n“,d);程序运行后的输出结果是_。(分数:2.00)A.3B.4C.5D.62
12、8.下列关于栈的描述中错误的是_。(分数:2.00)A.栈是先进后出的线性表B.栈只能顺序存储C.栈具有记忆作用D.对栈的插入和删除操作中,不需要改变栈底指针29.对长度为 n的线性表排序,在最坏情况下,比较次数不是 n(n-1)/2的排序方法是_。(分数:2.00)A.快速排序B.冒泡排序C.直接插入排序D.堆排序30.以下错误的定义语句是_。(分数:2.00)A.int x3=0,1,1,2,3;B.int x43=1,2,3,1,2,3),1,2,3,1,2,3;C.int x4=1,2,3,1,2,3,1,2,3,1,2,3;D.int x3=1,2,3,4;31.若变量已正确定义,有
13、以下程序段:int a=3,b=5,c=7;if(ab) a=b;c=a;if(c!=(分数:2.00)A.c=b;pri32.有以下程序:main()int m,n,P;scanf(“m=%dn=%dp=%d“,m,n,p);printf(“%d%d%d/n“,m,n,p);若想从键盘上输入数据,使变量 m中的值为 123,n 中的值为 456,p 中的值为 789,则王确的输入是_。(分数:2.00)A.m=123n=456p=789B.m=123 n=456 p=789C.m=123,n=456,P=789D.123 456 78933.数据库设计的四个阶段是:需求分析、概念设计、逻辑设
14、计和_。(分数:2.00)A.编码设计B.测试阶段C.运行阶段D.物理设计34.设变量均已正确定义,若要通过 scanf(“%d%c%d%c“,a1,c1,a2,c2);语句为变量 a1和 a2赋数值 10和 20,为变量 c1和 c2赋字符 X和 Y。以下所示的输入形式正确的是(注:代表空格字符)_。(分数:2.00)A.10X20YB.10X20YC.10XD.10X20Y 20Y35.有以下程序:point(char *p)P+=3;)main()char b4=a,b,c,d,*p=b;point(p);printf(“%c/n“,*p);程序运行后的输出结果是_。(分数:2.00)A
15、.aB.bC.cD.d36.软件调试的目的是_。(分数:2.00)A.发现错误B.改正错误C.改善软件的性能D.验证软件的正确性37.若有代数式 (分数:2.00)A.B.C.D.38.有以下程序:fun(char p10)int n=0,i;for(i=0;i7;i+)if(Pi0=T)n+;return n;main()char str10=“Mon“,“Tue“,“wed“,“Thu“,“Fri“,“Sat“,“Sun“;printf(“%d/n“,fun(str);程序执行后的输出结果是_。(分数:2.00)A.1B.2C.3D.039.有以下程序:#includevoid Write
16、Str(char *fn,char*str)FILE*fp;fp=fopen(fn,“w“);fputs(str,fp);fclose(fp);main()WriteStr(“t1.dat“,“start“);WriteStr(“t1.dat“,“end“);程序运行后,文件 t1.dat中的内容是_。(分数:2.00)A.startB.endC.startendD.endrt40.以下叙述中错误的是_。(分数:2.00)A.在程序中凡是以“#”开始的语句行都是预处理命令行B.预处理命令行的最后不能以分号表示结束C.#define MAX是合法的宏定义命令行D.C程序对预处理命令行的处理是在程
17、序执行的过程中进行的二、填空题(总题数:13,分数:30.00)41.在深度为 7的满二叉树中,度为 2的节点个数为 1。(分数:2.00)填空项 1:_42.对下列二叉树进行中序遍历的结果为_。(分数:2.00)填空项 1:_43.测试用例包括输入值集和 1 值集。(分数:2.00)填空项 1:_44.软件生命周期可分为多个阶段,一般分为定义阶段、开发阶段和维护阶段。编码和测试属于 1 阶段。(分数:2.00)填空项 1:_45.在关系数据库中,用来表示实体之间联系的是 1。(分数:2.00)填空项 1:_46.设有定义:float x=123.4567;,则执行以下语句后的输出结果是_。p
18、rintf(“%f/n“,(int)(x*100+0.5)/100.0);(分数:2.00)填空项 1:_47.以下程序运行后的输出结果是_。main()int x,a=1,b=2,c=3,d=4;x=(ab)?a:b;x=(ac)?x:C;x=(dx)?x:d;printf(“%d/n“,x);(分数:2.00)填空项 1:_48.已知字母 A的 ASC码为 65。以下程序运行后的输出结果是_。main()char a,b;a=A+5-3;b=a+6-2;printf(“%d%c/n“,a,b);(分数:2.00)填空项 1:_49.以下程序运行后的输出结果是_。void swap(int
19、X,int y)int t;t=x;x=y;y=t;printf(“%d%d“,x,y);main()int a=3,b=4;swap(a,b);printf(“%d%d/n“,a,b);(分数:2.00)填空项 1:_以下程序的功能是输出如下形式的方阵:13 14 15 169 10 11 125 6 7 81 2 3 4请填空。main()int i,j,x;for(j=4;j (10) ;j-)for(i=1;i=4;i+)x=(j-1)*4+ (11) ;printf(“M“,x);printf(“/n“);(分数:4.00)填空项 1:_填空项 1:_下列程序中的函数 strcpy2
20、()实现字符串两次复制,即将 t所指字符串复制两次到 s所指内存空间中,合并形成一个新字符串。例如 t所指字符串为 efgh,调用 strcpy2后,s 所指字符串为 efghefgh。请填空。#includestdio.h#includestring.hvoid strcpy2(char*s,char*t)char*P=t;while(*s+=*t+);s= (12) ;while( (13) =*P+);main()char str1100=“ahcd“,str2=“efgh“;strcpy2(str1,str2);printf(“%s/n“,str1);(分数:4.00)填空项 1:_填
21、空项 1:_50.以下函数 fun的功能是返回 str所指字符串中以形参 c中字符开头的后续字符串的首地址,例如,str所指字符串为 Hello!,c 中的字符为 e,则函数返回字符串为 ello!的首地址。若 str所指字符串为空串或不包含 c中的字符,则函数返回 NULL。请填空。char*fun(char*str,char c)int n=0;char*p=str;if(P!=NULL)while(pn!=cpn!=/0)n+;if(pn=/0)return NULL;return_;(分数:2.00)填空项 1:_51.下面程序的功能是建立一个有 3个节点的单循环链表,如下图所示,然后
22、求各个节点数值域 data中数据的和,请填空。(分数:2.00)填空项 1:_二级 C语言笔试-25 答案解析(总分:110.00,做题时间:90 分钟)一、选择题(总题数:40,分数:80.00)1.一颗二叉树中共有 70个叶子节点与 80个度为 1的节点,则二叉树的总节点数为_。(分数:2.00)A.219 B.221C.229D.231解析:解析 树的结点数等于所有结点的度与对应的结点个数乘积之和加 1。对任何一棵二叉树 T,如果其叶子结点数为 n0,度为 2的结点数为 n2,则 n0=n2+1,即叶子结点数总是比度为 2的结点数多 1。由于叶子结点个数为 70,则度为 2的结点数为 7
23、0-1=69,所以总结点个数为 692+801十 1=219。2.按照 C语言规定的用户标识符命名规则,不能出现在标识符中的是_。(分数:2.00)A.大写字母B.连接符 C.数字字符D.下划线解析:解析 C 语言规定的标识符只能由字母、数字和下划线 3种字符组成,且第一个字母必须为下划线或字母。3.有以下程序:#includestdio.hmain()int a=1,2,3,4,y,*p=a3;-p;y=*p;printf(“y=%d/n“,y);程序的运行结果是_。(分数:2.00)A.y=0B.y=1C.y=2D.y=3 解析:解析 本题主要考查一维数组及数组元素的地址。程序中定义数组
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
5000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 职业资格 二级 语言 笔试 25 答案 解析 DOC
