[计算机类试卷]2006年9月国家二级(C语言)笔试真题试卷及答案与解析.doc
《[计算机类试卷]2006年9月国家二级(C语言)笔试真题试卷及答案与解析.doc》由会员分享,可在线阅读,更多相关《[计算机类试卷]2006年9月国家二级(C语言)笔试真题试卷及答案与解析.doc(35页珍藏版)》请在麦多课文档分享上搜索。
1、2006 年 9月国家二级( C语言)笔试真题试卷及答案与解析 1 下列选项中不符合良好程序设计风格的是 _。 ( A)源程序要文档化 ( B)数据说明的次序要规范化 ( C)避免滥用 goto语句 ( D)模块设计要保证高耦合、高内聚 2 从工程管理角度,软件设计 般分为两步完成,它们是 _。 ( A)概要设计与详细设计 ( B)过程控制 ( C)软件结构设计与数据设计 ( D)程序设计与数据设计 3 下列选项中不属于软件生命周期开发阶段任务的是 _。 ( A)软件测试 ( B)概要设计 ( C)软件维护 ( D)详细设计 4 在数据库系统中,用户所见数据模式为 _。 ( A)概念模式 (
2、B)外模式 ( C)内横式 ( D)物理模式 5 数据库设计的四个阶段是:需求分析、概念设计、逻辑设计和 _。 ( A)编码设计 ( B)测试阶段 ( C)运行阶段 ( D)物理设计 6 设有如下三个关系表 下列操作中正确的是 _。 ( A) T=RS ( B) R S ( C) T=RS ( D) T=R/S 7 下列叙述中正确的 _。 ( A)一个 算法的空间复杂度大,则其时间复杂度也必定大 ( B)一个算法的空间复杂度大,则其时间复杂度必定小 ( C)一今算法的时间复杂度大,则其空间复杂度必定小 ( D)上述三种说法都不对 8 在长度为 64的有序线性表中进行顺序查找,最坏情况下需要比较
3、的次数为_。 ( A) 63 ( B) 64 ( C) 6 ( D) 7 9 数据库技术的根本目标是解决数据的 _。 ( A)存储问题 ( B)共享问题 ( C)安全问题 ( D)保护问题 10 对下列二叉树进行中序遍历的结果是 _。 ( A) ACBDFEG ( B) ACBDFGE ( C) ABDCGEF ( D) FCADBEG 11 下列叙述错误的是 _。 ( A)一个 C语言程序只能实现 种算法 ( B) C程序可以由多个程序文件组成 ( C) C程序可以由 个或多个函数组成 ( D)一个 C函数可以单独作为 个 C程序文件存在 12 下列叙述中正确的是 _。 ( A)每 个 C程
4、序文件中都必须要有 个 main()函数 ( B)在 C程序中 main()函数的位置是固定的 ( C) C程序中所有函数之间都可以相互调用,与函数所在位置 无关 ( D)在 C程序的函数中不能定义另 个函数 13 下列定义变量的语句中错误的是 _。 ( A) int _int; ( B) double int_; ( C) char For; ( D) float US$; 14 若变量 x、 y己正确定义并赋值,以下符合 C语言语法的表达式是 _。 ( A) x,y=x- ( B) x 1=y ( C) x=x 10=x y ( D) double(x)/10 15 以下关于逻辑运算符两侧
5、运算对象的叙述中正确的是 _。 ( A)只能是整数 0或 1 ( B)只能是整数 0或非 0整数 ( C)可以是结构体类型的数据 ( D)可以是任意合法的表达式 16 若有定义 int x,y;并已正确给变量赋值,则以下选项中与表达式 (x-y)?(x ):(y )中的条件表达式 (x-y)等价的是 _。 ( A) (x-y O) ( B) (x-y O) ( C) (x-y 0|x-y 0) ( D) (x-y=0) 17 有以下程序 main() int x,y,z; x=y=1; z=x ,y , y; printf(“%d,%d,%dn“,x,y,z); 程序运行后的输出结果是 _。
6、( A) 2,3,3 ( B) 2,3,2 ( C) 2,3,1 ( D) 2,2,1 18 设有定义: int a; float b;执行 scanf(“%2d%f“, a=10; /* 给 a赋值 b=20; 给 b赋值 */ printf(“a b=%dn“,a b); /* 输出计算结果 */ 程序运行后的输出结果是 _。 ( A) a b=10 ( B) a b=30 ( C) 30 ( D)出错 20 在嵌套使用 if语句时, C语言规定 else总是 _。 ( A)和之前与其具有相同缩进位置的 if配对 ( B)和之前与其最近的 if配对 ( C)和之前与其最近的且不带 else
7、的 if配对 ( D)和之前的第 个 if配对 21 下列叙述中正确的是 _。 ( A) break语句只能使用 switch语句 ( B)在 switch语句中必须使用 default ( C) break语句必须与 switch语句中的 case配对使用 ( D)在 switch语句中,不一定使用 break语句 22 有以下程序 main() int k=5; while(-k) printf(“%d“,k-=3); printf(“n“); 执行后的输出结果是_。 ( A) 1 ( B) 2 ( C) 4 ( D)死循环 23 有以下程序 main() int i; for(i=1;i
8、 =40;i ) if(i %5=0) if( i%8=0) printf (“%d“,i); printf(“n“); ( A) 5 ( B) 24 ( C) 32 ( D) 40 24 以下选项中,值为 1的表达式是 _。 ( A) 1-0 ( B) 1-、 0 ( C) 1-0 ( D) 0-0 25 有以下程序 fun(int x,int y)return(x y); main() int a=1,b=2,c=3,sum; sum=fun(a ,b ,a+b),c ); printf(“%dn“,sum); ( A) 6 ( B) 7 ( C) 8 ( D) 9 26 有以下程序 ma
9、in() char s=“abcde“; s =2; printf(“%dn“,s0); 执行后的结果是 _。 ( A)输出字符 a的 ASC 码 ( B)输出字符 c的 ASC 码 ( C)输出字符 c ( D)程序出错 27 有以下程序 fun(int x,int y) static int m=0,i=2; i+=m 1; m=i x y; return m; main() int j=1,m=1,k; k=fun(j,m); printf(“%d,“,k); k=fun(j,m); printf(“%dn“,k); 执行后的输出结果是 _。 ( A) 5,5 ( B) 5,11 ( C
10、) 11,11 ( D) 11,5 28 有以下程序 fun(int x) int p; if(x=0|x=1) return(3); p=x-fun(x-2); return p; main0 printf(“%dn“,fun(7); 执行后的输出结果是 _。 ( A) 7 ( B) 3 ( C) 2 ( D) 0 29 在 16位编译系统上,若有定义 int a=10,20,30,*p=,少逗号当执行 p ;后,下列说法错误的是 _。 ( A) p向高地址移了一个字节 ( B) p向高地址移了一个存储单元 ( C) p向高地址移了两个字节 ( D) p与 a 1等价 30 有以下程序 ma
11、in0 int a=l,b=3,c=5; int *p 1 = *p-pl*(*p2); print“%dXn“,c); 执行后的输出结果是 _。 ( A) 1 ( B) 2 ( C) 3 ( D) 4 31 若有定义: int w35;,则以下不能正确表示该组元素的表达方式是 _, ( A) *(*w 3) ( B) *(w 1)4 ( C) *(*(w 1) ( D) *( ( B) int fun(double, int); ( C) int fun(double *x, int n); ( D) iht fun(double*,int*); 33 若有定义语句: int k23,*pk
12、3;,则以下语句中正确的是 _。 ( A) pk=k; ( B) pk0= ( C) pk=k0; ( D) pk1=k; 34 有以下程序 void change(int k)k0=k5; main() int x10=1,2,3,4,5,6,7,8,9,10,n=0; while(n =4) change( n ; for(n=0;n 5;n ) printf(“%d“,xn); printf(“n“); 程序运行后输出的结果是_。 ( A) 678910 ( B) 13579 ( C) 12345 ( D) 62345 35 若要求定义具有 1O个 int型元素的一维数组 a,则以下定义
13、语句中的错误的是_。 ( A) #define N 10 int aN; ( B) #define n 5 int a2*n ( C) int a5 5; ( D) int n=10,an; 36 有以下程序 main() int x32=0,i; for(i=0;i 3;i ) scanf(“%d“,xi); printf(“%3d%3d%3dn“,x00,x01,x10); 若运行时输入: 246回车,则输出结果为 _。 ( A) 200 ( B) 204 ( C) 240 ( D) 246 37 有以下程序 main() char s=“aeiou“,*ps; ps=s; printf(
14、“%cn“,*ps4); 程序运行后输出的结果是 _。 ( A) a ( B) e ( C) u ( D)元素 s4的地址 38 在以下语句中存在语法错误的是 _。 ( A) char ss620; ss1=“right?“; ( B) char ss20=“fight?“; ( C) char *ss6; ss1=“right?“; ( D) char *ss=“right?“; 39 若有定义: char *x=“abcdefghi“;,以下选项中正确运用了 strcpy函数的是_。 ( A) char y10; strcpy(y,x4); ( B) char y10; strcpy( y
15、, ( C) char y10,*s; strcpy(s=y 5,x); ( D) char y10,*s; strcpy(s=y 1,x 1); 40 有以下程序 iht add (int a, int b) return(a b); mian() int k,(*f)(),a=5,b=10; f=add; 则以下函数调用语句错误的是 _。 ( A) k=(*f)(a,b); ( B) k=add(a,b); ( C) k=*f(a,b); ( D) k=f(a,b); 41 有以下程序 #include string.h main(int argc, char *argv) int i=1
16、,n=0; while(i argc) n=n strlen(argvi);i ; printf(“%dn“,n); 该程序生成的可执行文件名为: proc.exe。若运行时输入命令行: proc 123 45 67 则程序的输出结果是 _。 ( A) 3 ( B) 5 ( C) 7 ( D) 11 42 有以下程序 void fun2 (char a,char b) printf(“%c%c“,a,b); char a=A,b=B; void fun1() a=C; b=D; main() fun1(); printf(“%c%c“,a,b); fun2 (E,F); 程序的运行结果是_。
17、( A) CDEF ( B) ABEF ( C) ABCD ( D) CDAB 43 有以下程序 #include stdio.h #define N 5 #define M N 1 #define f(x) (x*M) main() int i1,i2; i1=f(2) i2=f(1 1); printf(“%d %dn“,i1,i2); 程序的运行结果是_。 ( A) 12 12 ( B) 11 7 ( C) 11 11 ( D) 12 7 44 设有以下语句 typedef struct TT char c; int a4;CIN; 则下面叙述中正确的是 _。 ( A)可以用 TT定 义
18、结构体变量 ( B) TT是 struct类型的变量 ( C)可以用 CIN定义结构体变量 ( D) CIN是 struct TT类型的变量 45 有以下结构体说明、变量定义和赋值语句 struct STD char name10; int age; char sex; s5,*ps; ps= 则以下 scanf函数调用语句中错误引用结构体变量成员的是 _。 ( A) scanf(“%s“,s0.name); ( B) scanf(“%d“, ( C) scanf(“%c“, ( D) scanf(“%d“,ps- age); 46 若有以下定义和语句 union date int i; ch
19、ar c; fioat f; x; int y; 则以下语句正确的是 _。 ( A) x=10.5; ( B) x.c=101; ( C) y=x; ( D) printf(“%dn“,x); 47 程序中已构成如下图所示的不带头结点的单向链表结构,指针变量 s、 p、 q均已正确定义,并用于指向链表结点,指针变量 s总是作为头指针向链表的第 个结点。 若有以下程序段 q=s; s=s- next; p=s; while(p- next) p=p- next; P- next=q; q- next=NULL; 该程序段实现的功能是_。 ( A)首结点成为尾结点 ( B)尾结点成为首结点 ( C
20、)删 除首结点 ( D)删除尾结点 48 若变量已删除正确定义,则以下语句的输出结果是 _。 s=32; s=32; printf(“%d“,s); ( A) -1 ( B) 0 ( C) 1 ( D) 32 49 以下叙述中正确的是 _。 ( A) C语言中的文件是流式文件,因此只能顺序存取数据 ( B)打开 个已存在的文件并进行了写操作后,原有文件中的全部数据必定被覆盖 ( C)在 千程序中当对文件进行了写操作后,必须先关闭该文件然后再打开,才能读到第 1个数据 ( D)当 对文件的读 (写 )操作完成之后,必须将它关闭,否则可能导致数据丢失 50 有以下程序 #include stdio
21、.h main() FILE *fp; int i; char ch=“abcd“,t; fp=fopen(“abc.dat“,“wb “); for(i=O;i 4;i )fwrite( fseek (fp,-2L,SEEK_END); fread ( fclose (fp); printf (“%cn“,t); 程序执行后的输出结果是 _。 ( A) d ( B) c ( C) b ( D) a 51 下列软件系统结构图的宽度为 。 52 的任务是诊断和改正程序中的错误。 53 个关系表的行称为 。 54 按 “先进后出 ”原则组织数据的数据结构是 。 55 数据结构分为线性结构和非线性结
22、构,带链的队列属于 。 56 设有定义: float x=123.4567;,则执行以下语句后的输出结果是 。 printf(“%fn“(int)(x*100 0.5)/100.1; 57 以下程序运行后的输出结果是 。 main() int m=011, n=11; printf(“%d %dn“, m,n ); 58 以下程序运行后的输出结果是 。 main() int x, a=1,b=2,c=3,d=4; x=(a b)?a:b; x=(x c)?x:c; x=(d x)?x:d; printf(“%dn“,x); 59 有以下程序,若运行时从键盘输入: 18, 11回车,则程序的输出
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
2000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 试卷 2006 国家 二级 语言 笔试 答案 解析 DOC
