历年二级C语言笔试真题及答案9_第1页
历年二级C语言笔试真题及答案9_第2页
历年二级C语言笔试真题及答案9_第3页
历年二级C语言笔试真题及答案9_第4页
历年二级C语言笔试真题及答案9_第5页
已阅读5页,还剩38页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

2009年9月全国计算机等C)算法程序中的语句或指软件C)一种编译系统

级考试二级笔试试卷令条数D)一种操作系统

1)下列数据结构中,属于D)算法在执行过程中所需9)在E-R图中,用来表示

非线性结构的是要的临时工作单元数实体联系的图形是

A)循环队列B)带链队列5)软件设计中划分模块的A)椭圆图B)矩形C)菱

C)二叉树D)带链一个准则是形D)三角形

栈A)低内聚低耦合

2)下列数据结果中,能够B)高内聚低耦合

按照“先进后出”原则存取C)低内聚高耦合D)

数据的是高内聚高耦合

10)有三个关系R,S和T

)循环队列)栈)队)下列选项中不属于结构

ABC6如下:

列D)二叉树化程序设计原则的是

其中关系T由关系R和S

)对于循环队列,下列叙)可封装

3A通过某种操作得到,该操作

[beginI

述中正确的是B)自顶向广甚七

下C)模电/

A)队头指针是固定不变的

A)选择B)投影

I二d]

B)队头指针一定大于队尾块化

C)交D)并

指针C)队头指针一定小D)逐步求精

11)以下叙述中正确的是

于队尾指针D)队头指针7)软件详细设计产生的图

A)程序设计的任务就是编

可以大于队尾指针,也可以如下:

写程序代码并上机

小于队尾指针该图是

B)程序设计的任务就是确

)算法的空间复杂度是指)图)图)

4AN-SBPADC定所用数据结构

A)算法在执行过程中所需程序流程图D)E-R图

C)程序设计的任务就是确

要的计算机存储空间)数据库管理系统是

B)8定所用算法

算法所处理的数据量A)操作系统的一部分B)

D)以上三种说法都不完整

在操作系统支持下的系统

12)以下选项中,能用作用错,printf不能输出A)if(a>b)c=a,a=b,b=c;

户标识符的是case的值B)if(a>b){c=a,a=b,b=c;}

A)voidB)88C)_0_14)表达式:C)if(a>b)c=a;a=b;b=c;

D)unsigned(int)((double)9/2)-(9)%2的D)if(a>b){c=a;a=b;b=c;}

13)阅读以下程序值是18)有以下程序

#include<stdio.h>A)0B)3C)4#include<stdio.h>

main()D)5main()

{intcase;floatprintF;15)若有定义语句:int{intc=0,k;

printf(“请输入2个数:”);x=10;,则表达式x-=x+x的for(k=l;k<3;k-H-)

scanf("%d%f,,&case,&pjri值为switch(k)

ntF);A)-20B)-IOC)0D)10{default:c+=k

printf("%d%f\n?,,case,print16)有以下程序case2:

F);#include<stdio.h>c++;break;

)main()case4:

该程序编译时产生错误,其{inta=l,b=0;c+=2;break;

出错原因是printf(“%d,”,b=a+b);)

A)定义语句出错,case是printf("%d\n”,a=2*b);printf(44%d\n,,,c);

关键字,不能用作用户))

自定义标识符B)定义程序运行后的输出结果是程序运行后的输出结

语句出错,printF不能A)0,0B)1,0C)果是

用作用户自定义标识3,2D)1,2A)3B)5C)

符17)设有定义:int7D)9

C)定义语句无错,scanfa=l,b=2,c=3;,以下语19)以下程序段中,与语句:

不能作为输入函数使句中执行效果与其它k=a>b?(b>c?l:0):0;功能相

用D)定义语句无三个不同的是同的是

2

A)if((a>b)&&(b>c))main())

k=l;elsek=0;{intn=2,k=0;已知字母A的ASCII码为

B)if((a>b)||(b>c)k=l;else65,程序运行后的输出结果

k=0;while(k++&&n++>2);是

C)if(a<=b)k=O;elseif(b<=c)A)E,68B)D,69

k=l;printf(t4%d%d\n”,k,n);C)E,DD)输出无

D)if(a>b)k=l;elseif(b>c)}程序运行后的定值

k=l;elsek=0;输出结果是24)有以下程序

20)有以下程序A)02B)13C)#include<stdio.h>

#include<stdio.h>57D)12voidfun(intp)

