CC++基础试题试题.pdf
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
【C/C++编程基础知识】 1. C++程序的开发流程通常包括四个步骤:编辑(编写源代码)、编译(将源代码转化为机器语言)、连接(将编译后的目标文件与库文件结合)和运行(执行生成的可执行文件)。因此,正确答案是B. 编辑、编译、连接、运行。 2. 构造函数A(int aa, int bb)会初始化类的成员变量。当执行A x(5, 4)时,首先a会被赋值为5(aa的值),然后--操作使aa变为4,接着b被赋值为a(此时a为5)与bb(4)的乘积,即b=5*4=20。所以,x.a的值为5,x.b的值为20,答案是C. 5 和 20。 3. `this`指针在C++中用于在成员函数内部引用当前对象的地址。它确保每个对象有自己的数据成员,但可以共享处理这些数据的代码,因此选项A正确。其他选项描述的不是`this`指针的基本作用。 4. 多态性(Polymorphism)是指不同对象能够响应相同的消息(函数调用)。这通常通过虚函数实现,允许使用基类指针或引用调用派生类重写的方法。所以正确答案是B. 不同的对象调用相同名称的函数。 5. 对于频繁调用且功能简单的函数,使用内联函数(Inline Function)可以提高效率,因为它避免了函数调用的开销。所以,正确答案是A. 内联函数。 6. 当创建派生类Y的对象时,会先调用基类X的构造函数(X,Y),然后是派生类Y的构造函数(Y)。而销毁对象时,顺序相反,先调用派生类Y的析构函数(Y,X),然后是基类X的析构函数(X,Y)。所以正确答案是A. X,Y;Y,X。 7. 当使用地址作为参数传递时,形参是实参的副本,但它们是同一个对象的引用,因此修改形参会影响实参。所以,D. 实参与形参是同一对象是正确的。 8. 一个类不能包含自身类型的对象作为成员,但可以包含自身类型的指针或引用。因此,B. 自身类对象是不合法的。 9. 以下程序输出第一个数组元素的值(10),第二个元素的值(20),以及第三个元素的值(30)。所以正确答案是B. 10,20,30。 10. 使用私有成员(Private Members)的目的是实现信息隐藏,这是数据封装的一部分,使得类的内部实现细节对外部不可见,从而增强代码的安全性和维护性。正确答案是A. 信息隐藏。 11. 派生类可以是私有派生、保护派生或公有派生,其中公有派生时基类的保护成员仍然保持其访问权限。因此,A. 派生类一般都是公有派生是不正确的。 12. 连接器生成的文件通常是库文件(.lib)或可执行文件(.exe),但题目中问的是扩展名,所以正确答案是C. .lib。 13. 访问类对象的成员函数通常使用`.`操作符,但如果对象是通过指针访问,则使用`->`操作符。所以,正确答案是B. x.a()。 14. 当函数被声明为`virtual`时,这个函数在派生类中也会自动成为虚函数,无论是否再次声明。所以正确答案是A. 都是虚函数。 15. `p->A::func()`会直接调用类A中的func()函数,不考虑p指向的对象类型。所以正确答案是A. 调用类A中的函数func()。 16. 该C++程序会成功编译并执行,因为构造函数Employee()是一个默认构造函数,当创建对象obj时自动调用,输出"BEGIN"。正确答案是A. 程序编译成功,执行后输出字串 BEGIN。 **多选题部分** 1. 正确的static用途描述包括:A. 静态局部变量在函数调用期间保留其值;B. 静态全局变量只在本模块内可见。C选项描述的是全局变量的默认行为,而不是静态变量。D选项不正确,因为静态变量不默认初始化为0。所以正确答案是AB。 2. 正确的关于引用与指针的说法:A. 引用的自增操作与指针不同,指针可以改变地址,而引用只是别名;B. 引用一旦初始化后不能改变,指针可以改变所指对象;D. 引用不占内存,而指针需要内存。C选项错误,因为引用必须在定义时初始化,不能为NULL。正确答案是ABD。 3. 以下关于指针和数组的描述:A. 指针可以动态地改变所指向的地址,但数组名是常量,不能改变;B. 数组名是其首元素的地址,可以用作指针;D. 通过指针可以访问数组元素,但不能通过数组名对指针进行解引用操作。C选项错误,因为不能直接用数组名进行++运算。正确答案是ABD。 以上是C/C++基础试题中涉及的知识点详解。
- 粉丝: 6763
- 资源: 3万+
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助