[计算机类试卷]2006年4月国家二级(C语言)笔试真题试卷及答案与解析.doc
《[计算机类试卷]2006年4月国家二级(C语言)笔试真题试卷及答案与解析.doc》由会员分享,可在线阅读,更多相关《[计算机类试卷]2006年4月国家二级(C语言)笔试真题试卷及答案与解析.doc(35页珍藏版)》请在麦多课文档分享上搜索。
1、2006 年 4月国家二级( C语言)笔试真题试卷及答案与解析 1 下列选项中小属于结构化程序设计方法的是 _。 ( A)自顶向下 ( B)逐步求精 ( C)模块化 ( D)可复用 2 两个或两个以上的模块之间关联的紧密程度称为 _。 ( A)耦合度 ( B)内聚度 ( C)复杂度 ( D)数据传输特性 3 下列叙述中正确的是 _。 ( A)软件测试应该由程序开发者来完成 ( B)程序经调试后 般不需要再测试 ( C)软件维护只包括对程序代码的维护 ( D)以上三种说法都不对 4 按照 “后进先出 ”原则组织数据的数据结构是 _。 ( A)队列 ( B)栈 ( C)双向链表 ( D)二叉树 5
2、 下列描述中正确的是 _。 ( A)线性链表是线性表的链式存储结构 ( B)栈与队列是非线性结构 ( C)双向链表是非线性结构 ( D)只有根结点的二叉树是线性结构 6 对如下二叉树 进行后序遍历的结果为 _。 ( 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图中,用来表示实体的图形是 _。 (
3、 A)矩形 ( B)椭圆形 ( 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) 11 ( B) le1 ( C) 8.0E0.5 ( D) 0xabcd 13 以下不合法的字符常量是 _。 ( A) 018 ( B) ( C)
4、( D) xcc 14 表达式 3.6-5/2 1.2 5%2的值是 _。 ( A) 4.3 ( B) 4.8 ( C) 3.3 ( D) 3.8 15 以下能正确定义字符串的语句是 _。 ( A) char str=064; ( B) char str=“x43“; ( C) char str=“; ( D) char str=“0“; 16 以下数组定义中错误的是 _。 ( A) int x3=0; ( B) int x23=1,2,3,4,5,6; ( C) int x3=1,2,3,4,5,6; ( D) int x3=1,2,3,4,5,6; 17 若要求从键盘读入含有空格字符的字符
5、串,应该使用函数 _。 ( A) getc () ( B) gets() ( C) getchar() ( D) scanf() 18 以下四个程序中,完全正确的是 _。 ( A) #include stdio.h main(); /*programming*/ printf(“programming!n“); ( B) #inc lude stdio.h main() /*/programming/*/ printf(“programming!n“); ( C) #include stdio.h main() /*programming*/ printf(“programming!n“);
6、( D) include stdio.h main() /*/*programming*/*/ printf(“programming!n“); 19 若有定义: float x=1.5;int a=1,b=3,c=2;则正确的 switch语句是 _。 ( A) switch (x) case 1.0: printf(“*n“); case 2.0: printf(“*n“); ( B) switch ( (int)x); case 1: printf(“*n“); case2: printf(“*n“); ( C) switch (a b) case 1:printf(“*n“); cas
7、e 2 1: printf(“*n“); ( D) switch (a b) case 1: pfintf(“*n“); case c: printf(“*n“); 20 若各选项中所有变量已正确定义,函数 fun中通过 return语句返回一个函数值,以下选项中错误的程序是 _。 ( A) mam() x=fun(2,10); fioat fun(int a,int b) ( B) float fun (int a,int b) main() x=fun(i,j); ( C) float fun (int int); main() x=fun(2,10); float fun (int a,
8、int b) ( D) main() float fun (int i, int j); x=fun(i,j); float fun (int a,int b) 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()
9、! =N) printf(“%c“,ch); ( C) while (ch=getchar()=N) printf(“%c“,ch); ( D) while(ch=getchan()=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= scanf(“%lf,p); ( B) *p= scan
10、f(“%f“,P); ( C) P= scanf(“%lf,*p); ( D) p= scanf(“%lf“,p); 25 现有以下结构体说明和变量定义,如图所示,指针 p、 q、 r分别指向 个链表中连续的三个结点。 street node char data; struct node *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
11、-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=1,2,b=3,4; struct st c2=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值 (
12、 C) 0 ( D) NULL 28 设有以下语句 int a=1,b=2,c; c=a(b 2); 执行后, c的值为 _。 ( A) 6 ( B) 7 ( C) 8 ( D) 9 29 有以下程序 #include stdio.h main() char c1,c2,c3,c4,c5,c6; scanf(“%c%c%c%c“, c5=getchar(); c6=getchar(); putchar(c1); putchar(c2); printf(“%c%cn“,c5,c6); 程序运行后,若从键盘输入 (从第 1列开始 ) 123 回车 45678 回车 则输山结果是 _。 ( A) 1
13、267 ( B) 1256 ( C) 1278 ( D) 1245 30 有以下程序 main() int y=10; while(y-); printf(“y=%dn“,y); 程序执行后的输出结果是 _。 ( A) y=0 ( B) y=1 ( C) y=1 ( D) while构成无限循环 31 有以下程序 main() int a=0,b=0,c=0,d=0; if(a=1)b=1;c=2; else d=3; printf(“%d,%d,%d,%dn“,a,b,c,d); ( A) 0,1,2,0 ( B) 0,0,0,3 ( C) 1,1,2,0 ( D)编译有错 32 有以下程序
14、 main() int i,j,x=0; for(i=0;i 2;i ) x ; for(j=0;j =3;j ) if(j%2) continue; x ; x ; printf(“x=%dn“,x); 程序执行后的输出结果是 _。 ( A) x=4 ( B) x=8 ( C) x=6 ( D) x=12 33 有以下程序 int fun1 (double a)return a*=a; int fun2 (double x,double y) double a=0,b=0; a=fun1(x);b=fun1(y); return(int)(a+b); main() double w;w=fu
15、n2(1.1,2.0); 程序执行后变量 W中的值是 _。 ( A) 5.21 ( B) 5 ( C) 5 ( D) 0 34 有以下程序 main() int i,t3=9,8,7,6,5,4,3,2,1; for(i-0;i 3;i ) printf(“%d“,t2-ii); 程序执行后的输出结果是 _。 ( A) 753 ( B) 357 ( C) 369 ( D) 751 35 有以下程序 fun(char p10) int n=0,i; for(i=O;i 7;i ) if(piO=T)n ; return n; main() char str10=“Mon“,“Tue“,“Wed“
16、,“Thu“,“Fri“, “Sat“,“Sun“; printf(“%dn“,fun(str); ( A) 1 ( B) 2 ( C) 3 ( D) 0 36 有以下程序 main() int i,s=0,t=1,2,3,4,5,6,7,8,9 ; for(i=0;i 9;i =2) s=*(t i); printf(“%dn“,s); ( A) 45 ( B) 20 ( C) 25 ( D) 36 37 有以下程序 void fun 1 (char *p) char *q; q=p; while(*q!=0) (*q) ;q ; main() char a=“Program“,*p; p=
17、fun1(p);printf(“%sn“,a); 程序执行后的输出结果是 _。 ( A) Prohsbn ( B) Prphsbn ( C) Progsbn ( D) Program 38 有以下程序 void swap(char *x,char *y) char t; t=*x;*x=*y;*y=t; main() char *s1=“abc“,*s2=“123“; swap(s1,s2); printf(“%s,%sn“,s1,s2); 程序执行后的输出结果是 _。 ( A) 123,abc ( B) abc,123 ( C) 1bc,a23 ( D) 321,cba 39 有以下程序 i
18、nt fun(int n) if(n=1) return 1; else return(nfun(n-1); main() int x; scanf(“%d“,x=fun(x);pfintf(“%dn“,x); 执行程序时,给变量 x输入 10,程序的输出结果是 _。 ( A) 55 ( B) 54 ( C) 65 ( D) 45 40 有以下程序 int fun(int x,int n) static int sum=0,i; for(i=0;i n;i ) sum =xi; return sum; main() int a=1,2,3,4,5,b=6,7,8,9,s=0; s=fun(a,
19、5)fun(b,4);printf(“%dn“,s); 程序执行后的输出结果是 _。 ( A) 45 ( B) 50 ( C) 60 ( D) 55 41 有以下程序 main() union char ch2; int d; s; s.d=0x4321; printf(“%x,%xn“,s.chO,s.ch1); 在 16位编译系统上,程序执行后的输出结果是 _。 ( A) 21,43 ( B) 43,21 ( C) 43,00 ( D) 21,00 42 有以下程序 main() char *p=“3697“,“2548“; int i,j; long num=0; for(i=0;i 2
20、;i ) j=0; while(pij!=0) if(pij-0)%2) num=10*numpij-0; j=2; printf(“%dn“,num); 程序执行后的输出结果上_。 ( A) 35 ( B) 37 ( C) 39 ( D) 3975 43 执行以下程序后, test.txt文件的内容是 (若文件能正常打开 )_。 #include stdio.h main() FILE *fp; char *s1=“Fortran“,*s2=“Basic“; if(fp=fopen(“test.txt“,“wb“)=NULL) printf(“Cant open test.txt filen
21、“); exit(1); fwrite(s1,7,1,fp); /* 把从地址 s1开始的 7个字符写到 fp所指文件中 */ f seek(fp, 0L,SEEK_SET);/*文件位置指针移到文件开头 */ fwrite(s2,5,1,fp); fclose(fp); ( A) Basican ( B) BasicFortran ( C) Basic ( D) FortranBasic 44 以下叙述中错误的是 _。 ( A) C语言源程序经编译后生成后缀为 obj的目标程序 ( B) C程序经过编译、连接步骤之后才能形成一个真正可执行的二进制机器指令文件 ( C)用 C语言编写的程序称为
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
2000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 试卷 2006 国家 二级 语言 笔试 答案 解析 DOC