main()22)有以下定义语句,编译{intd=2;

{char时会出现编译错误的是p=d++;

s[]={"012xy"};intA)chara='a'B)charprintf("%d”,p);}

i,n=0;a='\n';C)charmain()

fbr(i=0;s[i]!=0;i++)a='aa';D)char{inta=l;

a='\x2d’;fun(a);

23)有以下程序printf("%d\n”,a);}程

')n++;#include<stdio.h>序运行后的输出结果

printf(t4%d\n,,,n);main()是

}程序运行后的{charcl,c2;A)32B)12C)

输出结果是cl='A'+'8'-'4';21D)22

A)0B)2C)3c2='A'+'8'-'5';25)以下函数findmax拟实

D)5现在数组中查找最大值并

21)有以下程序printf(t4%c,%d\n,,,cl,c2)作为函数值返回,但程序中

#include<stdio.h>

3

有错导致不能实现预定功main()“One*Dream!”},*p=str

能{int[1];

#defineMINm=l,n=2,*p=&m,*q=

-2147483647&n,*r;printf("%d,”,strlen(p));

intfindmax(intx[],intr=p;p=q;q=r;printf("%s\n”,p);

n)}程序运行后的输

{inti,max;printf("%d,%d,%d,%d\出结果是

for(i=O;i<n;i++)A)9,One*WorldB)

{max=MIN;}程序运行后的9,0ne*DreamC)

if(max<x[i])输出结果是10,One*DreamD)

max=x[i];}A)1,2,1,B)1,2,2,110,One*World

returnmax;02,1,2,D)2,l,l,229)有以下程序

)造成错误的原因27)若有定义语句:int#include<stdio.h>

是a[4][10],*p,*q[4];K0<i<4,main()

A)定义语句inti,max;中则错误的赋值是{inta[]={2,3,5,4),i;

max未赋初值B)赋值A)p=aB)q[i]=a[i]C)for(i=0;i<4;i++)

语句max=MIN;中,不应给p=a[i]D)p=&a[2][l]switch(i%2)

max赋MIN值28)有以下程序{case

C)语句if(max<x[i])#include<stdio.h>0:switch(a[i]%2)

max=x[i];中判断条件#include<string.h>{case

设置错D)赋值语main()O:a[i]++;break;

句max=MIN;放错了{charcase

位置str[][20]={ttOne*Worll:a[i]-;

(26)有以下程序d”,}break;

#include<stdio.h>case1:a[i[=O;

4

字符串整体输入给字C)void*pf();*pf=fun;

for(i=0;i<4;i++)符数组D)void

printf("%d”,a[i]);C)字符数组中的内容不一(*pf)(int,char);pf==&fun

printf("\n");定是字符串

}D)字符数组只能存放(34)有以下程序

A)3344B)2050字符串#include<stdio.h>

C)3040D)03032)下列函数的功能是intf(intn);

4fun(char*a,char*b)main()

30)有以下程序{while((*b=*a)!='\0'){inta=3,s;

#include<stdio.h>{a++,b++;}}

#include<string.h>A)将a所指字符串赋给bs=f(a);s=s+f(a);prin氓“

main()所指空间B)使指针%d\n,,,s);

{chara[10]=''abcd”;b指向a所指字符串}

printf("%d,%d\n”,strleC)将a所指字符串和intf(intn)

n(a),sizeof(a);b所指字符串进行比{staticinta=l;

}程序运行后的输较n+=a++;

出结果是D)检查a和b所指字符串returnn;

A)7,4B)4,10C)中是否有‘\0'}程序运行以

8,8D)10,1033)设有以下函数后的输出结果是

31)下面是有关C语言字voidfun(intn,char*s)A)7B)8C)

符数组的描述,其中错误的{....}则下面对函9D)10

是数指针的定义和赋值35)有以下程序

A)不可以用赋值语句给字均是正确的是#include<stdio.h>

符数组名赋字符串A)void(*pf)();pf=fun;#define氏x)x*x*x

B)可以用输入语句把B)viod*pf();pf=fun;main()

5

{inta=3,s,t;C)c=getchar();D)A)100l,ZhangDa,1098.0

*c="string”;B)

s=f(a+l);t=f((a+1));38)有以下程序1001,ZhangDa,1202.0

#include<stdio.h>C)

printf("%d,%d\n',s,t);#include<string.h>100l,ChangRong,!098.

}程序运行structA0D)

后的输出结果是{inta;charb[10];1001,ChangRong,1202.

A)10,64B)10,10doublec;};0

C)64,10D)64,64structAf(structAt);39)若有以下程序段

36)下面结构体的定义语句main()intr=8;

