收藏 分享(赏)

2009—2010年全国计算机二级C语言笔试试题.doc

上传人:暖洋洋 文档编号:1606534 上传时间:2018-08-10 格式:DOC 页数:38 大小:241.50KB
下载 相关 举报
2009—2010年全国计算机二级C语言笔试试题.doc_第1页
第1页 / 共38页
2009—2010年全国计算机二级C语言笔试试题.doc_第2页
第2页 / 共38页
2009—2010年全国计算机二级C语言笔试试题.doc_第3页
第3页 / 共38页
2009—2010年全国计算机二级C语言笔试试题.doc_第4页
第4页 / 共38页
2009—2010年全国计算机二级C语言笔试试题.doc_第5页
第5页 / 共38页
点击查看更多>>
资源描述

1、2010年 9月全国计算机二级 C语言笔试试题一、选择题(每小题 2分,共 70分)下列各题 A)、B)、C)、D)四个选项中,只有一个选项是正确的。请将正确选项填涂在答题卡相应位置上,答在试卷上不得分。(1)下列叙述中正确的是A)线性表的链式存储结构与顺序存储结构所需要的存储空间是相同的B)线性表的链式存储结构所需要的存储空间一般要多于顺序存储结构C)线性表的链式存储结构所需要的存储空间一般要少于顺序存储结构D)上述三种说法都不对(2)下列叙述中正确的是A)在栈中,栈中元素随栈底指针与栈顶指针的变化而动态变化B)在栈中,栈顶指针不变,栈中元素随栈底指针的变化而动态变化C)在栈中,栈底指针不变

2、,栈中元素随栈顶指针的变化而动态变化D)上述三种说法都不对(3)软件测试的目的是A)评估软件可靠性B)发现并改正程序中的错误C)改正程序中的错误D)发现程序中的错误(4)下面描述中,不属于软件危机表现的是A)软件过程不规范B)软件开发生产率低C)软件质量难以控制D)软件成本不断提高(5)软件生命周期是指A)软件产品从提出、实现、使用维护到停止使用退役的过程B)软件从需求分析、设计、实现到测试完成的过程C)软件的开发过程D)软件的运行维护过程(6)面向对象方法中,继承是指A)一组对象所具有的相似性质B)一个对象具有另一个对象的性质C)各对象之间的共同性质D)类之间共享属性和操作的机制(7)层次型

3、、网状型和关系型数据库划分原则是A)记录长度B)文件的大小C)联系的复杂程度D)数据之间的联系方式(8)一个工作人员可以使用多台计算机,而一台计算机可被多个人使用,则实体工作人员、与实体计算机之间的联系是A)一对一B)一对多C)多对多D)多对一(9)数据库设计中反映用户对数据要求的模式是A)内模式B)概念模式C)外模式D)设计模(10)有三个关系 R、S 和 T如下:则由关系 R和 S得到关系 T的操作是A)自然连接B)交C)投影D)并(11)以下关于结构化程序设计的叙述中正确的是A)一个结构化程序必须同时由顺序、分支、循环三种结构组成B)结构化程序使用 goto语句会很便捷C)在 C语言中,

4、程序的模块化是利用函数实现的D)由三种基本结构构成的程序只能解决小规模的问题(12)以下关于简单程序设计的步骤和顺序的说法中正确的是A)确定算法后,整理并写出文档,最后进行编码和上机调试B)首先确定数据结构,然后确定算法,再编码,并上机调试,最后整理文档C)先编码和上机调试,在编码过程中确定算法和数据结构,最后整理文档D)先写好文档,再根据文档进行编码和上机调试,最后确定算法和数据结构(13)以下叙述中错误的是A) C 程序在运行过程中所有计算都以二进制方式进行B)C 程序在运行过程中所有计算都以十进制方式进行C)所有 C程序都需要编译链接无误后才能运行D)C 程序中整型变量只能存放整数,实型

