第一范文网 - 专业文章范例文档资料分享平台

0全国计算机等级考试二级C语言笔试试题(含参考答案)

来源:用户分享 时间:2025/6/8 22:41:26 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

2009年3月全国计算机等级考试二级C语言笔试试卷

(考试时间120分钟,满分100分)

一、选择题((1)~(10)、(21)~(40)每题2分,(11)~(20)每题1分,70分)下列

各题A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确选择涂写在答题卡相应位置上,答在试卷上不得分。

(1)下列叙述中正确的是 A)栈是“先进先出”的线性表 B)队列是“先进后出”的线性表 C)循环队列是非线性结构

D)有序线性表既可以采用顺序存储结构,也可以采用链式存储结构

(2)支持子程序调用的数据结构是 A)栈 B)树 C)队列 D)二叉树

(3)某二叉树有5个度为z的结点,则该二叉树中的叶子结点数是 A)10 B)8 C)6 D)4

(4)下列排序方法中,最坏情况下比较次数最少的是 A)冒泡排序 B)简单选择排序 C)直接插入排序 D)堆排序

(5)软件按功能可以分为: 应用软件、系统软件和支撑软件(或工具软件)。下面属于应用软件的是 A)编译程序 B)操作系统 C)教务管理系统

D)汇编程序

(6)下面叙述中错误的是

A)软件测试的目的是发现错误并改正错误

B)对被调试的程序进行“错误定位”是程序调试的必要步骤 C)程序调试通常也称为Debug

D)软件测试应严格执行测试计划,排除测试的随意性

(7)耦合性和内聚性是对模块独立性度量的两个标准。下列叙述中正确的是 A)提高耦合性降低内聚性有利于提高模块的独立性 B)降低耦合性提高内聚性有利于提高模块的独立性 C)耦合性是指一个模块内部各个元素间彼此结合的紧密程度 D)内聚性是指模块间互相连接的紧密程度

(8)数据库应用系统中的核心问题是 A)数据库设计 B)数据库系统设计 C)数据库维护 D)数据库管理员培训

(9)有两个关系R, S如下:

由关系R通过运算得到关系S,则所使用的运算为 A)选择 B)投影 C)插入 D)连接

(10)将E-R图转换为关系模式时,实体和联系都可以表示为 A)属性 B)键 C)关系 D)域

(11)以下选项中合法的标识符是 A)1_1 B)1-1 C)_11 D)1_ _

(12)若函数中有定于语句:int k;,则 A)系统将自动给K赋初值0 B)这时k中的值无定义 C)系统将自动给k赋初值-1 D)这时k中无任何值

(13)以下选项中,能用作数据常量的是 A)o115 B)0118 C)1.5e1.5 D)115L

(14)设有定义:int x=2;,以下表达式中,值不为6的是 A)x*=x+1 B)x++,2*x C)x*=(1+x) D)2*x, x+=2

(15)程序段:int x=12; double y=3.141593; printf(“%d%8.6f”, x, y);的输出结果是 A)123.141593 B)12 3.141593 C)12, 3.141593 D)123.1415930

(16)若有定义语句:double x, y,*px,*pY; 执行了px=&x; py=&y;之后,正确的输入语句是

A)scanf(“%f%f”,x,y); B)scanf(“%f%f”,&x,&y); C)scanf(“%lf%le”,px,py);

D)scanf(“%lf%lf”,x,y);

(17)以下是if语句的基本形式:

if(表达式)语句 其中“表达式” A)必须是逻辑表达式 B)必须是关系表达式

C)必须是逻辑表达式或关系表达式 D)可以是任意合法的表达式

(18)有以下程序 #include main() { int x;

scanf(“%d”,&x); if (x<=3);else

if (x!=10) printf(“ %d\\n”,x); }

程序运行时,输入的值在哪个范围才会有输出结果 A)不等于10的整数 B)大于3且不等10的整数 C)大于3或等于10的整数 D)小于3的整数

