国家二级C++机试(选择题)模拟试卷460
选择题
1.下列叙述中正确的是( )。(B)
A. 有一个以上根结点的数据结构不一定是非线性结构
B. 只有一个根结点的数据结构不一定是线性结构
C. 循环链表是非线性结构
D. 双向链表是非线性结构
解析:在数据结构中,树这类的的数据结构只有一个根结点,但它不是线性结构。
2.一棵二叉树中共有70个叶子结点与80个度为1的结点,则该二叉树中的总结点数为( )。(A)
A. 219
B. 221
C. 229
D. 231
解析:在二叉树中,叶子结点个数为n0,则度为2的结点数n2=n0-1。本题中叶子结点的个数为70,所以度为2的结点个数为69,因而总结点数=叶子结点数+度为1的结点数+度为2的结点数=70+80+69=219。
3.对长度为n的线性表进行顺序查找,在最坏情况下所需要的比较次数为( )。(C)
A. log 2 n
B. n/2
C. n
D. n+1
解析:在进行顺序查找过程中,如果被查的元素是线性表中的最后一个元素,或者被查元素根本不在线性表中,则为了查找这个元素需要与线性表中的所有元素进行比较,这是顺序查找的最坏情况,需要比较的次数为n次。
4.若有下面的函数调用:
fun(a+b,3,max(n-1,b))
则fun的实参个数是( )。(A)
A. 3
B. 4
C. 5
D. 6
解析:此题考查的是函数的调用。C++中函数调用的一般形式为:函数名(实参表),其中实参表是用逗号分隔的一系列表达式。因此,本题中fun()函数的实参表由a+b、3和max(n-1,b)组成。
5.数据结构中,与所使用的计算机无关的是数据的( )。(C)
A. 存储结构
B. 物理结构
C. 逻辑结构
D. 线性结构
解析:数据的逻辑结构反映的是数据元素之间的逻辑关系,与使用的计算机无关。
6.为了提高函数调用的实际运行速度,可以将较简单的函数定义为( )。(A)
A. 内联函数
B. 重载函数
C. 递归函数
D. 函数模板
解析:c++引入内联函数的原因是用它来取代c中的预处理宏函数。两者的区别在于,宏函数是由预处理器对宏进行替换,而内联函数是通过编译器来实现的。内联函数在调用时像宏函数一样展开,所以它没有一般函数的参数压栈和退栈操作,减少了调用开销,因此,内联函数比普通函数有更高的执行效率。
7.下列对于软件测试的描述中正确的是( )。(C)
A. 软件测试的目的是证明程序是否正确
B. 软件测试的目的是使程序运行结果正确
C. 软件测试的目的是尽可能多地发现程序中的错误
D. 软件测试的目的是使程序符合结构化原则
解析:软件测试是为了发现错误而执行程序的过程。一个好的测试用例是指很可能找到迄今为止尚未发现的错误的用例;一个成功的测试是发现了至今尚未发现的错误的测试。软件测试的目的要以查找错误为中心,而不是为了演示软件的正确功能。
8.有三个关系R、S和T如下:
(D)
A. 笛卡尔积
B. 交
C. 并
D. 自然连接
解析:在实际应用中,最常用的连接是一个叫自然连接的特例。它满足下面的条件:两关系间有公共域;通过公共域的相等值进行连接。通过观察三个关系R,S,T的结果可知关系T是由关系R和S进行自然连接得到的。
9.若AA为一个类,a为该类的非静态数据成员,t在该类的一个成员函数定义中访问a时,其书写格式为( )。
A
解析:类从的成员函数直接引用类从的非静态数据成员。
10.有如下类定义:
class Sample{
public;
Sample(int x):ref(x){} //①
private:
Sample():ref(0){} //②
static int val=5; //③
const int ref; //④
};
上述程序段中,错误的语句是( )。(C)
A. ①
B. ②
C. ③
D. ④
解析:静态整型数据不能定义为类的数据成员。
11.若有下面的函数调用:
fun(a+b,3,max(n-1,b))
则fun的实参个数是( )。(A)
A. 3
B. 4
C. 5
D. 6
解析:此题考查的是函数的调用。C++中函数调用的一般形式为:函数名(实参表),其中实参表是用逗号分隔的一系列表达式。因此,本题中fun()函数的实参表由a+b、3和max(n-1,b)组成。
12.有如下类定义:
c1ass Samp1e{
public;
Samp1e(int x): ref(x){} // ①
private:
Samp1e():ref(0){}// ②
static int val=5;// ③
const int ref;// ④
};
上述程序段中,错误的语句是( )。(C)
A. ①
B. ②
C. ③
D. ④
解析:静态整型数据不能定义为类的数据成员。
13.有如下两个类定义:
class AA{};
class BB{
AAvl,*v2;
BB v3;
int*v4;
};
其中有一个成员变量的定义是错误的,这个变量是( )。(C)
A. v1
B. v2
C. v3
D. v4
解析:在定义类的数据成员时,类中的数据成员可以是任意类型,包括整型、浮点型、字符型、数组、指针和引用等,也可以是对象。但是要注意,只有另外一个类的对象,才可以作为该类的成员,即作为类的成员对象存在。自身类的对象是不可以作为自身类的成员存在,但自身类的指针可以。对于本题,在定义类BB时,不能包括其对象v3。
14.运算符重载时不需要保持的性质是( )。(B)
A. 操作数个数
B. 操作数类型
C. 优先级
D. 结合性
解析:运算符重载应该体现为原有运算符的功能在新的数据类型上的延伸。重载的运算符保持原有运算符的操作个数、优先级和结合性三个最基本的特征。
15.如果表达式a>=b中的“>=”是作为非成员函数重载的运算符,则可以等效地表示
本文档预览:3600字符,共4602字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载