1、二级公共基础知识-91 及答案解析(总分:100.00,做题时间:90 分钟)一、单项选择题(总题数:40,分数:100.00)1.数据结构主要研究的是数据的逻辑结构、数据的运算和_。(分数:2.50)A.数据的方法B.数据的存储结构C.数据的对象D.数据的逻辑存储2.一棵二叉树的前序遍历结果是 ABCEDF,中序遍历结果是 CBAEDF,则其后序遍历的结果是_。(分数:2.50)A.DBACEFB.CBEFDAC.FDAEBCD.DFABEC3.在数据处理中,其处理的最小单位是_。(分数:2.50)A.数据B.数据项C.数据结构D.数据元素4.在数据库系统的内部结构体系中,索引属于_。(分数
2、:2.50)A.模式B.内模式C.外模式D.概念模式5.以下_不属于对象的基本特征。(分数:2.50)A.继承性B.封装性C.分类性D.多态性6.数据库系统的核心是_。(分数:2.50)A.数据模型B.软件开发C.数据库设计D.数据库管理系统7.开发软件所需高成本和产品的低质量之间有着尖锐的矛盾,这种现象称为_。(分数:2.50)A.软件矛盾B.软件危机C.软件耦合D.软件产生8.关系模型允许定义 3 类数据约束,下列不属于数据约束的是_。(分数:2.50)A.实体完整性约束B.参照完整性约束C.属性完整性约束D.用户自定义的完整性约束9.关系表中的每一行记录称为一个_。(分数:2.50)A.
3、字段B.元组C.属性D.关键码10.在数据库管理技术的发展中,数据独立性最高的是_。(分数:2.50)A.人工管理B.文件系统C.数据库系统D.数据模型11.以下叙述错误的是_。(分数:2.50)A.C 语言区分大小写B.C 程序中的一个变量,代表内存中一个相应的存储单元,变量的值可以根据需要随时修改C.整数和实数都能用 C 语言准确无误地表示出来D.在 C 程序中,正整数可以用十进制、八进制和十六进制的形式来表示12.以下不正确的转义字符是_。(分数:2.50)A.“B.“t“C.“n“D.“088“13.可在 C 程序中用做用户标识符的一组标识符是_。(分数:2.50)A.void def
4、ine WORDB.as_b3 _123 IfC.For abc caseD.2c DO SIG14.若变量已正确定义并赋值,则以下符合 C 语言语法的表达式是_。(分数:2.50)A.a=a+7;B.a=7+b+c,a+C.int(12.3%4)D.a=a+7=c+b15.有以下程序段 char ch;int k; ch=“a“;k=12; printf(“%c,%d,“,ch,ch,k); printf(“k=%dkn“,k); 已知字符 a 的 ASCII 十进制代码为 97,则执行上述程序段后输出结果是_。(分数:2.50)A.因变量类型与格式描述符的类型不匹配输出无定值B.输出项与格
5、式描述符个数不符,输出为零值或不定值C.a,97,12k=12D.a,97,k=1216.下列叙述中错误的是_。(分数:2.50)A.计算机不能直接执行用 C 语言编写的源程序B.C 程序经 C 编译程序编译后,生成后缀为.obj 的文件是一个二进制文件C.后缀为.obj 的文件,经连接程序生成后缀为.exe 的文件是一个二进制文件D.后缀为.obj 和.exe 的二进制文件都可以直接运行17.当变量 C 的值不为 2、4、6 时,值也为“真”的表达式是_。(分数:2.50)A.(c=2)|(c=4)|(c=6)B.(c=2,下列选项的 4 个表达式中与其他 3 个表达式的值不相同的是_。(分
6、数:2.50)A.k+B.k+=1C.+kD.k+120.有下列程序,其中%u 表示按无符号整数输出。 main() unsigned int x=0xFFFF;/* x 的初值为十六进制数*/ printf(“%un“,x); ) 程序运行后的输出结果是_。(分数:2.50)A.-1B.65535C.32767D.0xFFFF21.下面程序的运行结果是_。 for(i=3;i7;i+)printf(i%2)?(“*%dn“):(“#%dn“),i); A B C D (分数:2.50)A.B.C.D.22.有下列程序: main() int a=0,b=0; a=10;/*给 a 赋值 b=
7、20; 给 b 赋值*/ printf(“a+b=%dn“,a+b);/*输出计算结果*/ 程序运行后的输出结果是_。(分数:2.50)A.a+b=10B.a+b=30C.30D.出错23.运行下列程序时,若输入数据为“321”,则输出结果是_。 main() int num,i,j,k,s; scanf(“%d“, i=num/100; j=(num-i*100)/10; k=(num-i*100-j*10); switch(s) case 3:printf(“%d%d%dn“,k,j,i); break; case 2:printf(“%d%dn“,k,j); case 1:printf(
8、“%dn“,k); (分数:2.50)A.123B.1,2,3C.321D.3,2,124.以下程序的运行结果是_。 #include“stdio.h“ main() struct date int year,month,day;today; printf(“%dn“.sizeof(struct date); (分数:2.50)A.6B.8C.10D.1225.判断 char 型变量 c1 是否为小写字母的正确表达式为_。(分数:2.50)A.“a“=c1=“Z“B.(c1=a) while(c!=“,“) c=getchar(); putchar(c); (分数:2.50)A.Hi,B.Hi
9、,LilyC.HiD.HiLily27.下面 4 个关于 C 语言的结论中错误的是_。(分数:2.50)A.可以用 do.while 语句实现的循环一定可以用 while 语句实现B.可以用 for 语句实现的循环一定可以用 while 语句实现C.可以用 while 语句实现的循环一定可以用 for 语句实现D.do.while 语句与 while 语句的区别仅是关键宇“while”出现的位置不同28.若有以下程序段: struct st int n; int*m; int a=2,b=3,c=5; struct st s3=(101, main() struct st*p; p=s; .
10、则以下表达式中值为 5 的是_。(分数:2.50)A.(p+)-mB.*(p+)-mC.(*p).mD.*(+p)-m29.下列程序的运行结果是_。 #includestdio.h void sub(int*s,int*y) static int m=4; *y=s0; m+; void main() int a=1,2,3,4,5,k; int x; printf(“n“); for(k=0;k=4;k+) sub(a, printf(“%d,“,x); (分数:2.50)A.1,1,1,1,1,B.1,2,3,4,5,C.0,0,0,0,0,D.4,4,4,4,4,30.以下程序的输出结果
11、是_。 point(char*pt); main() char b4=“m“,“n“,“o“,“P“,*pt=b; point(pt); printf(“%cn“,*pt); point(char*P) p+=3;(分数:2.50)APB.0CnDm31.C 语言中规定,程序中各函数之间_。(分数:2.50)A.既允许直接递归调用也允许间接递归调用B.不允许直接递归调用也不允许间接递归调用C.允许直接递归调用不允许间接递归调用D.不允许直接递归调用允许间接递归调用32.以下程序的输出结果是_。 #includestdio.h main() int a33=0,1,2,0,1,2,0,1,2,i
12、,j,S=1; for(i=0;i3;i+) for(j=i;j=i;j+) s+=aiajj; printf(“%dn“,s); )(分数:2.50)A.3B.4C.1D.933.以下程序输出的结果是_。 #includestdio.h #includestring.h main() char a7=“ABCD“,“EFGH“,“IJKL“,“MNOP“,k; for(k=1;k3;k+) printf(“%sn“, ) A B C D (分数:2.50)A.B.C.D.34.当用“#defineF 37.5f“定义后,下列叙述正确的是_。(分数:2.50)A.F 是 float 型数B.F
13、 是 char 型数C.F 无类型D.F 是字符串35.在一个 C 源程序文件中,要定义一个只允许本源文件中所有函数使用的全局变量,则该变量需要使用的存储类别是_。(分数:2.50)A.autoB.registerC.externD.static36.以下说法正确的是_。(分数:2.50)A.宏定义是 C 语句,要在行末加分号B.可以使用#undefine 提前结束宏名的使用C.在进行宏定义时,宏定义不能嵌套D.双引号中出现的宏名也要进行替换37.下面程序的输出结果是_。 typedefunionlong x1; int y4; char z10; M; M t; main() printf(
14、“%dn“,sizeof(t); (分数:2.50)A.32B.26C.10D.438.以下程序中函数 sort 的功能是对 a 数组中的数据进行由大到小的排序: void sort(int a,int n) int i,j,t; for(i=0;in-1;i+) for(j=i+1;jn;j+) if(aiaj)t=ai;ai=aj;aj=t; main() int aa10=1,2,3,4,5,6,7,8,9,10),i; sort( for(i=0;i10;i+)printf(“%d,“,aai); printf(“n“); 程序运行后的输出结果是_。(分数:2.50)A.1,2,3,4
15、,5,6,7,8,9,10,B.10,9,8,7,6,5,4,3,2,1,C.1,2,3,8,7,6,5,4,9,10,D.1,2,10,9,8,7,6,5,4,3,39.设 x=061,y=016,则 z=x|y 的值是_。(分数:2.50)A.00001111B.11111111C.00111111D.1100000040.函数 rewind(fp)的作用是_。(分数:2.50)A.使 fp 指定的文件的位置指针重新定位到文件的开始位置B.将 fp 指定的文件的位置指针指向文件中所要求的特定位置C.使 fp 指定的文件的位置指针向文件的末尾D.使 fp 指定的文件的位置指针自动移至下一个字
16、符位置二级公共基础知识-91 答案解析(总分:100.00,做题时间:90 分钟)一、单项选择题(总题数:40,分数:100.00)1.数据结构主要研究的是数据的逻辑结构、数据的运算和_。(分数:2.50)A.数据的方法B.数据的存储结构 C.数据的对象D.数据的逻辑存储解析:解析 数据结构是研究数据元素及其之间的相互关系和数据运算的一门学科,它包含 3 个方面的内容,即数据的逻辑结构、存储结构和数据的运算。2.一棵二叉树的前序遍历结果是 ABCEDF,中序遍历结果是 CBAEDF,则其后序遍历的结果是_。(分数:2.50)A.DBACEFB.CBEFDA C.FDAEBCD.DFABEC解析
17、:解析 由于该二叉树的前序遍历结果是 ABCEDF,显然 A 结点为根结点,所以后序遍历时 A 结点是最后遍历的,其后序遍历的结果为 CBEFDA。3.在数据处理中,其处理的最小单位是_。(分数:2.50)A.数据B.数据项 C.数据结构D.数据元素解析:解析 数据元素是由多个数据项组成,数据是能够被计算机识别、存储和加工处理的信息载体,数据处理的最小单位是数据项。4.在数据库系统的内部结构体系中,索引属于_。(分数:2.50)A.模式B.内模式 C.外模式D.概念模式解析:解析 内模式又称物理模式,它给出了数据库物理存储结构与物理存取方法,如数据存储的文件结构、索引、集簇及 hash 等存取
18、方式与存取路径,内模式的物理性主要体现在操作系统及文件级上,它还未深入到设备级上(如磁盘及磁盘操作)。5.以下_不属于对象的基本特征。(分数:2.50)A.继承性 B.封装性C.分类性D.多态性解析:解析 对象具有如下特征: 标识唯一性。指对象是可区分的。 分类性:指可以将具有相同属性和操作的对象抽象成类。 多态性:指同一个操作可以是不同对象的行为。 封装性:从外面看只能看到对象的外部特征,而不知道也无须知道数据的具体结构以及实现操作的算法。模块独立性好:对象是面向对象的软件的基本模块,对象内部各种元素彼此结合得很紧密,内聚性强。6.数据库系统的核心是_。(分数:2.50)A.数据模型B.软件
19、开发C.数据库设计D.数据库管理系统 解析:解析 数据库管理系统 DBMS 是数据库系统的核心。DBMS 是负责数据库的建立、使用和维护的软件。DBMS 建立在操作系统之上,实施对数据库的统一管理和控制。用户使用的各种数据库命令以及应用程序的执行,最终都必须通过 DBMS。另外,DBMS 还承担着数据库的安全保护工作,按照 DBA 所规定的要求,保证数据库的完整性和安全性。7.开发软件所需高成本和产品的低质量之间有着尖锐的矛盾,这种现象称为_。(分数:2.50)A.软件矛盾B.软件危机 C.软件耦合D.软件产生解析:解析 随着计算机软件规模的扩大,软件本身的复杂性不断增加,研制周期显著变长,正
20、确性难以保证,软件开发费用上涨,生产效率急剧下降,从而出现了人们难以控制软件发展的局面,即所谓的“软件危机”。8.关系模型允许定义 3 类数据约束,下列不属于数据约束的是_。(分数:2.50)A.实体完整性约束B.参照完整性约束C.属性完整性约束 D.用户自定义的完整性约束解析:解析 关系模型允许 3 类数据约束,它们是: 实体完整性约束。该约束要求关系的主键中属性值不能为空值,这是数据库完整性的最基本要求。 参照完整性约束。该约束是关系之间相关联的基本约束,它不允许关系引用不存在的元组,即在关系中的外键要么是所关联关系中实际存在的元组,要么就为空值。 用户定义的完整性约束。用户定义的完整性就
21、是针对某一具体关系数据库的约束条件,它反映某一具体应用所涉及的数据必须满足的语义要求。9.关系表中的每一行记录称为一个_。(分数:2.50)A.字段B.元组 C.属性D.关键码解析:解析 在关系表中,每一列称为一个属性,对应表中的一个字段;每一行称为一个元组,对应表中的一条记录。10.在数据库管理技术的发展中,数据独立性最高的是_。(分数:2.50)A.人工管理B.文件系统C.数据库系统 D.数据模型解析:解析 在人工管理阶段,数据无法共享,冗余度大,不独立,完全依赖程序;在文件系统阶段,数据共享性差;在数据库系统阶段,共享性好,独立性高。11.以下叙述错误的是_。(分数:2.50)A.C 语
22、言区分大小写B.C 程序中的一个变量,代表内存中一个相应的存储单元,变量的值可以根据需要随时修改C.整数和实数都能用 C 语言准确无误地表示出来 D.在 C 程序中,正整数可以用十进制、八进制和十六进制的形式来表示解析:解析 本题涉及 C 语言最基本的 3 个概念:C 语言是区分大小写的,q 和 Q 是两个不同的变量:变量的实质就是在内存中占据一定的存储单元,存储单元里存放的是该变量的值,变量的值可以根据需要进行修改;整数在允许的范围内可以准确的表示出来,但不可能表示无限度的实数。正整数可用二进制、十进制、八进制和十六进制表示。12.以下不正确的转义字符是_。(分数:2.50)A.“B.“t“
23、C.“n“D.“088“ 解析:解析 “|“是反斜线转义字符;“t“是水平跳格转义字符;“n“是换行转义字符;C 语言中没有规定“088“是转义字符。13.可在 C 程序中用做用户标识符的一组标识符是_。(分数:2.50)A.void define WORDB.as_b3 _123 If C.For abc caseD.2c DO SIG解析:解析 C 语言规定,标识符是由字母、数字或下划线组成,并且它的第一个字符必须是字母或下划线,关键字不能用作用户标识符。14.若变量已正确定义并赋值,则以下符合 C 语言语法的表达式是_。(分数:2.50)A.a=a+7;B.a=7+b+c,a+ C.in
24、t(12.3%4)D.a=a+7=c+b解析:解析 选项 A 是一个 C 语句,不是表达式;选项 B)是利用一个逗号表达式给 a 赋值;选项 C)中的“%”求余运算符要求两个运算对象都必须是整型;选项 D)中,不能用表达式给表达式赋值,但是变量可以给自身赋值,例如 a=a+1。15.有以下程序段 char ch;int k; ch=“a“;k=12; printf(“%c,%d,“,ch,ch,k); printf(“k=%dkn“,k); 已知字符 a 的 ASCII 十进制代码为 97,则执行上述程序段后输出结果是_。(分数:2.50)A.因变量类型与格式描述符的类型不匹配输出无定值B.输
25、出项与格式描述符个数不符,输出为零值或不定值C.a,97,12k=12D.a,97,k=12 解析:解析 在用基本输出函数 printf 时,格式说明与输出项的个数应该相同。如果格式说明的个数少于输出项的个数,多余的输出项不予输出;如果格式说明个数多于输出项个数,则对于多余的格式项输出不定值或 0。16.下列叙述中错误的是_。(分数:2.50)A.计算机不能直接执行用 C 语言编写的源程序B.C 程序经 C 编译程序编译后,生成后缀为.obj 的文件是一个二进制文件C.后缀为.obj 的文件,经连接程序生成后缀为.exe 的文件是一个二进制文件D.后缀为.obj 和.exe 的二进制文件都可以
26、直接运行 解析:解析 C 源程序经过程序编译之后生成一个后缀为“.obj”的二进制文件(称为目标文件),然后由称为“连接程序”的软件包文件与 C 语言提供的各种库函数连接起来生成一个后缀为“.exe”的可运行文件。17.当变量 C 的值不为 2、4、6 时,值也为“真”的表达式是_。(分数:2.50)A.(c=2)|(c=4)|(c=6)B.(c=2,下列选项的 4 个表达式中与其他 3 个表达式的值不相同的是_。(分数:2.50)A.k+ B.k+=1C.+kD.k+1解析:解析 因为题中有语句“int k=0;”,所以选项 B)、C)、D)都是对 k 的值加 1,选项 A 的语句k+表示先
27、利用 k 的值进行运算,然后 k 的值才加 1。20.有下列程序,其中%u 表示按无符号整数输出。 main() unsigned int x=0xFFFF;/* x 的初值为十六进制数*/ printf(“%un“,x); ) 程序运行后的输出结果是_。(分数:2.50)A.-1B.65535 C.32767D.0xFFFF解析:解析 “%u”格式符表示以十进制形式输出无符号整形变量。本题中无符号整型变量 x=0xFFFF 表示的是十六进制无符号整型变量的最大值 65535,所以最后输出的结果为 65535。21.下面程序的运行结果是_。 for(i=3;i7;i+)printf(i%2)?
28、(“*%dn“):(“#%dn“),i); A B C D (分数:2.50)A.B.C.D. 解析:解析 本题考查 printf 函数的输出格式和条件表达式“?:”的使用。printf 函数输出时,“*%odn”和“#%d/a”中的“#”和“*”都是直接输出。条件表达式的基本格式为:“a?b:c”。它的运算规则为:当 a 为非 0 时,整个表达式的值取 b 的值;当 a 为 0 时,整个表达式取 c 的值。22.有下列程序: main() int a=0,b=0; a=10;/*给 a 赋值 b=20; 给 b 赋值*/ printf(“a+b=%dn“,a+b);/*输出计算结果*/ 程序
29、运行后的输出结果是_。(分数:2.50)A.a+b=10 B.a+b=30C.30D.出错解析:解析 C 语言规定,在字符“/*”和其后紧跟的第一个字符“*/”中间的部分是注释内容,且注释部分的内容不参与程序的编译和运行。因此,本题中程序语句“b=20;”没有执行,故本题的答案为选项 A。23.运行下列程序时,若输入数据为“321”,则输出结果是_。 main() int num,i,j,k,s; scanf(“%d“, i=num/100; j=(num-i*100)/10; k=(num-i*100-j*10); switch(s) case 3:printf(“%d%d%dn“,k,j,
30、i); break; case 2:printf(“%d%dn“,k,j); case 1:printf(“%dn“,k); (分数:2.50)A.123 B.1,2,3C.321D.3,2,1解析:解析 本题考查 if.else 语句和 switch 语句。scanf 函数通过键盘读入 num 的值。因为num=32199,所以 s=3,i=3,j=2,k=1。因为 s=3,所以执行 case 3,输出 k、j、i 的值,然后通过break 结束程序。24.以下程序的运行结果是_。 #include“stdio.h“ main() struct date int year,month,day
31、;today; printf(“%dn“.sizeof(struct date); (分数:2.50)A.6 B.8C.10D.12解析:解析 本题考查结构体所占的存储单元。sizeof(struct date)=2+2+2=6(因为结构体的 3 个成员均为 int 类型,各占两个存储单元)。25.判断 char 型变量 c1 是否为小写字母的正确表达式为_。(分数:2.50)A.“a“=c1=“Z“B.(c1=a) while(c!=“,“) c=getchar(); putchar(c); (分数:2.50)A.Hi, B.Hi,LilyC.HiD.HiLily解析:解析 本程序是通过 g
32、etchar 函数读入字符,指针 p 指向 c 数组首地址,并通过 putchar 函数将p 所指的字符逐个输出,当字符为“,“时停止输出。27.下面 4 个关于 C 语言的结论中错误的是_。(分数:2.50)A.可以用 do.while 语句实现的循环一定可以用 while 语句实现B.可以用 for 语句实现的循环一定可以用 while 语句实现C.可以用 while 语句实现的循环一定可以用 for 语句实现D.do.while 语句与 while 语句的区别仅是关键宇“while”出现的位置不同 解析:解析 本题考查几个循环语句的关系。do.while 语句、while 语句、for
33、语句所实现的循环可以相互替代;do.while 语句和 while 语句的区别是 do.while 语句至少执行一次,再判断循环条件,while 语句是先判断条件再执行。28.若有以下程序段: struct st int n; int*m; int a=2,b=3,c=5; struct st s3=(101, main() struct st*p; p=s; . 则以下表达式中值为 5 的是_。(分数:2.50)A.(p+)-mB.*(p+)-mC.(*p).mD.*(+p)-m 解析:解析 本题考查如何通过指针引用数组元素。首先定义了一个结构体,然后定义了一个结构体变量 s3,并赋了初值。
34、在主程序中,定义了一个指向结构体变量 s 的指针 p,要使表达式的值为 5,就应该引用 s1.m 的值,使指针 p 指向 s1,+p 可以实现将 p 指针加 1,指向 s1。29.下列程序的运行结果是_。 #includestdio.h void sub(int*s,int*y) static int m=4; *y=s0; m+; void main() int a=1,2,3,4,5,k; int x; printf(“n“); for(k=0;k=4;k+) sub(a, printf(“%d,“,x); (分数:2.50)A.1,1,1,1,1, B.1,2,3,4,5,C.0,0,0
35、,0,0,D.4,4,4,4,4,解析:解析 本题中 sub(int*s,int*y)函数的参数是两个指针型变量,在函数体内将数组 s 的第一个元素赋给 y。主程序内,首先定义了一维数组并赋初值,然后通过 for 循环,5 次调用 sub(a, main() char b4=“m“,“n“,“o“,“P“,*pt=b; point(pt); printf(“%cn“,*pt); point(char*P) p+=3;(分数:2.50)APB.0CnDm 解析:解析 在 point(char *p)函数中,只进行了值传递,没有进行地址传递,所以调用 point 函数后,变量 pt 的值未改变。3
36、1.C 语言中规定,程序中各函数之间_。(分数:2.50)A.既允许直接递归调用也允许间接递归调用 B.不允许直接递归调用也不允许间接递归调用C.允许直接递归调用不允许间接递归调用D.不允许直接递归调用允许间接递归调用解析:解析 本题考查函数调用的基本概念。在函数调用时,只要符合函数的使用,程序中的各个函数间既可以直接调用其他函数,也可以递归调用其自身。32.以下程序的输出结果是_。 #includestdio.h main() int a33=0,1,2,0,1,2,0,1,2,i,j,S=1; for(i=0;i3;i+) for(j=i;j=i;j+) s+=aiajj; printf(
37、“%dn“,s); )(分数:2.50)A.3B.4 C.1D.9解析:解析 当外层循环为 i 时,内层循环 j 只能取 j=i,所以 s+=aiajj,其实就是 s+=aiaii。当 i=0 时,s=s+a0a00=s+a00=1;当 i=1 时,s=s+a1a11=s+a11=l+1=2;当 i=2 时,s=s+a2a22=s+a22=2+2=4。33.以下程序输出的结果是_。 #includestdio.h #includestring.h main() char a7=“ABCD“,“EFGH“,“IJKL“,“MNOP“,k; for(k=1;k3;k+) printf(“%sn“,
38、 ) A B C D (分数:2.50)A.B.C.D. 解析:解析 本题考查二维数组和 for 循环,“extern”是定义在所有函数之外的全局变量,它可以被所有的函数访问,在所有函数体的内部是有效的,所以函数之间可以通过外部变量直接传递数据;“static”为允许本源文件中所有函数使用的全局变量。36.以下说法正确的是_。(分数:2.50)A.宏定义是 C 语句,要在行末加分号B.可以使用#undefine 提前结束宏名的使用 C.在进行宏定义时,宏定义不能嵌套D.双引号中出现的宏名也要进行替换解析:解析 本题考查宏的使用规则:字符替换格式:#define 标识符字符串,行末不加分号;双引
39、号中出现的宏名不替换;如果提前结束宏名的使用,程序中可以使用#undefine;在进行宏定义时,宏定义能层层置换,能够嵌套。37.下面程序的输出结果是_。 typedefunionlong x1; int y4; char z10; M; M t; main() printf(“%dn“,sizeof(t); (分数:2.50)A.32B.26C.10 D.4解析:解析 “联合体”所占用的内存空间为最长的成员所占用的空间。题中联合体的 z10成员是联合体中占空间最长的成员。38.以下程序中函数 sort 的功能是对 a 数组中的数据进行由大到小的排序: void sort(int a,int
40、n) int i,j,t; for(i=0;in-1;i+) for(j=i+1;jn;j+) if(aiaj)t=ai;ai=aj;aj=t; main() int aa10=1,2,3,4,5,6,7,8,9,10),i; sort( for(i=0;i10;i+)printf(“%d,“,aai); printf(“n“); 程序运行后的输出结果是_。(分数:2.50)A.1,2,3,4,5,6,7,8,9,10,B.10,9,8,7,6,5,4,3,2,1,C.1,2,3,8,7,6,5,4,9,10, D.1,2,10,9,8,7,6,5,4,3,解析:解析 程序中 sort 函数的
41、功能是对数组中的数据进行从大到小的排序。主函数 main 中调用函数sort(&aa3,5);,使得数组 aa 中从第 4 个元素开始的 5 个元素进行从大到小的排序,数组 aa 中的元素变为:1,2,3,8,7,6,5,4,9,10。并输出这些元素。39.设 x=061,y=016,则 z=x|y 的值是_。(分数:2.50)A.00001111B.11111111C.00111111 D.11000000解析:解析 本题主要考查按位或运算,x=061(二进制为 00110001),y=016(二进制为 00001110),进行或运算后结果为 00111111。40.函数 rewind(fp)的作用是_。(分数:2.50)A.使 fp 指定的文件的位置指针重新定位到文件的开始位置 B.将 fp 指定的文件的位置指针指向文件中所要求的特定位置C.使 fp 指定的文件的位置指针向文件的末尾D.使 fp 指定的文件的位置指针自动移至下一个字符位置解析:解析 位置指针重返文件头函数 rewind 的调用形式为:rewind(fp)。其中,“fp”是指向文件的文件型指针。rewind(fp)的功能是:使 fp 指定的文件的位置指针重新定位到文件的开始位置。