5、变量只能存放浮点数(14)有以下定义:int a; long b; double x,y;则以下选项中正确的表达式是A)a%(int)(x-y)B)a=x!=y;C)(a*y)%bD)y=x+y=x(15)以下选项中能表示合法常量的是A)整数:1,200B)实数:1.5E2.0C )字符斜杠:D)字符串:“007“(16)表达式 a+=a-=a=9的值是A)9B)_9C)18D)0(17)若变量已正确定义,在 if (W)printf(“%dn,k”);中,以下不可替代 W的是A)ab+cB)ch=getchar()C)a=b+cD)a+(18)有以下程序includemain()int a=

6、1,b=0;if(!a) b+;else if(a=0)if(a)b+=2;else b+=3;printf(”%dn”,b);程序运行后的输出结果是A)0B)1C)2D)3(19)若有定义语句 int a, b;double x;则下列选项中没有错误的是A)switch(x%2) B)switch(int)x/2.0case 0: a+; break; case 0: a+; break;case 1: b+; break; case 1: b+; break;default : a+; b+; default : a+; b+; C)switch(int)x%2) D)switch(int

7、)(x)%2)case 0: a+; break; case 0.0: a+; break;case 1: b+; break; case 1.0: b+; break;default : a+; b+; default : a+; b+; (20)有以下程序include main()int a=1,b=2;while(amain()int y=10;while(y-);printf(”Y=dn”,Y);程序执行后的输出结果是A)y=0B)y= -1C)y=1D)while 构成无限循环(22)有以下程序includestdio .hmain()char s”rstuv“;printf(”c

8、n”,*s2);程序运行后的输出结果是A)tuvB)字符 t的 ASCII码值C)tD)出错(23)有以下程序includestdio.hincludestring.hmain()char x”STRING”;x0=0;x10;x20;printf(”d dn”,sizeof(x),strlen(x);程序运行后的输出结果是A)6 1B)7 0C)6 3D)7 1(24)有以下程序includestdiohInt f(int x);main()int n=1,m;m=f(f(f(n);printf(”%dn”,m);int f(int x)return x*2;程序运行后的输出结果是A)1B)

9、2C)4D)8(25)以下程序段完全正确的是A)int *p; scanf(“%d“,p);B)int *p; scanf(“%d”,p);C)int k, *p= scanf(“%d“,p);D)int k, *p:; *p= scanf(“%d”,p);(26)有定义语句:int *p4;以下选项中与此语句等价的是A)int p4;B)int *p;C)int *(p4);D)int (*p)4;(27)下列定义数组的语句中,正确的是A)int N=10; B)define N 10int xN; int xN;C)int x010; D)int x;(28)若要定义一个具有 5个元素的整

10、型数组,以下错误的定义语句是A)int a5=0;B)int b=0,0,0,0,0;C)int c2+3;D)int i=5,di;(29)有以下程序includestdiohvoid f(int *p);main()int a51,2,3,4,5,*r=a;f(r);printf(”dn”;r);void f(int *p)p=p+3;printf(”d,”,*p);程序运行后的输出结果是A)1,4B)4,4C)3,1D)4,1(30)有以下程序(函数 fun只对下标为偶数的元素进行操作)# includestdiohvoid fun(inta;int n)int i、j、k、t;for

11、(i=0;in 一 1;1=2)k=i;for(j=i;jak)k=j;t=ai;ai=ak;akt;main()int aa10=1、2、3、4、5、6、7,i;fun(aa、7);for(i=0,iincludestring hmain()char a20=”ABCDOEFG0”,b”IJK”;strcat(a,b);printf(”sn”,a);程序运行后的输出结果是A)ABCDEOFGOIJKB)ABCDIJKC)IJKD)EFGIJK(34)有以下程序,程序中库函数 islower (ch)用以判断 ch中的字母是否为小写字母includestdiohincludectypehvoi

12、d fun(charp)int i=0;while (pi)if(pi= islower(pi-1)pi-1=pi-1-a+A;i;main()char s1100”ab cd EFG!”;fun(s1); printf(”sn”,s1);程序运行后的输出结果是A)ab cd EFG!B)Ab Cd EFg!C)aB cD EFG!D)ab cd EFg!(35)有以下程序includestdiohvoid fun(int x)if(x21)fun(x2);printf(”d”,x);main()fun(7);printf(”n”);程序运行后的输出结果是A)1 3 7B)7 3 1C)7 3

