C++语言程序设计期末考试试题及答案
本资源摘要信息提供了C++语言程序设计期末考试试题及答案,涵盖了面向对象编程、函数重载、递归调用、拷贝构造函数、继承、多态性等C++编程概念。
一、填空题
1. 在类中必须声明成员函数的原型,成员函数的实现部分可以写在类外。该知识点强调了C++语言中的成员函数声明和实现的关系。在类中,成员函数的原型必须被声明,以便在类外实现该函数。
2. 如果需要在被调函数运行期间,改变主调函数中实参变量的值,则函数的形参应该是引用类型或指针类型。这一知识点体现了C++语言中的参数传递机制,引用类型和指针类型的形参可以在函数运行期间改变主调函数中的实参变量的值。
3. 抽象类只能作为基类使用,而不能声明它的对象。这一知识点强调了抽象类的作用域,抽象类只能作为基类被继承,不能单独声明它的对象。
4. 进行函数重载时,被重载的同名函数如果都没有用const修饰,则它们的形参个数或类型必须不同。这一知识点体现了C++语言中的函数重载机制,多个同名函数可以被重载,但它们的形参个数或类型必须不同,以便编译器可以正确地选择函数。
5. 通过一个常对象只能调用它的常成员函数,不能调用其他成员函数。这一知识点强调了C++语言中的常对象和常成员函数的关系,常对象只能调用常成员函数,不能调用其他成员函数。
6. 函数的递归调用是指函数直接或间接地调用自身。这一知识点体现了C++语言中的递归调用机制,函数可以直接或间接地调用自身,以便实现递归算法。
7. 拷贝构造函数的形参必须是本类对象的引用。这一知识点强调了C++语言中的拷贝构造函数,拷贝构造函数的形参必须是本类对象的引用,以便正确地拷贝对象。
二、阅读程序,写出其运行时的输出结果
(1)程序:
该程序定义了三个类:Base、Derived1和Derived2。其中,Base类有一个protected成员变量n和一个public成员函数output();Derived1类继承自Base类,添加了一个private成员变量n和一个public成员函数output();Derived2类继承自Derived1类,添加了一个private成员变量n和一个public成员函数output()。main函数中,创建了一个Base对象和一个Derived2对象,并调用了它们的output()函数。
运行结果:
1
Base Class
2
1
0
Base
(2)程序:
该程序定义了一个类Samp,具有三个成员变量i、j和一个构造函数、一个析构函数和两个成员函数Setij()和GetMuti()。main函数中,创建了一个Samp对象数组,并使用Setij()函数设置数组元素的值,然后使用GetMuti()函数计算每个元素的乘积。
运行结果:
Muti[0] is:0
Muti[1] is:1
Muti[2] is:4
Muti[3] is:9
Muti[4] is:16
Destroying..4
Destroying..3
Destroying..2
Destroying..1
Destroying..0
该资源摘要信息提供了一个完整的C++语言程序设计期末考试试题,涵盖了面向对象编程、函数重载、递归调用、拷贝构造函数、继承、多态性等C++编程概念,为C++语言学习者和考试者提供了一个有价值的参考资源。