【计算机类职业资格】二级C语言笔试-436及答案解析.doc
《【计算机类职业资格】二级C语言笔试-436及答案解析.doc》由会员分享,可在线阅读,更多相关《【计算机类职业资格】二级C语言笔试-436及答案解析.doc(33页珍藏版)》请在麦多课文档分享上搜索。
1、二级 C 语言笔试-436 及答案解析(总分:98.00,做题时间:90 分钟)一、选择题(总题数:40,分数:66.00)1.下列关于栈的描述正确的是 _。A) 在栈中只能插入元素而不能删除元素B) 在栈中只能删除元素而不能插人元素C) 栈是特殊的线性表,只能在一端插入或删除元素D) 栈是特殊的线性表,只能在一端插入元素,而在另一端删除元素(分数:2.00)A.B.C.D.2.下列关于栈的描述中错误的是( )。A) 栈是先进先出的线性表B) 栈只能顺序存储C) 栈具有记忆作用D) 对栈的插入与删除操作中,不需要改变栈底指针(分数:2.00)A.B.C.D.3.在设计程序时,应采纳的原则之一是
2、A) 不限制 goto 语句的使用 B) 减少或取消注解行C) 程序越短越好 D) 程序结构应有助于读者理解(分数:2.00)A.B.C.D.4.下列叙述中正确的是_。A) 顺序存储结构的存储一定是连续的,链式存储结构的存储空间不一定是连续的B) 顺序存储结构只针对线性结构,链式存储结构只针对非线性结构C) 顺序存储结构能存储有序表,链式存储结构不能存储有序表D) 链式存储结构比顺序存储结构节省存储空间(分数:2.00)A.B.C.D.5.下列排序方法中,最坏情况下比较次数最少的是( )。A冒泡排序 B简单选择排序C直接插入排序 D堆排序(分数:1.00)A.B.C.D.6.有下列二叉树,对此
3、二叉树前序遍历的结果为( )。(分数:2.00)A.B.C.D.7.软件是指_。A) 程序 B) 程序和文档C) 算法加数据结构D) 程序、数据与相关文档的完整集合(分数:2.00)A.B.C.D.8.软件调试的目的是_。(A) 发现错误(B) 改正错误(C) 改善软件的性能(D) 验证软件的正确性(分数:2.00)A.B.C.D.9.关于结构化程序设计原则和方法描述错误的是( )。A) 选用的结构只准许有一个入口和一个出口B) 复杂结构应该用嵌套的基本控制结构进行组合嵌套来实现C) 不允许使用 GOTO 语句D) 语言中所没有的控制结构,应该采用前后一致的方法来模拟(分数:1.00)A.B.
4、C.D.10.“商品”与“顾客”两个实体集之间的联系一般是_。A) 一对一 B) 一对多C) 多对一 D) 多对多(分数:2.00)A.B.C.D.11.有两个关系 R,S 如下:(分数:2.00)A.B.C.D.12.下列数据模型中,具有坚实理论基础的是A) 层次模型 B) 网状模型 C) 关系模型 D) 以上 3 个都是(分数:2.00)A.B.C.D.13.设有定义:int k=1,m=2; float f=7;则以下选项中错误的表达式是 _。A) k=k=k B) -k+ C) k% int(f) D) k=f=m(分数:2.00)A.B.C.D.14.请选出可用作 C 语言用户标识符
5、的是A) void,define,WORD B) a3_3,_123,IFC) FOR,-abc,Case D) 2a,Do,Sizeof(分数:1.00)A.B.C.D.15.阅读以下程序#includestdio.hmain()int case; float printF;printf(“请输入 2 个数:“);scanf(“%d %f“, printf(“%d %f/n“, case, printF);该程序编译时产生错误,其出错原因是A) 定义语句出错,case 是关键字,不能用作用户自定义标识符B) 定义语句出错,printF 不能用作用户自定义标识符C) 定义语句无错,scanf
6、不能作为输入函数使用D) 定义语句无错,printf 不能输出 case 的值(分数:1.00)A.B.C.D.16.下列不是合法的 C 语言语句是( )。A) a=5 B) int i;i+;C) ; D) ;(分数:2.00)A.B.C.D.17.语句“printf(“a/bhow/are/y/bou/n“);”的输出结果是( )。A) a/bhow/are/y/bou B) a/bhow/are/y/bouC) howareyou D) ahowarey/bou(分数:2.00)A.B.C.D.18.若变量 a 是 int 类型,并执行了语句:a=A+1.6;,则正确的叙述是A) a 的
7、值是字符 C B) a 的值是浮点型C) 不允许字符型和浮点型相加 D) a 的值是字符A的 ASCII 值加上 1(分数:1.00)A.B.C.D.19.有以下程序段int n,t=1,s=0;scanf(“%d“,n);do s=s+t; t=t-2; while (t!=n);为使此程序段不陷入死循环,从键盘输入的数据应该是_。(A) 任意正奇数(B) 任意负偶数(C) 任意正偶数(D) 任意负奇数(分数:1.00)A.B.C.D.20.设变量 x 为 float 型且已经赋值,则以下语句中能够将 x 中的数值保留到小数点后面两位,并将第三位四舍五入的是_。A) x=x*100+0.5/
8、100.0 B) x=(x*100+0.5)/100.0C) x=(int)(x*100+0.5)/100.0 D) x=(x/100+0.5)*100.0(分数:1.00)A.B.C.D.21.下列程序的输出结果是( )。#includestdio.hmain()int a=0,i;for(i=1;i5;i+)switch(i)case 0:case 3:a+=1;case 1:case2:a+=2;default:a+=3;printf(“%d“,a);A)19 B)18 C)6 D)8(分数:2.00)A.B.C.D.22.下列循环体的执行次数是( )。#includestdio.hma
9、in()int i,j;for(i=0 j=1;ij+1;i+=1,j-)printf(“%d/n“,j);A) 3 B) 2 C) 1 D) 0(分数:2.00)A.B.C.D.23.在 C 语言程序中,以下说法正确的是( )。 A) 函数的定义和函数的调用均不可以嵌套 B) 函数的定义不可嵌套,但函数的调用可以嵌套 C) 函数的定义可以嵌套,但函数的调用不可以嵌套 D) 函数的定义和函数的调用均可以嵌套(分数:2.00)A.B.C.D.24.有以下程序#includestdio.hvoid fun(int*a,int*B)int*c;c=a;a=b;b=c;main()int x=3, y
10、=5,*p=fun(p,q); printf(“%d,%d,“,*p,*q);fun( printf(“ %d,%d/n“,*p,*q);程序运行后的输出结果是_。A) 3,5,5,3 B) 3,5,3,5 C) 5,3,3,5 D) 5,3,5,3(分数:2.00)A.B.C.D.25.有以下程序main()int a=1,b=3,c=5;int *p1=a, *p2=b, *p=c;*p=*p1*(*p2);printf(“%d/n“, c);执行后的输出结果是_。(A) 1(B) 2(C) 3(D) 4(分数:2.00)A.B.C.D.26.有下列程序:main()int i,j,x=0
11、;for(i=0,i2;i+)x+:for(j=0;j=3;j+)if(j%2)continue;x+;x+;printf(“x=%d/n“,x);程序执行后的输出结果是( )。Ax=4 Bx=8 Cx=6 Dx=12(分数:1.00)A.B.C.D.27.若有以下说明和语句:int c4 5 ,( * p) 5;p=e;能够正确引用 c 数组元素的是( )。A) p+1 B) *(p+3) C) *(p+1)+3 D) *(p0+2)(分数:1.00)A.B.C.D.28.变量 m 的值为 8,m 的地址为 1010,若欲使 p 为指向 m 的指针变量,则下列赋值正确的是( )。A) for
12、(i=0; in-1; i+=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, i; fun(aa, 7); for(i=0; i7; i+) printf(“%d, “, aai); printf(“/n“); 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(分数:2.00)A.B.C.D.31.有下列程序:#includestdio.h#includestdli
13、b.hint fun(int n)int*p;p=(int*)malloc(sizeof(int);*p=n;return*p:main()int a;a=fun(10);printf(“%d/n“,a+fun(10);程序的运行结果是( )。A0 B10 C20 D出错(分数:1.00)A.B.C.D.32.有下列程序:#includestdio.hvoid fun(int a,int b)int t;t=a;a=b;b=t;main()int c10=1,2,3,4,5,6,7,8,9,0,i;for(i=0;i10;i+=2)fun(ci,ci+1);for(i=0;i10;i+)pri
14、ntf(“%d,“,ci);printf(“/n“);程序的运行结果是( )。A1,2,3,4,5,6,7,8,9,0 B2,1,4,3,6,5,8,7,0,9C0,9,8,7,6,5,4,3,2,1 D0,1,2,3,4,5,6,7,8,9(分数:1.00)A.B.C.D.33.设 fp 为指向某二进制文件的指针,且已读到此文件末尾,则函数 feof(fp)的返回值为( )。A) EOF B) 非 0 值C) 0 D) NULL(分数:2.00)A.B.C.D.34.已有定义 int(*q)(),指针 q 可以( )。A) 指向函数的入口地址B) 代表函数的返回值C) 表示函数的类型D) 表
15、示函数返回值的类型(分数:2.00)A.B.C.D.35.有以下语句,则对 a 数组元素的引用不正确的是(0i9)int a10=0,1,2,3,4,5,6,7,8,9,*p=a;A)ap-a B)*(ai) C)pi D)*(*(a+i)(分数:2.00)A.B.C.D.36.下列程序的运行结果为( )。#define MAX(x,y)(x)(y)?(x):(y)main()int a=2,b=3,c=1,d=3,t;printf(“%d/n“,(MAX(a+b,c+d)*100);A) 500 B) 5 C) 4 D) 400(分数:1.00)A.B.C.D.37.以下选项中不能正确把 c
16、l 定义成结构体变量的是( )。A) typedef structint red;int green;int blue;COLOR;COLOR cl;B) struct color clint red;int green;int blue;C) struct colorint red;int green;int blue;cl;D) structint red;int green;int blue;cl;(分数:1.00)A.B.C.D.38.以下程序的输出结果是( )。 int x;int*y;*p; int dt4=1,2,3,4; struct st aa4=2,a=b;b=t;if(a
17、c)t=a; a=c; c=t;printf(“%d %d %d/n“,a,b,c);执行后的输出结果是U /U。(分数:2.00)填空项 1:_以下程序的功能是输入任意整数给 n 后,输出 n 行由大写字母 A 开始构成的三角形字符阵列图形。例如,输入整数 5 时(注意:n 不得大于 10),程序运行结果如下:A B C D EF G H IJ K LM NO请填空完成该程序。main()int i,j,n; char ch=A;scanf(“%d“,n);if(n11)for(i=1;i=n;i+)for(j=1; j=n-i+1;j+)printf(“%2c“,ch);(10) ;(11
18、) ;else printf(“n is too large!/n“)printf(“/n“);(分数:4.00)填空项 1:_填空项 1:_47.下面程序的运行结果是U /U。#include stdio.hfun(int t,int n)int i,m;if(n=1) return t0;elseif(n=2) | m:fun(t,n-1); return m; main( )int a = 11,4,6,3,8,2,3,5,9,2;printf( “% d /n“ ,fun( a, 10);(分数:2.00)填空项 1:_48.以下程序段的输出结果是U /U。int a=1234;pri
19、ntf(“%2d/n“,a);(分数:2.00)填空项 1:_49.下列程序的运行结果是_。main()int s=0,i=1;while(s= 10)s=s+i*i;i+;printf(“%d“,-i);(分数:2.00)填空项 1:_50.有以下程序#include stdio.hint a=5;void fun(int b)int a=10;a+=b;printf(“%d“,a);main()int c=20;fun(c);a+=c;printf(“%d/n“,a);程序运行后的输出结果是_。(分数:2.00)填空项 1:_51.以下程序的输出结果是 1。int fun(int*x,in
20、t n)if(n=0)return x0;else return x0+fun(x+1,n-1);main2int a=1,2,3,4,5,6,7;printf(“%d/n“,fun(a,3);(分数:2.00)填空项 1:_52.若有如下结构体说明:struct STRU int a,b;charc:double d;struct STRU*p1,*p2; 请填空,以完成对 t 数组的定义,t 数组的每个元素为该结构体类型。U /Ut20(分数:2.00)填空项 1:_53.写出下列程序的执行结果。 swap(p1,p2) int*p1,*p2; int p; p=*p1;*p1=*p2;*
21、p2=p; main() int a,b,*p1,*p2; scanf(“%d%d“, struct node *next; ;typedef struct node NODETYPE;main()NODETYPE a, b, c, *h, *p; a.data=10; b.data=20; c.data=30; h=b.next= b.next= c.next=/0;p=h;while(p)printf(“%d“, p-data);_;(分数:2.00)填空项 1:_二级 C 语言笔试-436 答案解析(总分:98.00,做题时间:90 分钟)一、选择题(总题数:40,分数:66.00)1.
22、下列关于栈的描述正确的是 _。A) 在栈中只能插入元素而不能删除元素B) 在栈中只能删除元素而不能插人元素C) 栈是特殊的线性表,只能在一端插入或删除元素D) 栈是特殊的线性表,只能在一端插入元素,而在另一端删除元素(分数:2.00)A.B.C. D.解析:解析 栈是特殊的线性表,它的一端封闭,在另一端进行插入和删除操作。2.下列关于栈的描述中错误的是( )。A) 栈是先进先出的线性表B) 栈只能顺序存储C) 栈具有记忆作用D) 对栈的插入与删除操作中,不需要改变栈底指针(分数:2.00)A.B. C.D.解析:解析 栈是限定只能在表的一端进行插入和删除操作的线性表,入栈和出栈都是在栈顶进行,
23、它们的操作特点是先进后出,因此具有记忆作用。栈可以采用顺序存储,也可以采用链式存储。3.在设计程序时,应采纳的原则之一是A) 不限制 goto 语句的使用 B) 减少或取消注解行C) 程序越短越好 D) 程序结构应有助于读者理解(分数:2.00)A.B.C.D. 解析:解析 滥用 goto 语句将使程序流程无规律,可读性差,因此 A)不选;注解行有利于对程序的理解,不应减少或取消,B)也不选;程序的长短要依照实际情况而论,而不是越短越好,C)也不选。4.下列叙述中正确的是_。A) 顺序存储结构的存储一定是连续的,链式存储结构的存储空间不一定是连续的B) 顺序存储结构只针对线性结构,链式存储结构
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
5000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 职业资格 二级 语言 笔试 436 答案 解析 DOC
