国家二级(C++)机试模拟试卷272
选择题
1.由于常对象不能被更新,因此( )。(A)
A. 通过常对象只能调用它的常成员函数
B. 通过常对象只能调用静态成员函数
C. 常对象的成员都是常成员
D. 通过常对象可以调用任何不改变对象值的成员函数
解析:本题考查常对象的基本知识,常对象只能调用它的常成员函数,而不能调用非const函数,常对象的成员函数不一定都是常成员函数,只需保证其数据成员是常数据成员即可。所以本题选A。
2.有如下类定义:
class AA
{
int a;
public:
int getRef()const{return &a;}//①
int getValue()const{return a;}//②
void set(int n)const{a=n;}//③
friend void show(AA aa)const{cout<<a;}//④
};
其中四个函数的定义中正确的是( )。(B)
A. ①
B. ②
C. ③
D. ④
解析:本题考查常成员函数,常成员函数只能引用本类中的数据成员,而不能修改它。所以本题答案为B。
3.有如下类定义:
class Point
{
int XX,YY;
public:
Point():xx(0),yy(0){}
Point(int X,int y=0):xx(x),yy(y){}
};
若执行语句
Point a(2),b[3],*c[4];
则Point类的构造函数被调用的次数是( )。(C)
A. 2次
B. 3次
C. 4次
D. 5次
解析:本题考查默认构造函数和带参数的构造函数,题目中定义一个对象a(2)以及对象数组b[3],共执行4次构造函数,对象指针不调用构造函数。所以本题答案为C。
4.关于函数重载,下列叙述中错误的是( )。(C)
A. 重载函数的函数名必须相同
B. 重载函数必须在参数个数或类型上有所不同
C. 重载函数的返回值类型必须相同
D. 重载函数的函数体可以有所不同
解析:所谓函数重载是指同一函数名可以对应多个函数实现。进行函数重载时,要求同名函数在参数个数上不同,或者参数类型上不同。但函数的返回类型不能作为判断重载的依据。
5.有如下程序:
#include
using namespace std;
class Test{
public:
Test() {n+=2;}
~Test() {n-=3;}
static int getNum(){retum n;}
private:
static int n:
};
int Test::n=1;
int main()
{Test*p=new Test;
delete p;
cout<<\\(A)
A. n=0
B. n=1
C. n=2
D. n=3
解析:语句Test*p=new Test;会调用类的构造函数1\\
6.下列运算符函数中肯定不属于类FunNumber的成员函数的是( )。(D)
A. int operator-(FunNumber);
B. FunNumber operator-();
C. FunNumber operator-(int);
D. int operator-(FunNumber,FunNumber);
解析:本题考查运算符重载的一些规则:①一般情况下,单目运算符最好重载为类的成员函数,双目运算符则最好重载为类的友元函数;②双目运算符=、()、[]、->不能重载为类的友元函数;③类型转换函数只能定义为一个类的成员函数,而不能定义为类的友元函数;④若一个运算符的操作需要修改对象的状态,选择重载为成员函数较好;⑤若运算符所需的操作数(尤其是第一个操作数)希望有隐式类型转换,则只能选用友元函数;⑥当运算符函数是一个成员函数时,最左边的操作数(或者只有最左边的操作数)必须是运算符类的一个类对象(或者是对该类对象的引用);如果左边的操作数必须是一个不同类的对象,或者是一个内部类型的对象,该运算符函数必须作为一个友元函数来实现。所以答案为D。
7.若有下面的函数调用:
fun(a+b,3,max(n—1,b))
则fun的实参个数是( )。(A)
A. 3
B. 4
C. 5
D. 6
解析:本题考查函数实参个数的基础知识,根据实参的概念,(a+b)、3、max(n-1,b)分别为其中的3个实参。故答案为A。
8.下面是关于派生类声明的开始部分,其中正确的是( )。(D)
A. class virtual B:public A
B. virtual class B:public A
C. class B:public A virtual
D. class B:virtual public A
解析:声明派生类的一般形式为:class派生类名:[继承方式]基类名。其中继承方式包括:public,private,protected,而virtual为C++中的关键字。虚函数的使用方法是在基类用virtual声明成员函数为虚函数。
9.有如下程序:
#include
using namespaee std;
class Pair{
int m,n;
public:
Pair(int j,int k):m(j),n(k){}
int get(){return m;}
int get()const{return m+n;}
};
int main(){
Pair a(3,5);
const Pair b(3,5);
cout<<a.get()<<b.get();
return 0;
}
执行这个程序的输出结果是( )。(B)
A. 33
B. 38
C. 83
D. 88
解析:本题考查常对象、常成员函数及构造函数。常对象只能调用常成员函数,所以本题中,对象a为普通对象,执行a.get()后,会执行默认构造函数,输出3;对象b为常对象,执行b.get()后,会执行常构造函数,输出8。
10.耦合性和内聚性是对模块独立性度量的两个标准。下列叙述中正确的是( )。(B)
A. 提高耦合性降低内聚性有利于提高模块的独立性
B. 降低耦合性提
本文档预览:3600字符,共18518字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载