【计算机类职业资格】二级C语言笔试-303及答案解析.doc
《【计算机类职业资格】二级C语言笔试-303及答案解析.doc》由会员分享,可在线阅读,更多相关《【计算机类职业资格】二级C语言笔试-303及答案解析.doc(29页珍藏版)》请在麦多课文档分享上搜索。
1、二级 C 语言笔试-303 及答案解析(总分:100.00,做题时间:90 分钟)一、选择题(总题数:40,分数:70.00)1.以下数组定义中错误的是( )。(分数:2.00)A.int x3=0;B.int x23=1,2,3,4,5,6;C.inf x3=1,2,3,4,5,6);D.int x23=1,2,3,4,5,6;2.数据流程图(DFD 图)是( )。(分数:2.00)A.软件概要设计的工具B.软件详细设计的工具C.结构化方法的需求分析工具D.面向对象方法的需求分析工具3.以下能正确定义一维数组的选项是( )。(分数:2.00)A.int a5=0,1,2,3,4,5;B.in
2、t a=0,1,2,3,4,5;C.char a=(A,B,C);D.int a5=“0123“;4.以下选项中不能作为 C 语言合法常量的是( )。(分数:2.00)A.cdB.0.1e+6C.“/a“D./0115.有以下程序:#include int f(int x)int y;lf (x=0|x=1)return(3);y=x*x-f(x-2);return y;main()int Z;z=f(3);printf(“%d/n“,z);程序的运行结果是( )。(分数:2.00)A.0B.9C.6D.86.对于现实世界中事物的特征,在窦体一联系模型中使用( )。(分数:2.00)A.属性描
3、述B.关键字描述C.二维表格描述D.实体描述7.下列描述中正确的是( )。(分数:2.00)A.软件工程只是解决软件项目的管理问题B.软件工程主要解决软件产品的生产率问题C.软件工程的主要思想是强调在软件开发过程中需要应用工程化原则D.软件工程只是解决软件开发中的技术问题8.设有以下定义和语句:int a32=1,2,3,4,5,6,*p3;p0=a1;则*(p0+1)所代表的数组元素是( )。(分数:2.00)A.a01B.a10C.a11D.a129.有以下程序:#include int fun(int(*s)4,int n,int k)int m,i;m=s0k;for (i=l;in;
4、i+)if (sikm)m=sik;return m;main()int a44=1,2,3,4,11,12,13,14,21,22,23,24,31,32,33,34;printf(“%d/n“,fun(a,4,0);程序的运行结果是( )。(分数:2.00)A.4B.34C.31D.3210.在长度为 64 的有序线性表中进行顺序查找,最坏情况下需要比较的次数为( )。(分数:2.00)A.63B.64C.6D.711.下列叙述中正确的是( )。(分数:1.00)A.break 语句只能用于 switch 语句B.在 switch 语句中必须使用 defaultC.break 语句必须与
5、switch 语句中的 case 配对使用D.在 switch 语句中,不一定使用 break 语句12.以下叙述中错误的是( )。(分数:1.00)A.gets 函数用于从终端读入字符串B.getchar 函数用于从磁盘文件读入字符C.fputs 函数用于把字符串输出到文件D.fwrite 函数用于以二进制形式输出数据到文件13.有以下程序:#include main()int i=5;doif(i%3=1)if(i%S=2)printf(“*%d“,i);break;i+;while(i!=0);printf(“/n“);程序的运行结果是( )。(分数:1.00)A.*7B.*3*5C.*
6、5D.*2*614.以下不能定义为用户标识符是( )。(分数:1.00)A.MainB.0C.intD.sizeof15.以下关于 long、int 和 short 类型数据占用内存大小的叙述中正确的是( )。(分数:1.00)A.均占 4 个字节B.根据数据的大小来决定所占内存的字节数C.由用户自己定义D.由 C 语言编译系统决定16.有以下程序:#include #include typedef struct char name9;char sex;float score2; STU;void f(STU(分数:1.00)A.STU b=“2hao“,m,85.0,90.0;int i;s
7、trcpy(a.name,b.name);a.sex=b.sex;for(i=0;12;i+)a.scorei=b.scorei;main()STU c=“Qian“,f,95,92;f(C) ;printf(“%s,%c,%d,%d“,c.name,c.sex,c.score0,c.score1);A) Qian,f,95,92B.Qian,m,85,90C.Zhao,f,95,92D.Zhao,m,85,9017.有以下程序:int fun(int x,int n)static int sum=0,i;for(i=0;in;i+)sum+=xi;return sum;main()inf a
8、=1,2,3,4,5,b=6,7,8,9,s=0;s=fun(a,5)+fun(b,4);printf(“%d/n“,s);程序执行后的输出结果是( )。(分数:1.00)A.45B.50C.60D.5518.若有以下宏定义:#define N 2#define Yn)(N+1)*n)则执行语句 Z=2+(N+Y(5);后结果是( )。(分数:1.00)A.语句有误B.Z=34C.Z=70D.Z 无定值19.以下叙述中错误的是( )。(分数:1.00)A.对于 double 类型数组,不可以直接用数组名对数组进行整体输入或输出B.数组名代表的是数组所占存储区的首地址,其值不可改变C.当程序执行
9、中,数组元素的下标超出所定义的下标范围时,系统将给出“下标越界”的出错信息D.可以通过赋初值的方式确定数组元素的个数20.下列叙述中正确的是( )。(分数:1.00)A.软件测试应该由程序开发者来完成B.程序经调试后一般不需要再测试C.软件维护只包括对程序代码的维护D.以上三种说法都不对21.设变量已正确定义,则以下能正确计算 f=n!的程序段是( )。(分数:2.00)A.f=0;for(i=1;i=n;i+)f*=i;B.f=1;for(i=1;in;i+)f*=i;C.f=1;for(i=n;i1;i+)f*=i;D.f=1;fori=n;i=2;i-)f*=i;22.有以下程序:#in
10、clude main()struct STUchar name9;char sex;double score2;struct STU a=“Zhao“,m,85.0,90.0,b=“Qian“,f,95.0,92.0,b=a;prinf(“%s,%c,%2.Of,%2.Of/n“,b.name,b.sex,b.score0,b.score1);程序的运行结果是( )。(分数:2.00)A.Qian,f,95,92B.Qian,m,85,90C.Zhao,f,95,92D.Zhao,m,85,9023.有以下程序:#include void WriteStr(char*fn,char*str)F
11、ILE*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.endrt24.若 x=2,y=3,则 x&y 的结果是( )。(分数:2.00)A.0B.2C.3D.525.以下程序的输出结果是( )。#include void swap(int*a,int*B) int*t;t=a;a=b;b=t;main()int i=3,j
12、=5,*p=&i,*q=&j;swap(p,q);printf(“%d%d/n“,*p,*q);(分数:2.00)A.23B.34C.35D.4526.有以下程序:#include main()FILE*pf;char*s1=“China“,*s2;“Beijing“;pf=fopen(“abc.dat“,“wb+“);fwrite(s2,7,1,pf);rewind(pf);/*文件位置指针回到文件开头*/fwrite(s1,5,1,pf);fclose(pf):以上程序执行后 abc.dat 文件的内容是( )。(分数:2.00)A.ChinaB.ChinangC.ChinaBeijing
13、D.BeijingChina27.有以下程序:main()int i;for(i=1;1=40;i+)if(i+%5=0)if(+i%8=0)printf(“%d“,i);printf(“/n“);执行后的输出结果是( )。(分数:2.00)A.5B.24C.32D.4028.用 C 语言编写的代码程序( )。(分数:2.00)A.可立即执行B.是一个源程序C.经过编译即可执行D.经过编译解释即可执行29.有以下程序;main()inf a=2,4,6,8,10,y=0,x,*p;p=&a1;for(x=1;x3;x+)y+=px;printf(“%d/n“,y);程序运行后的输出结果是( )
14、。(分数:2.00)A.10B.11C.14D.1530.下列叙述中错误的是( )。(分数:2.00)A.在数据库系统中,数据的物理结构必须与逻辑结构一致B.数据库技术的根本目标是要解决数据的共享问题C.数据库设计是指在已有数据库管理系统的基础上建立数据库D.数据库系统需要操作系统的支持31.下列叙述中正确的是( )。(分数:2.00)A.一个算法的空间复杂度大,则其时间复杂度也必定大B.一个算法的空间复杂度大,则其时间复杂度必定小C.一个算法的时间复杂度大,则其空间复杂度必定小D.上述三种说法都不对32.数据独立性是数据库技术的重要特点之一。所谓数据独立性是指( )。(分数:2.00)A.数
15、据与程序独立存放B.不同的数据被存放在不同的文件中C.不同的数据只能被对应的应用程序所使用D.以上三种说法都不对33.在以下给出的表达式中,与 while(E)中的(E)不等价的表达式是( )。(分数:2.00)A.(!E=0)B.(E0|E0)C.(E=0)D.(E!=0)34.下面不属于软件工程的 3 个要素的是( )。(分数:2.00)A.工具B.过程C.方法D.环境35.有以下程序:char fun(char x ,char y)if(xy)return x;return y;main()int a=9,b;8,c=7;printf“%c/n“,fun(fun(a,B) ,fun(b,
16、C) );程序的执行结果是( )。(分数:2.00)A.函数调用出错B.8C.9D.736.设有如下三个关系表:(分数:2.00)A.T=RSB.T=RSC.T=RSD.T=R/S37.若变量均已正确定义并赋值,以下合法的 C 语言赋值语句是( )。(分数:2.00)A.x=y=5;B.x=n%2.5;C.x+n=i;D.x=5=4+1;38.有以下程序:main()char s=“ABCD“,*p;for(p=s+1;ps+4;p+)printf(“%s/n“,p);程序运行后的输出结果是( )。(分数:2.00)A.ABCDBCDCDDB.ABCDC.BCDD.BCDCDD39.有以下定义
17、:#include char a10,*b=a;不能给数组 a 输入字符串的语句是( )。(分数:2.00)A.geB.gets(a0);C.gets(&a0);D.ge40.有以下程序:void swap(char*x,char*y)char t;t=*x;*x=*y;*y=t;main()char*s1=“abc“,*s2=“123“;swap(s1,s2);printf(“%s,%s/n“,s1,s2);程序执行后的输出结果是( )。(分数:2.00)A.123,abcB.abc,123C.1bc,a23D.321,cba二、填空题(总题数:15,分数:30.00)41.设某循环队列的容
18、量为 50,如果头指针 front=45(指向队头元素的前一位置),尾指针 rear=10(指向队尾元素),则该循环队列中共有 1 个元素。(分数:2.00)填空项 1:_42.线性表的存储结构主要分为顺序存储结构和链式存储结构。队列是一种特殊的线性表,循环队列是队列的 1 存储结构。(分数:2.00)填空项 1:_43.在深度为 7 的满二叉树中,度为 2 的结点个数为 1。(分数:2.00)填空项 1:_44.软件生命周期可分为多个阶段。一般分为定义阶段、开发阶段和维护阶段。编码和测试属于_阶段。(分数:2.00)填空项 1:_45.在 E-R 图中,图形包括矩形框、菱形框、椭圆框。其中表
19、示实体联系的是_框。(分数:2.00)填空项 1:_46.已有定义:char c=“;int a:1,b;(此处 c 的初值为空格字符),执行 b=!c&a;后 b 的值为 1。(分数:2.00)填空项 1:_47.有以下程序:#includemain()int x=1,y=2,z=3;if(xy)if(yz)printf(“%d%“,+z);else printf(%d%,+y);printf(“%d%/n“,x+);程序运行后的输出结果是_。(分数:2.00)填空项 1:_48.有以下程序:main()int i,j;for(i=1;i4;i+)for (j=i;j4;j+)printf(
20、“%d*%d=%d“,i,j,i*j);printf(“/n“);程序运行后的输出结果是_。(分数:2.00)填空项 1:_49.有以下程序:main()int x32=0,1;for(i=0;i3;1+)scanf(“%d“,xi);printf(“%3d%3d%3d/n“,x00,x01,x10);若运行时输入:2 4 6回车,则输出结果为_。(分数:2.00)填空项 1:_50.有以下程序:main()int a=1,2,3,4,S,6,7,8,9,0,*p;for(p=a;pa+10;p+)printf(“%d,“,*p);程序运行后的输出结果是_。(分数:2.00)填空项 1:_51
21、.若有定义语句:int a36;,按在内存中的存放顺序,a 数组的第 10 个元素是 1。(分数:2.00)填空项 1:_52.有以下程序:prtint *m,int n)int i;for(i=0;in;i+)mi+;main()int a=1,2,3,4,5,i;prt(a,5);for(i=0;i5;i+)printf(“%d,“,ai);程序运行后输出结果是_。(分数:2.00)填空项 1:_53.能正确表示代数式 2ab/cd 的 C 语言表达式是 1。(分数:2.00)填空项 1:_54.有以下程序:main()char p=a,b,c),q=“abc“;printf(“%d %d
22、/n“,sizeof(p),sizeof(q);程序运行后的输出结果是_。(分数:2.00)填空项 1:_55.有以下程序:# include main()int a=1,2,3,4,5,6,7,8,9,10,11,12,*p=a+5,*q=NULL;*q=*(p+5);printf(“%d%d/n“,*p,*q);程序运行后的输出结果是_。(分数:2.00)填空项 1:_二级 C 语言笔试-303 答案解析(总分:100.00,做题时间:90 分钟)一、选择题(总题数:40,分数:70.00)1.以下数组定义中错误的是( )。(分数:2.00)A.int x3=0;B.int x23=1,2
23、,3,4,5,6; C.inf x3=1,2,3,4,5,6);D.int x23=1,2,3,4,5,6;解析:解析 本题考核的知识点是二维数组的定义及初始化。在定义一个二维数组同时初始化时,其第一维的长度可以省略。二维数组的初始化列表可以只使用一重花括号,其中的每个值依次代表从第 1 行的第 1 个元素起,直到第 1 行满,接着代表第 2 行、第 3 行的每一个元素,若第 1 维长度没有省略,则这些值总个数不得超过两个维度的乘积。故选项 A)和 D)是正确的。二维数组的初始化列表还可以使用二重花括号括起来,其中每一个内花括号代表一行的值,在内花括号中值的个数不得超过数组第二维的长度,若不足
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
5000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 职业资格 二级 语言 笔试 303 答案 解析 DOC