(19)有以下程序 #include main()

{ int a=1,b=2,c=3,d=0; if (a==1&&b++==2) if (b!=2||c--!=3)

printf(“%d,%d,%d\\n”,a,b, c); else printf(“%d, %d, %d\\n”,a,b, c); else printf(“%d, %d,%d\\n”,a,b,c); }

程序运行后的输出结果是 A)1,2,3 B)1,3,2

C)1,3,3 D)3,2,1

(20)以下程序段中的变量已正确定义 for( i=0; i<4; i++,i++)

for( k=l; k<3; k++);printf(“*”); 程序段的输出结果是 A)******** B)**** C)** D)*

(21)有以下程序 #iinclude main()

{ char *s= {“ABC”}; do

{ printf(“%d”;*s%l0); s++ }whi1e(*s); }

注意:字母A的ASCII码值为65。程序运行后的输出结果是 A)5670 B)656667 C)567 D)ABC

(22)设变量己正确定义,以下不能统计出一行中输入字符个数(不包含回车符)的程序段是

A)n=0; while((ch=getchar())!='\\n') n++; B)n=0; while(getchar()!='\\n') n++; C)for( n=0;getchar()!='\\n';n++); D)n=0; for(ch=getchar();ch! ='\\n';n++);

(23)有以下程序 #include main()

{ int al,a2; char cl,c2;

scanf(“%d%c%d%c”,&a1,&cl,&a2,&c2); printf(“%d, %c,%d, %c”,a1,c1,a2, c2); }

若想通过键盘输入,使得a1的值为12,a2的值为34,c1的值为字符a,c2的值为字符b,程序输出的结果是:12,a,34,b 则正确的输入格式是(以下~代表空格,代表回车) A)12a34b B)12~a~34~b C)12,a,34,b D)12~a34~b

(24)有以下程序 #include int f(int x, int y) {return((y-x)*x);) main()

{int a=3,b=4,c=5,d; d=f(f(a,b),f(a, c)); printf(“%d\\n”,d); }

程序运行后的输出结果是 A)10 B)9 C)8 D)7

(25)有以下程序 #include void fun (char *s) {while(*s)

{if(*s%2==0)printf(“%c”,*s);

s++; } } main()

{char a[]=(“good”}; fun(a);printf(“\\n”);

}

注意:字母a的ASCII码值为97,程序运行后的输出结果是 A)d B)go C)god D)good

(26)有以下程序 #include void fun(int *a,int *b) {int *c; c=a;a=b;b=c; } main()

{int x=3, y=5,*p=&x, *q=&y;

fun(p,q);printf(“%d,%d,”,*p,*q): fun(&x, &y);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

(27)有以下程序 #include void f(int *p, int *q); main()

int m=l, n=2,*r=&m;

f(r, &n);printf(“%d,%d”,m, n); }

void f(int *p,int *q) {p=p+l: *q=*q+1;} 程序运行后的输出结果是 A)1,3 B)2,3 C)1,4

D)1,2

(28)以卜函数按每行8个输出数组中的数据 vold fun(int *w,int n) {int i;

for(i=0;i

printf(“\\n”); }

下划线处应填入的语句是 A)if(i/8==0)printf(“\\n”); B)if(i/8==0)continue; C)if(i%8==0)printf(“\\n”); D)if(i%8==0)contInue;

(29)若有以下定义

int x[10], *pt=x; 则对x数组元素的正确引用是 A)*&x[10] B)*(x+3) C)*(pt+10) D)pt+3

(30)设有定义:char s[81]; int i=0;,以下不能将一行(不超过80个字符)带有空格的字符串正确读入的语句或语句组是 A)gets(s);

B)while((s[i++]=getchar())!='\\n');s[i]= '\\0'; C)scanf(“%s”,s);

D)do{ scanf(“%c”,&s[i]); }while(s[i++]!='\\n'); s[i]='\\0';

(31)有以下程序 #include main()

