【计算机类职业资格】二级C语言分类模拟题538及答案解析.doc
《【计算机类职业资格】二级C语言分类模拟题538及答案解析.doc》由会员分享,可在线阅读,更多相关《【计算机类职业资格】二级C语言分类模拟题538及答案解析.doc(20页珍藏版)》请在麦多课文档分享上搜索。
1、二级 C 语言分类模拟题 538 及答案解析(总分:56.00,做题时间:90 分钟)一、选择题(总题数:40,分数:56.00)1.设有如下程序段 #includestdio.h char s20=“Beijing“, *p; p=s; 则执行 p=s;语句后,以下叙述正确的是_。(分数:2.00)A.可以用*p 表示 s0B.s 数组中元素的个数和 p 所指字符串长度相等C.s 和 p 都是指针变量D.数组 s 中的内容和指针变量 p 中的内容相同2.设有下列程序段: char str=“HelloWorld“; char*ptr; ptr=str; 执行上面的程序段后,*(ptr+10)
2、的值为_。(分数:2.50)A.“/0“B.“0“C.不确定的值D.“0“的地址3.构成计算机软件的是_。(分数:1.00)A.源代码B.程序和数据C.程序和文档D.程序、数据及相关文档4.以下程序中给数组所有元素输入数据,请从选项中选择正确的答案填入下划线处。 #include stdio.h main() int a10,i=0; while(i10)scanf(“%d“, _ ); (分数:1.00)A.a+(i+)B. switch(x) case 0: b+; case 1: a+; case 2: a+; b+; printf(“a=%d, b=%d/n“, a, b); 该程序的
3、输出结果是_。(分数:2.50)A.a=2,b=1B.a=1,b=1C.a=1,b=0D.a=2,b=27.某带链栈的初始状态为 top=bottom=NULL,经过一系列正常的入栈与退栈操作后,top=bottom=20。该栈中的元素个数为_。(分数:1.00)A.1B.0C.20D.不确定8.有以下程序: #includestdio.h main() int i,j,x=0; for(i=0;i2;i+) x+; for(j=0;j=3;j+) if(j%2)continue; x+; x+; printf(“x=%d/n“,x); 程序执行后的输出结果是_。(分数:1.00)A.x=4B
4、.x=8C.x=6D.x=129.以下不能正确计算代数式 sin2()值的 C 语言表达式是 _ 。(分数:1.00)A.1/3*sin(1/2)*sin(1/2)B.sin(0.5)*sin(0.5)/3C.pow(sin(0.5),2)/3D.1/3.0*pow(sin(1.0/2),2)10.有以下程序 #includestdio.h main() int n=2, k=0; while(k+ printf(“%d%d/n“, k, n); 程序运行后的输出结果是_。(分数:1.00)A.02B.13C.57D.1211.若有以下程序 #includestdio.h void sp(in
5、t *a) int b=2; a= *a=*a*2; printf(“%d,“, *a); main() int k=3, *p= sp(p); printf(“%d, %d/n“, k, *p); 则程序的输出结果是_。(分数:2.00)A.4, 3, 4B.4, 3, 3C.6, 3, 6D.6, 6, 612.以下函数的功能是:计算 a 的 n 次方作为函数值返回。 double fun(double a,int n) int i;double s=1.0; for(i=1;i=n;i+)s=_; return s; 为实现上述功能,函数中下划线处应填入的是_。(分数:1.00)A.s*
6、iB.s*aC.s+i*iD.s+a*a13.以下选项中,与 k=n+完全等价的表达式是_。(分数:1.00)A.k=n, n=n+1B.n=n+1, k=nC.k=+nD.k+=n+114.以下叙述中正确的是( )。(分数:1.00)A.调用 printf 函数时,必须要有输出项B.使用 putchar 函数时,必须在之前包含头文件 stdio.hC.在 C 语言中,整数可以以十二进制、八进制或十六进制的形式输出D.调用 getchar 函数读入字符时,可以从键盘上输入字符所对应的 ASCII 码15.下列说法中,不正确的是_。(分数:2.00)A.主函数 main 中定义的变量在整个文件或
7、程序中有效B.不同函数中,可以使用相同名字的变量C.形式参数是局部变量D.在函数内部,可在复合语句中定义变量,这些变量只在本复合语句中有效16.若有如下程序: sub(int a,int b,int c) c=a+b; return(c); main() int x=3,y=4,z=6; sub(x,y,z); printf(“%d”,z); 则程序运行后的输出结果是( )。(分数:1.00)A.3B.6C.7D.417.若有说明:int n=2, *p=,则以下非法的赋值语句是_。(分数:1.00)A.p=q;B.*p=q;C.n=*q;D.p=n;18.有以下程序: #include in
8、t fun(int(*s)4,int n,int k)int m,i;m=s0k;for (i=l;in;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);程序的运行结果是 。 A.4 B.34 C.31 D.32A B C D C解析 本题考查的是二维数组的定义、赋初值和对二维数组元素的引用。在 fun()函数中,首先将 s0k的值赋给 m,然后通过 for 循环,遍历 s1k-sn-1k之中的数,将遇到的比 m 大的数保存
9、到 m 中。很显然,这是搜索最大值的算法,搜索的是 s0ksn-1k之间的最大值。所以,主函数中 fun (a,4,0)的功能就是搜索 a00-a30之间的最大值,这 4 个值分别是 1、11、21、31,所以最终输出结果是 31,应该选择 C)。(分数:2.00)A.4B.34C.31D.3219.在软件开发中,需求分析阶段产生的主要文档是_。(分数:1.00)A.软件集成测试计划B.软件详细设计说明书C.用户手册D.软件需求规格说明书20.阅读下面程序,则执行后的结果是 #include “stdio, h“ main() char str=“tomeetme“, *p; for(p=st
10、r; pstr+7; p+=2)putchar(*p); printf(“/n“); (分数:2.00)A.tomeetmeB.tmemC.oeteD.tome21.有以下程序 #includestdio.h main() char ch=“Z“; ch=(ch-“A“+1)%26+“A“; putchar(ch); 程序的运行结果是(分数:2.00)AZBYCBDA22.有以下程序: main() int y=1,x=2,z=3; printf(“%d,%d/n“,(Hx,y+),z+2); 执行后的输出结果是_。(分数:2.00)A.3,5B.2,5C.3,3D.1,523.一名工作人员可
11、以使用多台计算机,而一台计算机可被多名工作人员使用,则实体工作人员与实体计算机之间的联系是_。(分数:1.00)A.一对一B.一对多C.多对多D.多对一24.有两个关系 R 和 T 如下: (分数:1.00)A.选择B.投影C交D并25.深度为 7 的二叉树共有 127 个节点,则下列说法中错误的是_。(分数:1.00)A.该二叉树有一个度为 1 的节点B.该二叉树是满二叉树C.该二叉树是完全二叉树D.该二叉树有 64 个叶子节点26.有以下程序: #include stdio.h main() char a 44=“; int i,j; for(i=0;i4; i+) ai0=ai3=“#“
12、; for(j=1; j3; j+) a0j=a 3j=“#“; if(i!=0) for(i=1;i3;i+) for(j=0; j4;j+) printf(“%2c“ ,aij); printf(“/n“); 程序的运行结果是_。(分数:1.00)A.#o o#o o#B.# # # # o o #C.# o o # # # #D.# # # # # # #27.以下选项中可用作 C 程序合法实数的是_。(分数:1.00)A.3.0e0.2B1e0CE9D.9.12E28.当执行下面的程序时,如果输入 ABC,则输出结果是_。 #include “stdio.h“ #include “st
13、ring.h“ main() char ss10=“12345“; gets(ss);strcat(ss,“6789“); printf(“%s/n“,ss); (分数:1.00)A.ABC6789B.ABC67C.12345ABC6D.ABC45678929.结构化程序设计的基本原则不包括_。(分数:2.50)A.多态性B.自顶向下C.模块化D.逐步求精30.以下叙述中错误的是_。(分数:2.00)A.C 语句必须以分号结束B.复合语句在语法上被看做一条语句C.空语句出现在任何位置都不会影响程序运行D.赋值表达式末尾加分号就构成赋值语句31.有以下程序 #include stdio.h ma
14、in() int a=5,b=1,t; t=(a2)|b; printf(“%d/n“,t); 程序运行后的输出结果是_。(分数:1.00)A.6B.11C.21D.132.下列叙述中错误的是_。(分数:2.00)A.C 程序可以由多个程序文件组成B.一个 C 语言程序只能实现一种算法C.C 程序可以由一个或多个函数组成D.一个 C 函数可以单独作为一个 C 程序文件存在33.以下定义数组的语句中错误的是_。(分数:1.00)A.int num3=1,2,3,4,5,6;B.int num24=1,2,3,4,5,6;C.int num=1,2,3,4,5,6;D.int num4=1,2,3
15、,4,5,6;34.函数调用语句:fun(exp1, exp2), (exp1, exp2, exp3);含有的实参个数是_。(分数:1.00)A.1B.4C.5D.235.设有以下定义: char s1=“0123“; char s2= “0“,“1“,“2“,“3“; 则以下叙述正确的是_。(分数:1.00)A.数组 s1 的长度小于 s2 的长度B.数组 s1 和 s2 的长度相同C.数组 s1 的长度大于 s2 的长度D.数组 s1 和 s2 完全等价36.有以下程序(strcpy 为字符串复制函数,strcat 为字符串连接函数): #includestdio.h #includes
16、tring.h main() char a10=“abc“,b10=“012“,c10=“xyz“; strcpy(a+1,b+2); puts(strcat(a,c+1); 程序运行后的输出结果是_。(分数:1.00)A.a12xyzB.bc2yzC.a2yzD.12yz37.有以下程序,程序中库函数“islower (ch)”用以判断 ch 中的字母是否为小写字母 #include stdio.h #include ctype.h void fun(char *P) int i=0; while(pi) if(pi=“ i+; main() char s1100=“ab cd EFG!“;
17、 fun(s1); printf(“%s/n“,s1); 程序运行后的输出结果是_。(分数:1.00)A.ab cd EFG !B.Ab Cd EFg !C.aB cD EFG !D.ab cd EFg !38.以下叙述中错误的是_。(分数:2.00)A.C 语言中的每条可执行语句和非执行语句最终都将被转换成二进制的机器指令B.C 程序经过编译、连接步骤之后才能形成一个真正可执行的二进制机器指令文件C.用 C 语言编写的程序称为源程序,它以 ASCII 代码形式存放在一个文本文件中D.C 语言源程序经编译后生成后缀为.obj 的目标程序39.下面程序段的运行结果是( )。 char a=“ab
18、cdefgh“; char *p=a; p+=3; printf(“%d/n“,strlen(strcpy(p,“ABCD“);(分数:1.00)A.8B.12C.4D.740.当变量 c 的值不为 2、4、6 时,值也为“真”的表达式是_。(分数:2.50)A.(c=2)|(c=4)|(c=6)B.(c=2 p=s; 则执行 p=s;语句后,以下叙述正确的是_。(分数:2.00)A.可以用*p 表示 s0 B.s 数组中元素的个数和 p 所指字符串长度相等C.s 和 p 都是指针变量D.数组 s 中的内容和指针变量 p 中的内容相同解析:解析 本题主要考查的是字符数组、字符串和字符指针的一些
19、概念。数组元素个数,是在定义数组的时候确定的,本题的 s 数组元素个数是 20。而字符串长度,是从该字符串的第 1 个字符开始,一直到/0 字符为止,所历经的字符个数,/0 不算在内。所以本题 p 所指字符串(“Beijing“)的长度为 7。因此选项 B 的叙述不正确。s 是数组名,而不是指针变量,因此选项 C 不正确。数组 s 中除了包含字符串“Beijing”外,还包含其后的 20 个以内字节的内容,而指针变量 p 中包含的只是数组 s 的首地址。因此选项 D 的说法也不正确。2.设有下列程序段: char str=“HelloWorld“; char*ptr; ptr=str; 执行上
20、面的程序段后,*(ptr+10)的值为_。(分数:2.50)A.“/0“ B.“0“C.不确定的值D.“0“的地址解析:解析 本题主要考查字符数组和指针,在 C 语言中,字符型数组在存放字符串时会自动在末尾加上“/0“,所以数组 str 有 11 个元素;ptr 指向数组 str 的首地址,ptr+10 是指向 str10,*(ptr+10)是引用 str10的值。3.构成计算机软件的是_。(分数:1.00)A.源代码B.程序和数据C.程序和文档D.程序、数据及相关文档 解析:解析 软件指的是计算机系统中与硬件相互依赖的另一部分,包括程序、数据和有关的文档,选D 选项。4.以下程序中给数组所有
21、元素输入数据,请从选项中选择正确的答案填入下划线处。 #include stdio.h main() int a10,i=0; while(i10)scanf(“%d“, _ ); (分数:1.00)A.a+(i+) B. switch(x) case 0: b+; case 1: a+; case 2: a+; b+; printf(“a=%d, b=%d/n“, a, b); 该程序的输出结果是_。(分数:2.50)A.a=2,b=1 B.a=1,b=1C.a=1,b=0D.a=2,b=2解析:解析 当 x 为 1 时,执行 case 1,a 自加等于 1,因为 case 1 后没有 br
22、eak,接着执行 case 2,此时 a 的值为 2,b 自加为 1,故选择 A 选项。7.某带链栈的初始状态为 top=bottom=NULL,经过一系列正常的入栈与退栈操作后,top=bottom=20。该栈中的元素个数为_。(分数:1.00)A.1 B.0C.20D.不确定解析:解析 带链的栈是具有栈属性的链表。线性链表的存储单元是不连续的,为把存储空间中一些离散的空闲存储结点利用起来,把所有空闲的结点组织成一个带链的栈,称为可利用栈。线性链表执行删除操作运算时,被删除的结点可以“回收”到可利用栈,对应于可利用栈的入栈运算,线性链表执行插入运算时,需要一个新的结点,可以在可利用栈中取栈顶
23、结点,对应于可利用栈的退栈运算。可利用栈的入栈运算和退栈运算只需要改动 top 指针即可。当 top=bottom=20 时链栈中的元素个数为 1。故本题答案为 A选项。8.有以下程序: #includestdio.h main() int i,j,x=0; for(i=0;i2;i+) x+; for(j=0;j=3;j+) if(j%2)continue; x+; x+; printf(“x=%d/n“,x); 程序执行后的输出结果是_。(分数:1.00)A.x=4B.x=8 C.x=6D.x=12解析:解析 coutinue 的作用是跳出循环体中剩余的语句而进行下一次循环。第一次执行外循
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
5000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 职业资格 二级 语言 分类 模拟 538 答案 解析 DOC
