聪明文档网

聪明文档网

最新最全的文档下载
当前位置: 首页> 2006年4月全国计算机等级考试二级C语言笔试试题及答案

2006年4月全国计算机等级考试二级C语言笔试试题及答案

时间:    下载该word文档
20064月全国计算机等级考试二级C言笔试试题及答案
一、选择题((1(10每题2分,(11(50每题1分,共60
下列各题ABCD四个选项中,只有一个选项是正确的,请将正确选项涂写在答题卡相应位置上,答在试卷上不得分。
(1下列选项中不属于结构化程序设计方法的是A.自顶向下B.逐步求精C.模块化D.可复用
(2两个或两个以上模块之间关联的紧密程度称为A.耦合度B.内聚度C.复杂度
D.数据传输特性
(3下列叙述中正确的是
A.软件测试应该由程序开发者来完成B.程序经调试后一般不需要再测试C.软件维护只包括对程序代码的维护D.以上三种说法都不对
(4按照“后进先出”原则组织数据的数据结构是A.队列B.栈
C.双向链表D.二叉树
(5下列叙述中正确的是
A.线性链表是线性表的链式存储结构B.栈与队列是非线性结构C.双向链表是非线性结构
D.只有根结点的二叉树是线性结构
(6对如下二叉树
ABDECF
进行后序遍历的结果为AABCDEF

BDBEAFCCABDECFDDEBFCA
(7在深度为7的满二叉树中,叶子结点的个数为A32B31C64D63
(8“商品”与“顾客”两个实体集之间的联系一般是A.一对一B.一对多C.多对一D.多对多
(9E-R图中,用来表示实体的图形是A.矩形B.椭圆形C.菱形D.三角形
(10数据库DB、数据库系统DBS、数据库管理系统DBMS之间的关系是ADB包含DBSDBMSBDBMS包含DBDBSCDBS包含DBDBMSD.没有任何关系
(11以下不合法的用户标识符是Aj2_KEYBDoubleC4dD_8_
(12以下不合法的数值常量是A011B1e1C8.0E0.5D0xabcd
(13以下不合法的字符常量是A.′\018B.′\"C.′\\′D.′\xcc


(14表达式3.6-52+1.2+52的值是A4.3B4.8C3.3D3.8
(15以下能正确定义字符串的语句是Acharstr[]={′\064}Bcharstr="kx43"Ccharstr="
Dcharstr[]="0"
(16以下数组定义中错误的是Aintx[]3={0}Bintx23={{l2}{34}{56}}Cintx[]3={{l23}{456}}Dintx23={l23456}
(17若要求从键盘读入含有空格字符的字符串,应使用函数Agetc(Bgets(Cgetchar(Dscanf(
(18以下四个程序中,完全正确的是A#includeB#includemain(main(
{/*programming*/{/*/programming/*/
printf("programming!n"}printf("programming!n"}C#includeDincludemain(main(
{/*/*programming*/*/{/*programming*/
printf("programming!n"}printf("programming!n"}
(19若有定义:floatx=1.5inta=1b=3c=2;则正确的switch语句是Aswitch(x
Bswitch((intx
{case1.0printf("*n"{case1printf("*n"case2.0printf("**n"}case2printf("**n"}Cswitch(a+B

Dswitch(a+B
{case1printf("*n"{case1printf("*n"case2+1printf("**n"}casecprintf("**n"}
(20若各选项中所用变量已正确定义,函数fun中通过return语句返回一个函数值,以下选项中错误的程序是Amain(
Bfloatfun(intaintB{„„}
{„„x=fun(210;„„}main(floatfun(intaint
B{„„}{„„x=fun(i,j;„„}Cfloatfun(intintDmain(
main({floatfun(intiintj
{„„x=fun(210;„„}„„x=fun(i,j„„}floatfun(intaint
B{„„}floatfun(intaintB{„„}
(21在以下给出的表达式中,与while(E中的(E不等价的表达式是A(!E==0B(E>0E<0C(E==0D(E!=0
(22要求通过while循环不断读入字符,当读入字母N时结束循环。若变量已正确定义,以下正确的程序段是
Awhile((ch=getchar(!=Nprintf("c",chBwhile(ch=getchar(!=Nprintf("c",chCwhile(ch=getchar(==Nprintf("c",chDwhile((ch=getchar(==Nprintf("c",ch
(23已定义以下函数intfun(int*p{return*p
fun函数返回值是A.不确定的值B.一个整数
C.形参P中存放的值D.形参P的地址值
(24若有说明语句:double*pa;则能通过scanf语句正确给输入项读入数据的程序段是A*p=&ascanf("1f"p

B*p=&ascanf("f"pCp=&ascanf("1f"*pDp=&ascanf("1f"p
(25现有以下结构体说明和变量定义,如图所示,指针pqr分别指向一个链表中连续的三个结点。structnode{chardata
structnode*next}*p*q*r
现要将qr所指结点交换前后位置,同时要保持链表的连续,以下不能完成此操作的语句
Aq->next=r->nextp->next=rr->next=qBp->next=rq->next=r->nextr->next=qCq->next=r->nextr->next=qp->next=rDr->next=qp->next=rq->next=r->next
(26有以下程序段structst
{intxint*y}*pt
inta[]={l2}b[]={34}structstc2={10a20b}pt=c
以下选项中表达式的值为11的是A*pt->yBpt->xC++pt->xD(pt++->x
(27fp为指向某二进制文件的指针,且已读到此文件末尾,则函数feof(fp的返回值为AEOFB.非0C0DNULL
(28设有以下语句inta=1b=2cc=a(b<<2;
执行后,C的值为A6B7C8D9
(29有以下程序

#includemain(
{charc1c2c3c4c5c6
scanf("cccc"&c1&c2&c3&c4c5=getchar(c6=getchar(putchar(c1putchar(c2printf("ccn"c5c6}
程序运行后,若从键盘输入(从第1列开始123<回车>45678<回车>则输出结果是A1267B1256C1278D1245
(30有以下程序main({inty=10
while(y--printf("y=dn"y}
程序执行后的输出结果是Ay=0By=-1Cy=1
Dwhile构成无限循环(31有以下程序main(
{inta=0b=0c=0d=0if(a=1b=1c=2elsed=3;
printf("d,%d,%d,%dn"abcD}
程序输出
A0120B0,003C1120D.编译有错
(32有以下程序main(
{intijx=0

for(i=0i<2i++{x++;
for(j=0j<=3j++{if(j2continuex++;}x++;}
printf("x=dn"x}
程序执行后的输出结果是Ax=4Bx=8Cx=6Dx=12
(33有以下程序
intfun1(doublea{returna*=a}intfun2(doublexdoubley{doublea=0b=0
a=fun1(xb=fun1(yreturn(int(a+B}
main(
{doubleww=fun2(1.12.0;„„}程序执行后变量w中的值是A5.21B5C5.0D0.0
(34有以下程序main(
{intit[]3={987654321}for(i=0i<3i++printf("d"t2-ii}
程序执行后的输出结果是A753B357C369D751
(35有以下程序fun(charp[]10

{intn=0i
for(i=0i<7i++if(pi0==Tn++returnn;}
main(
{charstr[]10={"Mon""Tue""Wed""Thu""Fri","Sat""Sun"}printf("dn",fun(str}
程序执行后的输出结果是A1B2C3D0
(36有以下程序main(
{intis=0t[]={l23456789}for(i=0i<9i+=2s+=*(t+iprintf("dn"s}
程序执行后的输出结果是A45B20C25D36
(37有以下程序voidfun1(char*p{char*qq=p
while(*q!=′\0{(*q++q++}
main(
{chara[]={"Program"*pp=&a3fun1(pprintf("sn"a}
程序执行后的输出结果是AProhsbnBPrphsbnCProgsbnDProgram

(38有以下程序
voidswap(char*xchar*y{chart
t=*x*x=*y*y=t}
main(
{char*s1="abc"*s2="123";
swap(s1s2printf("s,%sn"s1s2}
程序执行后的输出结果是A123abcBabc123C1bca23D321,cba
(39有以下程序intfun(intn
{if(n==1return1else
return(n+fun(n-1}
main({intx
scanf("d",&x;x=fun(xprintf("dn"x}
执行程序时,给变量X输入10,程序的输出结果是A55B54C65D45
(40有以下程序intfun(intx[]intn{staticintsum=0i
for(i=0ii++sum+=xireturnsum}
main(
{inta[]={1,2345}b[]={6789}s=0s=fun(a,5+fun(b4printf("dn"s}
程序执行后的输出结果是A45B50

C60D55
(41有以下程序main({union
{charch2intd}s
s.d=0x4321
printf("x,%xn"s.ch0s.ch1}
16位编译系统上,程序执行后的输出结果是A2143B4321C4300D2100
(42有以下程序main(
{char*p[]={"3697""2584"}intijlongnum=0for(i=0i<2i++{j=0
while(pij!=′\0{if((pij-02num=10*num+pij-0′;j+=2}}
printf("dn",num}
程序执行后的输出结果是A35B37C39D3975
(43执行以下程序后,test.txt文件的内容是(若文件能正常打开#includemain(
{FILE*fp
char*s1="Fortran"*s2="Basic"if((fp=fopen("test.txt","wb”==NULL
{printf("Cantopentest.txtfilen"exit(1}
fwrite(s171fp/*把从地址s1开始的7个字符写到fp所指文件中*

fseek(fp0LSEEK_SET*文件位置指针移到文件开头*fwrite(s251fpfclose(fp}
ABasicanBBasicFortranCBasic
DFortranBasic
(44以下叙述中错误的是
AC语言源程序经编译后生成后缀为.obj的目标程序
BC程序经过编译、连接步骤之后才能形成一个真正可执行的二进制机器指令文件C.用C语言编写的程序称为源程序,它以ASCII代码形式存放在一个文本文件中
DC语言中的每条可执行语句和非执行语句最终都将被转换成二进制的机器指令
(45以下叙述中错误的是
A.算法正确的程序最终一定会结束B.算法正确的程序可以有零个输出C.算法正确的程序可以有零个输入
D.算法正确的程序对于相同的输入一定有相同的结果
(46以下叙述中错误的是
AC程序必须由一个或一个以上的函数组成B.函数调用可以作为一个独立的语句存在
C.若函数有返回值,必须通过return语句返回D.函数形参的值也可以传回给对应的实参
(47设有以下定义和语句
charstr20="Program"*pp=str
则以下叙述中正确的是
A*pstr0]的值相等Bstrp的类型完全相同
Cstr数组长度和p所指向的字符串长度相等
D.数组str中存放的内容和指针变量p中存放的内容相同
(48以下叙述中错误的是
AC程序中的#include#define行均不是C语句B.除逗号运算符外,赋值运算符的优先级最低CC程序中,j++;是赋值语句
DC程序中,+-*、/、%号是算术运算符,可用于整型和实型数的运算

(49以下叙述中正确的是
A.预处理命令行必须位于C源程序的起始位置B.在C语言中,预处理命令行都以"#"开头
C.每个C程序必须在开头包含预处理命令行:#includeDC语言的预处理不能实现宏定义和条件编译的功能
(50以下叙述中错误的是
A.可以通过typedef增加新的类型
B.可以用typedef将已存在的类型用一个新的名字来代表C.用typedef定义新的类型名后,原有类型名仍有效
D.用typedef可以为各种类型起别名,但不能为变量起别名二、填空题(每空2分,共40
请将每一个空的正确答案写在答题卡【1】至【20】序号的横线上,答在试卷上不得分。
(1对长度为10的线性表进行冒泡排序,最坏情况下需要比较的次数为【1
(2在面向对象方法中,2】描述的是具有相似属性与操作的一组对象。
(3在关系模型中,把数据看成是二维表,每一个二维表称为一个【3
(4程序测试分为静态分析和动态测试。其中【4】是指不执行程序,而只是对程序文本进行检查,通过阅读和讨论,分析和发现程序中的错误。
(5数据独立性分为逻辑独立性与物理独立性。当数据的存储结构改变时,其逻辑结构可以不变,因此,基于逻辑结构的应用程序不必修改,称为【5
(6若变量ab已定义为int类型并赋值2155,要求用printf函数以a=21b=55的形式输出,请写出完整的的输出语句【6
(7以下程序用于判断abc能否构成三角形,若能,输出YES,否则输出NO。当给abc输入三角形三条边长时,确定abc能构成三角形的条件是需同时满足三个条件:a+b>ca+c>bb+c>a。请填空。main(
{floatabc
scanf("fff"&a&b&C
if(7printf("YESn";/*abc能构成三角形*elseprintf("NOn";/*abc不能构成三角形*}
(8以下程序的输出结果是【8main({inta33={{129}{348}{567}}is=0

for(i=0i<3i++s+=aii+ai3-i-1printf("dn"s}
(9当运行以下程序时,输入abcd,程序的输出结果是:9insert(charstr[]{inti
i=strlen(strwhile(i>0
{str2*i=stristr2*i-1=*′;i--}printf("sn",str}
main(
{charstr40
scanf("s"strinsert(str}
(10下面程序的运行结果是:10fun(intt[]intn{intim
if(n==1returnt0else
if(n>=2{m=fun(tn-1returnm}}
main(
{inta[]={11463823592}printf("dn"fun(a10}
(11现有两个C程序文件T18.cmyfun.c同在TC系统目录(文件夹下,其中T18.c文件如下:
#include#include"myfun.c"main(
{fun(printf("n"}myfun.c文件如下:voidfun({chars80cintn=0
while((c=getchar(!=′\nsn++=cn--
while(n>=0printf("c"sn--}
当编译连接通过后,运行程序T18时,输入Thank!则输出结果是:11
(12以下函数fun的功能是返回str所指字符串中以形参c中字符开头的后续字符串的首地

址,例如:str所指字符串为:Hello!c中的字符为e,则函数返回字符串:ello!的首地址。str所指字符串为空串或不包含c中的字符,则函数返回NULL。请填空。char*fun(char*str,charC
{intn=0char*p=strif(p!=NULL
while(pn!=c&&pn!=′\0n++if(pn==′\0returnNULLreturn(12}
(13以下程序的功能是:输出100以内(不含100能被3整除且个位数为6的所有整数,请填空。main((intijfor(i=013i++{j=i*10+6
if(14continueprintf("d"j}}
(14以下isprime函数的功能是判断形参a是否为素数,是素数,函数返回1否则返回0。请填空intisprime(inta{inti
for(i=2i<=a/2i++if(ai==01516}
(15以下程序的功能是输入任意整数给n后,输出n行由大写字母A开始构成的三角形字符阵列图形。例如,输入整数5(注意:n不得大于10,程序运行结果如下:ABCDEFGHIJKLMNO
请填空完成该程序。main(
{inti,jncharch=A′;scanf("d"&nif(n<11
{for(i=1i<=ni++

{for(j=1;j<=n-i+1;j++{printf("2c"ch17;}
18;}}
elseprintf("nistoolarge!n"printf("n"}
(16以下程序中函数fun的功能是:构成一个如图所示的带头结点的单向链表,在结点的数据域中放入了具有两个字符的字符串。函数disp的功能是显示输出该单链表中所有结点中的字符串。请填空完成函数disp#include
typedefstructnode/*链表结点结构*{charsub3structnode*next}Node
Nodefun(chars*建立链表*{……}
voiddisp(Node*h{Node*pp=h->nextwhile(19
{printf("sn"P->suBp=20}}
main(
{Node*hdhd=fun(disp(hDprintf("n"}

20064月全国计算机等级考试二级C语言笔试试题答案

  • 29.8

    ¥45 每天只需1.0元
    1个月 推荐
  • 9.9

    ¥15
    1天
  • 59.8

    ¥90
    3个月

选择支付方式

  • 微信付款
郑重提醒:支付后,系统自动为您完成注册

请使用微信扫码支付(元)

订单号:
支付后,系统自动为您完成注册
遇到问题请联系 在线客服

常用手机号:
用于找回密码
图片验证码:
看不清?点击更换
短信验证码:
新密码:
 
绑定后可用手机号登录
请不要关闭本页面,支付完成后请点击【支付完成】按钮
遇到问题请联系 在线客服