【计算机类职业资格】二级C语言分类模拟题510及答案解析.doc
《【计算机类职业资格】二级C语言分类模拟题510及答案解析.doc》由会员分享,可在线阅读,更多相关《【计算机类职业资格】二级C语言分类模拟题510及答案解析.doc(20页珍藏版)》请在麦多课文档分享上搜索。
1、二级 C语言分类模拟题 510及答案解析(总分:44.00,做题时间:90 分钟)一、选择题(总题数:35,分数:44.00)1.在一棵二叉树上,第 5层的结点数最多是_。(分数:2.50)A.8B.9C.15D.162.若有定义语句: char *s1=“OK“,*s2=“OK“; 以下选项中,能够输出“OK”的语句是_。(分数:1.00)A.if(strcmp(s1,s2)=0) puts(s1);B.if(strcmp(s1,s2)!=0) puts(s2);C.if(strcmp(s1,s2)=1) puts(s1);D.if(strcmp(s1,s2)!=0) puts(s1);3.
2、有以下函数: void fun(char *p, chat *q) while(*p+ =*q+) !=“/0“); 该函数的功能是_。(分数:1.00)A.计算字符串的长度B.计算字符串所占字节数C.将字符串逆序存放D.实现字符串的复制4.在 C语言中,函数的隐含存储类别是 ( )(分数:1.00)A.autoB.staticC.externD.无存储类别5.有以下程序(函数 fun只对下标为偶数的元素进行操作): # include stdio.h void fun(int*a,int n) int i,j,k,t; for(i=0;in-1;1+=2) k=i; for(j=i;jn;j
3、+=2) if(ajak)k=j; t=ai;ai=ak;ak=t; main() int aa10=1,2,3,4,5,6,7,a; fun(aa,7); for(i=0;i7;i+)printf(“%d,“,aai); printf(“/n“); 程序运行后的输出结果是_。(分数:1.00)A.7,2,5,4,3,6,1,B.1,6,3,4,5,2,7,C.7,6,5,4,3,2,1,D.1,7,3,5,6,2,1,6.有以下程序: #includestdio.h int fun(int x, int y) static int m=0,i=2; i+=m+1;m=i+x+y; retur
4、n m; void main() int j=1,m=1,k; k=fun(j,m); printf(“%d,“,k); k=fun(j,m); printf(“%d/n“,k); 程序运行后的输出结果是_。(分数:1.00)A.5,5B.5,11C.11,11D.11,57.有如下程序: #includestdio.h main() int a=0,b=1; if(a+ else printf(“F“); a=b+; printf(“a=%d,b=%d/n“,a,b); 程序运行后的输出结果是_。(分数:1.00)A.Fa=1,b=2B.Fa=1,b=1C.Ta=0,b=2D.Ta=0,b=
5、18.函数调用 strcat(strcpy(str1, str2), str3)的功能是_。(分数:2.50)A.将字符串 str1复制到字符串 str2中后再连接到字符串 str3之后B.将字符串 str1连接到字符串 str2之后再复制到字符串 str3之后C.将字符串 str2复制到字符串 str1之后再将字符串 str3连接到字符串 str1之后D.将字符串 str2连接到字符串 str1之后再将字符串 str1复制到字符串 str3中9.关系代数运算是以_为基础的运算。A.关系运算B.谓词运算C.集合运算D.代数运算10.有以下程序: #includestdio.h main() i
6、nt k=5; while(-k)printf(“%d“,k-=3); printf(“/n“); 程序执行后的输出结果是_。(分数:1.00)A.1B.2C.4D.死循环11.有以下程序: #include stdio.h main() int a=0,b=0,c=0,d=0; (+a+b)?+c : +d; printf(“%d,%d,%d,%d/n“,a,b,c,d); 程序的运行结果是_。(分数:1.00)A.1,0,1,0B.1,1,0,1C.1,0,0,1D.1,1,1,012.有以下程序: #includestdio.h main() struct STU char name9;
7、 char sex; double score2; ; struct STU a=“Zhao“,“m“,85.0,90.0,b=“Qian“,“f“,95.0,92.0; b=a; printf(“%s,%c,%2.0f,%2.0f/n“,b.name,b.sex,b.score0,b.score1); 程序的运行结果是_。(分数:2.00)A.Qian,m,85,90B.Zhao,m,85,90C.Zhao,f,95,92D.Qian,f,95,9213.下列对于线性链表的描述中正确的是 _。(分数:1.00)A.存储空间不一定是连续,且各元素的存储顺序是任意的B.存储空间不一定是连续,且前
8、件元素一定存储在后件元素的前面C.存储空间必须连续,且前件元素一定存储在后件元素的前面D.存储空间必须连续,且各元素的存储顺序是任意的14.有以下程序: #includestdio.h #define N 4 void fun(int aN,int b) int i; for(i=0;iN;i+)bi=aiN-1-i; main( ) int xNN=1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,yN,i; fun(x,y); for(i=0;iN;i+)printf(“%d,“,yi); printf(“/n“); 程序的运行结果是_。(分数:1.00)A.1
9、,2,3,4,B.3,6,9,12,C.4,7,10,13,D.1,5,9,13,15.若有如下定义: int x=6,y=3,z=2; 则表达式“x=y|yz struct node *next; *p; struct node x3=2,x+1,4,x+2,6,NULL; p=x; printf(“%d,“,p-n); printf(“%d/n“,p-next-n); 程序运行后的输出结果是_。(分数:1.00)A.2,3B.2,4C.3,4D.4,618.有以下程序: #includestdio.h main() int a=1,b=2; for(;a8;a+) b+=a; a+=2;
10、printf(“%d,%d/n“,a,b); 程序运行后的输出结果是_。(分数:2.50)A.9,18B.8,11C.7,11D.10,1419.结构化程序所要求的基本结构不包括_。(分数:1.00)A.顺序结构B.GOTO跳转C.选择(分支)结构D.重复(循环)结构20.能正确表示 a和 b同时为正或同时为负的表达式是_。(分数:1.00)A.(a=0|b=0) else if(k=1)return 1; else return fun(k-1)+1; 若执行调用语句:n=fun(3);,则函数 fun总共被调用的次数是_。(分数:2.00)A.3B.2C.4D.522.有以下等程序 #in
11、clude string. h void f(char *s, char *t) char k; k=*s; *s=*t; *t=k; s+; t-; if(*s) f(s, t); main () char stt10 =“abcdefg“, *p; p=str+strlen (str)/2+1; f (p,p-2); print f ( “%s/n“, str); (分数:1.00)A.abcdefgB.gfedcbaC.gbcdefaD.abedcfg23.有以下程序: #includestdio.h main() char x=“A“; x=(x=“A“ printf(“%c/n“,
12、x); 程序的输出结果是(分数:2.00)AABaCZDz24.设有以下 3个关系表,如表 1表 3所示。 表 1 关系表一 R A B C 1 1 2 2 2 3 表 2 关系表二 S A B C 3 1 3 表 3 关系表三 T A B C 1 1 2 2 2 3 3 1 3 下列操作中正确的是_。(分数:1.00)A.T=RSB.T=RSC.T=RSD.T=R/S25.有下列程序: #includestdio.h void fun(int a,int n,int flag) int i=0,j,t; for(i=0;in-1;i+) for(j=i+1;jn;j+) if(flag?(a
13、iaj):(aiaj) t=ai;ai=aj;aj=t; main() int c10=7,9,10,8,3,5,1,6,2,4,i; fun(c,10,1); fun(c,8,0); for(i=0;i10;i+) printf(“%d,“,ci); 程序执行后的输出结果是_。(分数:1.00)A.8,7,6,5,4,3,2,1,9,10,B.3,4,5,6,7,8,9,10,2,1,C.9,10,1,2,3,4,5,6,7,8,D.10,9,8,7,6,5,4,3,1,2,26.以下 if语句书写正确的是_。 A B C D (分数:2.00)A.B.C.D.27.有如下程序: #incl
14、ude stdio.h int sum(int a,int b) return a+b-2; main() int i; for(i=0; i5; i+) printf(“%d“,sum(i,3); printf(“/n“); 程序运行后的输出结果是_。(分数:1.00)A.54321B.01234C.45678D.1234528.有如下程序: #includestdio.h struct pair int first,second; ; struct pair get_min_max(int*array,int len) int i; struct pair res; res.first=a
15、rray0; res.second=array0; for(i=1;ilen;i+) if(arrayires.first) res.first=arrayi; if(arrayires.second) res.second=arrayi; return res; main() int array5=9,1,3,4; struet pair min_max=get_min_max(array,5) printf(“min=%d,max=%din“,min_max.first,min_max.second); 程序运行后的输出结果是_。(分数:1.00)A.min=1,max=9B.min=0,
16、max=9C.min=1,max=4D.min=0,max=429.设循环队列为 Q(1:m),其初始状态为 front=rear=m。经过一系列入队与退队运算后,front=20,rear=15。现要在该循环队列中寻找最小值的元素,最坏情况下需要比较的次数为_。(分数:1.00)A.5B.6C.m-5D.m-630.下列叙述中错误的是_。(分数:1.00)A.在带链队列中,队头指针和队尾指针都是在动态变化的B.在带链栈中,栈顶指针和栈底指针都是在动态变化的C.在带链栈中,栈顶指针是在动态变化的,但栈底指针是不变的D.在带链队列中,队头指针和队尾指针可以指向同一个位置31.软件测试的目的是_。
17、(分数:1.00)A.评估软件可靠性B.发现并改正程序中的错误C.改正程序中的错误D.发现程序中的错误32.设有如下函数定义: #includestdio.h int fun(int k) if(k1)return 0; else if(k=1)return 1; else return fun(k-1)+1; 若执行调用语句“n=fun(3);”,则函数 fun总共被调用的次数是_。(分数:1.00)A.2B.3C.4D.533.若有定义:“int *p, x=0, *p, p=”,则语句“printf(“%d/n“, *p);”的输出结果是_。(分数:2.50)A.随机值B.0C.x的地址
18、D.p的地址34.有如下程序: #include stdio.h void convert(char ch) if(eh“X“) convert(ch+1); printf(“%c“, ch); main( ) convert(“W“); printf(“/n“); 程序运行后的输出结果是_。(分数:1.00)A.YZB.VWC.XYD.XW35.以下叙述中错误的是_。(分数:1.00)A.数值型常量有正值和负值的区分B.常量可以用一个符号名来代表C.定义符号常量必须用类型名来设定常量的类型D.常量是在程序运行过程中值不能被改变的量二级 C语言分类模拟题 510答案解析(总分:44.00,做题
19、时间:90 分钟)一、选择题(总题数:35,分数:44.00)1.在一棵二叉树上,第 5层的结点数最多是_。(分数:2.50)A.8B.9C.15D.16 解析:解析 根据二叉树的性质:二叉树第 i(i1)层上至多有 2 i-1 个结点。得到第 5层的结点数最多是 16个。2.若有定义语句: char *s1=“OK“,*s2=“OK“; 以下选项中,能够输出“OK”的语句是_。(分数:1.00)A.if(strcmp(s1,s2)=0) puts(s1);B.if(strcmp(s1,s2)!=0) puts(s2);C.if(strcmp(s1,s2)=1) puts(s1);D.if(s
20、trcmp(s1,s2)!=0) puts(s1); 解析:解析 strcmp 函数比较字符串大小,区分大小写,所以当 s1、s2 不相等输出 s1就会输出“OK”,答案选择 D。3.有以下函数: void fun(char *p, chat *q) while(*p+ =*q+) !=“/0“); 该函数的功能是_。(分数:1.00)A.计算字符串的长度B.计算字符串所占字节数C.将字符串逆序存放D.实现字符串的复制 解析:解析 函数 fun()定义两个形参指针变量 p,q,while 循环语句中,实现功能是把 q指针指向地址单元的值赋给 p指针指向的地址中,且每次完成赋值后,移动指针,进行
21、下一次赋值,直到 q指针指向字符串结束符时,退出 while循环,因此答案为 D选项。4.在 C语言中,函数的隐含存储类别是 ( )(分数:1.00)A.auto B.staticC.externD.无存储类别解析:5.有以下程序(函数 fun只对下标为偶数的元素进行操作): # include stdio.h void fun(int*a,int n) int i,j,k,t; for(i=0;in-1;1+=2) k=i; for(j=i;jn;j+=2) if(ajak)k=j; t=ai;ai=ak;ak=t; main() int aa10=1,2,3,4,5,6,7,a; fun(
22、aa,7); for(i=0;i7;i+)printf(“%d,“,aai); printf(“/n“); 程序运行后的输出结果是_。(分数:1.00)A.7,2,5,4,3,6,1, B.1,6,3,4,5,2,7,C.7,6,5,4,3,2,1,D.1,7,3,5,6,2,1,解析:解析 对下标为偶数的元素进行降序排序,下标为奇数的元素保持不变。6.有以下程序: #includestdio.h int fun(int x, int y) static int m=0,i=2; i+=m+1;m=i+x+y; return m; void main() int j=1,m=1,k; k=fu
23、n(j,m); printf(“%d,“,k); k=fun(j,m); printf(“%d/n“,k); 程序运行后的输出结果是_。(分数:1.00)A.5,5B.5,11 C.11,11D.11,5解析:解析 fun()函数中定义两个静态局部变量 m、i,其中 m初值为 0,i 初值为 2,由于是静态局部变量,m、i 只在第一次调用 fun()函数时初始化,后续调用 fun()函数时,m、i 的值沿用上一次调用后的值。main()函数中 j、m、k 都是局部变量,作用域都只限在 main()函数中,所以 main()函数中的 m与fun()函数中的 m属于不同的变量。由源程序可知 mai
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
5000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 职业资格 二级 语言 分类 模拟 510 答案 解析 DOC
