国家二级(C语言)机试模拟试卷443
选择题
1.已知二又树后序遍历序列是CDABE,中序遍历序列是CADEB,它的前序遍历序列是( )。(C)
A. ABCDE
B. ECABD
C. EACDB
D. CDEAB
解析:由于后序遍历的最后一个元素为E,所以E为根结点,所以它的前序遍历的首个元素为E,故排除A)和D)选项。由于中序遍历中,元素B在元素根结点E的后面,所以B为二叉树的右子树,并且该二叉树右子树只有一个元素,所以前序遍历的最后一个元素应为B,故选项C)为正确选项,即该二叉树的前序遍历序列是EACDB。
2.若输入bcdefgh、m、abcdefg,以下程序的输出结果为( )。
#include<stdio.h>
#include<string.h>
main()
{int i;
char string[20],str[3][20];
for(i=0;i<3;i++)gets(str[i]);
if(strcmp(str[0],str[1])>0)strcpy(string,str[0]);
else strcpy(string,str[1]);
if(strcmp(str[2],string)>0)strcpy(string,str[2]);
printf(\\(B)
A. bcdefgh
B. m
C. abcdefg
D. bcdefgh或abcdefg
解析:本题考查字符比较函数和字符复制函数:strcmp(s1,s2);函数功能:比较字符串str1和str2比较的是字符的ASCII码的值,当str1<str2时,返回值为负数;当str1=str2时,返回0:当str1>str2,返回值为正数。
3.设ql和q2是指向一个int型一维数组的指针变量,k为float型变量,下列不能正确执行的语句是( )。(B)
A. k=*q1*(*q2);
B. q1=k;
C. q1=q2;
D. k=*q1+*q2;
解析:本题考查指针变量的赋值操作。选项A是将指针q1和q2所指向的变量值相乘,然后赋给k;选项B中,float型数据和指针型数据之间不能进行赋值运算;选项C中,是两个指针变量之间的赋值;选项D中,是两个指针型变量所指向的两个int型数据相加。
4.在长度为n的有序线性表中进行二分查找,最坏情况下需要比较的次数是( )。(C)
A. D(n)
B. D(n2)
C. D(log2n)
D. D(nlog2n)
解析:当有序线性表为顺序存储时才能用二分法查找。可以证明的是对于长度为n的有序线性表,在最坏情况下,二分法查找只需要比较log2n次,而顺序查找需要比较n次。
5.将E-R图转换到关系模式时,实体与联系都可以表示成( )。(B)
A. 属性
B. 关系
C. 记录
D. 码
解析:E—R图由实体、实体的属性和实体之间的联系3个要素组成,关系模型的逻辑结构是一组关系模式的集合,将E-R图转换为关系模型:将实体、实体的属性和实体之间的联系转化为关系模式。如表4-1所示。
6.有以下程序段
char ch;int k;
ch=’a’:k=12;
printf(\\(D)
A. 因变量类型与格式描述符的类型不匹配输出无定值
B. 输出项与格式描述符个数不符,输出为零值或不定值
C. a,97,12k=12
D. a,97,k=12
解析:在用基本输出函数printf时,格式说明与输出项的个数应该相同。如果格式说明的个数少于输出项的个数,多余的输出项不予输出;如果格式说明个数多于输出项个数,则对于多余的格式项输出不定值或0。
7.以下叙述中正确的是( )。(C)
A. 函数的形参类型不能是指针类型
B. 函数的类型不能是指针类型
C. 设有指针变量为double*p,则p+1将指针p移动8个字节
D. 基类型不同的指针变量可以相互混用
解析:C项正确,一般情况下,double类型的变量长度为8个字节,对指针进行加、减运算时,数字“1”指1个存储单元长度。A项错误,函数的形参可以是数值类型,也可以是指针类型;B项错误,C语言中有指向函数的指针,称为函数指针;D项错误,int类型的指针只能指向int,不能指向double,基类型不同的指针变量不能混用。
8.有以下函数:
#include
void rune(int n)
{ int i;
for(i=0;i<=n;i++)printf(\\(D)
A. ****#????***#
B. ***#????*****#
C. **#????******#
D. ****#????*****#
解析:执行func(3)输出****,然后输出#;执行func(4)输出*****,然后输出#。
9.在三级模式之间引入两层映像,其主要功能之一是( )。(A)
A. 使数据与程序具有较高的独立性
B. 使系统具有较高的通道能力
C. 保持数据与程序的一致性
D. 提高存储空间的利用率
解析:数据库管理系统在数据库的三级模式之间提供了两层映像,保证了数据库中数据的较高的逻辑独立性和物理独立性。
10.对关系S和R进行集合运算,结果中既包含S中的所有元组也包含R中的所有元组,这样的集合运算称为( )。(A)
A. 并运算
B. 交运算
C. 差运算
D. 积运算
解析:关系的并运算是指由结构相同的两个关系合并,形成一个新的关系,新关系中包含两个关系中的所有元组。
11.有以下程序
#include<stdio.h>
int fun(int a,int b)
{if(b==0) return a;
else return(fun(–a,–b));
}
main()
{printf(’’%dkn’’,fun(4,2));}
程序的运行结果是( )。(B)
A. 1
B. 2
C. 3
D. 4
解析:由程序可知,函数fun(int a,int b)是一个递归函数。所以当主函数中调用“fun(4,2)”时,其执行过程如下“fun(4,2)->fun(3,1)->fun(2,0)”,其返回值为2。所以正确答案为选项B。
12.下列二叉树描述中,正确的是( )。(B)
A. 任何一棵二叉树必须有一个度为2的结点
B. 二叉树的度可以小于2
C. 非空二叉树有0个或1个根结点
D. 至少有2个根结点
解析:二叉树是由n≥0个结
本文档预览:3600字符,共14752字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载