【计算机类职业资格】二级C语言分类模拟题534及答案解析.doc
《【计算机类职业资格】二级C语言分类模拟题534及答案解析.doc》由会员分享,可在线阅读,更多相关《【计算机类职业资格】二级C语言分类模拟题534及答案解析.doc(18页珍藏版)》请在麦多课文档分享上搜索。
1、二级 C语言分类模拟题 534及答案解析(总分:53.00,做题时间:90 分钟)一、选择题(总题数:35,分数:53.00)1.下列叙述中正确的是 _ 。(分数:1.00)A.C程序由函数组成B.C程序由主函数构成C.C程序由函数和过程构成D.在 C程序中无论是整数还是实数,都可以正确无误的表示出来2.有以下程序: #includestdio.h main() FILE *fp; int i,a6=1,2,3,4,5,6,k; fp=fopen(“data.dat“,“w+“); for(i=0;i6;i+) fprintf(fp,“%d/n“,a5-i); rewind(fp); for(
2、i=0;i6;i+) fscanf(fp,“%d“, printf(“%d,“,k); fclose(fp); 程序运行后的输出结果是_。(分数:1.00)A.6,5,4,3,2,1,B.1,2,3,4,5,6,C.1,1,1,1,1,1D.6,6,6,6,6,6,3.在长度为 n的有序线性表中进行二分法查找,最坏情况下需要比较的次数是_。 A.O(n) B.O(n2) C.O(log2n) D.O(nlog2n)(分数:2.00)A.B.C.D.4.若 a=3,b=4,c=5,d=6,则条件表达式 ab?a:cd?c:d 的值是_。(分数:2.00)A.4B.3C.2D.15.表示关系式 x
3、yz 的 C语言表达式的是_。(分数:2.50)A.(x=y) c=getchar(); while(c!=“?“) putchar(c); break; (分数:2.50)A.RvfsuBhC.?D.hello7.若有以下程序: #include stdio.h main( ) int i, s=0, t=1,2,3,4,5,6,7,8,9; for(i=0;i9;i+ =2) a+ =* (t+i); printf(“%d/n“,s); 则程序执行后的输出结果是_。(分数:2.50)A.20B.25C.45D.368.以下选项中能表示合法常量的是_。(分数:1.00)A.“/007“B.1
4、.5E2.0C.“/“D.1,2009.下面程序的功能是把 316表示为两个加数的和,使两个加数分别能被 13和 11整除,请选择填空。 #includestdioh main() int i=0,j,k; doi+;k=316-13*iwhile(_); j=k/11; printf(“316=13*%d+11,%d”,i,j); (分数:1.00)A.k/11B.k%11C.k/11=0D.k%11=010.若有如下定义: int x=6,y=3,z=2; 则表达式“x=y|yz 则以下语句中正确的是_。(分数:1.00)A.p0=B.p0=a;C.p=a;D.p1=12.算法一般都可以用
5、_控制结构组合而成。(分数:1.00)A.循环、分支、递归B.顺序、循环、嵌套C.循环、递归、选择D.顺序、选择、循环13.有以下程序: #includestdio.h void main() char ch7=“43ab21“; int i,s=0; for(i=0;chi=“0“i+=2) s=10*s+chi-“0“; printf(“%d/n“,s); 程序运行后的输出结果是_。(分数:1.00)A.48B.12ba34C.4321D.414.设有定义: char s81; int i=0; 以下不能将一行(不超过 80个字符)带有空格的字符串正确读入的语句或语句组是_。(分数:2.0
6、0)A.gets(s);B.while(si+=getehar()!=“/n“); si=“/0“;C.scanf(“%s“, s);D.do(scanf(“%c“, while(si+!=“/n“); si=“/0“;15.若有以下程序段 char str412=“aa“, “bbb“, “ccccc“, “d“), *strp4; int i; for(i=0; i4; i+)strpi=stri; 不能正确引用字符串的选项是_。(分数:2.00)A.*strpB.str0C.strp3D.strp16.有定义:int a=64,b=8;,则表达式(a int i, j; long num
7、=0; for(i=0; i2; i+) j=0; while(pij!=“/0“) if(pij-“/0“)%2)num=10*num+p jj-“0“; j+=2; printf(“%d/n“, num); 程序执行后的输出结果是_。(分数:2.50)A.35B.37C.39D.397518.以下选项中不能作为 C语言合法常量的是_。(分数:1.00)A.“cd“B.0.1e+6C.“/a“D.“/011“19.有以下程序: #includestdio.h int fun(int(*s)4,int n,int k) int m,i; m=s0k; for(i=1;in;i+) if(sik
8、m) m=sik; return m; main() int a44=1,2,3,4, 11,12,13,14, 21,22,23,24, 31,32,33,34; printf(“%d/n“,fun(a,4,0); 程序运行后的输出结果是_。(分数:1.00)A.4B.34C.31D.3220.有以下程序: #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=%d21.以下叙述中正确的是_。(分数
9、:2.00)A.break语句只能用在循环体内和 switch语句体内B.continue语句的作用是:使程序的执行流程跳出包含它的所有循环C.在循环体内使用 break语句和 continue语句的作用相同D.break语句只能用于 switch语句体中22.在关系数据库中,用来表示实体间联系的是_。(分数:1.00)A.网状结构B.树状结构C.属性D.二维表23.有以下程序: #includestdio.h main() int a44=1,4,3,2, 8,6,5,7, 3,7,2,5, 4,8,6,1; int i,j,k,t; for(i=0;i4;i+) for(j=0;j3;j+
10、) for(k=j+1;k4;k+) if(ajiaki) t=aji; aji=aki; aki=t; /*按列排序*/ for(i=0;i4;i+) printf(“%d,“,aii); 程序运行后的输出结果是_。(分数:1.00)A.1,6,2,1,B.8,7,3,1,C.4,7,5,2,D.1,6,5,7,24.有以下程序: #include stdio.h main() int x=1, y=0, a=0, b=0; switch (x) case 1: switch(y) case 0: a+; break; case 1: b+; break; case 2: a+; b+; b
11、reak; case 3: a+; b+; printf(“a=% d, b=% d/n“, a, b); 程序的运行结果是_。(分数:2.00)A.a=2, b=2B.a=2, b=1C.a=1, b=1D.a=1, b=025.有以下程序 #includestdio.h main() char a=4; printf(“%d/n“,a=a1); 程序的运行结果是_。(分数:1.00)A.40B.16C.8D.426.有以下程序 #includestdio.h main() int a=0,b=0,c=0,d=0; if(a=1)b=1;c=2; else d=3; printf(“%d,%
12、d,%d,%d/n“,a,b,c,d); 程序输出_。(分数:2.50)A.编译有错B.0,0,0,3C.1,1,2,0D.0,1,2,027.下列关于栈的叙述正确的是_。(分数:2.00)A.栈按“先进先出”组织数据B.栈按“先进后出”组织数据C.只能在栈底插入数据D.不能删除数据28.有以下程序: #include stdio.h main( ) char c1=“A“,c2=“Y“; printf(“%d, %d/n“,c1,c2); 程序的输出结果是_。(分数:1.00)A.输出格式不合法,输出出错信息B.65,89C.65,90D.A,Y29.有以下程序: #includestdio
13、.h main() int a=1,b =0; printf(“%d,“,b=a+b); printf(“%d/n“,a=2*b); 程序运行后的输出结果是_。(分数:1.00)A.1,2B.1,0C.3,2D.0,030.有以下程序 #includestdlib.h struct NODE int num;struct NODE*next; main() struct NODE*p,*q,*r; p=(struct NODE*)malloc(sizeof(struct NODE); q=(struct NODE*)malloc(sizeof(struct NODE); r=(struct N
14、ODE*)malloc(sizeof(struct NODE); p-num=10;q-num=20;r-num=30; p-next=q;q-next=r; printf(“%d/n“,p-num+q-next-num); 程序运行后的输出结果是(分数:1.00)A.10B.20C.30D.4031.软件详细设计产生的图如图所示。该图是_。 (分数:1.00)A.NS图B.PAD图C.程序流程图D.ER图32.以下选项中不能作为 C语言合法常量的是_。(分数:2.50)A.“cd“B.0.1e+6C.“/a“D.“/011“33.下列叙述中正确的是_。(分数:2.00)A.栈是一种先进先出的
15、线性表B.队列是一种后进先出的线性表C.栈与队列都是非线性结构D.以上三种说法都不对34.下列叙述中正确的是_。(分数:1.00)A.循环队列有队头和队尾两个指针,因此,循环队列是非线性结构B.在循环队列中,只需要队头指针就能反映队列中元素的动态变化情况C.在循环队列中,只需要队尾指针就能反映队列中元素的动态变化情况D.循环队列中元素的个数由队头指针和队尾指针共同决定35.下列关于栈的叙述正确的是_。(分数:2.00)A.栈按“先进先出”组织数据B.栈按“先进后出”组织数据C.只能在栈底插入数据D.不能删除数据二级 C语言分类模拟题 534答案解析(总分:53.00,做题时间:90 分钟)一、
16、选择题(总题数:35,分数:53.00)1.下列叙述中正确的是 _ 。(分数:1.00)A.C程序由函数组成 B.C程序由主函数构成C.C程序由函数和过程构成D.在 C程序中无论是整数还是实数,都可以正确无误的表示出来解析:解析 本题涉及 C语言最基本的两个知识点:C 程序是由函数构成的,有且仅有一个主函数,也可以有其他的函数;整数在允许的范围内可以准确无误的表示出来,但计算机的存储能力有限,不能表示无限精度的实数。2.有以下程序: #includestdio.h main() FILE *fp; int i,a6=1,2,3,4,5,6,k; fp=fopen(“data.dat“,“w+“
17、); for(i=0;i6;i+) fprintf(fp,“%d/n“,a5-i); rewind(fp); for(i=0;i6;i+) fscanf(fp,“%d“, printf(“%d,“,k); fclose(fp); 程序运行后的输出结果是_。(分数:1.00)A.6,5,4,3,2,1, B.1,2,3,4,5,6,C.1,1,1,1,1,1D.6,6,6,6,6,6,解析:解析 fopen(“data.dat“,“w+“);w+打开可读写文件,若文件存在则文件长度清为零,即该文件内容会消失,若文件不存在则建立该文件。rewind(fp);使文件 fp的位置指针指向文件开始。fp
18、rintf(fp,“%d/n“,a5-i);将 ai输出到 fp指向的文件中。fscanf(fp,“%d“,将 fp读入到变量k中,第一个 for循环将数组中元素倒着输入到 fp指向的文件中。rewind();则指向文件开始,因此打印的是数组 a的倒叙。故打印结果为 6,5,4,3,2,1。答案为 A选项。3.在长度为 n的有序线性表中进行二分法查找,最坏情况下需要比较的次数是_。 A.O(n) B.O(n2) C.O(log2n) D.O(nlog2n)(分数:2.00)A.B.C. D.解析:解析 当有序线性表为顺序存储时才能用二分法查找。可以证明的是对于长度为 n的有序线性表,在最坏情况
19、下,二分法查找只需要比较 log 2 n次,而顺序查找需要比较 n次,因此本题答案为 C。4.若 a=3,b=4,c=5,d=6,则条件表达式 ab?a:cd?c:d 的值是_。(分数:2.00)A.4B.3 C.2D.1解析:5.表示关系式 xyz 的 C语言表达式的是_。(分数:2.50)A.(x=y) c=getchar(); while(c!=“?“) putchar(c); break; (分数:2.50)A.RvfsuBh C.?D.hello解析:解析 本题考查 getchar()函数与 putchar()函数,通过 getchar()函数读入字符,并通过putchar()函数将
20、字符逐个输出,当用户输入“?”时停止输出,且 c是一个字符变量只占一个字节。7.若有以下程序: #include stdio.h main( ) int i, s=0, t=1,2,3,4,5,6,7,8,9; for(i=0;i9;i+ =2) a+ =* (t+i); printf(“%d/n“,s); 则程序执行后的输出结果是_。(分数:2.50)A.20B.25 C.45D.36解析:解析 统计 19 中的奇数和,此题考查指向数组的指针。C 语言规定数组名代表数组的首地址,也就是第一个元素的地址。因此*(t+i)代表数组的第 i+1个元素。程序运行的结果是 1+3+5+7+9=25。8
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
5000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 职业资格 二级 语言 分类 模拟 534 答案 解析 DOC