13、D)3 7(36)有以下程序includestdiohint fun()static int x=1;x+=1;return x;main()int i;s=1;for(i=1;imain()int s,t,A=10;double B=6;ssizeof(A);t=sizeof(B);printf(“d,dn”,s,t);在 VC6平台上编译运行,程序运行后的输出结果是A)2,4 B)4,4 C)4,8 D)10,6(39)若有以下语句Typedef struct Sint g; char h;T;以下叙述中正确的是A)可用 S定义结构体变量B)可用 T定义结构体变量C)S 是 struct类

14、型的变量D)T 是 struct S类型的变量(40)有以下程序includestdiohmain()short c=124;c=c_;printf(“dn”、C);若要使程序的运行结果为 248,应在下划线处填入的是A)2 B)|248 C)0248 D)main()int a=200,b=010;printf(”d%dn”,a,b);(7)有以下程序includestdiohmain()int x,Y;scanf(”2d%ld”,x,y);printf(”dn”,x+y);程序运行时输入:1234567 程序的运行结果是【7】。(8)在 C语言中,当表达式值为 0时表示逻辑值“假”,当表达

15、式值为【8】时表示逻辑值“真”。(9)有以下程序includestdiohmain()int i,n=0,0,0,0,0;for (i=1;iintf(int *p,intq);main()int m=1,n=2,r=scanf(%c%c,c=getchar(); d=getchar();printf(%c%c%c%cn,a,b,c,d);当执行程序时,按下列方式输入数据(从第一列开始,代表回车,注意:回车是一个字符)A B Cc 3 2d 3 21234则输出结果是:A、1234 B、12 C、12 D、123 3416、以下关于 C语言数据类型使用的叙述中错误的是:A、若要准确无误的表示自

16、然数,应使用整数类型。B、若要保存带有多位小数的数据,应使用双精度类型。C、若要处理如人员信息等含有不同类型的相关数据,应自定义结构体类型。D、若只处理真和假两种逻辑值,应使用逻辑类型。17、若 a是数值类型,则逻辑表达式(a=1)|(a!=1)的值是:A、1 B、0 C、2 D、不知道 a的值,不能确定18、以下选项中与 if(a=1) a=b;else a+;语句功能不同的 switch语句是:A、switch(a) B、switch(a=1) case 1:a=b;break; case 0 : a=b;break;default : a+; case 1 : a+; C、switch(

17、a) D、switch(a=1) default : a+;break; case 1:a=b;break;case 1:a=b; case 0: a+; 19、有如下嵌套的 if语句if(amain() int i,j,m=1;for(i=1;i0;j-) if(i*j3) break;m*=i*j;printf(m=%dn,m)程序运行后的输出结果是(A) m=6 (B)m=2 (C)m=4 (D)m=5(21)有以下程序#includes main() int a=1,b=2;for(;amain()int k=011;printf(%dn,k+);程序运行后的输出结果是(A)12 (B

18、)11 (C)10 (D)9(23)下列语句中,正确的是A) char *s ; s=Olympic; B) char s7 ; s=Olympic;C) char *s ; s=Olympic; D) char s7 ; s=Olympic;(24)以下关于 return语句的叙述中正确的是A)一个自定义函数中必须有一条 return语句B) 一个自定义函数中可以根据不同情况设置多条 return语句C)定义成 viod类型的函数中可以有带返回值的 return语句D)没有 return语句的自定义函数在执行结束时不能返回到调用处(25)下列选项中,能够正确定义数组的语句是A)int num

19、02008; B) int num;C) int N=2008; D) #define N 2008int numN; int numN(26)有以下程序#includevoid fun (char*c,int d)*c=*c+1;d=d+1;printf(%c,%c,*c,d);main()char b=a,a=A;fun( printf(%c,%cn,b,a);程序运行后的输出结果是A)b,B,b,A B)b,B,B,A C)a,B,B,a D)a,B,a,B(27)若有定义 int(*pt)3;,则下列说法正确的是A)定义了基类型为 int的三个指针变量B)定义了基类型为 int的具有三