中,错误的是{structAprintfC<%d\n,,,r»l);输出

A)structord{intx;inty;int结果是A)16

z;};structorda;B)a={1001,"ZhangDa”,lB)8C)4D)

structord{intx;int098.0};2

y;intz;}structorda;40)下列关于C语言文件

C)structord{intx;inty;inta=f(a);jprintf("%d,%s,的叙述中正确的是

z;}a;D)struct%6.1f\n”,a.a,a.b,a.c);A)文件由一系列数据依次

{intx;inty;intz;}a;)排列组成,只能构成二

37)设有定义:char*c;,stmctAf(stmctAt)进制文件B)文件由结

以下选项中能够使字构序列组成,可以构成

符型指针c正确指向(t.a=1002;strcpy(t.b,“二进制文件或文本文

一个字符串的是ChangRong,,);t.c=1202件

A)charstr[]-,string,,;c=str;.0;retumt;)程序运C)文件由数据序列组成,

B)scanf("%s",c);行后的输出结果是可以构成二进制文件

或文本文件D)

6

文件由字符序列组成,龄等。其中可以作为主关键printfC%d\n,,,a);}

其类型只能是文本文字的是【5】。10)有以下程序

件6)若有定义语句:inta=5;,#include<stdio.h>

二、填空题(每空2分,则表达式:a++的值是main()

共30分)[61o(intf,fl,f2,i;

1)某二叉树有5个度为27)若有语句doublex=17;intfl=0;f2=l;

的结点以及3个度为1的结y;,当执行y=(int)(x/5)%2;

点,则该二叉树中共有【1】之后y的值为【7】。printfC4%d%d,,,fl,f2);

个结点。8)以下程序运行后的输出fbr(i=3;i<=5;i++)

2)程序流程图中的菱形框结果是【8】。{M+f2;

表示的是【2】。#include<stdio.h>

3)软件开发过程主要分为main()fl=f2;f2=f;

需求分析、设计、编码与测{intx=20;)

试四个阶段,其中【3】阶printfCc%d,,,0<x<20);printf("\n”);

段产生“软件需求规格说明}程序运行后的输出结

书。printf(tt%d\n,,,0<x&&x<20)果是【10】。

4)在数据库技术中,实体;)11)有以下程序

集之间的联系可以是9)以下程序运行后的输出#include<stdio.h>

一对一或一对多或多结果是.【9】。inta=5;

对多的,那么“学生”#include<stdio.h>voidfun(intb)

和“可选课程”的联系main(){inta=10;

为【410{inta=l,b=7;a+=b;printf("%d”,a);

5)人员基本信息一般包括:do{)

身份证号,姓名,性别,年b=b/2;a+=b;main()

}while(b>l);{intc=20;

7

)循环队列是非线性结构

typedefstructC

D)有序性表既可以采用顺

ftin(c);a+=c;printf("%d\n",a{intnum;double序存储结构,也可以采用链

式存储结构

);s}REC;(2)支持子程序调用的数

据结构是A)栈B)树

}程序运行后的输出voidfun1(REC

C)队列D)二叉树

结果是【11]。x){x.num=23;x.s=88.5;}(3)某二叉树有5个度为

2的结点,则该二叉树中的

12)设有定义:main()叶子结点数是A)10B)

8C)6D)4

structperson{RECa={16,90.0};(4)下列排序方法中,最

坏情况下比较次数最少的

{intID;charname[12];}p;fun1(a);

请将scanf("%d'',【12】);printf("%d\n”,a.num);A)冒泡排序B)简单选择

排序O直接插排序

语句补充完整,使其能够为}程序运行后的输出结D)堆排序

(5)软件按功能可以分为:

结构体变量的成员正果是【】

pID14应用软件、系统软件和支撑

确读入数据。15)有以下程序软件(或工具软件)。下面

属于应用软件的是

13)有以下程序#include<stdio.h>A)编译软件B)操作系

统O教务管理系统

#include<stdio.h>fun(intx)D)汇编程序

()下面叙述中错误的是

main(){if(x/2>0)run(x/2);6

A)软件测试的目的是发现

{chara[20]="Howareprintf("%d”,x);错误并改正错误B)对被

调试的程序进行“错误定

you?,,,b[20];)位”是程序调试的必要步骤

C)程序调试通常也称为

main()

DebugD)软

件测试应严格执行测试计

scanf("%s”,b);printf("%s%{flm(6);printf("\n");}

程序运行后的输出结果是划,排除测试的随意性

s\n”,a,b);[15]o(7)耦合性和内聚性是对

