c++ 选择题复习目录 大一下学期:点击打开链接
1.若有以下说明,则在类外使用对象objX成员的正确语句是(C )。
class X
{
int a;
void fun1();
public:
void fun2();
};
X objX;
(A)objX.a=0; (B)objX.fun1(); (C)objX.fun2(); (D)X::fun1();
2.若有以下说明,则对n的正确访问语句是(B )。
class Y
{
//… ;
public:
static int n;
};
intY::n;
Y objY;
(A)n=1; (B)Y::n=1; (C)objY::n=1; (D)Y->n
3.若有以下类Z说明,则函数fStatic中访问数据a错误的是(C )。
class Z
{
static int a;
public:
static void fStatic(Z&);
};
intZ::a=0;
Z objZ;
(A)voidZ::fStatic() { objZ.a =1; }
(B)voidZ::fStatic() { a = 1; }
(C)voidZ::fStatic() { this->a= 0; }
(D)voidZ::fStatic() { Z::a = 0; }
4.若有以下类W说明,则函数fConst的正确定义是(A )。
class W
{
int a;
public:
void fConst(int&) const;
};
(A)voidW::fConst( int &k )const { k = a; }
(B)voidW::fConst( int &k )const { k = a++;}
(C)voidW::fConst( int &k )const { cin>> a; }
(D)voidW::fConst( int &k )const { a = k; }
5.若有以下类T说明,则函数fFriend的错误定义是(C )。
class T
{
int i;
friend void fFriend(T&, int );
};
(A)voidfFriend( T &objT, int k ) { objT.i =k; }
(B)voidfFriend( T &objT, int k ) { k =objT.i; }
(C)voidT::fFriend( T &objT, int k ) { k +=objT.i; }
(D)voidfFriend( T &objT, int k ) { objT.i+= k; }
6.在类定义的外部,可以被访问的成员有( C )。
(A)所有类成员 (B)private或protected的类成员
(C)public的类成员 (D)public或private的类成员
7.关于this指针的说法正确的是(C )。
(A)this指针必须显式说明 (B)定义一个类后,this指针就指向该类
(C)成员函数拥有this指针 (D)静态成员函数拥有this指针
8.说明一个类的对象时,系统自动调用( B );撤销对象时,系统自动调用(C )。
(A)成员函数 (B)构造函数 (C)析构函数 (D)友元函数
9.下面对构造函数的不正确描述是( C )。
(A)用户定义的构造函数不是必须的 (B)构造函数可以重载
(C)构造函数可以有参数,也可以有返回值 (D)构造函数可以设置默认参数
10.下面对析构函数的正确描述是(C )。
(A)系统在任何情况下都能正确析构对象 (B)用户必须定义类的析构函数
(C)析构函数没有参数,也没有返回值 (D)析构函数可以设置默认参数
11.关于类的静态成员的不正确描述是(D )。
(A)静态成员不属于对象,是类的共享成员
(B)静态数据成员要在类外定义和初始化
(C)静态成员函数不拥有this指针,需要通过类参数访问对象成员
(D)只有静态成员函数可以操作静态数据成员
12.在下列选项中,(C )不是类的成员函数。
(A)构造函数 (B)析构函数 (C)友元函数 (D)复制构造函数
13.下面对友元的错误描述是(D )。
(A)关键字friend用于声明友元
(B)一个类中的成员函数可以是另一个类的友元
(C)友元函数访问对象的成员不受访问特性影响
(D)友元函数通过this指针访问对象成员
14.若classB中定义了一个classA的类成员Aa,则关于类成员的正确描述是(C )。
(A)在类B的成员函数中可以访问A类的私有数据成员
(B)在类B的成员函数中可以访问A类的保护数据成员
(C)类B的构造函数可以调用类A的构造函数做数据成员初始化
(D)类A的构造函数可以调用类B的构造函数做数据成员初始化