东南大学C++期末考试:选择与填空题详解

需积分: 0 4 下载量 16 浏览量 更新于2024-08-03 1 收藏 49KB DOC 举报
东南大学C++下学期期末考试笔试卷是一份针对C++语言基础知识和概念的测试,旨在考核学生的理论理解和实践应用能力。试卷主要分为两部分:选择题和填空题。 一、选择题 1. 题目考查数组的索引理解,数组`b`的第二行第二个元素是`{{4,7,9,10}}`中的第三个元素,因此`b[2][2]`的值是`9`,答案选D。 2. `this`指针是C++中的重要概念,它指向当前对象实例,选项C正确,即`this`指针始终指向调用其成员函数的对象。 3. 动态内存分配使用`new`运算符,如果分配失败,会返回`NULL`或`0`,表示失败,答案选B。 4. 根据描述,栈是一种遵循先进后出(LIFO)原则的数据结构,所以答案选C。 5. 指针运算中,空指针可以赋值给其他指针(A正确),指针可以进行相等和不等比较(B正确),且可以通过加上整数移动指针(C正确)。但是,两个指针一般不能直接相加,它们之间的运算需要额外的处理,D错误。 6. 要实现深复制,需要自定义复制构造函数和复制赋值操作符,因为它们负责创建新的对象副本,选项A的构造函数不是必需的。 7. 访问数组元素时,合法的写法包括通过数组名或指针间接访问,`*++pfib`和`(pfib+1)`均正确,B选项的写法错误。 8. 在继承关系中,私有继承的子类只能访问父类的公有成员,以及受保护成员(仅当子类和该受保护成员在同一个作用域内)。因此,Student类可以访问`name`和`GetID`,答案选C。 9. 多态性通过虚函数实现,派生类的函数与基类的虚函数同名、参数表和返回类型相同,且必须用`virtual`关键字声明为虚函数,D项不是必要条件。 10. 代码分析:首先,两次调用`new int[10]`分配了两次内存,第一次分配的内存未释放,存在内存泄漏(B正确)。第二次`delete[] p;`释放了第一次分配的内存,但之后`p`被设为`NULL`,不会导致悬空指针(C错误)。最后,第二次内存释放并没有重复释放同一空间(D错误)。 二、填空题 这部分题目要求学生对C++语言的语法、数据结构、内存管理等有深入理解,具体空格需要填充的内容包括但不限于数组初始化、指针运算、数据类型、内存分配和释放的正确语法等。 这份考试卷着重考察了学生对C++语言基础的掌握,包括数组、指针、内存管理、继承、多态和基本数据结构等知识点。解答这些题目需要扎实的理论知识和实践经验。
2023-02-27 上传