备考计算机二级 C++ 程序设计考试,选择题是不容忽视的重要部分。
今天为大家带来 10 道选择题,聚焦类与对象的核心概念,助力夯实面向对象编程基础。
1、若已定义过类 A 和 B,并且定义类 C 如下:
class C{
public:
int val;
A aObj;
B bObj;
C *cObj;
C():cObj(0), val(0) {}
};
若要建立类 C 的对象 object,则类成员 val、aObj、bObj 和 cObj 中最后被初始化的是( )
A. aObj
B. bObj
C. val
D. cObj
答案:D
分析:类成员初始化顺序与声明顺序一致,而非初始化列表顺序。声明顺序为 val、aObj、bObj、cObj,故最后初始化 cObj,故选 D。
2、若一个非成员函数要直接访问类的私有成员,则需在类中声明该函数,且使用关键字( )
A. friend
B. const
C. static
D. inline
答案:A
分析:友元函数(friend)可以访问类的私有成员,故选 A。
3、下列关于类成员的叙述中,错误的是( )
A. 友元函数不是类的成员函数
B. 类的静态数据成员可以被该类对象共享
C. 常数据成员必须在类体中进行初始化
D. 类成员的默认访问权限是私有的
答案:C
分析:常数据成员(const)必须在构造函数的初始化列表中初始化,不能在类体中,C 选项错误;A、B、D 均正确,故选 C。
4、下列关于类的静态成员的叙述中,错误的是( )
A. 静态数据成员必须在类外进行初始化
B. 静态成员函数可以直接访问类中的所有成员,无需对象名
C. 静态成员属于类,为该类所有对象共享
D. 即使没有定义任何对象,也可以使用该类的公有静态成员
答案:B
分析:静态成员函数不能直接访问非静态成员,需通过对象名,B 选项错误;A、C、D 均正确,故选 B。
5、下列关于 this 指针的叙述中,错误的是( )
A. this 指针不需要显式定义
B. 在构造函数中不能使用 this 指针
C. this 指针存储着对象的地址
D. this 指针只能在类的非静态成员函数中使用
答案:B
分析:构造函数中可以使用 this 指针(如返回 * this),B 选项错误;A、C、D 均正确,故选 B。
6、类的析构函数的作用是( )
A. 一般成员函数的初始化
B. 类的初始化
C. 对象的初始化
D. 释放对象所占用的资源
答案:D
分析:析构函数在对象销毁时调用,用于释放资源,故选 D。
7、下列关于类的构造函数的叙述中,正确的是( )
A. 构造函数的返回类型只能是 void
B. 构造函数的参数个数必须与类的成员个数相同
C. 构造函数的主要作用是完成对类的对象的初始化
D. 构造函数必须被声明为 public
答案:C
分析:构造函数无返回类型,参数个数可自定义,可声明为 private(如单例模式),其核心作用是初始化对象,故选 C。
8、在类定义中,用于说明成员的访问权限的关键字是( )
A. class、friend、private
B. public、private、protected
C. template、const、static
D. public、friend、template
答案:B
分析:类成员的访问权限由 public、private、protected 控制,故选 B。
9、下列关于常成员函数的叙述中,正确的是( )
A. 常成员函数只能修改常数据成员
B. 常成员函数不能修改任何数据成员
C. 常成员函数可以调用其他非 const 成员函数
D. 常成员函数的声明必须加 const,定义时可以不加
答案:B
分析:常成员函数(const)不能修改任何数据成员,不能调用非 const 成员函数,声明和定义都必须加 const,故选 B。
10、有如下类定义:
class XB {
int a;
public:
static int b;
XB(int aa):a(aa) { b++; }
XB() { b--; }
int get() { return a; }
};
int XB::b=0;
执行 int n=d.get ()+XB (3).get (); 后,XB::b 的值是( )
A. 0
B. 1
C. 2
D. 3
答案:B
分析:创建 d(调用带参构造,b=1),临时对象 XB (3)(b=2),临时对象销毁(调用析构,b=1),故选 B。
希望这 10 道题能帮助大家对类与对象基础知识点有更深入的理解和掌握。如果想要获取完整版 PDF(含二级更多题目题库)
计算机二级C++选择题解析Day4


被折叠的 条评论
为什么被折叠?