{char *a[ ]=(“abcd”,“ef”,“gh”,“ijk”}; int i; for(i=0;i<4;i++)printf(“%c”,*a[i]);

}

程序运行后的输出结果是 A)aegi B)dfhk C)abcd D)abcdefghijk

(32)以下选项中正确的语句组是 A)char s[]; s=“BOOK!”; B)char *s; s={“BOOK!”}; C)char s[10]; s=“BOOK!”; D)char *s; s=“BOOK!”;

(33)有以下程序 #include int fun(int x, int y) {if (x==y) return(x); else return((x+y)/2);} main( )

{ int a=4,b=5,c=6;

printf(“%d\\n”, fun(2*a, fun(b,c))); }

程序运行后的输出结果是 A)3 B)6 C)8 D)12

(34)设函数中有整型变量n,为保证其在未赋初值的情况下初值为0,应选择的存储类别是 A)auto B)register C)static

D)auto或register

(35)有以下程序 #include

int b=2.; int fun(int *k) {b=*k+b; return(b);} main()

{int a[10]={1,2,3, 4,5,6,7,8),i;

for(i=2;i<4;i++){b=fun(&a[i])+b; printf(“%d”,b);} printf(“\\n”); }

程序运行后的输出结果是 A)10 12 B)8 10 C)10 28 D)10 16

(36)有以下程序 #include #define PT 3.5; #define S(x) PT*x*x; main()

{ int a=1,b=2; printf(“%4.1f\\n”,S(a+b));} 程序运行后的输出结果是 A)14.0 B)31.5 C)7.5

D)程序有错无输出结果

(37)有以下程序 #include struct ord

{int x,y;} dt[2]={1,2,3,4}; main()

{struct ord *p=dt;

printf(“%d”,++p->x); printf(“%d\\n”,++p->y); }

程序的运行结果是 A)1,2 B)2,3

C)3,4 D)4,1

(38)设有宏定义:#define IsDIV(k,n) ((k%n==1)?1:0)且变量m己正确定义并赋值,则宏调用:IsDIV(m,5)&&IsDIV(m,7) 为真时所要表达的是

A)判断m是否能被5或者7整除 B)判断m是否能被5和7整除 C)判断m被5或者7整除是否余1 D)判断m被5和7整除是否都余

(39)有以一下程序 #include main()

{int a=5, b=1, t;

t=(a<<2)|b; printf(“%d\\n”,t); }

程序运行后的输出结果是 A)21 B)11 C)6 D)1

(40)有以下程序 #include main() {FILE *f;

f=fopen(“filea.txt”,“w”); fprintf(f,“abc”); fclose(f); }

若文本文件filea.txt中原有内容为:hello,则运行以上程序后,文件filea.txt中的内容为 A)helloabc B)abclo C)abc D)abchello

二、填空题

(1)假设用一个长度为50的数组(数组元素的下标从0到49)作为栈的存储空间,栈底指针bottom指间栈底元素,栈顶指针top指向栈顶元素,如果bottom=49,top=30(数组下标),则栈中具有【1】个元素。

(2)软件测试可分为白盒测试和黑盒测试。基本路径测试属于【2】测试。

(3)符合结构化原则的三种基本控制结构是:选择结构、循环结构和【3】。

(4)数据库系统的核心是【4】。

(5)在E-R图中,图形包括矩形框、菱形框、椭圆框。其中表示实体联系的是【5】框。

(6)表达式(int)((double)(5/2)+2.5)的值是【6】

(7)若变量x、y已定义为int类型且x的值为99,y的值为9,请将输出语句printf(【7】,x/y);补充完整,使其输出的计算结果形式为:x/y=11。

(8)有以下程序 #include main() {char c1, c2; scanf(“%c”,&c1);

while(c1<65||c1>90) scanf(“%c”,&c1); c2=c1+32;

printf(“%c, %c\\n”,c1, c2); }

程序运行输入65回车后,能否输出结果、结束运行(请回答能或不能)【8】。

