[计算机类试卷]2007年4月国家二级(C语言)笔试真题试卷及答案与解析.doc
《[计算机类试卷]2007年4月国家二级(C语言)笔试真题试卷及答案与解析.doc》由会员分享,可在线阅读,更多相关《[计算机类试卷]2007年4月国家二级(C语言)笔试真题试卷及答案与解析.doc(33页珍藏版)》请在麦多课文档分享上搜索。
1、2007 年 4月国家二级( C语言)笔试真题试卷及答案与解析 1 下列叙述中正确的是 ( A)算法的效率只与问题的规模有关,而与数据的存储结构无关 ( B)算法的时间复杂度是指执行算法所需要的计算工作量 ( C)数据的逻辑结构与存储结构是一一对应的 ( D)算法的时间复杂度与空间复杂度一定相关 2 在结构化程序设计中,模块划分的原则是 ( A)各模块应包括尽量多的功能 ( B)各模块的规模应尽量大 ( C)各模块之间的联系应尽量紧密 ( D)模块内具有高内聚度、模块间具有低耦合度 3 下列叙述中正确 的是 ( A)软件测试的主要目的是发现程序中的错误 ( B)软件测试的主要目的是确定程序中错
2、误的位置 ( C)为了提高软件测试的效率,最好由程序编制者自己来完成软件测试的工作 ( D)软件测试是证明软件没有错误 4 下面选项中不属于面向对象程序设计特征的是 ( A)继承性 ( B)多态性 ( C)类比性 ( D)封装性 5 下列对队列的叙述正确的是 ( A)队列属于非线性表 ( B)队列按 “先进后出 ”原则组织数据 ( C)队列在队尾删除数据 ( D)队列按 “先进先出 ”原则组织数据 6 对下列二叉树 进行前序遍历的结果为 ( A) DYBEAFCZX ( B) YDEBFZXCA ( C) ABDYECFXZ ( D) ABCDEFXYZ 7 某二叉树中有 n个度为 2的结点,
3、则该二叉树中的叶子结点数为 ( A) n+l ( B) n-1 ( C) 2n ( D) n/2 8 在下列关系运算中,不改变关系表中的属性个数但能减少元组个数的是 ( A)并 ( B)交 ( C)投影 ( D)笛卡儿乘积 9 在 E-R图中,用来表示实体之间联系的图形是 ( A)矩形 ( B)椭圆形 ( C)菱形 ( D)平行四边形 10 下列叙述中错误的是 ( A)在数据库系统中,数据的物理结构必须与逻辑结构一致 ( B)数据库技术的根本目标是要解决数据的共享问题 ( C)数据库设计是指在已有数据库管理系统的基础上建立数据库 ( D)数据库系统需要操作系统的支持 11 算法中,对需要执行的
4、每一步操作,必须给出清楚、严格的规定。这属于算法的 ( A)正当性 ( B)可行性 ( C)确定性 ( D)有穷性 12 以下叙述中错误的是 ( A)计算机不能直接执行用 C语言编写的源程序 ( B) C程序经 C编译程序编译后,生成后缀为 .obj的文件是一个二进制文件 ( C)后缀为 .obj的文件,经连接程序生成后缀为 .exe的文件是一个二进制文件 ( D)后缀为 .obj和 .exe的二进制文件都可以直接运行 13 按照 C语言规定的用户标识符命名规则,不能出现在标识符中的是 ( A)大写字母 ( B)连接符 ( C)数字字符 ( D)下划线 14 以下叙述中错误的是 ( A) C语
5、言是一种结构化程序设计语言 ( B)结构化程序由顺序、分支、循环三种基本结构组成 ( C)使用三种基本结构构成的程序只能解决简单问题 ( D)结构化程序设计提倡模块 化的设计方法 15 对于一个正常运行的 C程序,以下叙述中正确的是 ( A)程序的执行总是从 main函数开始,在 main函数结束 ( B)程序的执行总是从程序的第一个函数开始,在 main函数结束 ( C)程序的执行总是从 main函数开始,在程序的最后一个函数中结束 ( D)程序的执行总是从程序中的第一个函数开始,在程序的最后一个函数中结束 16 设变量均已正确定义,若要通过 scanf(“%d%c%d%c“, for(i=
6、1; i 4;i+) for(j=i; j 4; j+)printf(“%d*%d=%d “, i, j, i*j); printf(“n“); 程序运行后的输出结果是 ( A) 1*1=1 1*2=2 1*3=3 2*1=2 2*2=4 3*1=3 ( B) 1*1=1 1*2=2 1*3=3 2*2=4 2*3=6 3*3=9 ( C) 1*1=1 1*2=2 2*2=4 1*3=3 2*3=6 3*3=9 ( D) 1*1=1 2*1=2 2*2=4 3*1=3 3*2=6 3*3=9 25 以下合法的字符型常量是 ( A) x13 ( B) 081 ( C) 65 ( D) n 26
7、在 C语言中,函数返回值的类型最终取决于 ( A)函数定义时在函数首部所说明的函数类型 ( B) return语句中表达式值的类型 ( C)调用函数时主调函数所传递的实参类型 ( D)函数定义时形参的类型 27 已知大写字母 A的 ASCII码是 65,小写字母 a的 ASCII码是 97。以下不能将变量 c中的大写字母转换为对应小 写字母的语句是 ( A) c=(c-A)%26+a ( B) c=c+32 ( C) c=c-A+a ( D) c=(A+c)%26-a 28 有以下函数 int fun(char *s) char *t=s; while(*t+); return(t-s); 该
8、函数的功能是 ( A)比较两个字符串的大小 ( B)计算 s所指字符串占用内存字节的个数 ( C)计算 s所指字符串的长度 ( D)将 s所指字符串复制到字符串 t中 29 设已有定义: float x;,则以下对指针变量 p进行定义且赋初值的语句中正确的是 ( A) float *p=1024; ( B) int *p=(float)x; ( C) float p= for(i=0; i n-1; i+) for(j=i+1; jn; j+) if(flag?bi bj: bi bj)t=bi; bi=bj;bj=t; main() int a10=5, 4, 3, 2, 1, 6,7, 8
9、, 9, 10, i; f( f(a); for(i=0;i 10, i+)printf(“%d, “, ai); 程序运行后的输出结果是 ( A) 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, ( B) 1, 2, 6, 8, 10, 12, 7, 8, 9, 10, ( C) 1, 2, 3, 4, 10, 12, 14, 16, 9, 10, ( D) 1, 2, 6, 8, 10, 12, 14, 16, 9, 10, 33 有以下程序 typedef structint b, p; A; void f(A c)/* 注意: c是结构变量名 */ int j; c.b+
10、=1;c.p+=2; main() int i; A a=1,2; f(a); printf(“%d, %dn“, a.b, a.p); 程序运行后的输出结果是 ( A) 2, 3 ( B) 2, 4 ( C) 1, 4 ( D) 1, 2 34 有以下程序 main() int a44=1,4, 3, 2, 8, 6, 5,7, 3, 7, 2, 5, 4, 8, 6, 1, i, j, k, t; for(i=0; 4: i+) for(j=0; j 3; j+) for(k=j+1; k 4; k+) if(aji akit=aji; aji=aki=aki=t; /*按列排序 */ f
11、or(i=0; i 4; i+)printf(“%d, “, aii); 程序运行后的输出结果是 ( A) 1, 6, 5, 7, ( B) 8, 7, 3, 1, ( C) 4, 7, 5, 2, ( D) 1, 6, 2, 1, 35 有以下程序 main() int a44=1, 4, 3, 2, 8, 6,5, 7, 3, 7, 2, 5, 4, 8, 6, 1, i, k, t; for(i=0; i 3; i+) for(k=i+1; k 4; k+)if(aii akk)t=aii; aii=akk; akk=t; for(i=0; i 4; i+)printf(“%d, “,
12、a0i); 程序运行后的输出结果是 ( A) 6, 2, 1, 1, ( B) 6, 4, 3, 2, ( C) 1, 1, 2, 6, ( D) 2, 3, 4, 6, 36 有以下程序 void f(int *q) int i=0; for(; i 5; i+) (*q)+; main() int a5=1,2, 3, 4, 5, i; f(a); for(i=0; i 5;i+)printf(“%d, “, ai); 程序运行后的输出结果是 ( A) 2, 2, 3, 4, 5, ( B) 6, 2, 3, 4, 5, ( C) 1, 2, 3, 4, 5, ( D) 2, 3, 4,
13、5, 6, 37 有以下程序 #include string.h main() char p20=a, b, c, d, q=“abc“, r=“abcde“; strcpy(p+strlen(q),r); strcat(p, q); printf(“%d%dn“, sizeof(p), strlen(p); 程序运行后的输出结果是 ( A) 20 9 ( B) 9 9 ( C) 20 11 ( D) 11 11 38 有以下程序 #include string.h main() char p20=a, b, c, d, q=“abc“, r=“abcde“; strcat(p, r);str
14、cpy(p+strlen(q), q); printf(“%dn“, strlen(p); 程序运行后的输出结果是 ( A) 9 ( B) 6 ( C) 11 ( D) 7 39 有以下程序 #include string.h void f(char p10, int n)/*字符串从小到大排序 */ char t10; int i, j; for(i=0;i n-1; i+) for(j=i+1; j n; j+) if(strcmp(pi, pj) 0) strcpy(t, pi); strcpy(pi, pj); strcpy(pj,t); main() char p510=“abc“,
15、 “aabdfg:,“abbd“, “dcdbe“, “cd“; f(p, 5); printf(“%dn“,strlen(p0); 程序运行后的输出结果是 ( A) 2 ( B) 4 ( C) 6 ( D) 3 40 有以下程序 void f(int n, int *r) int r1=0; if(n%3=0) r1=n/3; else if(n%5=0) r1=n/5; else f(-n, for(i=1; i argc; i+) n=n*10+ *argvi 0; printf(“%dn“,n); 编译连接后生成可执行文件 tt.exe。若运行时输入以下命令行 tt 12 345 67
16、8 程序运行后的输出结果是 ( A) 12 ( B) 12345 ( C) 12345678 ( D) 136 42 有以下程序 int a=4; int f(int n) int t=0;static int a=5; if(n%2) int a=6; t+=a+; else int a=7; t+=a+; return t+a+; main() int s=a, i=0; for(; i 2; i+)s+=f(i); printf(“%dn“, s); 程序运行后的输出结果是 ( A) 24 ( B) 28 ( C) 32 ( D) 36 43 有一个名为 init.txt的文件,内容如下
17、: #define HDY(A, B) A/B #define PRINT(Y) printf(“y=%dn“, Y) 有以下程序 #include“init.txt“ main() int a=1, b=2, c=3, d=4, k; k=HDY(a+c, b+d); PRINT(k); 下面针对该程序的叙述正确的是 ( A)编译出错 ( B)运行出错 ( C)运行结果为 y=0 ( D)运行结果为 y=6 44 有以下程序 main() char ch=“uvwxyz“, *pc; pc=ch; printf(“%cn“, *(pc+5); 程序运行后的输出结果是 ( A) z ( B)
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
2000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 试卷 2007 国家 二级 语言 笔试 答案 解析 DOC
