C++期末考试题一、 填空题(25小题,共50分)
(以下每小题1分,共10分)
1. 在C++中,函数的参数有两种传递方式,它们是值传递和。
2. 当一个成员函数被调用时,该成员函数的 指向调用它的对象。
3. 在基类和派生类中,派生类可以定义其基类中不具备的数据和操作。对两个有相同名字的数据成员进行访问时,如果没有 ,对此数据成员的访问将出现歧义。
4. 拷贝构造函数使用 作为参数初始化创建中的对象。
5. 在公有继承的情况下,基类数据成员在派生类中的访问权限 。
6. 描述命题"A小于B或小于C"的表达式为 。A
7. 用new申请某一个类的动态对象数组时,在该类中必须能够匹配到 构造函数,否则应用程序会产生一个编译错误。
8. 静态数据成员在类外进行初始化,且静态数据成员的一个拷贝被类的所有对象 。
9. 为了避免可能出现的歧义,C++对if…else语句配对规则规定为:else总是与 配对。
10. 设"int a=3,b=4,c=5;",表达式"(a+b)>c&&b==c"的值是 。0
(以下每小题2分,共20分)
11. 面向对象的程序设计有四大特征,它们是抽象、封装、 、 。
12. 在C++中,定义重载函数时,应至少使重载函数的参数个数或参数类型 ;在基类和派生类中,成员函数的覆盖是指 。
13. 构造函数与析构函数除功能不同外,在定义形式上,它们的区别还包括构造函数名与类名相同,而析构函数名是在类名前加一个~、 、 。
14. 动态联编要满足两个条件,它们是 、 。
15. 在C++类中,有一种不能定义对象的类,这样的类只能被继承,称之为 ,定义该类至少具有一个 。
16. 在C++类中,const关键字可以修饰对象和成员函数,const对象不能 ,const成员函数不能 。
17. 举出C++中两种用户自定义的数据类型: 、 。
18. C++中没有字符串类型,字符串是通过 来表示的,每一个字符串都有一个结尾字符 。 \0
19. C++中没有输入输出语句,输入输出是通过 实现的, 写出一条打印整型变量n的输出语句: 。 cout<
20. 举出C++中两种代码复用的方式: 、 。
(以下每小题4分,共20分)
21. 下面程序的运行结果是 。
#include
void main()
{
char a='a',b='j';
float x;
x=(b-a)/('F'-'A');
printf("%d\n",(int)(3.14*x));
}
22. 下面程序的运行结果是 。
#include "iostream.h"
void main( )
{
int i=1;
while (i<=15){
i++;
if (i%3!=2) continue;
else cout <
}
}2 5 8 11 14
23. 下面程序的运行结果是 。
#include "iostream.h"
class test
{
private:
int num;
float fl;
public:
test( );
int getint( ){return num;}
float getfloat( ){return fl;}
~test( );
};
test::test( )
{
cout << "Initalizing default" << endl;
num=0;fl=0.0;
}
test::~test( )
{
cout << "Desdtructor is active" << endl;
}
void main( )
{
test array[2];
cout << array[1].getint( )<< " " << array[1].getfloat( ) <
}
24. 下面程序的运行结果是 。
#include
class A
{
public:
A(){cout<
virtual ~A(){cout<
};
class B:public A
{
public:
B(int i){
cout<
buf=new char[i];