【计算机类职业资格】计算机二级(C)10及答案解析.doc
《【计算机类职业资格】计算机二级(C)10及答案解析.doc》由会员分享,可在线阅读,更多相关《【计算机类职业资格】计算机二级(C)10及答案解析.doc(19页珍藏版)》请在麦多课文档分享上搜索。
1、计算机二级(C)10 及答案解析(总分:645.00,做题时间:120 分钟)一、选择题(1-10 题每题 2 分,11-50 题(总题数:40,分数:60.00)1.有以下程序: int f(int a) return a%2; main( ) int s8=1,3,5,2,4,6,i,d=0; for (i=0;f(si);i+) d+=si; printf(“%d/n“,d); 程序运行后的输出结果是( )。 (分数:1.50)A.9B.11C.19D.212.C 语言中,函数值类型的定义可以缺省,此时函数值的隐含类型是( )。(分数:1.50)A.voidB.intC.floatD.d
2、ouble3.有以下程序: prt(int *m,int n) int i; for(i=0;iA.1,2,3,4,5,B.2,3,4,5,6,C.3,4,5,6,7,D.2,3,4,5,1,4.有以下程序 main() int i,t3=9,8,7,6,5,4,3,2,1; for(i=0;iA.7 5 3B.3 5 7C.3 6 9D.7 5 15.有以下程序: main( ) int a=7,b=8,*p,*q,*r; p=q= r=p; p=q;q=r; printf(“%d,%d,%d,%d/n“,*p,*q,a,b); 程序运行后的输出结果是( )。 (分数:1.50)A.8,7,
3、8,7B.7,8,7,8C.8,7,7,8D.7,8,8,76.有以下程序 main( ) int k=4,n=0; for( ; nk ; ) n+; if(n%3!=0) continue; k-; printf(“%d,%d/n“,k,n); 程序运行后的输出结果是( )。 (分数:1.50)A.1,1B.2,2C.3,3D.4,47.有以下程序: #include string.h main( ) char str20=“Hello“,“Beijing“,*p=str; printf(“%d/n“,strlen(p+20); 程序运行后的输出结果是( )。 (分数:1.50)A.0B.
4、5C.7D.208.现有以下结构体说明和变量定义,如图所示,指针 p、q、r 分别指向一个链表中连续 的三个结点。 struct node char data; struct node *next; *p,*q,*r; (分数:1.50)A.q-next=r-next; p-next=r;r-next=q;B.p-next=r; q-next=r-next;r-next=q;C.q-next=r-next;r-next=q;p-next=r;D.r-next=q;p-next=r;q-next=r-next;9.有以下程序: void f(int *x,int *y) int t; t=*x;
5、*x=*y;*y=t; main() int a8=1,2,3,4,5,6,7,8,i,*p,*q; p=a;q= while(pA.8,2,3,4,5,6,7,1,B.5,6,7,8,1,2,3,4,C.1,2,3,4,5,6,7,8,D.8,7,6,5,4,3,2,1,10.以下四个程序中,完全正确的是_。 (分数:1.50)A.B.C.D.11.有以下程序 int fun(int n) if(n=1) return 1; else return(n+fun(n-1); main() int x; scanf(“%d“,x=fun(x);printf(“%d/n“,x); 执行程序时,给变
6、量 x 输入 10,程序的输出结果是_。 (分数:1.50)A.55B.54C.65D.4512.有以下程序: main( ) int aa44= 1,2,3,4,5,6,7,8,3,9,10,2,4,2,9,6 ; int i,s=0; for(i=0;i4;i+) s+=aai1; printf(“%d/n“,s); 程序运行后的输出结果是( )。 (分数:1.50)A.11B.19C.13D.2013.设有定义 int a=2,b=3,c=4;,则以下选项中值为 0 的表达式是_。 (分数:1.50)A.(!a=1) p-next=r;r-next=q;B.p-next=r; q-nex
7、t=r-next;r-next=q;C.q-next=r-next;r-next=q;p-next=r;D.r-next=q;p-next=r;q-next=r-next; 解析:选项 D 中首先将 q 赋给 r-next,也就是将结点 q 的地址存放在结点 r 的指针域中;接着将 r 赋给 p-next, 也就是将结点 r 的地址存放在结点 p 的指针域中,此时完成了 q 和 r 所指结点的交换。q-next=r-next 的目 的是想将 q 的指针域指向下一个结点的数据地址,但由于一开始执行了 r-next= q,即已将 r 的指针域中存 放了 q 结点的地址,所以再做操作“q-next=
8、r-next”就相当于将 q 指向了其本身,也就是和下一个结点断开了,所以选项 D 操作错误。9.有以下程序: void f(int *x,int *y) int t; t=*x;*x=*y;*y=t; main() int a8=1,2,3,4,5,6,7,8,i,*p,*q; p=a;q= while(pA.8,2,3,4,5,6,7,1,B.5,6,7,8,1,2,3,4,C.1,2,3,4,5,6,7,8,D.8,7,6,5,4,3,2,1, 解析:本程序中函数 f 的作用是交换指针变量 x 和 y 所指向的存储单元的值。10.以下四个程序中,完全正确的是_。 (分数:1.50)A.B
9、.C. D.解析:C 程序中注释用“/*”和“*/”括起来,它可以出现在程序中任何合适的地方。选项 A 中“main();” 是一个函数声明语句,下面的大括号及其内容作为一个语句块,应放在程序的大括号中,故选取项 A 错误; 选项 B 中的注释语句不正确,因为程序在编译时认别到两次“/*”作为注释的开始,但未识别到“*/”作 为注释的结束,故选项 B 错误;选项 D 的“include”前缺少“#”,故选项 D 错误。11.有以下程序 int fun(int n) if(n=1) return 1; else return(n+fun(n-1); main() int x; scanf(“%d
10、“,x=fun(x);printf(“%d/n“,x); 执行程序时,给变量 x 输入 10,程序的输出结果是_。 (分数:1.50)A.55 B.54C.65D.45解析:此题考核的知识点是函数的递归调用,即在调用一个函数的过程中又出现直接或间接地调用该函数 本身。函数调用中因为实参 x=10 不符合条件语句 n=1,所以执行 else 语句,调用 fun 函数。fun 函数共被 调用 8 次,即 fun(9)、fun(8)、fun(7)、fun(6)、fun(5)、fun(4) 、fun(3) 、fun(2),n=10+9+8+7+6+5+4+3+2+1=55,所以 x=55。12.有以下
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
5000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 职业资格 二级 C10 答案 解析 DOC