(9)以下程序运行后的输出结果是【9】。 #include main()

{int k=1, s=0; do{

if((k%2)!=0) continue; s+=k; k++; }while(k>10); printf(“s=%d\\n”,s); }

(10)下列程序运行时,若输入1abcedf2df<回车> 输出结果为【10】。 #include main.() {char a=0,ch;

while((ch=getchar())!='\\n')

{if (a%2!=0&&(ch>='a'&&ch<='z'))ch=ch-'a' +'A'; a++;putchar(ch); }

printf(“\\n”); }

(11)有以下程序,程序执行后,输出结果是【11】。 #include void fun{int *a) {a[0]=a[1];} main()

{int a[10]={10, 9, 8,7,6, 5,4,3, 2,1},i; for(i=2;i>=0;i--)fun(&a[i]);

for.(i=0;i<10;i++)printf(“%d”},a[1]); printf(“\\n”); }

(12)请将以下程序中的函数声明语句补充完整。 #include int【12】; main()

{int x, y,(*p)(); scanf(“%d%d”,&x,&y); p=max;

printf(“%d\\n”,(*p)(x, y)); }

int max(int a, int b) {return (a>b?a:b);}

(13)以下程序用来判断指定文件是否能正常打开,请填空 #include main() {FILE *fp;

if(((fp=fopen(“test.txt”,“r”))==【13】))

printf(“未能打开文件!\\n”); else

printf(“文件打开成功!\\n”); }

(14)下列程序的运行结果为【14】 #include #include struct A

{int a; char b [10]; double c;}; void f(struct A *t); main()

{ struct A a=(1001,“ZhangDa”,1098.0}; f(&a);printf(“%d,%s,%6.1f\\n”,a.a, a.b, a.c); }

void f(struct A *t)

{ strcpy(t->b,“ChangRong”);}

(15)以下程序把三个NODETYPE型的变量链接成一个简单的链表,并在while循环中输出链表结点数据域中的数据。请填空。 #include struct node

{int data;struct node *next:}; typedef struct node NODETYPE; main()

{NODETYPE a, b, c,*h,*p:

a .data=10;b.data=20; c.data=30; h=&a; a .next=&b; b .next=&c; c .next='\\0’; p=h;

while(p){printf(“%d,”, p->data);【15】;} printf(“\\n”); }

一、选择题

(1) (6) D A (2) (7) A B (3) (8) C A (4) (9) D (5) C B (10) C (11) C (12) B (13) D (14) D (15) A (16) C (17) D (18) B (19) C (20) D (21) C (22) D (23) A (24) B (25) A (26) B (27) A (28) C (29) B (30) C (31) A (32) D (33) B (34) C (35) C (36) D (37) B (38) D (39) A (40) C

二、填空题 (1)19 (2)白盒 (3)顺序结构 (4)数据库管理系统 (5)菱形 (6)4

(7)“x/y=%d” (8)不能 (9)s=0 (10)1AbCeDf2Df (11)7777654321

(12)max(int a,int b) (13)NULL

(14)1001 ,ChangRong,1098.0

