二级C语言真题.docx
《二级C语言真题.docx》由会员分享,可在线阅读,更多相关《二级C语言真题.docx(28页珍藏版)》请在冰豆网上搜索。
二级C语言真题
2006年4月全国计算机等级考试二级笔试试卷
C语言程序设计
(考试时间120分钟,满分100分)
一、选择题(
(1)~(35)每小题2分,共70分)
下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的。
(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)对如下二叉树
进行后序遍历的结果为______。
A)ABCDEFB)DBEAFC
C)ABDECFD)DEBFCA
(7)在深度为7的满二叉树中,叶子结点的个数为______。
A)32B)31
C)64D)63
(8)“商品”与“顾客”两个实体集之间的联系一般是______。
A)—对—B)—对多
C)多对一D)多对多
(9)在E-R图中,用来表示实体的图形是______。
A)矩形B)椭圆形
C)菱形D)三角形
(10)数据库DB、数据库系统DBS、数据库管理系统DBMS之间的关系是______。
A)DB包含DBS和DBMSB)DBMS包含DB和DBS
C)DBS包含DB和DBMSD)没有任何关系
(11)以下不合法的用户标识符是______。
A)j2KEYB)DoubleC)4dD)_8_
(12)以下不合法的数值常量是______。
A)011B)le1C)8.0E0.5D)0xabcd
(13)以下不合法的字符常量是______。
A)'\018'B)'\'''C)'\\'D)'\xcc'
(14)表达式3.6-5/2+1.2+5%2的值是______。
A)4.3B)4.8C)3.3D)3.8
(15)以下能正确定义字符串的语句是______。
A)charstr[]={'\064'};B)charstr="\x43";
C)charstr=";D)charstr[]="\0";
(16)以下数组定义中错误的是______。
A)intx[][3]={0};B)intx[2][3]={{1,2},{3,4},{5,6}};
C)intx[][3]={{1,2,3},{4,5,6}};D)intx[][3]={1,2,3,4,5,6};
(17)若要求从键盘读入含有空格字符的字符串,应该使用函数______。
A)getc()B)gets()C)getchar()D)scanf()
(18)以下四个程序中,完全正确的是______。
A)#include<stdio.h>
main();
{/*programming*/
printf("programming!
\n");}
B)#include<stdio.h>
main()
{/*/programming/*/
printf("programming!
\n");}
C)#include<stdio.h>
main()
{/*programming*/
printf("programming!
\n");}
D)include<stdio.h>
main()
{/*/*programming*/*/
printf("programming!
\n");}
(19)若有定义:
floatx=1.5;inta=1,b=3,c=2;则正确的switch语句是______。
A)switch(x)
{case1.0:
printf("*\n");
case2.0:
printf("**\n");}
B)switch((int)x);
{case1:
printf("*\n");
case2:
printf("**\n");}
C)switch(a+b)
{case1:
printf("*\n");
case2+1:
printf("**\n");}
D)switch(a+b))
{case1:
pfintf("*\n")};
casec:
printf("**\n"));}
(20)若各选项中所有变量已正确定义,函数fun中通过return语句返回一个函数值,以下选项中错误的程序是______。
A)mam()
{……x=fun(2,10);……}
fioatfun(inta,intb){……}
B)floatfun(inta,intb){……}
main()
{……x=fun(i,j);……}
C)floatfun(intint);
main()
{……x=fun(2,10);……}
floatfun(inta,intb){……}
D)main()
{floatfun(inti,intj);
……x=fun(i,j);……}
floatfun(inta,intb){……}
(21)在以下给出的表达式中,与while(E)中的(E)不等价的表达式是______。
A)(!
E=0)B)(E>0||E<0)C)(E=0)D)(E!
=0)
(22)要求通过while循环不断读入字符,当读入字母N时结束循环。
若变量已正确定义,以下正确的程序段是______。
A)while((ch=getchar())!
='N')printf("%c",ch);
B)while(ch=getchar()!
='N')printf("%c",ch);
C)while(ch=getchar()='N')printf("%c",ch);
D)while((ch=getchan())='N')printf("%c",ch);
(23)已定义以下函数
intfun(int*p)
{return*p;}
fun函数返回值是______。
A)不确定的值B)—个整数
C)形参p中存放的值D)形参p的地址值
(24)若有说明语句:
double*p,a;则能通过scanf语句正确给输入项读入数据的程序段是______。
A)*p=&a;scanf("%lf',p);B)*p=&a;scanf("%f",P);
C)P=&a;scanf("%lf',*p);D)p=&a;scanf("%lf",p);
(25)现有以下结构体说明和变量定义,如图所示,指针p、q、r分别指向—个链表中连续的三个结点。
streetnode
{chardata;
structnode*next;
}*p,*q,*r;
现要将q和r所指结点交换前后位置,同时要保持链表的连续,以下不能完成此操作的语句是______。
A)q->next=r->next;p->next=r,r->next=q;
B)p->next=r,q->next=r->next;r->next=q;
C)q->next=r->next;r->next=q;p->next=r,
D)r->next=q;P->next=r;q->next=r->next;
(26)有以下程序段
structst
{intx;int*y;}*pt;
inta[]={1,2},b[]={3,4};
structstc[2]={10,a,20,b};
pt=c;
以下选项中表达式的值为11的是______。
A)*pt->yB)pt->xC)++pt->xD)(pt++)->x
(27)设fp为指向某二进制文件的指针,且已读到此文件末尾,则函数feof(fp)的返回值为______。
A)EOFB)非0值C)0D)NULL
(28)设有以下语句
inta=1,b=2,c;
c=a^(b<<2);
执行后,c的值为______。
A)6B)7C)8D)9
(29)有以下程序
#include<stdio.h>
main()
{charc1,c2,c3,c4,c5,c6;
scanf("%c%c%c%c",&c1,&c2,&c3,&c4);
c5=getchar();c6=getchar();
putchar(c1);putchar(c2);
printf("%c%c\n",c5,c6);
}
程序运行后,若从键盘输入(从第1列开始)
123<回车>
45678<回车>
则输山结果是______。
A)1267B)1256C)1278D)1245
(30)有以下程序
main()
{inty=10;
while(y-);printf("y=%d\n",y);
}
程序执行后的输出结果是______。
A)y=0B)y=1C)y=1D)while构成无限循环
(31)有以下程序
main()
{inta=0,b=0,c=0,d=0;
if(a=1)b=1;c=2;
elsed=3;
printf("%d,%d,%d,%d\n",a,b,c,d);
}
A)0,1,2,0B)0,0,0,3C)1,1,2,0D)编译有错
(32)有以下程序
main()
{inti,j,x=0;
for(i=0;i<2;i++)
{x++;
for(j=0;j<=3;j++)
{if(j%2)continue;
x++;
}
x++;
}
printf("x=%d\n",x);
程序执行后的输出结果是______。
A)x=4B)x=8C)x=6D)x=12
(33)有以下程序
intfun1(doublea){returna*=a;}
intfun2(doublex,doubley)
{doublea=0,b=0;
a=fun1(x);b=fun1(y);return(int)(a+b);
}
main()
{doublew;w=fun2(1.1,2.0);......}
程序执行后变量W中的值是______。
A)5.21B)5C)5.0D)0.0
(34)有以下程序
main()
{inti,t[][3]={9,8,7,6,5,4,3,2,1};
for