20、个元素的指针数组 pt。C)定义了一个名为*pt、具有三个元素的整型数组D)定义了一个名为 pt的指针变量,它可以指向每行有三个整数元素的二维数组(28)设有定义 double a10,*s=a;,一下能够代表数组元素 a3的是A)(*s)3 B)*(s+3) C)*s3 D)*s+3(29)有以下程序#includemain() int a5=1,2,3,4,5, b5=0,2,1,3,0,is=0for(i=0;imain() int b3 3=0,1,2,0,1,2,0,1,2,i,j,t=1;for(i=0; i#define N 8void fun(int *x,int i)*x=*

21、(x+i);main() int aN=1,2,3,4,5,6,7,8,i;fun(a,2);for(i=0; iint f(int t ,int n);main()int a4=1,2,3,4,s;s=fa,4; printf(%dn,s);int f(int t, int n) if (n0) return tn-1+f(t,n-1);else return 0;程序运行后的输出结果是A)4 B)10 C)14 D)6(34)有以下程序#includeint fun()static int x=1;x*=2; return x;main()int I,s=1;for (i=1;i#defi

22、ne SUB(a) (a)-(a)main()int a=2,b=3,c=5,d;d=SUB(a+b)*c;printf(%dn,d);程序运行后的结果是A)0 B)-12 C)-20 D)10(36)没有定义struct complex int real, unreal ; datal=1,8,data2;则以下赋值语句中的错误的是A)data2=data1; B)data2=(2,6);C)data2.real1=data1.real; D)data2.real=data1.unreal;(37)有以下程序#include #include struct Aint a; char b10;

23、double c;void f(struct A t);main()struct A a=1001,ZhangDa,1098.0;f(a); pringt(%d,%s,%6.1fn,a.a,a.b,a.c);void f(struct A t)t.a=1002;strcpy(t.b,ChangRong);t.c=1202.0;程序运行后的输出结果是A)1001,ZhangDa,1098.0 B)1002,ChangRong,1202.0C)1001,ChangRong,1098.0 D)1002,ZhangDa,1202.0(38)有以下定义和语句struct workersint num;

24、char name20;char c;srructint day;int month;intyear; s;struct workers w,*pw;pw= B)w.year=1980;C)pw-year=1980; D)w.s.year=1980;(39)有以下程序#include main()int a=2,b=2,c=2;printf(%dn,a/b程序运行后的结果是A)0 B)1 C)2 D)3(40)以下程序#includemain( ) FILE *fp;char str10;fp=fopen(myfile.dat,w);fputs(abc,fp); fclose(fp);fp=f

25、open(myfile.dat,a+);rewind(fp,gd,28);rewind(fp);fscanf(fp,gs,str); puts(str);fclose(fp);程序运行后的输出结果是A)abc B)28c C)abc28 D)因类型不一致而出错二、填空题(每空 2分,共 30分)请将每空的正确答案写在答题卡【1】至【15】序号的横线上,答在试卷上不得分。(1)一个队列的初始状态为空,先将元素 A,CB,C,D,E,F,5,4,3,2,1依次入队,然后再依次退队,则元素退队的顺序为_【1】_。(2)设某循环列队的容量为 50,如果头指针 front=45(指向队头元素的前一位置)

26、 ,尾指针rear=10(指向队尾元素) ,则该循环队列中共有_【2】_个元素。(3)设二叉数如下: A B C D F E G H对该二叉树进行后序遍历的结果为【3】(4)软件是 【4】 、数据和文档的集合。(5)有一个学生选课的关系,其中学生的关系模式为:学生(学号,姓名,班级,年龄) ,课程的关系模式为:课程(课号,课程名,学时) ,其中两个关系模式的键分别是学好和课号,则关系模式选课可以定义为:选课(学号, 【5】 ,成绩) 。(6)设 x为 int型变量,请写出一个关系表达式 【6】 ,用以判断 x同时为 3和 7的倍数时,关系表达式的值为真。(7)有以下程序#include mai

27、n() int a=1,b=2,c=3,d=0;if (a=1)if (b!=2)if(c!=3) d=1;else d=2;else if(c!=3) d=3;else d=4;else d=5;printf(%dn,d);程序运行后的输出结果是: 【7】 。(8)有以下程序#include main() int m,n;scanf(%d%d,while (m!=n) while(mn) m=m-n;while(m时,输出结果是 【8】 (9)有以下程序#include main () int I,j,a3=1,2,3,4,5,6,7,8,9;for (i=1;imain()int =1,2