爱人者,人恒爱之;敬人者,人恒敬之;宽以济猛,猛以济宽,政是以和。将军额上能跑马,宰相肚里能撑船。 最高贵的复仇是宽容。有时宽容引起的道德震动比惩罚更强烈。 君子贤而能容罢,知而能容愚,博而能容浅,粹而能容杂。 宽容就是忘却,人人都有痛苦,都有伤疤,动辄去揭,便添新创,旧痕新伤难愈合,忘记昨日的是非,忘记别人先前对自己的指责和谩骂,时间是良好的止痛剂,学会忘却,生活才有阳光,才有欢乐。 不要轻易放弃感情,谁都会心疼;不要冲动下做决定,会后悔一生。也许只一句分手,就再也不见;也许只一次主动,就能挽回遗憾。 世界上没有不争吵的感情,只有不肯包容的心灵;生活中没有不会生气的人,只有不知原谅的心。 感情不是游戏,谁也伤不起;人心不是钢铁,谁也疼不起。好缘分,凭的就是真心真意;真感情,要的就是不离不弃。 爱你的人,舍不得伤你;伤你的人,并不爱你。你在别人心里重不重要,自己可以感觉到。所谓华丽的转身,都有旁人看不懂的情深。 人在旅途,肯陪你一程的人很多,能陪你一生的人却很少。谁在默默的等待,谁又从未走远,谁能为你一直都在? 这世上,别指望人人都对你好,对你好的人一辈子也不会遇到几个。人心只有一颗,能放在心上的人毕竟不多;感情就那么一块,心里一直装着你其实是难得。 动了真情,情才会最难割;付出真心,心才会最难舍。 你在谁面前最蠢,就是最爱谁。其实恋爱就这么简单,会让你智商下降,完全变了性格,越来越不果断。 所以啊,不管你有多聪明,多有手段,多富有攻击性,真的爱上人时,就一点也用不上。 这件事情告诉我们。谁在你面前很聪明,很有手段,谁就真的不爱你呀。 遇到你之前,我以为爱是惊天动地,爱是轰轰烈烈抵死缠绵;我以为爱是荡气回肠,爱是热血沸腾幸福满满。 我以为爱是窒息疯狂,爱是炙热的火炭。婚姻生活牵手走过酸甜苦辣温馨与艰难,我开始懂得爱是经得起平淡。

爱人者,人恒爱之;敬人者,人恒敬之;宽以济猛,猛以济宽,政是以和。将军额上能跑马,宰相肚里能撑船。 最高贵的复仇是宽容。有时宽容引起的道德震动比惩罚更强烈。 君子贤而能容罢,知而能容愚,博而能容浅,粹而能容杂。 宽容就是忘却,人人都有痛苦,都有伤疤,动辄去揭,便添新创,旧痕新伤难愈合,忘记昨日的是非,忘记别人先前对自己的指责和谩骂,时间是良好的止痛剂,学会忘却,生活才有阳光,才有欢乐。 不要轻易放弃感情,谁都会心疼;不要冲动下做决定,会后悔一生。也许只一句分手,就再也不见;也许只一次主动,就能挽回遗憾。 世界上没有不争吵的感情,只有不肯包容的心灵;生活中没有不会生气的人,只有不知原谅的心。 感情不是游戏,谁也伤不起;人心不是钢铁,谁也疼不起。好缘分,凭的就是真心真意;真感情,要的就是不离不弃。 爱你的人,舍不得伤你;伤你的人,并不爱你。你在别人心里重不重要,自己可以感觉到。所谓华丽的转身,都有旁人看不懂的情深。 人在旅途,肯陪你一程的人很多,能陪你一生的人却很少。谁在默默的等待,谁又从未走远,谁能为你一直都在? 这世上,别指望人人都对你好,对你好的人一辈子也不会遇到几个。人心只有一颗,能放在心上的人毕竟不多;感情就那么一块,心里一直装着你其实是难得。 动了真情,情才会最难割;付出真心,心才会最难舍。 你在谁面前最蠢,就是最爱谁。其实恋爱就这么简单,会让你智商下降,完全变了性格,越来越不果断。 所以啊,不管你有多聪明,多有手段,多富有攻击性,真的爱上人时,就一点也用不上。 这件事情告诉我们。谁在你面前很聪明,很有手段,谁就真的不爱你呀。 遇到你之前,我以为爱是惊天动地,爱是轰轰烈烈抵死缠绵;我以为爱是荡气回肠,爱是热血沸腾幸福满满。 我以为爱是窒息疯狂,爱是炙热的火炭。婚姻生活牵手走过酸甜苦辣温馨与艰难,我开始懂得爱是经得起平淡。

0全国计算机等级考试二级C语言笔试试题(含参考答案).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c1hcin1hmmd5gf8x599ez10e609m8f001b8m_1.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top