logo资料库

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

第1页 / 共23页
第2页 / 共23页
第3页 / 共23页
第4页 / 共23页
第5页 / 共23页
第6页 / 共23页
第7页 / 共23页
第8页 / 共23页
资料共23页,剩余部分请下载后查看
2006 年 4 月全国计算机二级 C 语言考试真题及答案 一、选择题((1)一(10)每题 2 分,(11)一(50)每题 1 分,共 60 分) 下列各题 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.栈与队列是非线性结构 1
C.双向链表是非线性结构 D.只有根结点的二叉树是线性结构 (6)对如下二叉树 ABDECF 进行后序遍历的结果为 A.ABCDEF B.DBEAFC C.ABDECF D.DEBFCA (7)在深度为 7 的满二叉树中,叶子结点的个数为 A.32 B.31 C.64 D.63 (8)“商品”与“顾客”两个实体集之间的联系一般是 A.一对一 B.一对多 C.多对一 D.多对多 (9)在 E-R 图中,用来表示实体的图形是 A.矩形 B.椭圆形 2
C.菱形 D.三角形 (10)数据库 DB、数据库系统 DBS、数据库管理系统 DBMS 之间的关系是 A.DB 包含 DBS 和 DBMS B.DBMS 包含 DB 和 DBS C.DBS 包含 DB 和 DBMS D.没有任何关系 (11)以下不合法的用户标识符是 A.j2_KEY B.Double C.4d D._8_ (12)以下不合法的数值常量是 A.011 B.1e1 C.8.0E0.5 D.0xabcd (13)以下不合法的字符常量是 A.′\018′ B.′\"′ C.′\\′ D.′\xcc′ (14)表达式 3.6-5/2+1.2+5%2 的值是 A.4.3 B.4.8 C.3.3 D.3.8 3
(15)以下能正确定义字符串的语句是 A.char str[]={′\064′}; B.char str="kx43"; C.char str="; D.char str[]="\0"; (16)以下数组定义中错误的是 A.int x[][3]={0}; B.int x[2][3]={{l,2},{3,4},{5,6}}; C.int x[][3]={{l,2,3},{4,5,6}}; D.int x[2][3]={l,2,3,4,5,6}; (17)若要求从键盘读入含有空格字符的字符串,应使用函数 A.getc() B.gets() C.getchar() D.scanf() (18)以下四个程序中,完全正确的是 A.#include B.#include main();main() {/*programming*/{/*/ programming /*/ printf("programming!\n");} printf("programming!\n");} C.#include D. include main()main() {/*/*programming*/*/{/*programming*/ printf("programming!\n");} printf("programming!\n");} (19)若有定义:float x=1.5;int a=1,b=3,c=2;则正确的 switch 语句是 A.switch(x) 4
B.switch((int)x); {case 1.0:printf("*\n"); {case 1:printf("*\n"); case 2.0:printf("**\n");} case 2:printf("**\n");} C.switch(a+ B. D.switch(a+ B. {case 1:printf("*\n");{case 1:printf("*\n"); case 2+1:printf("**\n");}case c:printf("**\n");} (20)若各选项中所用变量已正确定义,函数 fun 中通过 return 语句返回一个函数值,以下 选项中错误的程序是 A.main() B.float fun(int a,int B.{……} {……x=fun(2,10);……}main() float fun(int a,int B.{……} {……x=fun(i,j);……} C.float fun(int,int); D.main() main() {float fun(int i,int j); {……x=fun(2,10);……} ……x=fun(i,j); ……} float fun(int a,int B.{……}float fun(int a,int B.{……} (21)在以下给出的表达式中,与 while(E)中的(E)不等价的表达式是 A.(!E==0) B.(E>0‖E<0) 5
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=getchar())==′N′)printf("%c",ch); (23)已定义以下函数 int fun(int *p) {return *p;) fun 函数返回值是 A.不确定的值 B.一个整数 C.形参 P 中存放的值 D.形参 P 的地址值 (24)若有说明语句:double *p,a;则能通过 scanf 语句正确给输入项读入数据的程序段是 A.*p=&a; scanf("%1f",p); B.*p=&a; scanf("%f",p); C.p=&a; scanf("%1f",*p); D.p=&a; scanf("%1f",p); (25)现有以下结构体说明和变量定义,如图所示,指针 p、q、r 分别指向一个链表中连续的 三个结点。 struct node {char data; struct node *next; }*p,*q,*r; 现要将 q 和 r 所指结点交换前后位置,同时要保持链表的连续,以下不能完成此操作的语句 是 6
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)有以下程序段 struct st {int x;int *y;}*pt; int a[]={l,2},b[]={3,4}; struct st c[2]={10,a,20,b}; pt=c; 以下选项中表达式的值为 11 的是 A.*pt->y B.pt->x C.++pt->x D.(pt++)->x (27)设 fp 为指向某二进制文件的指针,且已读到此文件末尾,则函数 feof(fp)的返回值为 A.EOF B.非 0 值 C.0 D.NULL (28)设有以下语句 int a=1,b=2,c; c=a^(b<<2); 执行后,C 的值为 A.6 B.7 C.8 D.9 7
(29)有以下程序 #include main() {char c1,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.1267 B.1256 C.1278 D.1245 (30)有以下程序 main() {int y=10; while(y--);printf("y=%d\n",y); } 程序执行后的输出结果是 A.y=0 B.y=-1 C.y=1 D.while 构成无限循环 8
分享到:
收藏