28、,3,4,5,6,*k3,i=0;while(imain()int a33=1,2,3,4,5,6,7,8,9;int b3=0,i;for(i=0;i#include void fun(char*str)char temp; int n,i;n=strlen(str);temp=strn-1;for(i=n-1;i0;i-) stri=stri-1;str0=temp;main()char s50;scanf(%s,s); fun(s); printf(%sn,s);程序运行后输入:abcdef,则输出结果是_13、以下程序的功能是:将值为三位正整数的变量 x中的数值按照个位、十位、百位的顺

29、序拆分并输出。请填空。#includemain() int x=256;printf(%d-%d-%dn, ,x/10%10,x/100);14、以下程序用以删除字符串中的所有的空格,请填空。#includemain() char s100=our .tercher teach c language!;int i,j;for( i=j=0;si!=0;i+)if(si!= ) sj=si;j+; sj= ;printf(%sn,s);(15)以下程序功能是:借助指针变量找出数组元素中的最大值及其元素的下标值。请填空。#include main()int a10,*p,*s;for(p=a;p-

30、a*s) s=_;printf(index=%dn,s-a);参考答案一、选择题:0105 ADBAC 0610 BADCA1115 BADCC 1620 DABCA 2125 DDABD 2630 ADBCC3135 ACBCC 3637 BADAC二、填空题:1、A、B、C、D、E、F、5、4、3、2、12、153、EDBGHFCA4、程序5、课号6、x%3=0 float printF;printf(“请输入 2个数:“);scanf(“%d %f“,printf(“%d %fn“,case,printf);该程序在编译时产生错误,其出错原因是A)定义语句出错,case 是关键字,不能用

31、作用户自定义标识符B)定义语句出错,printF 不能用作用户自定义标识符C)定义语句无错,scanf 不能作为输入函数使用D)定义语句无措,printf 不能输出 case的值14.(14)表达式:(int)(double)9/2)-(9)%2 的值是A)0B)3C)4D)515.(15)若有定义语句: int x=10;,则表达式 x-=x+x的值为A)-20B)-10C)0D)1016.(16)有以下程序#include main() int a=1,b=0;printf(“%d,“,b=a+b);printf(“%d“,a=2*b);程序运行后的输出结果是A)0,0B)1,0C)3,2

32、D)1,217.(17)设有定义: int a=1,b=2,c=3;,以下语句中执行效果与其它三个不同的是A)if(ab) c=a,a=b,b=c;B)if(ab)c=a,a=b,b=c;C)if(ab) c=a;a=b;b=c;D)if(ab)c=a;a=b;b=c;18.(18)有以下程序#include main() int c=0,k;for(k=1;kb?(bc?1:0):0;功能相同的是A)if(ab)else k=0;B)if(ab)|(bc) k=1;else k=0;C)if(ab) k=1;else if(bc) k=1;else k=0;20.(20)有以下程序#incl

33、ude main() char s=“012xy“;int i,n=0;for(i=0;si!=0;i+)if(siawhile(k+printf(“%d %dn“,k,n);程序运行后的输出结果是A)0 2B)1 3C)5 7D)1 222.(22)有以下定义语句,编译时会出现编译错误的是A) char a=a;B) char a=n;C) char a=aa;D) char a=x2d;23.(23)有以下程序#include main() char c1,c2;c1=A+8-4;c2=A+8-5;printf(“%c,%dn“,c1,c2);已知字母 A的 ASCII码为 65,程序运行

34、后的输出结果是A)E,68B)D,69C)E,DD)输出无定值24.(24)有以下程序#include void fun(int p) int d=2;p=d+; printf(“%d“,p);main() int a=1;fun(a);printf(“%dn“,a);程序运行后的输出结果是A)32B)12C)21D)2225.(25)以下函数 findmax拟实现在数组中查找最大值并作为函数值返回,但程序中有错导致不能实现预定功能#define MIN -2147463647int findmax(int x,int n) int i,max;for(i=0;imain() int m=1,n=2,*p=r=p;p=q;q=r;

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 高等教育 > 专业基础教材

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报