【计算机类职业资格】二级C语言笔试-331及答案解析.doc
《【计算机类职业资格】二级C语言笔试-331及答案解析.doc》由会员分享,可在线阅读,更多相关《【计算机类职业资格】二级C语言笔试-331及答案解析.doc(23页珍藏版)》请在麦多课文档分享上搜索。
1、二级 C语言笔试-331 及答案解析(总分:94.00,做题时间:90 分钟)一、选择题(总题数:35,分数:70.00)1.可以在 C语言中用做用户标识符的是_。(分数:2.00)A.voiddefine WORDB.as b3_123IfC.for-abccasD.2cDoSIG2.对于 n个结点的单向链表(无表头结点),需要指针单元的个数至少为_。(分数:2.00)A.n-1B.nC.n+lD.2n3.下列程序执行后的输出结果是_。main() int m3=1,4.7,6,5,8,3,6,9;int i,k=2for(i=0,i3;i+)printf(“%d“,mki;(分数:2.00
2、)A.456B.258C.369D.7894.以下程序的输出结果是_。#includestdio.hvoid prt(int*x,int*y,int*z)printf(“%d,%d,%d/n“+*x,+*y,*(z+);int a=10,b=40,c=20main()prt(prt(int b=20;printf(“%d,%o“,(a=a+a,a+b,b),a+a+A,b);(分数:2.00)A.表达式非法,输出零或不确定值B.因输出项过多,无输出或输出不确定值C.输出结果为 20,141D.输出结果为 20,141,206.关系代数运算是以_为基础的运算。(分数:2.00)A.关系运算B.谓
3、词运算C.集合运算D.代数运算7.以下程序(程序左边的数字为附加的行号)_。1#includestr.h2#includestdio.h3main()4 char s=“string“;5puts(s);6strcpy(s,“hello“);7printf(“%3s/n“,s);(分数:2.00)A.没有错B.第 1行有错C.第 6行有错D.第 7行有错8.定义 int*swap()指的是_。(分数:2.00)A.一个返回整型值的函数 swap()B.一个返回指向整型值指针的函数 swap()C.一个指向函数 swap()的指针,函数返回一个整型值D.以上说法均错9.下列程序的输出结果是_。#
4、define A 100main()int i=0,sum=0;do if(i=(i/2)*2) continue;sum+=i;while(+i(分数:2.00)A.;printf(“%d/n“,sum);A) 2500B.2050C.4D.010.已知下面的程序段,正确的判断是_#define A3#define B((分数:2.00)A.(A+1)*a)X=3*(A+B(7);X=3*(A+B(7);A) 程序错误,不允许嵌套定义B.X=93C.X=81D.程序错误,宏定义不允许有参数11.能将高级语言程序转换成目标语言程序的是_。(分数:2.00)A.调试程序B.解释程序C.编译程序D
5、.编辑程序12.模块本身的内聚是模块独立性的重要性度量因素之一。在 7类内聚中,具有最强内聚的类是 _。(分数:2.00)A.顺序性内聚B.过程性内聚C.逻辑性内聚D.功能性内聚13.下列程序的输出结果是_。main()int i=3;switch(i)case1:case2:printf(“%d“,i);case3:case4:break;default: printf (“OK“);(分数:2.00)A.0B.3C.OKD.没有任何输出14.排序方法中,将整个无序序列分割成若干小的子序列并分别进行插入排序的方法,称_。(分数:2.00)A.希尔排序B.冒泡排序C.插入排序D.选择排序15.
6、下述函数功能是_。int fun(char*x)char*y=x;while(*y+);return y-x-1;(分数:2.00)A.求字符串的长度B.求字符串存放的位置C.比较两个字符串的大小D.将字符串 x连接到字符串 y后面16.若一个外部变量的定义形式为 static int x;,那么,其中 static的作用应该是_。(分数:2.00)A.将变量存储在静态存储区B.使变量 x可以由系统自动初始化C.使 x只能在本文件内引用D.使 x的值可以永久保留17.以下程序的输出结果是_。#includestdio.h#define SQR(x)x*xmain()int a,k=3;a=+S
7、QR(k+1)printf(“%d/n“,(分数:2.00)A.A) 8B.9C.17D.2018.已知形成链表的存储结构如下图所示,则下述类型描述中的空白处应填_。struct linkchar data;_;node;(分数:2.00)A.Struct link nextB.link*nextC.struct next linkD.Struct link*next19.若有定义:int a410;,则以下选项中对数组元素 aij引用错误的是_。(0=i4,0=j10)(分数:2.00)A.*(s1+;s2+;printf(“%d/n“,strcmp(s1,s2);上面程序的输出结果是_。(
8、分数:2.00)A.正数B.负数C.零D.不确定的值26.在数据结构中,从逻辑上可以把数据结构分为_。(分数:2.00)A.动态结构和静态结构B.紧凑结构和非紧凑结构C.线性结构和非线性结构D.内部结构和外部结构27.以下程序段的输出结果是_ 。main()char s110,s210,s310;scanf(“%s“,s1);gets(s2);gets(s3);puts(s1);puts(s2);puts(s3);输入数据如下: (此处CR代表回车符)aaaCRbbbCR(分数:2.00)A.aaabbbB.aaabbbC.aaa/0bbb/0D.aaabbb28.若有以下结构体定义,则是正确
9、的引用或定义。Struct exampleint x;int y;V1;(分数:2.00)A.example.x=10B.example V2.x=10C.structv2;v2x=10D.struct examplev2=10;29.以下程序输出的结果为_。main()char*dlpha6=“ABCD“,“EFGH“,“IJKL“,“MNOP“,“QRST“,“UVWX“;char*p;int i;p=alpha;for(i=0;i4;iff)printf(“%s“,pi)(分数:2.00)A.ABCDEFGHIJKLB.ABCDC.ABCDEFGHIJKLMNOPD.AEIM30.设有以
10、下语句:char str1=“string“,str28,*str3,*str4=“string;则_不是对库函数的正确调用。(分数:2.00)A.strcpy(str1,“HELLO1“);B.strcpy(str2,“HELLO2“);C.strcpy(str3,“HELLO3“);D.strcpy(str4,“HELLO4“)31.数据存储和数据流都是_,仅仅是所处的状态不同。(分数:2.00)A.分析结果B.事件C.动作D.数据32.在软件开发过程中,软件结构设计是描述_。(分数:2.00)A.数据存储结构B.软件体系结构C.软件结构测试D.软件控制过程33.下列程序的执行结果是_。#
11、includestdio.hunion unint i;char c2;void main()union un x;x.c0=10;x.c1=1;printf(“/n%d“,x.i);(分数:2.00)A.266B.11C.265D.13834.下列程序执行后输出的结果是_。int d=1;fun(int p)int d=5;d+=p+;printf(“%d,“,d);main()int a3;fun((分数:2.00)A.;fprintf(fp,“%d%5.0f%c%d“,58,76273.0,2278);fclose(fp);(分数:2.00)A.58 76273-2278B.587627
12、3.000000-2278C.5876273-2278D.因文件为二进制文件而不可读二、填空题(总题数:12,分数:24.00)36.对于长度为 n的顺序存储的线性表,当随机插入和删除一个元素时,需平均移动元素的个数为 【1】 。(分数:2.00)填空项 1:_37.注释说明了程序的功能,它分为 【2】 注释和功能性注释。(分数:2.00)填空项 1:_38.软件测试中路径覆盖测试是整个测试的基础,它是对软件 【3】 进行测试。(分数:2.00)填空项 1:_39.数据库技术的主要特点为数据的集成性、数据的高 【4】 和低冗余性、数据独立性和数据统一管理与控。(分数:2.00)填空项 1:_4
13、0.数据元素之间 【5】 的整体称为逻辑结构。(分数:2.00)填空项 1:_41.若 x和 y都是 double型变量,且 x的初值为 3.0,y的初值为 2.0,则表达式 pow(y,fabs(x)的值为 【6】 。(分数:2.00)填空项 1:_42.没有 char a,b;,,若要通过 areturn(x*y-m);main()int a=7,b,5;prntf(“%d/n“,fun(a,B) /m);(分数:2.00)填空项 1:_44.下列程序执行后输出的结果是 【9】 。main()int arr10,i,k=0);fot(i=0;i10;i+)arti=i;for(i=1:i4
14、;i+) k+=arri+i;printf(“%d/n“,k);(分数:2.00)填空项 1:_45.下面程序有两个 printf语句,如果第一个 printf语句输出的是 194,则第二个 printf语句的输出结果是 【10】 。main()int a10=1,2,3,4,5,6,7,8,9,0,*p;p=a;printf(“%x/n“,p);printf(“%x/n,p+9);(分数:2.00)填空项 1:_46.函数 delete(s,i,n)的作用是从字符串 s中删除从第 i个字符开始的 n个字符,请填空。void delete(char s,int i, int n)int j,k
15、,legth=0;while(slength)【11】 ;-i;j=i;if( 【12】 )k=i+n;if(i+nlength)while(klength)sj+=sk+;sj=/0(分数:2.00)填空项 1:_47.下述函数统计一个字符串中的单词个数,单词是指处在空格之间的字符序列,请填空。int word(char*s)int num=0,flag=0;while(*s)if( 【13】 =) flag=0;else if( 【14】 )flag=1;num+return 【15】 (分数:2.00)填空项 1:_二级 C语言笔试-331 答案解析(总分:94.00,做题时间:90 分
16、钟)一、选择题(总题数:35,分数:70.00)1.可以在 C语言中用做用户标识符的是_。(分数:2.00)A.voiddefine WORDB.as b3_123If C.for-abccasD.2cDoSIG解析:评析 C 语言规定,标识符只能由字母、数字和下划线三种符号组成,而且第一个字符必须是字母或下划线。另外还需要注意的是关键字不能作标识符。选项 A中 void, C 中 for都为关键字,D 中 2c以字母开头。2.对于 n个结点的单向链表(无表头结点),需要指针单元的个数至少为_。(分数:2.00)A.n-1B.nC.n+l D.2n解析:评析 在 n个结点的单向链表(无表头结点
17、)中,每个结点都有一个指针单元(即指针域),加上头指针,至少需要 n+1个指针单元。3.下列程序执行后的输出结果是_。main() int m3=1,4.7,6,5,8,3,6,9;int i,k=2for(i=0,i3;i+)printf(“%d“,mki;(分数:2.00)A.456B.258C.369 D.789解析:评析 根据二维数组的定义得出:m00=1,m01=4,m02=7,m10=2,m11=5,m12=8,m20=3,m21=6, m22=9,所以本题的输出是第 3行的值 m20,m21,m22,即 369。4.以下程序的输出结果是_。#includestdio.hvoid
18、prt(int*x,int*y,int*z)printf(“%d,%d,%d/n“+*x,+*y,*(z+);int a=10,b=40,c=20main()prt(prt(int b=20;printf(“%d,%o“,(a=a+a,a+b,b),a+a+A,b);(分数:2.00)A.表达式非法,输出零或不确定值B.因输出项过多,无输出或输出不确定值C.输出结果为 20,141 D.输出结果为 20,141,20解析:评析 本题中首先输出逗号表达式“a=a+a,a+b,b”的值,即 20。然后以八进制的形式输出a+a-A的值为 97对应的八进制数 141,由于最后一个表达式 b没有对应输出
19、格式的输出项表列就不会输出。6.关系代数运算是以_为基础的运算。(分数:2.00)A.关系运算B.谓词运算C.集合运算 D.代数运算解析:评析 关系代数运算是以关系代数作为运算对象的一组高级运算的集合。它的基本操作是并、交、差、笛卡尔积,另外还包括垂直分割(投影)、水平分割(选择)、关系的结合(连接)等。7.以下程序(程序左边的数字为附加的行号)_。1#includestr.h2#includestdio.h3main()4 char s=“string“;5puts(s);6strcpy(s,“hello“);7printf(“%3s/n“,s);(分数:2.00)A.没有错B.第 1行有错
20、 C.第 6行有错D.第 7行有错解析:评析 字符串复制函数 strcpy包含在头文件 string.h中,因此,程序中的第 1行文件包含命令是错误的。8.定义 int*swap()指的是_。(分数:2.00)A.一个返回整型值的函数 swap()B.一个返回指向整型值指针的函数 swap() C.一个指向函数 swap()的指针,函数返回一个整型值D.以上说法均错解析:评析 一个函数可以带回一个整型值、字符值、实型值等,但也可以带回指针型数据,即地址。本题的定义中,包括括号和*号,由于 0优先级高于*。故它是一个返回整型指针的函数。9.下列程序的输出结果是_。#define A 100mai
21、n()int i=0,sum=0;do if(i=(i/2)*2) continue;sum+=i;while(+i(分数:2.00)A.;printf(“%d/n“,sum);A) 2500 B.2050C.4D.0解析:评析 本题程序的功能是求 1到 99之间(包括 1和 99)所有奇数之和。程序中的 while循环的终止条件为+i=100,在 while 循环体内,如果 i是偶数,则执行 continue,跳过这依次循环,执行下一次循环,否则求和。最后输出的值是 1到 99之间(包括 1和 99)所有奇数之和(1+99)*50/2=2500。10.已知下面的程序段,正确的判断是_#def
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
5000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 职业资格 二级 语言 笔试 331 答案 解析 DOC
