国家二级(C++)机试模拟试卷301
选择题
1.友元类的所有成员函数都是另一个类的( )。(B)
A. 成员函数
B. 友元函数
C. 非成员函数
D. 非友元函数
解析:C++语言中友元类中的函数都是另一个类的友元函数。
2.下列关于基类和派生类关系的叙述中,正确的是( )。(D)
A. 每个类最多只能有一个直接基类
B. 派生类中的成员可以访问基类中的任何成员
C. 基类的构造函数必须在派生类的构造函数体中调用
D. 派生类除了继承基类的成员,还可以定义新的成员
解析:本题考查派生类与基类的关系,派生类可以有多个直接基类,而派生类有三种继承方式,在私有继承中,派生类的成员并不能访问基类的成员。如果基类中定义了缺省构造函数或根本没有定义任何一个构造函数时,在派生类构造函数的定义中可以省略对基类构造函数的调用。所以本题答案为D。
3.下列叙述中,不属于软件需求规格说明书的作用的是( )。(D)
A. 便于用户,开发人员进行理解和交流
B. 反映出用户问题的结构,可以作为软件开发工作的基础和依据
C. 作为确认测试和验收的依据
D. 便于开发人员进行需求分析
解析:软件需求规格说明书有以下几个方面的作用:
①便于用户、开发人员进行理解和交流;
②反映出用户问题的结构,可以作为软件开发工作的基础和依据;
③作为确认测试和验收的依据。
4.有如下程序:
#include
using namespace std;
class TestClass
{
intn;
public:
TestClass(int k):n(k){}
int get(){return n;)
int getoconst{return n+1;}
};
int main()
{
TestClass p(5);
const TestClass q(6);
cout<<p.get()(<q.get();
return 0:
}
执行后的输出结果是( )。(B)
A. 55
B. 57
C. 75
D. 77
解析:C++中对常对象的成员函数调用,将自动调用其常成员函数,程序中调用原型为\\
5.假定TestClass为一个类,则该类的拷贝构造函数的声明语句为( )。(D)
A. TestClass(TestClass X)
B. TestClass&(TestClass x)
C. TestClass(TestClass木x)
D. TestClass(TestClass&x)
解析:C++中的拷贝构造函数是用一个已知的对象初始化一个正在创建的同类对缘。拷叭构造函数的一般格式如下:(类名)::(类名)(const,(类名)&<引用对象名));其中const可以省略。
6.耦合性和内聚性是对模块独立性度量的两个标准。下列叙述中正确的是( )。(B)
A. 提高耦合性降低内聚性有利于提高模块的独立性
B. 降低耦合性提高内聚性有利于提高模块的独立性
C. 耦合性是指一个模块内部各个元素间彼此结合的紧密程度
D. 内聚性是指模块间互相连接的紧密程度
解析:模块独立性是指每个模块只完成系统要求的独立的子功能,并且与其他模块的联系最少且接口简单。一般较优秀的软件设计,应尽量做到高内聚、低耦合,即减弱模块之间的耦合性和提高模块内的内聚性,有利于提高模块的独立性,所以A错误,B正确。耦合性是模块间互相连接的紧密程度的度量而内聚性是指一个模块内部各个元素间彼此结合的紧密程度,所以C与D错误。
7.下列程序输出的结果是( )。
#include
fun I(char a,char b){char c;c=a;a=b;b=c;)
fun2(char*a,char b){char c;c=*a;*a=b;b=c;)
fun3(char*a,char*b){char c;c=a;*a:,Ib;*b=c;)
void main()
{
char a,b;
a=’A’;b=’B’;funl(a,b);putchar(a);putchar(b);
a=’A’;b=’B’;fun2(&a,b);putchar(a);putchar(b);
a=’A’:b=’B’;fun3(&a,&b);putchar(a);putchar(b);
putchar(’\n’);
}(B )
A. BABBAB
B. ABBBBA
C. ABBABA
D. ABABBA
解析:由程序中的主函数main入手,分别调用fun1,fun2,fun3函数,得到输出结果。其中,三个函数都是实现两个形参的交换功能,只是参数传递的方式不同,有的是地址,有的是传值。第一个函数中参数采用的是值传递的方式,形参的变化不影响实参。所以调用fun1后,实参a和b并没有交换,仍然是AB。第二个调用中,实参a采用的是地址,即传递的是地址,所以形参a的改变会影响实参a的值,即BB。同理,调用fun3后为BA。
8.下列关于派生类构造函数和析构函数的说法中,错误的是( )。(D)
A. 派生类的构造函数会隐含调用基类的构造函数
B. 如果基类中没有缺省构造函数,那么派生类必须定义构造函数
C. 在建立派生类对象时,先调用基类的构造函数,再调用派生类的构造函数
D. 在销毁派生类对象时,先调用基类的析构函数,再调用派生类的析构函数
解析:在销毁派生类对象时,先调用派生类的析构函数,再调用基类的析构函数。
9.下列运算符中,不能被重载的是( )。(C)
A. &&
B. !=
C. .
D. ++
解析:C++不能重载的运算符只有5个,即“.”、“.*”、“::”、“?:”、“sizeof”,故本题答案为C。
10.有三个关系R,S和T如下:
本文档预览:3600字符,共16541字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载