模块独立性度量的两个标

}程序运行时从键盘2009年3月二级C语言准。下列叙述中正确的是

笔试真题及答案A)提高耦合性降低内聚性

输入:Howareyou?<回车>

有利于提高模块的独立性

则输出结果为【13】。(1)下列叙述中正确的是B)降低耦合性提高内聚性

A)栈是“先进先出”的线有利于提高模块的独立性

14)有以下程序性表B)队列是“先进先C)耦合性是指一个模块内

出”的线性表部各个元素间彼此结合的

#include<stdio.h>

8

紧密程度D)内聚性是指系统将自动给k赋初值if(x<=3);else

模块间互相连接的紧密程-1D)这时k中无任何值if(x!=10)

度(13)以下选项中,能用作printf("%d\n",x);}程

(8)数据库应用系统中的数据常量的是A)序运行时,输入的值在哪个

核心问题是0115B)0118C)范围才会有输出结果

A)数据库设计B)数据1.5el.5D)115LA)不等于10的整数B)大

库系统设计C)数据库维(14)设有定义:intx=2;,于3且不等于10的整数C)

护D)数据库管理员培以下表达式中,值不为6大于3或等于10的整数D)

训的是A)x*=x+lB)小于3的整数

(9)有两个关系R,S如下:x++,2*xC)x*=(1+x)D)(19)有以下程序

R2*x,x+=2#include<stdio.h>

(15)程序段:intx=12;Main()

ABC

doubley=3.141593;{inta=l,b=2,c=3,d=0;

a32printf("%d%8.6f",x,y);if(a==1&&b++==2)

的输出结果是if(b!=2||c—!=3)

b01A)123.141593B)printf

123.141593C)12,(“%d,%d,%d\n”,a,b,c);

c21

3.141593D)123.141593elseprintf

(16)若有定义语句:(“%d,%d,%d\n”,a,b,c);

doublex,y,*px,*py,执行elseprintf

S

Tpx=&x,py=&y;之后,正(“%d,%d,%d\n”,a,b,c);}

AB确的输入语句是程序运行后的输出结果是

A)scanf("%f%f”,x,y);B)A)1,2,3B)1,3,2

a3

scanf(“%f%f”,&x,&y);C)C)1,3,3D)3,2,1

scanf(20)以下程序中的变量已

b0

(,px,py);D)正确定义

c2scanf(,x,y);for(i=0;i〈4;i++,i++

(17)以下是if语句的基for(k=l;k<3;k++);printf

由关系R通过运算得到关

本形式:(*”);程序段的输出

系S,则所使用的运算为A)

if(表达式)结果是

选择B)投影C)插入D)

语句A)********B)****

连接

其中“表达式”C)**D)*

(10)将E-R图转换为关系

A)必须是逻辑表达式B)(21)有以下程序

模式时.,实体和联系都可以

必须是关系表达式C)必须#include<stdio.h>

表示为A)属性B)键C)

是逻辑表达式或关系表达main()

关系D)域

式D)可以是任意合法的表{char

(11)以下选项中合法的标

达式*s=(“ABC);

识符是A)1-1B)1—10

(18)有以下程序do

-11D)1一

ttinclude<stdio.h>{printf(u%d",*s%10);s++;

(12)若函数中有定义语

main()}while(*s);}注意,

句:intk;,则

{intx;字母A的ASCH码值为65o

A)系统将自动给k赋初值

scanf("%d",&x);程序运行后的输出结果是

0B)这时k中值无定义C)

9

A)5670B)656667main()main()

C)567D)ABC{inta=3,b=4,c=5,d;{intm=l,n=2,*r=&m;

(22)设变量已正确定义,d=f(f(a,b),f(a,c));f(r,&n)jprintf

以下不能统计出一行中输printf("%d\n",d);}(“%d,%d”,m,n);}

入字符个数(不包含回车程序运行后的输出结果是voidf(int*p,int*q)

符)的程序段是A)10B)9C)8{p=p+l;*q=*q+l;}程序运

A)n=0;while((ch=getcharD)7行后输出的结果是

())!='\n')n++;B)(25)有以下程序A)1,3B)2,3C)

n=0;while(getchar()!='#include<stdio.h>1,4D)1,2

\n')n++;voidfun(char(28)以下函数按每行8

C)for(n=0;getchar()!=,*s)个输出数组中的数据

\n';n++);D){while(*s)voidfun(int*w,intn)

n=0;for(ch=getchar{if(*s%2==0){inti;

();ch!=,\n';n++);printf("%c",*s);for(i=0;i<n;i++)

s++;}}

(23)有以下程序

printf("%d",w);}

