1、二级 C 语言-19 及答案解析(总分:86.00,做题时间:90 分钟)一、B选择题/B(总题数:35,分数:51.00)1.下列叙述中正确的是_。 A.有一个以上根结点的数据结构不一定是非线性结构 B.只有一个根结点的数据结构不一定是线性结构 C.循环链表是非线性结构 D.双向链表是非线性结构(分数:1.00)A.B.C.D.2.若二维数组 a 有 m 列,则在 aij前的元素个数为U /U。 A.i*m+j-1 B.i*m+j C.j*m+1 D.i*m+j+1(分数:1.00)A.B.C.D.3.结构化程序所要求的基本结构不包括_。 A.顺序结构 B.GOTO 跳转 C.选择(分支)结
2、构 D.重复(循环)结构(分数:2.00)A.B.C.D.4.下列关于队列的叙述中正确的是 A. 在队列中只能插入数据 B. 在队列中只能删除数据 C. 队列是先进先出的线性表 D. 队列是先进后出的线性表(分数:1.00)A.B.C.D.5.在数据库管理技术的发展中,数据独立性最高的是U /U。 A. 人工管理 B. 文件系统 C. 数据库系统 D. 数据模型(分数:2.00)A.B.C.D.6.下列数据结构中,属于非线性结构的是 A. 带链队列 B. 循环队列 C. 带链栈 D. 二叉树(分数:1.00)A.B.C.D.7.有以下函数fun(char *a,char *b) while(*
3、a!=/0) b+; return(*a-*b);该函数的功能是_。 A. 计算 a 和 b 所指字符串的长度之差 B. 将 b 所指字符串连接到 a 所指字符串中 C. 将 b 所指字符串连接到 a 所指字符串后面 D. 比较 a 和 b 所指字符串的大小(分数:1.00)A.B.C.D.8.下面语句的输出结果是_。printf(“%d/n“,strlen(“/t“/065/xff/n“); A. 14 B. 8 C. 5 D. 输出项不合怯,无正常输出 (分数:1.00)A.B.C.D.9.有以下程序:#includestdio.hmain()int i,x33=1,2,3 ,4,5,6,
4、7,8,9;for(i=0;i3;i+)printf(“%d“,xi2-i);printf(“/n“);程序运行后的输出结果是_。 A.1 5 0 B.3 5 7 C.1 4 7 D.3 6 9(分数:1.00)A.B.C.D.10.在结构化方法中,软件功能分解属于软件开发中的U /U阶段。 A. 详细设计 B. 需求分析 C. 总体设计 D. 编程调试(分数:1.00)A.B.C.D.11.有以下程序:#include stdio.h#define S(x)4*(x)*x+1main()int k=5,j=2;printf(“%d/n“,S(k+j);程序运行后的输出结果是 A. 197 B
5、. 143 C. 33 D. 28(分数:1.00)A.B.C.D.12.下列说法不正确的是U /U。 A. C 程序是以函数为基本单位的,整个程序由函数组成 B. C 语言程序的一条语句可以写在不同的行上 C. C 程序的注释行对程序的运行功能不起任何作用,所以注释应该尽可能少写 D. C 程序的每个语句都以分号结束(分数:2.00)A.B.C.D.13.下列属于 C 语言语句的是_。 A. printf(“%d/n“a) B. #includestdio.h C. a=b;b=c;c=a; D. /*this is a program*/(分数:1.00)A.B.C.D.14.在关系中凡能
6、惟一标识元组的最小属性集称为该表的键或码。二维表中可能有若干个键,它们称为该表的U /U。 A. 连接码 B. 关系码 C. 外码 D. 候选码(分数:2.00)A.B.C.D.15.下面程序的输出结果是_。#define a 121const b=12;enum ca1,a2;main()printf(“%d,%d,%d“,sizeof(a),sizeof(b),sizeof(enum c); A. 121,0,4 B. 2,2,2 C. 0,2,4 D. 0,2,2(分数:1.00)A.B.C.D.16.设变量 a、b、c、d 和 y 都已正确定义并赋值。若有以下 if 语句: if(aB
7、) if(cD) y=0; else y=1; 该语句所表示的含义是 _。 (分数:1.00)A.B.C.D.17.在数据流图(DFD)中,带有名字的箭头表示_。 A. 控制程序的执行顺序 B. 模块之间的调用关系 C. 数据的流向 D. 程序的组成成分(分数:1.00)A.B.C.D.18.若 ch 为 char 型变量,k 为 int 型变量(已知字符 a 的 ASCII 码是 97),则执行下列语句后输出的结果为U /U。ch=b;k=10;printf(“%x,%o,“,ch,ch,k);printf(“k=%d/n“,k); A. 因变量类型与格式描述符的类型不匹配,输出无定值 B.
8、 输出项与格式描述符个数不符,输出为 0 值或不定值 C. 62,142,k=%d D. 62,142,k=%10(分数:2.00)A.B.C.D.19.下列叙述中错误的是U /U。 A. 一种数据的逻辑结构可以有多种存储结构 B. 数据的存储结构与数据的处理效率无关 C. 数据的存储结构与数据的处理效率密切相关 D. 数据的存储结构在计算机中所占的空间不一定是连续的(分数:2.00)A.B.C.D.20.以下程序运行后的输出结果是#includestdio.hmain() int a5=1, 2, 3, 4, 5, b5=0, 2, 1, 3, 0, i, s=0;for(i=0; i5;
9、i+) s=s+abi;printf(“%d/n“, s); A. 6 B. 10 C. 11 D. 15(分数:2.00)A.B.C.D.21.有以下程序#includestdio.hint a=4;int f(int n) int t=0;staticint a=5;if(n%2)int a=6;t+=a+;else(int a=7;t+=a+;returnt+a+:main() int s=a,i=0;for(;i2;i+)s+=f(i);printf(“%d/n“,s);程序运行后的输出结果是_。 A.28 B.24 C.32 D.36(分数:2.00)A.B.C.D.22.以下程序的
10、输出结果是_。int x=1;fun(int p) int x=4;x+=p+;printf(“%d“,x);main() int a=3;fun(a) ; x+=a+;printf(“%d/n“,x); A. 8 4 B. 4 5 C. 7 4 D. 9 5(分数:1.00)A.B.C.D.23.执行下列程序段后,变量 a,b,c 的值分别是U /U。int x=5,y=4;int a,b,c;a=(-x=y+)?x:+y;b=+x;c=y; A. a=5, b=5, c=5 B. a=4, b=5, c=5 C. a=5, b=6, c=5 D. a=1, b=5, c=6(分数:1.00
11、)A.B.C.D.24.以下数据库除 _外,均为严格意义上的 DBMS 系统。 A. Oracle B. Access C. Sybase 的 PowerBuilder D. SQL Server(分数:2.00)A.B.C.D.25.为了使模块尽可能独立,要求_。 A. 模块的内聚程度要尽量高,且各模块间的耦合程度要尽量强 B. 模块的内聚程度要尽量高,且各模块间的耦合程度要尽量弱 C. 模块的内聚程度要尽量低,且各模块间的耦合程度要尽量弱 D. 模块的内聚程度要尽量低,且各模块间的耦合程度要尽量强(分数:1.00)A.B.C.D.26.下列不属于软件调试技术的是_。 A. 强行排错法 B.
12、 集成测试法 C. 回溯法 D. 原因排除法(分数:2.00)A.B.C.D.27.运行下列程序,若从键盘输入字母“a”,则输出结果是U /U。char c;c=getchar();if(c=a B. int a3=2*3; C. int a3=; D. int a23=1), 2, 3,4;(分数:2.00)A.B.C.D.29.请读程序:#includestdio.hmain() int a;float b,c;scanf(“%2d%3f%4f“,若运行时从键盘上输入 9876543210 (分数:1.00)A.B.C.D.30.对长度为 n 的线性表进行顺序查找,在最坏情况下,所需要的比
13、较次数为 A. log2n B. n/2 C. n D. n+1(分数:1.00)A.B.C.D.31.有以下程序:#includestdio.h#includestring.hmain()char a10=“abcd“;printf(“%d, %d/n“, strlen(a), sizeof(a); 程序运行后的输出结果是 A. 7, 4 B. 4, 10 C. 8, 8 D. 10, 10(分数:2.00)A.B.C.D.32.有下列二叉树,对此二叉树前序遍历的结果为U /U。(分数:2.00)A.B.C.D.33.以下语句或语句组中,能正确进行字符串赋值的是 _。 A.char*sp;*
14、sp=“right!“; B.char s10;s=“right!“; C.char s 10;*s=“right!“; D.char*sp=“right!“; (分数:1.00)A.B.C.D.34.软件(程序)调试的目标是 A. 诊断和改正程序中的错误 B. 尽可能多地发现程序中的错误 C. 发现并改正程序中的所有错误 D. 确定程序中错误的性质(分数:2.00)A.B.C.D.35.两个或两个以上模块之间关联的紧密程度称为_。 A. 耦合度 B. 内聚度 C. 复杂度 D. 数据传输特性(分数:2.00)A.B.C.D.二、B填空题/B(总题数:15,分数:35.00)36.一棵二叉树第
15、六层(根结点为第一层)的结点数最多为U U /U /U个。(分数:2.00)填空项 1:_37.下面程序的运行结果是_。 main() int i=0,j=10,k=2,s=0; i+=k; if(ij) printf(“%d/n“,s); break; s+=i;(分数:2.00)填空项 1:_38.设有下列二叉树: (分数:4.00)填空项 1:_39.以下程序用于判断 a、b、c 能否构成三角形,若能则输出 YES,否则输出 NO。当给 a、b、c 输入三角形的三条边长时,确定 a、b、c 能构成三角形的条件是需同时满足 3 个条件:a+bc,a+cb,b+ca。请填空。 main()
16、float a,b,c; scanf(“%f%f%f“, strcpy(str1+strlen(str1)/2,“es she“); printf(“%s/n“,p1); (分数:2.00)填空项 1:_42.下面程序的运行结果是:U U /U /U。 #define N 10 #define s(x)x*x #define f(x)(x*x) main() int i1,i2; i1=1000/s(N);i2=1000/f(N); printf(“%d%d/n”,i1,i2); (分数:1.00)填空项 1:_43.语句“int(*ptr)();”的含义是 1 是指向函数的指针,该函数返回一
17、个 int 型数据。(分数:2.00)填空项 1:_44.以下程序运行后的输出结果是U U /U /U。 #include stdio.h #define S(x) 4 * x * x + 1 main( ) int i=6,j=8; prinff(“% d / n“ , S( i + j) ); (分数:2.00)填空项 1:_45.以下程序用以删除字符串中所有的空格,请填空。 #include stdioh main() char s100=“our teacher teach c language!”;int i,j; for(i=j=0;si!=/0;i+) if(si!=) sj=s
18、i;j+; sj=_; printf(“%s/n“,s); (分数:2.00)填空项 1:_46.若有定义语句 char s100,d100;int j=0,i=0;且 s 中已赋字符串,请填空以实现拷贝。 (注:不使用逗号表达式) whi1e()si)dj=U U /U /U:j+; dj=0;(分数:2.00)填空项 1:_47.有下列程序,程序执行后输出结果是_。 #includestdio.h main() a0=ai; main() int a10=10,9,8,7,6,5,4,3,2,1,i; for(i=2;i=0;i-)fun( b+; return(*a-*b);该函数的功能
19、是_。 A. 计算 a 和 b 所指字符串的长度之差 B. 将 b 所指字符串连接到 a 所指字符串中 C. 将 b 所指字符串连接到 a 所指字符串后面 D. 比较 a 和 b 所指字符串的大小(分数:1.00)A.B.C.D. 解析:解析 本题函数有两个字符指针的参数,且没有定义返回类型,C 语言规定函数的返回类型为 int时可以省略,所以本题函数返回的是 int 型。该函数中先是一个 while 循环,循环条件是(*a!=/0)b+;,即 a、b 各向后移一位。当 a 或 b 中有一个结束或者所指的内容不一样时,就退出循环,执行返回语句,返回 a 所指内容减去 b 所指内容的差。若两个字
20、符串相同,则最后返回/0-/0=0,否则返回这两个字符串的第一对不同的字符之差。由此可以看出,该函数实现的是对两个字符串的比较。所以选项 D 正确。8.下面语句的输出结果是_。printf(“%d/n“,strlen(“/t“/065/xff/n“); A. 14 B. 8 C. 5 D. 输出项不合怯,无正常输出 (分数:1.00)A.B.C. D.解析:解析 在 C 语言中,以“/”开头的字符均为转义字符,其中“/”后可跟 13 位八进制数或在“/”后跟字母 x 及 12 位十六进制数,以此来代表一个特定的字符。9.有以下程序:#includestdio.hmain()int i,x33=
21、1,2,3 ,4,5,6,7,8,9;for(i=0;i3;i+)printf(“%d“,xi2-i);printf(“/n“);程序运行后的输出结果是_。 A.1 5 0 B.3 5 7 C.1 4 7 D.3 6 9(分数:1.00)A.B. C.D.解析:解析 程序首先初始化二维数组 x33,然后通过 3 次 for 循环,输出 x02、x11和x20的值,即 3、5、7。因此 B 选项正确。10.在结构化方法中,软件功能分解属于软件开发中的U /U阶段。 A. 详细设计 B. 需求分析 C. 总体设计 D. 编程调试(分数:1.00)A.B.C. D.解析:解析 需求分析将创建所需的数
22、据模型、功能模型和控制模型,但不会进行功能分解;有了需求分析的报告,开始进行总体设计,其间将软件的功能分解,确定模块之间的接口;有了每个模块功能的分解,则每个模块进入详细设计阶段;接下来是编写代码,调试程序等。11.有以下程序:#include stdio.h#define S(x)4*(x)*x+1main()int k=5,j=2;printf(“%d/n“,S(k+j);程序运行后的输出结果是 A. 197 B. 143 C. 33 D. 28(分数:1.00)A.B. C.D.解析:解析 宏定义又称为宏代换,格式为“#define 标识符字符串”,其中的标识符就是所谓的符号常量,也称为
23、“宏名”,宏的预处理工作也叫做宏展开,即将宏名替换为字符串。本题中把 S(k+j)替换成 4*(k+j)*k+j+1,计算结果为 143。12.下列说法不正确的是U /U。 A. C 程序是以函数为基本单位的,整个程序由函数组成 B. C 语言程序的一条语句可以写在不同的行上 C. C 程序的注释行对程序的运行功能不起任何作用,所以注释应该尽可能少写 D. C 程序的每个语句都以分号结束(分数:2.00)A.B.C. D.解析:解析 本题涉及 C 语言基本的 3 个知识点:C 语言的源程序是由函数构成的,函数是其基本单位,每一个函数完成相对独立的功能,其中只能包括一个主函数;C 语言规定每个语
24、句以分号结束,其书写格式是自由的,一条语句可以写在不同的行上,或者一行也可以写多条语句;注释行虽然对程序的运行不起作用,但是它可以方便程序员阅读,提高程序的可读性和可移植性,所以书写注释行还是很有必要的。13.下列属于 C 语言语句的是_。 A. printf(“%d/n“a) B. #includestdio.h C. a=b;b=c;c=a; D. /*this is a program*/(分数:1.00)A.B.C. D.解析:解析 在 C 语言中,个完整的 C 语句必须在语句末尾出现分号,分号是 C 语句的必要组成部分。本题答案为 C。14.在关系中凡能惟一标识元组的最小属性集称为该
25、表的键或码。二维表中可能有若干个键,它们称为该表的U /U。 A. 连接码 B. 关系码 C. 外码 D. 候选码(分数:2.00)A.B.C.D. 解析:解析 在关系中凡能惟一标识元组的最小属性集称为该表的键或码。二维表中可能有若干个键,它们称为该表的候选码或候选键。从二维表的所有候选键中选取一个作为用户使用的键称为主键或主码。15.下面程序的输出结果是_。#define a 121const b=12;enum ca1,a2;main()printf(“%d,%d,%d“,sizeof(a),sizeof(b),sizeof(enum c); A. 121,0,4 B. 2,2,2 C.
26、0,2,4 D. 0,2,2(分数:1.00)A.B. C.D.解析:解析 sizeof 函数是取变量所占的存储空间的字节数,标识 a 代表常量 121;const b=12;,其中数据类型可以缺省,默认为整型;enum ca1,a2;定义了个枚举类型 enum c,a1,a2 为枚举元素,在C 编译时,对枚举元素按常量处理,它们的值按定义顺序依次为 0,1。因此它们的字节数均为 2,2,2。16.设变量 a、b、c、d 和 y 都已正确定义并赋值。若有以下 if 语句: if(aB) if(cD) y=0; else y=1; 该语句所表示的含义是 _。 (分数:1.00)A.B.C. D.
27、解析:解析 if 语句中包含一个或多个 if 语句称为 if 语句的嵌套。在 C 语言中,从最内层开始,else总是与它上面最近的 (未曾配对的)if 配对。故本题中 y=1 的条件是 cd,又因为此 if 语句是前一个 if语句的内层嵌套语句,所以在满足内层嵌套的 if 语句之前,必须先满足外层的 if 语句中的条件表达式“ab”,所以选项 C 是正确的。17.在数据流图(DFD)中,带有名字的箭头表示_。 A. 控制程序的执行顺序 B. 模块之间的调用关系 C. 数据的流向 D. 程序的组成成分(分数:1.00)A.B.C. D.解析:解析 在数据流图中,用标有名字的箭头表示数据流。数据流
28、可以加工流向加工,也可以从加工流向文件或从文件流向加工,并且可以从外部实体流向系统或从系统流向外部实体。18.若 ch 为 char 型变量,k 为 int 型变量(已知字符 a 的 ASCII 码是 97),则执行下列语句后输出的结果为U /U。ch=b;k=10;printf(“%x,%o,“,ch,ch,k);printf(“k=%d/n“,k); A. 因变量类型与格式描述符的类型不匹配,输出无定值 B. 输出项与格式描述符个数不符,输出为 0 值或不定值 C. 62,142,k=%d D. 62,142,k=%10(分数:2.00)A.B.C. D.解析:解析 第 1 个 print
29、f 函数,格式说明的个数是 2,而输出项的个数是 3,所以对于多余的输出项k 不予输出;第 2 个 printf 函数,有两个%说明,第 1 个%后面的字符要原样输出。 知识拓展 本题考查 printf 函数的格式。 “%x”和“%o”分别表示以十六进制和八进制无符号型输出整型数据(不带前导 0x 或 0):printf 函数中格式说明符之前插入的任何字符都原样输出:格式说明与输出项的个数也要相等,如果格式说明的个数少于输出项的个数,则对于多余的输出项不予输出。19.下列叙述中错误的是U /U。 A. 一种数据的逻辑结构可以有多种存储结构 B. 数据的存储结构与数据的处理效率无关 C. 数据的
30、存储结构与数据的处理效率密切相关 D. 数据的存储结构在计算机中所占的空间不一定是连续的(分数:2.00)A.B. C.D.解析:解析 数据的存储结构分为顺序结构和链式结构,一个数据的逻辑结构可以有多种存储结构。顺序结构中数据元素所占的存储空间是连续的,而链式存储结构中,数据元素所占的存储空间不一定是连续的。数据的存储结构与数据的处理效率密切相关。20.以下程序运行后的输出结果是#includestdio.hmain() int a5=1, 2, 3, 4, 5, b5=0, 2, 1, 3, 0, i, s=0;for(i=0; i5; i+) s=s+abi;printf(“%d/n“,
31、s); A. 6 B. 10 C. 11 D. 15(分数:2.00)A.B.C. D.解析:解析 数组元素 bi作为数组 a 的下标,s=a0+a2+a1+a3+a0,即 s=1+3+2+4+1=11。21.有以下程序#includestdio.hint a=4;int f(int n) int t=0;staticint a=5;if(n%2)int a=6;t+=a+;else(int a=7;t+=a+;returnt+a+:main() int s=a,i=0;for(;i2;i+)s+=f(i);printf(“%d/n“,s);程序运行后的输出结果是_。 A.28 B.24 C.
32、32 D.36(分数:2.00)A. B.C.D.解析:解析 s 得到全局变量 a 的值为 4,第一次循环返回 12,第二次循环返回 12,累加结果为 28。22.以下程序的输出结果是_。int x=1;fun(int p) int x=4;x+=p+;printf(“%d“,x);main() int a=3;fun(a) ; x+=a+;printf(“%d/n“,x); A. 8 4 B. 4 5 C. 7 4 D. 9 5(分数:1.00)A.B.C. D.解析:解析 本题考查局部变量和全局变量的关系。在调用 fun 函数时,形参 p 值为 3(实参 a 传递的),在 x+=p+中,x
33、 是局部变量(局部优先),x 和 p 的和 7 放在变量 x 中,p 再自加变为 4,显示输出 x 的值7;主函数中的 x 是全局变量,值为 1,x 和 a 的和 4 放在变量 x 中,a 再自加变为 4,显示输出 x 的值4。23.执行下列程序段后,变量 a,b,c 的值分别是U /U。int x=5,y=4;int a,b,c;a=(-x=y+)?x:+y;b=+x;c=y; A. a=5, b=5, c=5 B. a=4, b=5, c=5 C. a=5, b=6, c=5 D. a=1, b=5, c=6(分数:1.00)A.B. C.D.解析:解析 本题考查自加(+),自减(-)运算
34、符的使用。“+i,-i”,在使用 i 之前,先使 i 的值加 1 或者减 1,再使用此时的表达式的值参与运算:“i+,i-”,先使用此时的 i 的值参与运算,在使用 i 之后,再使 i 的值加 1 或者减 1。 对于第 1 个表达式-x=4,y+=4两者相等,-x=y+为真,所以 a=x=4,执行完此语句后 y 的值是 5。 第 2 个表达式 b=+x,x 的值先加 1,然后赋给 b,即 b=x+1=5;第一个表达式 c=y=5。24.以下数据库除 _外,均为严格意义上的 DBMS 系统。 A. Oracle B. Access C. Sybase 的 PowerBuilder D. SQL
35、Server(分数:2.00)A.B. C.D.解析:解析 目前流行的 DBMS 均为关系数据库系统,如 ORACLE、Sybase 的 Power Builder 及 IBM 的DB2、微软的 SQL Server 等,它们均为严格意义上的 DBMS 系统。另外有一些小型的数据库,如微软的Visual FoxPro 和 Access 等,它们只具备数据库管理系统的一些简单功能,不是严格意义上的 DBMS 系统。25.为了使模块尽可能独立,要求_。 A. 模块的内聚程度要尽量高,且各模块间的耦合程度要尽量强 B. 模块的内聚程度要尽量高,且各模块间的耦合程度要尽量弱 C. 模块的内聚程度要尽量
36、低,且各模块间的耦合程度要尽量弱 D. 模块的内聚程度要尽量低,且各模块间的耦合程度要尽量强(分数:1.00)A.B. C.D.解析:解析 衡量模块的独立程度使用耦合性和内聚性两个定性的度量标准。内聚性是一个模块内部各个元素间彼此结合的紧密程度的度量。内聚性是从功能角度来度量模块内的联系。模块内聚的程度越高,越独立。耦合性是模块间互相连接的紧密程度的度量。耦合程度越低,越独立。26.下列不属于软件调试技术的是_。 A. 强行排错法 B. 集成测试法 C. 回溯法 D. 原因排除法(分数:2.00)A.B. C.D.解析:解析 调试的关键在于推断程序内部的错误位置及原因。主要的调试方法有强行排错
37、法、回溯法和原因排除法。27.运行下列程序,若从键盘输入字母“a”,则输出结果是U /U。char c;c=getchar();if(c=a B. int a3=2*3; C. int a3=; D. int a23=1), 2, 3,4;(分数:2.00)A.B. C.D.解析:解析 (1)二维数组的定义 二维数组的定义方式为:类型说明符数组名常量表达式常量表达式。二维数组在内存中是按行优先的顺序存放的,即先存放第一行的元素,再存放第二行的元素,依次类推。(2)二维数组元素的引用 二维数组元素的表示形式为:数组名下标下标,下标可以是整型常量或整型表达式;其范围为:0(常量表达式-1)。 (3
38、)二维数组的初始化 可以用以下方法对二维数组元素初始化。 分行给二维数组赋初值,例如; int a22=(1, 2), 3, 4); 这种赋值方式比较直观,把第1 个大括号内的数据赋给第 1 行的元素,第 2 个大括号内的数据赋给第 2 行的元素,即按行赋值。 可以将所有数据写在一个大括号内,按数组排列的顺序对各个元素赋初值。 可以对部分元素赋初值,没有初始化的元素值为 0。 如果对全部数组元素赋初值,则定义数组时对第一维的长度可以不指定,但第二维的长度不能省略。29.请读程序:#includestdio.hmain() int a;float b,c;scanf(“%2d%3f%4f“,若运
39、行时从键盘上输入 9876543210 (分数:1.00)A.B.C. D.解析:解析 scanf()把用户从键盘录入的数字的第 1、2 位存入整型变量 a;把第 3、4、5 位存入单精度实型变量 b,把第 6、7、 8、9 位存入单精度实型变量 c,用户录入的第 10 位被 scanf()遗弃。这时变量 a、b、c 的值分别为:98、765.000000、 4321.000000。30.对长度为 n 的线性表进行顺序查找,在最坏情况下,所需要的比较次数为 A. log2n B. n/2 C. n D. n+1(分数:1.00)A.B.C. D.解析:解析 在长度为 n 的线性表中进行顺序查找
40、,最坏情况下需要比较 n 次选项 C 正确。31.有以下程序:#includestdio.h#includestring.hmain()char a10=“abcd“;printf(“%d, %d/n“, strlen(a), sizeof(a); 程序运行后的输出结果是 A. 7, 4 B. 4, 10 C. 8, 8 D. 10, 10(分数:2.00)A.B. C.D.解析:解析 strlen()用来返回字符串的长度,而 sizeof()返回的是一个对象或者类型所占的内存字节数,即数组所占的内存。32.有下列二叉树,对此二叉树前序遍历的结果为U /U。(分数:2.00)A.B. C.D.
41、解析:解析 对二叉树的前序遍历是指:先访问根结点,然后访问左子树,最后访问右子树,并且,在访问左、右子树时,先访问根结点,再依次访问其左、右子树。33.以下语句或语句组中,能正确进行字符串赋值的是 _。 A.char*sp;*sp=“right!“; B.char s10;s=“right!“; C.char s 10;*s=“right!“; D.char*sp=“right!“; (分数:1.00)A.B.C.D. 解析:解析 选项 A 定义了字符型的指针变量甲,则*sp 存储的是第一个字符,而给它赋的是字符串,故错; 选项 B 表示代表数组的首地址,而题中给它赋的是字符串,所以错误: 选
42、项 C 定义了一个字符型的数组 s10,再通过*s 给数组元素赋初值,这时是与选项 A 相同的错误。34.软件(程序)调试的目标是 A. 诊断和改正程序中的错误 B. 尽可能多地发现程序中的错误 C. 发现并改正程序中的所有错误 D. 确定程序中错误的性质(分数:2.00)A. B.C.D.解析:解析 软件测试与软件调试是两个不同的概念:软件测试的目的是发现错误,而软件调试的目的是发现错误或导致程序失效的原因,并修改程序以修正错误,调试是测试之后的活动。35.两个或两个以上模块之间关联的紧密程度称为_。 A. 耦合度 B. 内聚度 C. 复杂度 D. 数据传输特性(分数:2.00)A. B.C
43、.D.解析:二、B填空题/B(总题数:15,分数:35.00)36.一棵二叉树第六层(根结点为第一层)的结点数最多为U U /U /U个。(分数:2.00)填空项 1:_ (正确答案:32)解析:解析 根据二叉树的性质:二叉树第 i(i1)层上至多有 2i-1个结点,得到第六层的结点数最多是 26-1=32。37.下面程序的运行结果是_。 main() int i=0,j=10,k=2,s=0; i+=k; if(ij) printf(“%d/n“,s); break; s+=i;(分数:2.00)填空项 1:_ (正确答案:30)解析:解析 考查 for 循环的使用。 解题要点 题目中 fo
44、r(;)表示:for 循环的初始化表达式,条件表达式和修正表达式都省略了,表示进行 for 循环和 for 循环的终止都没有限制。 考点链接 while循环的执行原理。38.设有下列二叉树: (分数:4.00)填空项 1:_ (正确答案:DBEAFC)解析:解析 所谓中序遍历是指在访问根结点、遍历左子树与遍历右子树这三者中,首先遍历左子树,然后访问根结点,最后遍历右子树;并且在遍历左、右子树时,仍然先遍历左子树,然后访问根结点,最后遍历右子树。39.以下程序用于判断 a、b、c 能否构成三角形,若能则输出 YES,否则输出 NO。当给 a、b、c 输入三角形的三条边长时,确定 a、b、c 能构成三角形的条件是需同时满足 3 个条件:a+bc,a+cb,b+ca。请填空。 main() float a,b,c; scanf(“%f%f%f“, strcpy(str1+strlen(str1)/2,“es she“); printf(“%s/n“,p1); (分数:2.00)填空项 1:_ (正确答案:How does she)解析:解析 程序中的 strle