1、国家二级( C语言)笔试模拟试卷 70及答案与解析 1 在计算机中,算法是指 _。 ( A)查询方法 ( B)加工方法 ( C)解题方案的准确而完整的描述 ( D)排序方法 2 栈和队列的共同点是 _。 ( A)都是先进后出 ( B)都是先进先出 ( C)只允许在端点处插入和删除元素 ( D)没有共同点 3 已知二叉树 BT的后序遍历序列是 dabec,中序遍历序列是 debac,它的前序遍历序列是 _。 ( A) cedba ( B) acbed ( C) decab ( D) deabc 4 在下列几种排序方法中,要求内存量最大的是 _。 ( A)插入排序 ( B)选择排序 ( C)快速排
2、序 ( D)紧并排序 5 在设计程序时,应采纳的原则之一是 _。 ( A)程序结构应有助于读者理解 ( B)不限制 goto语句的使用 ( C)减少或取消注解行 ( D)程序越短越好 6 下弄不属于软件调试技术的是 _。 ( A)强行排错法 ( B)集成测试法 ( C)回溯法 ( D)原因排除法 7 下列叙述中,不属于软件需求规格说明书的作用的是 _。 ( A)便于用户、开发人员进行理解和交流 ( B)反映出用户问题的结构,可以作为软件开发工作的基础和依据 ( C)作为确认测试和验收的依据 ( D)便于开发人员进行需求分析 8 在数据流图 (DFD) 中,带有名字的箭头表示 _。 ( A)控制
3、程序的执行顺序 ( B)模块之间的调用关系 ( C)数据的流向 ( D)程序的组成成分 9 SQL语言又称为 _。 ( A)结构化定义语言 ( B)结构化控制语言 ( C)结构化查询语言 ( D)结构化操纵语言 10 视图设计一般有 3种设计次序, 下列不属于视图设计的是 _。 ( A)自顶向下 ( B)由外向内 ( C)由内向外 ( D)自底向上 11 下列字符串不属于标识符的是 ( ) ( A) sum ( B) average ( C) day_night ( D) M, D.JOHN 12 若 t已定义为 double类型,表达式: t=1, t+, t+5的值是 ( ) ( A) 1
4、 ( B) 7 ( C) 2 ( D) 1 13 以下各选项企图说明一种新的类型名,其中正确的是 ( ) ( A) typedef v1 int, ( B) typedef v2 int; ( C) typedef int v3; ( D) typedef v4: int; 14 若有代数式 “ex+y2+y/x”,则正确的 C语言表达式是 ( ) ( A) ex+y*y+y/x ( B) exp x+pow(y, 2)+y/x ( C) exp(x)+pow(y, 2)+y/x ( D) ex+y2+y/x 15 若 x 3, y z 4,则下列表达式的值分别为 ( )(1)(z yx)?1
5、:0(2)y+=z, x* y ( A) 0 24 ( B) 1 8 ( C) 0 8 ( D) 1 12 16 下面程序的输出结果是 ( ) main() int i, j; i 16; j (i+)+i;printf(“%d“, j); i 15; printf(“%d%d“, +i, i); ( A) 32 16 15 ( B) 33 15, 15 ( C) 34 15, 16 ( D) 34 16 15 17 在 C语言中,整数 65534在存储单元中的存储情况是 ( ) ( A) 11 11 11 11 11 11 11 11 ( B) 10 00 00 00 00 00 00 10
6、 ( C) 01 11 11 11 11 11 11 11 ( D) 11 11 11 11 11 11 11 10 18 执行语句 “for(n=10; n 0;)printf(“%d“, -n+n-); ”后,下列说法正确的是 ( ) ( A)循环体执行了 5次,最终 n的值是 -1 ( B)循环体执行了 6次,最终 n的值是 -1 ( C)循环体执行了 6次,最终 n的值是 0 ( D)循环体执行了 5次,最终 n的值是 0 19 若有以下定义和语句: int u=010, v=0x10, w 10; printf(“%d, %d, %dn“, u, v, w); 则输出结果是 ( )
7、( A) 8, 16, 10 ( B) 10, 10, 10 ( C) 8, 8, 10 ( D) 8, 10, 10 20 以下函数调用语句中实参的个数是 ( ) func(exp1, exp2), (exp3, exp4,exp5); ( A) 1 ( B) 2 ( C) 4 ( D) 5 21 2个指针变量不可以 _。 ( A)相加 ( B)比较 ( C)相减 ( D)指向同一地址 22 在下列叙述中,错误的一条是 _。 ( A)定义 char*string=“China“中的 string是一个字符串变量,其值为 China ( B)若有一个多维数组 a,则 *(a+i)与 ai等价
8、( C) int(*p)4表示 p为指针变量,它指向包含 4个元素的一维数组 ( D)数组名代表数组的首地址,固定不变。指针变量可通过指向数组首地址来代表对应的数组,但其值可以改变 23 若已定义以下语句,其中 0i9,则对 a数组元素不正确的引用为 _。 int a=0, 1, 2, 3, 4, 5, 6, 7, 8, 9, *p=a, i; ( A) ap-a ( B) *( p=x8 | y 8; printf(“%d “,p); p+=(p+=2); printf(“%dn“,p); ( A) -1 0 ( B) 0 0 ( C) 0 4 ( D) -1 2 28 下列程序中,正确的为
9、 _。 ( A) main() int *pb= float 1 =15.25; print f(“%dn“ ,*pb); ( B) amin() int a,*pa; a=10; *pa=a; prinffC%d“,*pa); ( C) main() char s20; char *ps= scanf(“%s“,*p); printf(“%s“,*p); ( D) main() char str10; int *ps=str0; str=“abcdefg“; printf(“%s“,*p); 29 设 int b=2;, 则表达式 (b 2)/(b 1)的值是 _。 ( A) 0 ( B)
10、2 ( C) 4 ( D) 8 30 以下程序运行后 , 输出结果是 _。 fut (int *s,int p2 3) *s=p1 1; main () int a2 3=1,3,5,7,9,11,*p; p=(int *)malloc(sizeof(int); fur ( printf (“%dn“, *p); ( A) 1 ( B) 7 ( C) 9 ( D) 11 31 对有 14个结点的完全二叉树的结点以从上到下、从左到右的顺序进行编号后,序号最小的叶结点的序号【 】。 32 近年来形成了软件开发的多种模式,大致有 3种类型:基于瀑布模型的结构化生命周期方法、基于动态定义需求的【 】方
11、法和基于结构的面向对象的软件开发方法。 33 下列程序的运行结果为【 】。 main ( ) int a,b, c,x,y, z; a=10;b=2; c=! (a%b) ;x=! (a/b); y=(a b) z=(a b) | (b =0); printf (“c=%d, x=%d, y=%d, z=%dn“, c,x, y, z); 34 以下函数用来求出 2个整数之和,并通过形参将结果传回。 void func(int x, int y,【 】 z) *z=x+y; 35 对于长 度为 n的线性表,若进行顺序查找,时间复杂性为【 】;若进行二分查找,则时间复杂性为【 】。 36 下面程
12、序的输出结果是【 】。 #define MAX 3 int aMAX; main () fun1(); fun2(a); printf(“n“); fun1() int k, t=0; for (k=0; k MAX; k+, t+) ak=t+t; fun2(int b) int k; for (k=0; k MAX; k+) printf(“%d“, *(b+k); 37 设有以下定义和语句, sizeof(a)的值是【 】, sizeof(b)的值是【 】。 structint day; Char month; int year; a, *b; b=&a; 38 输出指针数组各元素所指的
13、整数值和它存放的地址值。 #include stdio.h main() int i; int a5=1, 3, 5, 7, 9; int*num5; int【 】; for(i=0; i 5; i+) numi=【 】; p=num+0; for(i=0; i 5; i+) printf(“%d %dn“,【 】 ); p+; 39 下面的程序为 6个整型变量 A、 B、 C、 D、 E、 F输入整数,并按从大到小的顺序输出整数及其所对应的变量名。例如,输入的数为 3、 2、 5、 7、 4、 6,则输出的形式为: D(7)F(6)C(5)E(4)A(3)B(2)。 #include std
14、io.h int A, B, C, D, E, F; struct char n; 【 】; tb1=A, &A, B, &B, C, &c, D, &D), E, &E, F,&F, t; main() int i, j; for(i=0; i 6; i+)scanf(“%d“,【 】 ); for(i=0; i 5; i+) for(j=0; j 5-i; j+) if(【 】 ) t=tb1j; tb1j=tb1j+1; tb1j+1=t; for(i=0; i 6; i+) printf(“%c(%d)“, tb1i n, *tb1i p); printf(“n“); 国家二级( C语
15、言)笔试模拟试卷 70答案与解析 1 【正确答案】 C 【试题解析】 计算机算法是指解题方案的准确而完整的描述,它有以下几个基本特征:可行性、确定性、有穷性和拥有足够的情报。 2 【正确答案】 C 【试题解析】 栈和队列都是一种特殊的操作受限的线性表,只允许在端点处进行插入和删除。二者的区别是:栈是一种 “后进先出 ”的线性表;而队列是一种 “先进先出 ”的线性表。 3 【正确答案】 A 【试题解析】 二叉树 BT时后序遍历序列为 dabec,故 BT的根结点为 c;而 BT的中序遍历序是 debac,即遍历序列中最后一个结点为跟结点,说明 BT的右子树为空。由 BT的后序遍历序列和中序遍历序
16、列可知 BT的左子树 (LST)的后序遍历序列和中序遍历序列分别为 dabe和 deba(树是递归定义的 );故 LST的根结点是e,在由 LST的中序遍历序列可知其左子树为 d。因此 BT的前序遍历序列为cedba。 4 【正确答案】 D 【试题解析】 快速排序的基本思想是,通过 一趟排序将待排序记录分割成独立的两部分,其中一部分记录的关键字均比另一部分记录的关键字小,再分别对这两部分记录继续进行排序,以达到整个序列有序;插入排序的基本操作是指将无序序列中的各元素依次插入到已经有序的线性表中,从而得到一个新的序列;选择排序的基本思想是:扫描整个线性表,从中选出最小的元素,将它交换到表的前面
17、(这是它应有的位置 ),然后对乘下的子表采用同样的方法,直到表空为止;归并排序是将两个或两个以上的有序表组合成一个新的有序表。 5 【正确答案】 A 【试题解析】 滥用 goto语句将使程序 流程无规律,可读性差;添加的注解行有利于对程序的理解,不应减少或取消;程序的长短要依照实际需要而定,并不是越短越好。 6 【正确答案】 B 【试题解析】 调试的关健在于推断程序内部的错误位置及原因。主要的调试方法有强行排错法、回溯法和原因排除法。 7 【正确答案】 D 【试题解析】 软件需求规格说明书是需求分析阶段的最后成果,是软件开发中的重要文档之一。它不能方便开发人员进行需求分析。 8 【正确答案】
18、C 【试题解析】 在数据流图中,用标有名字的箭头表示数据流。数据流可以从加 工流向加工,也可以从加工流向文件或从文件流向加工,并且可以从外部实体流向系统或从系统流向外部实体。 9 【正确答案】 C 【试题解析】 结构化查询语言 (Structred Query Language,简称 SQL)是集数据定义、数据操纵和数据控制功能于一体的数据库语言。 10 【正确答案】 B 【试题解析】 视图设计一般有 3种设计次序,它们分别是自顶向下,自底向上和由内向外,它们又为视图设计提供了具体的操作方法,设计者可根据实际情况灵活掌握,可以单独使用也可混合使用。 11 【正确答 案】 D 12 【正确答案】
19、 B 13 【正确答案】 C 14 【正确答案】 C 15 【正确答案】 A 16 【正确答案】 A 17 【正确答案】 D 18 【正确答案】 D 19 【正确答案】 A 20 【正确答案】 B 21 【正确答案】 A 22 【正确答案】 A 23 【正确答案】 D 24 【正确答案】 C 25 【正确答案】 D 26 【正确答案】 B 27 【正确答案】 D 28 【正确答案】 B 29 【正确答案】 D 30 【正确答案】 C 31 【正确答案】 8 32 【正确答案】 原型化 33 【正确答案】 c=1,x=O,y=O,z=1 34 【正确答案】 int* 35 【正确答案】 O(n) O(log2n) 36 【正确答案】 024 37 【正确答案】 5 2 38 【正确答案】 *p a+I *p, *p 39 【正确答案】 int*p tb1i.p *tb1j.p *tb1j+1.p
copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
备案/许可证编号:苏ICP备17064731号-1