[计算机类试卷]国家二级(C语言)笔试模拟试卷133及答案与解析.doc
《[计算机类试卷]国家二级(C语言)笔试模拟试卷133及答案与解析.doc》由会员分享,可在线阅读,更多相关《[计算机类试卷]国家二级(C语言)笔试模拟试卷133及答案与解析.doc(30页珍藏版)》请在麦多课文档分享上搜索。
1、国家二级( C语言)笔试模拟试卷 133及答案与解析 1 算法的空间复杂度是指 ( )。 ( A)算法程序的长度 ( B)算法程序中的指令条数 ( C)算法程序所占的存储空间 ( D)算法执行过程中所需要的存储空间 2 按照 “先进先出 ”组织数据的数据结构是 ( )。 ( A)队列 ( B)栈 ( C)双向链表 ( D)二叉树 3 下列叙述中正确的是 ( )。 ( A)线性链表的各元素在存储空间中的位置必须是连续的 ( B)线性链表的头元素一定存储在其他元素的前面 ( C)线性链表中的各元 素在存储空间中的位置不一定是连续的,但表头元素一定存储在其他元素的前面 ( D)线性链表中的各元素在存
2、储空间中的位置不一定是连续的,且各元素的存储顺序也是任意的 4 有下列二叉树,对此二叉树前序遍历的结果为 ( )。 ( A) XZCYAB ( B) XYZABC ( C) XYABCZ ( D) XYAZBC 5 结构化程序设计主要强调的是 ( )。 ( A)程序的规模 ( B)程序的效率 ( C)程序设计语言的先进性 ( D)程序的易读性 6 下列叙述中正确的是 ( )。 ( A)在面向对象的 程序设计中,各个对象之间具有密切的关系 ( B)在面向对象的程序设计中,各个对象都是公用的 ( C)在面向对象的程序设计中,各个对象之间相对独立,相互依赖性小 ( D)上述 3种说法都不对 7 结构
3、化分析方法是面向 ( )的自顶向下逐步求精进行需求分析的方法。 ( A)对象 ( B)数据结构 ( C)数据流 ( D)目标 8 下列所述中,是软件调试技术的是 ( )。 ( A)错误推断 ( B)集成测试 ( C)回溯法 ( D)边界值分析 9 数据库 DB、数据库系统 DBS、数据库管理系统 DBMS之间的关系是 ( )。 ( A) DB包括 DBS和 DBMS ( B) DBMS包括 DB和 DBS ( C) DBS包括 DB和 DBMS ( D)没有任何关系 10 简单的交换排序方法是 ( )。 ( A)快速排序 ( B)选择排序 ( C)堆排序 ( D)冒泡排序 11 下列说法正确的
4、是 ( )。 ( A)一个 C程序可以有多个主函数 ( B)一个 C语言的函数中只允许有一对花括号 ( C) C程序的书写格式是自由的,一个语句可以写在一行上,也可以写在多行内 ( D)在对 C程序进行编译时,可以发现注 释行中的拼写错误 12 下列程序的输出结果是 ( )。 #include stdio.h main() int a=4; print f(“%dn“, (a+=a-=a*a); ( A) -8 ( B) 14 ( C) 0 ( D) -24 13 表示关系 abc的 C语言表达式为 ( )。 ( A) (a =b) ( B) a+; ( C) a=b=c=d=100; ( D
5、) a=(b=3)+(d=5); 16 若有 “double a;“,则正确的输入语句是 ( )。 ( A) scanf(“%1f“,a); ( B) scanf(“%f“, ( C) scanf(“%1f“, 17 下列程序的输出结果是 ( )。 #include stdio.h void main() int a=0,b=1,c=2; if(+a 0+b 0) +c; printf(“%d,%d,%d“,a,b,c); ( A) 0,1,2 ( B) 1,2,3 ( C) 1,1,3 ( D) 1,2,2 18 有以下程序: #include stdio.h main() int a=6,
6、b=7,m=1; switch(a%2) case 0:m+;break; case 1 :m+; switch(b%2) defaut:m+; case0:m+;break; printf(“%dn“,m); ( A) 1 ( B) 2 ( C) 3 ( D) 4 19 下列程序的运行结果是 ( )。 main() int x=1,y=3,a=0; while(x+!=(y-=1) a+=1; if(y x)break; printf(“%d,%d,%dn“,x,y,a); ( A) 2,3,2 ( B) 2,3,1 ( C) 1,3,3 ( D) 3,1,2 20 有下列程序: main(
7、) int x=5; do printf(“%d“,x-=4); while (!(-x); 程序的输出结果是 ( )。 ( A) 1 ( B) 20 ( C) 1 4 ( D)死循环 21 有以下程序 #include stdio h main0 int y=9; for( ; y 0; y-) if(y%3=0) printf(“%d“, -y); 程序的运行结果是 ( A) 741 ( B) 963 ( C) 852 ( D) 875421 22 现有如下程序段 #include “stdio.h“ main() int k30=12, 324, 45, 6,768, 98, 21, 3
8、4, 453, 456; int count=0, i=0; while(Li) if(ki%2=0|ki%5=0)count+; i+; printf(“%d, %dn“, count,i); 则程序段的输出结果为 ( A) 7, 8 ( B) 8, 8 ( C) 7, 10 ( D) 8, 10 23 有以下程序 #include stdio h main() int a=1, 2, 3, 4, y,*p= printf(“%dn“, m); 程序的运行结果是 ( A) 0 ( B) 1 ( C) 2 ( D) 3 25 下面说明不正确的是 ( A) char a10=“china“; (
9、 B) char a10, *p=a; p=“china“ ( C) char*a; a=“china“; ( D) char a10, *P; p=a=“china“ 26 下列程序是用来判断数组中特定元素的位置所在的。 #include conic.h #include stdio.h int fun(int *s, int t, int *k) int i; *k=0; for(i=0; i t; i+) if(s*k si)*k=i; returns*k; main() int a10=876,675, 896, 101, 301, 401, 980, 431, 451, 777, k
10、; fun(a, 10, char ch; double f; b; 则结构变量 b占用内存的字节数是 ( A) 1 ( B) 2 ( C) 7 ( D) 11 30 下面程序的输出结果是 #include stdio.h main() int a=1, 2, 3, 4,5, 6, 7, 8, 9, 0, *p; p=a; printf(“%dn“, *p+9); ( A) 0 ( B) 1 ( C) 10 ( D) 9 31 有以下程序 #include stdio h main() int s12=1, 2, 3, 4, 4,3, 2, 1, 1, 1, 2, 3, c5=0, i; fo
11、r(i=0; i 12; i+) csi+; for(i=l; i 5; i+) printf(“%d“, ci); printf(“n“); 程序的运行结果是 ( A) 1 2 3 4 ( B) 2 3 44 ( C) 4 3 3 2 ( D) 1 1 2 3 32 若有定义: char *st=“how are you“;,下列程序段中正确的是 ( A) chara11; *p; strcpy(p=a+1, i 5;i+) do if(i%3) continue; n+; while(! i); n+; printf(“n=%dn“,n); 程序执行后输出结果是【 】。 42 有以下程序:
12、 void f(int v,int w) int t; t=v;v=w;w=t; main() int x=1,y=3,z=2 if(x y) f(x,y); else if(y z) f(y,z); else f (x,z); printf(“%d,%d,%dn“,x,y,z); 执行后的输出结果是【 】。 43 函数 YangHui的功能是把杨辉三角形的数据赋给二维数组的下半三角,形式如下: 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 其构成规律是: 第 0列元素和主对角线元素均为 1; 其余元素为其左上方和正上方元素之和; 数据的个数每行递增 1。 请将程序补充完整。 #
13、define N 6 void YangHui(int xNN) inti,j;x00=1; for(i=1;i N;i+) xi0=xii=1; for(j=1;j i;j+) xij=【 】 ; 44 以下程序运行后的输出结果是【 】。 main() char c; int n=100; float f=10; double x; x=f* =n/=(c=50); printf(“%d %fn“,n,x); 45 有以下程序: main() int a=7,b=8,*p,*q,*r; p= q= r=p; p=q; q=r; printf(“%d,%d,%d,%dn“,*p,*q,a,b)
14、; 程序运行后的输出结果是【 】。 46 以下程序运行后的输出结果是【 】。 # include string.h main() char ch=“abc“,x34;int i for(i=0;i 3;i+) strcpy(xi,ch); for(i=0;i 3;i+)printf(“%s“, printf(“n“); 47 有以下程序: fun(int a,int b) if(a b)return(a); else return(b); main() int x=3,y=8,z=6,r; r=fun(fun(x,y),2*z); printf(“%dn“,r); 程序运行后的输出的结果是【
15、】。 48 有以下程序: # include string.h struct STU char name10; int num; void f(char *name, int num) struct STU s2=“SunDan“,20044,“Penghua“,20045; num=s0.num; strcpy(name,s0.name); main() struct STU s2=“YangSan“,20041,“LiSiGuo“,20042,*p; p=f(p- name,p- num); printf(“%s %dn“,p- name,p- num); 程 序运行后的输出结果是【 】。
16、 49 有以下程序: main() int a33,*p,i; p= for(i=0;i 9;i+)pi=i+1; printf(“%dn“,a12); 程序运行后的输出结果是【 】。 50 有以下程序: # include stdio.h main() int a=1,2,3,4,5,6,7,8,9,10,11,12, *p=a+5, *q=NULL; *q=*(p+5); printf(“%d%dn“,*p,*q); 程序运行后的输出结果是【 】。 51 有以下程序: void f(int*x,iht * y) int t; t=*x;*x;=*y;*y=t; main() int a8=
17、1,2,3,4,5,6,7,8,i,*p,*q; p=a;q= while(p) f(p,q);p+;q-; for(i=0;i 8;i+)printf(“%d,“,ai); 程序运行后的输出结果是【 】。 52 有以下程序: prt(int *m,int n) int i; for(i=0;i n;i+)mi+; main() int a=1,2,3,4,5,i; prt(a,5); for(i=0;i 5;i+)printf(“%d,“,ai; 程序运行后的输出结果是【 】。 53 有以下程序: float f1(float n) return n*n; float f2(float n)
18、 return 2*n; main() float(*p1)(float),(*p2)(float),(*t)(float),y1,y2; p1=f1;p2=f2; y1=p2(p1(2.0); t=P1;p1=p2;p2=t; y2=p2(p1(2.0); printf(“%3.0f,%3.0fn“,y1,y2); 程序运行后的输出结果是【 】。 54 设有以下定义和语句: int a32=1,2,3,4,5,*p3; p0=a1; 则 *(p0+1)所代表的数组元素是【 】。 55 设函数 findbig已定义为求 3个数中的最大值,以下程序将利用函数指针调用findbig函数。请填空。
19、main() int findbig(int,int,int); int(*f)(),x,y,z,big; f=【 】。 scanf(“%d %d %d“, big=(*f)(x,y,z); printf(“big=%dn“,big); 56 以下程序的功能是:删去一维数组中所有相同的数,使之只剩一个。数组中的数已按由小到大的顺序排列,函数返回删除后数组中数据的个数。 例如,若一维数组 中的数据是: 2 2 2 3 4 4 5 6 6 6 6 7 7 8 9 9 10 10 10 删除后,数组中的内容应该是: 2 3 4 5 6 7 8 9 10 请填空。 #include stdio h #
20、define N 80 int fun(int a, int n) int i, j=1; for(i=1; i n;i+) if(aj-1 【 】 ai) aj+=ai; 【 】; main() int aN=2, 2, 2, 3, 4, 4, 5, 6, 6, 6, 6, 7, 7, 8, 9, 9, 10, 10,10, i, n=19; printf(“The original data :n“); for(i=0; i n; i+)printf(“%3d“, ai); n=fun(a, n); printf(“nThe data after deleted :n“); for(i=0
21、; i n; i+)printf(“%3d“, ai); printf(“nn“); 57 以下程序的定义语句中, x1的初值是【 】,程序运行后输出的内容是【 】。 #include stdio.h main() int x=1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 161,*p4, i; for(i=0; i 4; i+) pi &x2*i+1; printf(“%d“, pi0); printf(“n“); 国家二级( C语言)笔试模拟试卷 133答案与解析 1 【正确答案】 D 【试题解析】 一个算法的空间复杂度,一般是指执行
22、这个算法所需的存储空间。一个算法所占用的存储空间包括算法程序所占用的空间、输入的初始数据所占用的存储空间及算法执行过程中所需要的额外空间。 2 【正确答案】 A 【试题解析】 队列是一种特殊的线性表,只允许在表的一端插入元素,在表的另一端删除元素,插入元素的一端叫 “队尾 ”,删除元素的一端叫 “队头 ”,先插入的元素先被删 除,是按 “先进先出 ”的原则组织数据的。 3 【正确答案】 D 【试题解析】 在线性链表中,各元素在存储空间中的位置是任意的,各元素的顺序也是任意的,依靠指针来实现数据元素的前后件关系。 4 【正确答案】 D 【试题解析】 对二叉树的前序遍历是指;先访问根结点,然后访问
23、左子树,最后访问右子树,并且,在访问左,右子树时,先访问根结点,再依次访问其左、右子树。 5 【正确答案】 D 【试题解析】 程序不光是编写完就结束了,为了测试和维护程序,往往还有其他人阅读和跟踪程序,因此,程序设 计的风格应该强调简单和清晰,即程序的易读性, “清晰第一,效率第二 ”。 6 【正确答案】 C 【试题解析】 面向对象的程序设计是用对象模拟问题领域中的实体,各对象之间相对独立,相互依赖性小,通过消息来实现对象之间的相互联系。 7 【正确答案】 C 【试题解析】 结构化分析方法是面向数据流进行需求分析的方法,采用自顶向下、逐层分解,建立系统的处理流程,以数据流图和数据字典为主要工具
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
2000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 试卷 国家 二级 语言 笔试 模拟 133 答案 解析 DOC
