清华大学计算机系 C++期末考试题及答案
一、 填空题(25 小题,共 50 分)
(以下每小题 1 分,共 10 分)
. 在 中,函数的参数有两种传递方式,它们是值传递和 地址或指针
或引用传递 。
. 当一个成员函数被调用时,该成员函数的 指针 指向调用它的对象。
. 在基类和派生类中,派生类可以定义其基类中不具备的数据和操作。对
两个有相同名字的数据成员进行访问时,如果没有 作用域分隔符限定时 ,对此
数据成员的访问将出现歧义。
. 拷贝构造函数使用 引用 作为参数初始化创建中的对象。
. 在公有继承的情况下,基类数据成员在派生类中的访问权限 保持不变 。
. 描述命题 小于 或小于 的表达式为 。
. 用 申请某一个类的动态对象数组时,在该类中必须能够匹配到 没
有形参的或缺省参数 构造函数,否则应用程序会产生一个编译错误。
. 静态数据成员在类外进行初始化,且静态数据成员的一个拷贝被类的所
有对象 共享 。
. 为了避免可能出现的歧义,对 语句配对规则规定为:
总是与 与最近的 配对。
. 设 !",表达式( )#!$$ !的值是 。
(以下每小题 2 分,共 20 分)
. 面向对象的程序设计有四大特征,它们是抽象、封装、 继承 、 多态 。
. 在 %&中,定义重载函数时,应至少使重载函数的参数个数或
参数类型 不同 ;在基类和派生类中,成员函数的覆盖是指 派生类成员函数与
在基类被覆盖的成员函数名、参数个数、参数类型和返回值类型均相同 。
. 构造函数与析构函数除功能不同外,在定义形式上,它们的区别还包括
构造函数名与类名相同,而析构函数名是在类名前加一个'、 析构函数没有参
数 、 析构函数可以定义为虚函数 。
. 动态联编要满足两个条件,它们是 被调用的成员函数是虚函数 、 用指
针或引用调用虚函数 。
. 在 类中,有一种不能定义对象的类,这样的类只能被继承,称之
为 抽象类 ,定义该类至少具有一个 纯虚函数 。
. 在 类中,!( 关键字可以修饰对象和成员函数,!( 对象不
能 被修改 ,!( 成员函数不能 修改类数据成员 。
. 举出 中两种用户自定义的数据类型: 类 、 枚举 。
. 中没有字符串类型,字符串是通过 字符数组 来表示的,每一个字
符串都有一个结尾字符 )。
. 中没有输入输出语句,输入输出是通过 输入输出库 实现的, 写
出一条打印整型变量 的输出语句:!(&"
. 举出 中两种代码复用的方式: 继承 、 复用 。
(以下每小题 4 分,共 20 分)
. 下面程序的运行结果是 。
*!&++(,#