【计算机类职业资格】二级C语言真题(2)及答案解析.doc
《【计算机类职业资格】二级C语言真题(2)及答案解析.doc》由会员分享,可在线阅读,更多相关《【计算机类职业资格】二级C语言真题(2)及答案解析.doc(25页珍藏版)》请在麦多课文档分享上搜索。
1、二级 C 语言真题(2)及答案解析(总分:100.00,做题时间:90 分钟)一、选择题(总题数:40,分数:40.00)1.下列叙述中正确的是_。(分数:1.00)A.一个算法的空间复杂度大,则其时间复杂度也必定大B.一个算法的空间复杂度大,则其时间复杂度必定小C.一个算法的时间复杂度大,则其空间复杂度必定小D.算法的时间复杂度与空间复杂度没有直接关系2.下列叙述中正确的是_。(分数:1.00)A.循环队列中的元素个数随队头指针与队尾指针的变化而动态变化B.循环队列中的元素个数随队头指针的变化而动态变化C.循环队列中的元素个数随队尾指针的变化而动态变化D.以上说法都不对3.一棵二叉树中共有
2、80 个叶子节点与 70 个度为 1 的节点,则该二叉树中的总节点数为_。(分数:1.00)A.219B.229C.230D.2314.对长度为 10 的线性表进行冒泡排序,最坏情况下需要比较的次数为_。(分数:1.00)A.9B.10C.45D.905.构成计算机软件的是_。(分数:1.00)A.源代码B.程序和数据C.程序和文档D.程序、数据及相关文档6.软件生命周期可分为定义阶段、开发阶段和维护阶段,下面不属于开发阶段任务的是_。(分数:1.00)A.测试B.设计C.可行性研究D.实现7.下面不能作为结构化方法软件需求分析工具的是_。(分数:1.00)A.系统结构图B.数据字典(DD)C
3、.数据流程图(DFD 图)D.判定表8.在关系模型中,每一个二维表称为一个_。(分数:1.00)A.关系B.属性C.元组D.主码(键)9.若实体 A 和 B 是一对多的联系,实体 B 和 C 是一对一的联系,则实体 A 和 C 的联系是_。(分数:1.00)A.一对一B.一对多C.多对一D.多对多10.有三个关系 R、S 和 T 如下: R A B C a 1 2 b 2 1 C 3 1 S A B C d 3 2 c 3 1 T A B C a 1 2 b 2 1 c 3 1 d 3 2 则由关系 R 和 S 得到关系 T 的操作是_。(分数:1.00)A.选择B.投影C.交D.并11.以下
4、叙述中正确的是_。(分数:1.00)A.C 语言程序所调用的函数必须放在 main 函数的前面B.C 语言程序总是从最前面的函数开始执行C.C 语言程序中 main 函数必须放在程序的开始位置D.C 语言程序总是从 main 函数开始执行12.C 语言程序中,运算对象必须是整型数的运算符是_。(分数:1.00)A. sum=pad=5; pAd=+ +sum, pAd+, + +pad; printf(“%d/n“,pad); 程序的输出结果是_。(分数:1.00)A.5B.6C.7D.814.有以下程序: #include stdio.h main( ) int a=3; a+=a-=a*a
5、; printf(“%d/n“,a); 程序的输出结果是_。(分数:1.00)A.0B.9C.3D.-1215.sizeof(double)是一个_。(分数:1.00)A.整型表达式B.双精度型表达式C.不合法的表达式D.函数调用16.有以下程序: #include stdio.h main( ) int a=2, C=5; printf(“a=%d,b=%d/n“,a,c); 程序的输出结果是_。(分数:1.00)A.a=2,b=5B.a=%2,b=%5C.a=%d,b=%dD.a=%d,b=%d17.若有定义语句: char a=“/82“; 则变量 a_。(分数:1.00)A.说明不合法
6、B.包含 1 个字符C.包含 2 个字符D.包含 3 个字符18.有以下程序: #include stdio.h main( ) char c1=“A“,c2=“Y“; printf(“%d, %d/n“,c1,c2); 程序的输出结果是_。(分数:1.00)A.输出格式不合法,输出出错信息B.65,89C.65,90D.A,Y19.若变量已正确定义 for(x=0,y=0;(y!=99 x+) 则以上 for 循环执行_。(分数:1.00)A.3 次B.4 次C.无限次D.次数不定20.对于 while(!E) s;,若要执行循环体 s,则 E 的取值应为_。(分数:1.00)A.E 等于
7、1B.E 不等于 0C.E 不等于 1D.E 等于 021.有以下程序: #include stdio.h main( ) mt x; for(x=3;x6;x+ +) printf(x%2)?(“*%d“) :(“#%d“),x); printf(“/n“); 程序的输出结果是_。(分数:1.00)A.*3#4*5B.#3*4#5C.*3*4#5D.*3#4#522.有以下程序: #include stdio.h main( ) int a,b; for(a=1,b=1;a=100;a+ +) if(b=20) break; if(b%3= =1) b=b+3; continue; b=b-
8、5; printf(“%d/n“,a); 程序的输出结果是_。(分数:1.00)A.10B.9C.8D.723.有以下程序: #include stdio.h void fun(int x,int y,int *c, int * d) *c=x+y; *d=x-y; main( ) int a=4,b=3,c=0,d=0; fun(a,b, printf(“%d%d/n“,c,d); 程序的输出结果是_。(分数:1.00)A.0 0B.4 3C.3 4D.7 124.有以下程序: #include stdio.h void fun(int *p, int *q) int t; t=* p; *
9、p=*q; *q=t; *q=*p; main( ) int a=0,b=9; fun( printf(“%d%d/n“,a,b); 程序的输出结果是_。(分数:1.00)A.9 0B.0 0C.9 9D.0 925.有以下程序: #include stdio.h main( ) int a=2,4,6,8,10,x, *p,y=1; P= for(x=0; x3; x+) y+=*(p+x); printf(“%d/n“,y); 程序的输出结果是_。(分数:1.00)A.13B.19C.11D.1526.有以下程序: #include stdio.h main( ) int i,x33=1,
10、2,3,4,5,6,7,8,9; for(i=0;i3;i+) printf(“%d“, xi2-i); printf(“/n“); 程序的输出结果是_。(分数:1.00)A.1 5 0B.3 5 7C.1 4 7D.3 6 927.设有某函数的说明为 int * func(int a10,int n); 则下列叙述中,正确的是_。(分数:1.00)A.形参 a 对应的实参只能是数组名B.说明中的 a10写成 a或*a 效果完全一样C.func 的函数体中不能对 a 进行移动指针(如 a+)的操作D.只有指向 10 个整数内存单元的指针,才能作为实参传给 a28.有以下程序: #include
11、 stdio.h char fun(char *c) if(*c=“Z“ return *c; main( ) char s81, *p=s; gets(s); while(*p) *p=fun(p); putchar(*p); p+; printf(“/n“); 若运行时从键盘上输入 OPEN THE DOOR回车,则程序的输出结果是_。(分数:1.00)A.OPEN THE DOORB.oPEN tHE dOORC.open the doorD.Open The Door29.设有定义语句: char *aa2=“abcd“,“ABCD“; 则以下叙述正确的是_。(分数:1.00)A.aa
12、0存放了字符串“abcd“的首地址B.aa 数组的两个元素只能存放含有 4 个字符的一维数组的首地址C.aa 数组的值分别是字符串“abcd”和“ABCD”D.aa 是指针变量,它指向含有两个元素的字符型数组30.有以下程序: #include stdio.h int fun(char * s) char * p=s; while(*p!=0) p+; return(p-s); main( ) printf(“%d/n“,fun(“goodbey!“); 程序的输出结果是_。(分数:1.00)A.0B.6C.7D.831.有以下程序: #include stdio.h int fun(int
13、n) int a; if(n= =1)return 1; a=n+fun(n-1); return(a); main( ) printf(“%d/n“,fun(5); 程序的输出结果是_。(分数:1.00)A.9B.14C.10D.1532.有以下程序: #include stdio.h int d=1; void fun(int p) int d=5; d+=p+; printf(“%d“,d); main( ) int a=3; fun(a); d+=a+; printf(“%d/n“,d); 程序的输出结果是_。(分数:1.00)A.8 4B.9 6C.9 4D.8 533.有以下程序:
14、 #include stdio.h int fun(intA) int b=0; static int c=3; a=(c+,b+); return(a); main( ) int a=2,i,k; for(i=0;i2;i+) k=fun(a+); printf(“%d/n“,k); 程序的输出结果是_。(分数:1.00)A.4B.0C.1D.234.有以下程序: #include stdio.h main( ) char c25=“6934“,“8254“,*p2; int i,j,s=0; for(i=0;i2;i+)pi=ci; for(i=0;i2;i+) for(j=0;pij0
15、j+=2) s=10*s+pij-“0“; printf(“%d/n“,s); 程序的输出结果是_。(分数:1.00)A.693825B.69825C.63825D.638535.有以下程序: #include stdio.h #define SQR(X) X*X main( ) int a=10,k=2,m=1; a/=SQR(k+m)/SQR(k+m); printf(“%d/n“,a); 程序的输出结果是_。(分数:1.00)A.0B.1C.9D.1036.有以下程序: #include stdio.h main( ) char x=2,y=2,z; z=(y1) printf(“%d/
16、n“,z); 程序的输出结果是_。(分数:1.00)A.1B.0C.4D.837.有以下程序: #include stdio.h struct S int a;int b; main( ) struct S a, *p= a.a=99; printf(“%d/n“,_); 程序要求输出结构体中成员 a 的数据,以下不能填入横线处的内容是_。(分数:1.00)A.a.aB.*p.aC.p-aD.(*p).a38.有以下程序: #include stdio.h #include stdlib.h void fun(double *p1,double *p2,double *s) s=(double
17、 *)calloc(1,sizeof(double); *s=*p1+*(p2+1); main( ) double a2=1.1,2.2,b2=10.0,20.0,*s=a; fun(a,b,s); printf(“%5.2f/n“, *s); 程序的输出结果是_。(分数:1.00)A.21.10B.11.10C.12.10D.1.1039.若已建立以下链表结构,指针 p、s 分别指向如下图所示的节点: (分数:1.00)A.p=p-next; s-next=p;p-next=s;B.s-next=“/0“;p=p-next;p-next=s;C.p=p-next;s-next=p-next
18、;p-next=s;D.p=(*p).next;(*s).next=(*p).next;(*p).next=s;40.若 fp 已定义为指向某文件的指针,且没有读到该文件的末尾,则 C 语言函数 feof(fp)的函数返回值是_。(分数:1.00)A.EOFB.非 0C.-1D.0二、程序填空题(总题数:1,分数:18.00)41.下列给定程序中,函数 fun 的功能是:在形参 ss 所指字符串数组中查找与形参 t 所指字符串相同的串,找到后返回该串在字符串数组中的位置(即下标值),若未找到则返回-1。ss 所指字符串数组中共有 N 个内容不同的字符串,且串长小于 M。 请在下画线处填入正确的
19、内容并将下画线删除,使程序得出正确的结果。 注意:部分源程序在文件 BLANK1.C 中。 不得增行或删行,也不得更改程序的结构! #nclude stdio.h #include string.h #define N 5 #define M 8 int fun(char(*ss)M,char*t) int i; /* * * * * * * * * *found* * * * * * * * * * for(i=0;i 1;i+) /* * * * * * * * * *found* * * * * * * * * * if(strcmp(ssi,t)=0) return 2; return
20、-1; main( ) char chNM=“if“,“while“,“switch“,“int“,“for“,tM; int n,i; printf(“/nThe original string/n/n“); for(i=0;iN;i+ +) puts(chi); printf(“/n“); printf(“/nEnter a string for search:“);gets(t); n=fun(ch,t); /* * * * * * * * * *found* * * * * * * * * * if(n= 3)printf(“/nDon“t found!/n“); else print
21、f(“/nThe position is %d./n“.n); (分数:18.00)三、程序修改题(总题数:1,分数:18.00)42.下列给定程序中函数 fun 的功能是:从整数 10 到 55 之间,查找能被 3 整除且有一位上的数值是 5 的数,把这些数放在 b 所指的数组中,这些数的个数作为函数值返回。规定函数中 a1 存放个位数,a2 存放十位数。 请改正程序中的错误,使它能得出正确的结果。 注意:部分源程序在文件 MODI1.C 中,不得增行或删行,也不得更改程序的结构! # include stdio.h int fun(int * b) int k,a1,a2,i=0; for
22、(k=10;k=55;k+) /* * * * * * * * * * * *found* * * * * * * * * * * * a2=k/1o“ a1=k-a2*10; if(k%3=0i+; /* * * * * * * * * * * *found* * * * * * * * * * * * return k; main( ) int a100,k,m; m=fun(a); printf(“The result is:/n“); for(k=0;km;k+) printf(“%4d“,ak); printf(“/n“); (分数:18.00)四、程序设计题(总题数:1,分数:24
23、.00)43.规定输入的字符串中只包含字母和*号。请编写函数 fun,其功能是:将字符串尾部的*号全部删除,前面和中间的*号不动。 例如,字符串中的内容为:“* * * *A*BC*DEF*G* * * * * * *”,删除后,字符串中的内容应当是:“* * * *A*BC*DEF*G”。在编写函数时,不得使用 C 语言提供的字符串函数。 注意:部分源程序在文件 PROG1.C 中。 请勿改动主函数 main 和其他函数中的任何内容,仅在函数 fun 的花括号中填入你编写的若干语句。 #include stdio.h void fun(char *a) main( ) char s81;vo
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
5000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 职业资格 二级 语言 答案 解析 DOC