#include<stdio.h>main()

main(){charprintf("\n");}下

{intal,a2;charcl,c2;a[]={"good”};划线处应填入的语句是

scanffun(a)jprintf("\n");}A)if(i/8==0)print("\n");

("%d%c%d%c",&al,&cl,注意:字母a的ASCII码值B)if(i/8==0)continue;

&a2,&c2);为97,程序运行后的输出C)if(i%8==0)print

printf结果是(“\n");D)if

(“%d,%c,%d,%c”,&l,clA)dB)goC)god(i%8==0)continue;

,a2,c2);}D)good(29)若有以下定义int

若想通过键盘输入,使得(26)有以下程序x[10],*pt=x;则对x数

al的值为12,a2的是为34,ftinclude<stdio.h>组元素的正确应用是

cl的值为字符a,c2的值为voidfun(int*a,int*b)A)*&x[10]B)*(x+3)

{int*c;

字符b,程序输出结果是:C)*(pt+10)D)pt+3

12,a,34,b,则正确的输入c=a;a=b;b=c;}30)设有定义:char

格式是(以下代表空格,main()s[81];inti=10;,以下不

{int

<CR>代表回车)能将一行(不超过80个字

A)12a34b<CR>C)x=3,y-5,*P=&x,*q=&y;符)带有空格的字符串真确

12,a,34,b<CR>fun(p,q)jprintf读入的语句或语句组是

(“%d,%d,”,*p,*q);

B)12D)12A)gets(s)

fun(&x,&y);printfB)while((s[i++]=getchar

aa34

("%d,%d\n”,*p,*q);}())!=”\n";s="\0";

34b<CR>

程序运行后的输出结果是C)scanf("%s”,s);D)

b<CR>

A)3,5,5,3B)3,5,3,5do{scanf

24)有以下程序05,3,3,5D)5,3,5,3("%c",&s);}while

#include<stdio.h>(27)有以下程序(s[i++]!="\n");s=,,

intf(intx,inty)ftinclude<stdio.h>\0”;

{return()y-x)*x);}viodf(int*p,int*q);(31)有以下程序

io

ttinclude<stdio.h>{int是A)判断m是否能被

main()a[10]={l,2,3,4,5,6,7,8}5或者7整除B)判

{char*a[]={"abed",”,1;断m是否能被5和7整除

ef“,“gh",“ijk"};intfor(i=2;i<4;i++){b=fun

C)判断m被5或者

(&a)+b;printfb);}

I;7整除是否余1D)判

for(i=0;i<4;i++)printf(“\n");}程序运断m被5和7整除是否余1

printf*a);}程行后输出的结果是(39)有以下程序

序运行后输出的结果是A)10B)8ttinclude<stdio.h>

A)aegiB)dfhkC)10main()

C)abedD)D)10{inta=5,b=l,t;

abedefghijk1210t=(a«2|b);printf

32)以下选项中正确的语句28("%d\n",t)}程序运行

组是16后的输出结果是A)21

A)chars口;s="BOOK!”;36)有以下程序B)11C)6D)1

B)char*s;s={"BOOK!”};

ftinclude<stdio.h>(40)有以下程序

Ochars[10];s=,,B00K!”;

ftdefinePT3.5;ftinclude<stdio.h>

D)char*s;s="BOOK!”;#defineS(x)PT*x*x;main()

(33)有以下程序mian(){EILE*f;

ftinclude<stdio.h>{inta=l,b=2;printff=fopen("filea.txt","

intfun{intx,inty}(“%4.lf\n”,S(a+b));}w”);

{if(x==y)return(x);程序运行后输出的结果是fprintf(f,"abc");

elsereturen((x+y)/2)}

A)14.0B)31.5fclose(f);}若文本文

main()07.5D)程序有错件filea.txt中原有内容

{inta=4,b=5,c=6;

无输出结果为:hello,则运行以上程

printf("%d\n",fun

37)有以下程序序后,文件filea.txt中的

(2*a,fun(b,c)))}

#include<stdio.h>内容为

程序运行后的输出结果是

structordA)helloabcB)

A)3B)6C)8

{intx,y;}abcloOabcD)

D)12

dt[2]={l,2,3,4};abchello

(34)设函数中有整型变量

main()二、填空题(每空2分,共

n,为保证其在未赋值的情

{structord*p=dt;30分)

况下初值为0,应选择的存

printf("%d,”,++p->x);(1)假设一个长度为50

储类别是

printf(u%d\nn,++p->y);}的数组(数组元素的下标从

A)autoB)register

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论