【计算机类职业资格】二级C语言-23及答案解析.doc
《【计算机类职业资格】二级C语言-23及答案解析.doc》由会员分享,可在线阅读,更多相关《【计算机类职业资格】二级C语言-23及答案解析.doc(27页珍藏版)》请在麦多课文档分享上搜索。
1、二级 C 语言-23 及答案解析(总分:74.00,做题时间:90 分钟)一、B选择题/B(总题数:35,分数:43.00)1.以下数据结构中不属于线性数据结构的是_。 A. 队列 B. 线性表 C. 二叉树 D. 栈(分数:2.00)A.B.C.D.2.有以下程序# define f(x) (x*x)main() int i1, i2;i1=f(8)/f(4); i2=f(4+4)/f(2+2);printf(“%d, %d/n“,i1,i2);程序运行后的输出结果是_。 A. 64, 28 B. 4, 4 C. 4, 3 D. 64, 64(分数:2.00)A.B.C.D.3.下列程序的运
2、行结果是( )。main() int x=1,y=3,a=0;while(x+!=(y-=1) a+=1;if(yx)break;printf(“%d,%d,%d/n“,x,y,a); A. 2,3,2 B. 2,3,1 C. 1,3,3 D. 3,1,2(分数:1.00)A.B.C.D.4.有以下程序:#include stdio.hint f(int n) if(n=1) return 1; else return f(n-1) +1; main() inti, j=0; for(i=1; i3; i+) j+=f(i); print(“%d/n“, j); 程序运行后的输出结果是( )。
3、 A. 4 B. 3 C. 2 D. 1(分数:1.00)A.B.C.D.5.a、b 和 c 都是 int 型变量,且 a3,b4,c5,则下面的表达式中,值为 0 的表达式是 ( ) A.aprintf(“%o %o/n“, m,n);程序运行后的输出结果是_。 A. 0256 0400 B. 0256 256 C. 256 400 D. 400 400(分数:1.00)A.B.C.D.7.阅读以下程序#includestdio.hmain() int case; float printF;printf(“请输入 2 个数:“);scanf(“%d %f“, printf(“%d %f/n“
4、, case, printF);该程序编译时产生错误,其出错原因是 A. 定义语句出错,case 是关键字,不能用作用户自定义标识符 B. 定义语句出错,printF 不能用作用户自定义标识符 C. 定义语句无错,scanf 不能作为输入函数使用 D. 定义语句无错,printf 不能输出 case 的值(分数:1.00)A.B.C.D.8.已知下面的程序段,正确的判断是_。#define A3#define B(A) (A+1)*a)int a=3;X=3*(A+B(7); A. 程序错误,不允许嵌套定义 B. X=93 C. )X=81 D. 程序错误,宏定义不允许有参数A.B.C.D.9
5、.下面程序的运行结果是#includestdio.hmainU /U int a=1,b=10;dob-=a;a+;while(b-0);printf(“a=%d,b=%d/n“,a,b); A. a=3,b=11 B. a=2,b=8 C. a=1,b=-1 D. a=4,b=9(分数:2.00)A.B.C.D.10.关系表中的每一横行称为一个( )。 A. 元组 B. 字段 C. 属性 D. 码(分数:1.00)A.B.C.D.11.若有说明:int*p1,*p2,n=8,m;下列均是正确赋值语句的选项是U /U。 A. p1=p2=p1;(分数:1.00)A.B.C.D.12.对长度为
6、4 的顺序表进行查找,若第一个元素的概率为 1/8,第二个元素的概率为 1/4,第三个元素的概率 3/8,第四个元素的概率为 1/4,则查找任一元素的平均查找长度为_。 A. 11/8 B. 7/4 C. 9/4 D. 11/4(分数:1.00)A.B.C.D.13.规范化理论中,分解_主要是消除其中多余的数据相关性。 A. 关系运算 B. 内模式 C. 外模式 D. 视图(分数:1.00)A.B.C.D.14.有定义语句:int a=1,b=2,c=3,x;,则以下选项中各程序段执行后,x 的值不为 3 的是 A. if (ca) x=1; else if (ba) x=2; else x=
7、3; B. if (a3) x=3; else if (ba) x=2; else x=1; C. if (a D. if (ab) x=b; if (bc) x=c; if (ca) x=a;(分数:1.00)A.B.C.D.15.以下选项中可作为 C 语言合法常量的是_。 A. -80. B. -080 C. -8e1.0 D. -80.0e(分数:1.00)A.B.C.D.16.以下叙述中正确的是U /U。 A. 构成 C 程序的基本单位是函数 B. 可以在一个函数中定义另一个函数 C. main 函数必须放在其他函数之前 D. C 函数定义的格式是 K B. char a = 0,1,
8、2,3,4,5; C. char a = A,B,C ; D. int a5 = “0123“;(分数:1.00)A.B.C.D.18.若有以下程序:#includestdio.hvoid f(int n);mainU /U void f(int n);f(5);void f(int n) printf(“%d/n“,n);则下列叙述中不正确的是 A. 若只在 main 中对函数 f 进行说明,则只能在 main 中正确调用函数 f B. 在 main 前对函数 f 进行说明,则在 main 和其后的其他函数中都可以正确调用函数 f C. 对于以上程序,编译时系统会提示出错信息:提示对 f 函
9、数重复说明 D. 函数 f 无返回值,所以可用 void 将其类型定义为无返回值型(分数:2.00)A.B.C.D.19.下列不正确的表达式是 U /U A. abc B. c-,+b,a+1 C. a=c+bn-mk D. p+(分数:1.00)A.B.C.D.20.以下程序运行后的输出结果是#includestdio.hint f(int n);main() int a=3, s;s=f(a); s=s+f(a); printf(“%d/n“, s);int f(int n) static int a=1;n+=a+;return n; A. 7 B. 8 C. 9 D. 10(分数:2.
10、00)A.B.C.D.21.对于长度为 n 的线性表,在最坏情况下,下列各排序法所对应的比较次数中正确的是U /U。 A. 冒泡排序为 n(n-1)/2 B. 简单插入排序为 n C. 希尔排序为 n D. 快速排序为 n/2(分数:2.00)A.B.C.D.22.以下对 C 语言函数的有关描述中,正确的是_。 A. 调用函数时,只能把实参的值传送给形参,形参的值不能传送给实参 B. 函数既可以嵌套定义,又可以递归调用 C. 函数必须有返回值,否则不能使用函数 D. 有调用关系的所有函数必须放在同一个源程序文件中(分数:1.00)A.B.C.D.23.下列程序的输出结果是 U /Umain()
11、 char ch 25“6934“,“8254“,*p2;int i,j,s0;for(i=0;i2;i+)pichi;for(i=0;i2;i+)for(j=0;pij/0a=d/10%9;b=aprintf(“%d,%d/n“,a,b);程序运行后的输出结果是_。 A. 6,1 B. 2,1 C. 6,0 D. 2,0(分数:1.00)A.B.C.D.27.在关系数据库中,对一个关系做投影操作后,新关系的元组个数将 U /U A. 等于原来关系中的元组个数 B. 大于原来关系中的元组个数 C. 小于原来关系中的元组个数 D. 不能确定元组个数(分数:1.00)A.B.C.D.28.如下程序
12、的输出结果是U /U。#includestdio.hmain() float x=20,y;if(x0.0)y=0.0;else if (x10.0)y=1.0/x;else y=110;printf(“%f,y); A. 0.000000 B. 0.250000 C. 0.500000 D. 1.000000(分数:1.00)A.B.C.D.29.已知字母 A 的 ASCII 代码值为 65,若变量 kk 为 char 型,下列不能正确判断出比中的值为大写字母的表达式是( )。 A. kk=A A. p+=2,*(p+) B. p+=2,*+p C. p+=3,*p+ D. p+=2,+*p
13、(分数:2.00)A.B.C.D.34.冒泡排序在最坏情况下的比较次数是_。 A. n(n+1)/2 B. nlog2n C. n(n-1)/2 D. n/2(分数:2.00)A.B.C.D.35.以下正确的程序段是 A. cgar str20; scanf(“s“, r=f(r,printf(“%d/n“,*r); int *f(int *p,int *q) return(*p*q)?p:q; 程序运行后的输出结果是_。(分数:4.00)填空项 1:_37.若有说明 char s1=“That girl“,s2=“is beautiful“;则使用函数 strcmp(s1,s2)g,结果是
14、1。(分数:2.00)填空项 1:_38.下面程序的运行结果是_ #indude stdio.h main() int Y,a; y=2, a=1; while(y-!=-1) doa*=y; a+; while(y-); printf(“%d, %d“, a, y);(分数:2.00)填空项 1:_39.在面向对象方法中,类之间共享属性和操作的机制称为U U /U /U。(分数:2.00)填空项 1:_40.fun 函数的功能是:首先对 a 所指的 N 行 N 列的矩阵,找出各行中的最大的数,再求这 N 个最大值中的最小的那个数作为函数值返回。请填空。 #includestdioh #def
15、ine N 100 int fun(int(*a)N) int row,col,max,min; for(row=0;rowN;row+) for(max=arow0,col=1;colN;col+) if(U U /U /U)max=arowcol; if(row=0)min=max; else if(U U /U /U)min=max; return min; (分数:1.00)填空项 1:_41.若整型变量 a 和 b 中的值分别为 7 和 9,要求按以下格式输出 a 和 b 的值: a=7 b=9 请完成输出语句:printf(“U U /U /U“,a,b);。(分数:2.00)填空
16、项 1:_42.x、y、x 均为 int 型变量,描述“x、y 和 z 中至少有两个为正数”的表达式是 1。(分数:2.00)填空项 1:_43.以下程序的作用是:从名为 fileadat 的文本文件中逐个读入字符并显示在屏幕上。请填空。 #include stdioh main() FILE *fp; char ch; fp=fopen(U U /U /U); ch=fsetc(fp); while(! feof (fp) putchar(ch); ch=fgetc(fp); putchar(/n); fclose(fp);(分数:2.00)填空项 1:_44.一个类可以从直接或间接的祖先中
17、继承所有属性和方法。采用这个方法提高了软件的 1。(分数:2.00)填空项 1:_45.在对文件进行操作的过程中,若要求文件的位置指针重新指向文件的开头,应当调用的函数是U U /U /U函数。(分数:2.00)填空项 1:_46.若有定义 float b15,*p=b;,且数组 b 的首地址为 200H,则 p+13 所指向的数组元素的地址为 1。(分数:2.00)填空项 1:_47.设 x、y、z 为整型变量,且 x=2,y=3,z=4,当执行以下语句后,x 的值是_。 x*=(y+)+(-z);(分数:1.00)填空项 1:_48.有以下程序: #include stdio.h main
18、() int a33=1,2,3,4,5,6,7,8,9; int b3=0,i; for(i=0;i3;i+) bi=ai2+a2i; for(i=0;i3;i+) printf(“%d“,bi); printf(“/n“); 程序运行后的输出结果是_。(分数:4.00)填空项 1:_49.以下程序的输出结果是_。 #include stdio.h void swap(int *a, int *b) int *t; t=a;a=b;b=t; main( ) int i=3,j=5,*p=i,*q=j; swap(p,q); printf(“%d %d/n“,*p,*q); (分数:2.00)
19、填空项 1:_50.函数 delete(s,i,n)是作用是从字符串 s 中删除从第 i 个字符开始的 n 个字符,请填空。 void delete(char s, int i,int n) int j,k,length=0; while(slength) U U /U /U;-i; j=i; if(U U /U /U) k=i+n; if(i+n=length) while(klength) sj+=sk+; sj/0; (分数:1.00)填空项 1:_二级 C 语言-23 答案解析(总分:74.00,做题时间:90 分钟)一、B选择题/B(总题数:35,分数:43.00)1.以下数据结构中
20、不属于线性数据结构的是_。 A. 队列 B. 线性表 C. 二叉树 D. 栈(分数:2.00)A.B.C. D.解析:2.有以下程序# define f(x) (x*x)main() int i1, i2;i1=f(8)/f(4); i2=f(4+4)/f(2+2);printf(“%d, %d/n“,i1,i2);程序运行后的输出结果是_。 A. 64, 28 B. 4, 4 C. 4, 3 D. 64, 64(分数:2.00)A.B.C. D.解析:3.下列程序的运行结果是( )。main() int x=1,y=3,a=0;while(x+!=(y-=1) a+=1;if(yx)brea
21、k;printf(“%d,%d,%d/n“,x,y,a); A. 2,3,2 B. 2,3,1 C. 1,3,3 D. 3,1,2(分数:1.00)A.B.C.D. 解析:解析 本题考查 while 循环。第一次循环,先拿 x 的值和(y-1)比较,此时 x=1,y-1-2,循环条件成立,比较完将 x 的值加 1,此时 x=2,进入循环,a-a+1=1,判断 if 语句的控制条件是否成立,yx不成立,接着执行下一次循环。第二欲循环,先拿 x 的值和(y-1)比较,此时 x-2,y-1=1,循环条件成立,比较完将 x 的值加 1,此时 x=3,进入循环,a=a+1=2,判断 if 语句的控制条件
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
5000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 职业资格 二级 语言 23 答案 解析 DOC
