09级数学联办《C++程序设计》期末试卷3
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
关键字,该函数成员被称为虚函数。
姓名:
A. 派生类的对象可以赋值给基类的对象 B. 基类的对象可以赋值给派生类对象 C. 派生类的对象可以初始化基类对象的引用
得分
阅卷人
三、判断对错(每小题 1 分,共 10 分)
班级:
D. 派生类对象的地址可以赋给指向基类对象的指针
19. 下列对派生类的描述中,错误的是( )。
和 b 的类型分别是( )。
A. int 和 int
B. int *和 int
C. int 和 int *
D. int *和 int *
5.在类外定义成员函数时,需要在函数名前加( )。
A. 对象名 B. 类名和作用域运算符 C. 类名
D. 作用域运算符
6.重载函数在调用时选择的依据中,( )是错误的。
成面向对象。
A. 增加了一些新的运算符
B. 允许函数重载,并允许设置默认参数
C. 规定函数说明必须用原型
D. 引进了类和对象的概念
3.在 C++中,用( )代替 C 语言#define 来定义常量。
A. extern
B. static
C. const
D. virtual
4. 已知一个运行正常的程序中有下面两个语句:int *p1,*p2=&a;p1=b;由此可知,变量 a
A. void print( ) const;
B.const void print( );
字
。
C. void const print( );
D.void print(const);
9.多态从实现的角度来划分,有编译时的多态和
时的多态。
18.下列关于赋值兼容规则的叙述中不正确的是( )。
10.在基类的声明中,函数成员的前面加上
------------------------------------------------------------------------------------------------------------------------------------------
A. cpp B. exe C. obj
A. 参数个数 B. 参数的类型 C. 函数的名字 D. 函数的类型
7.关于 new 运算符的下列描述中,( )是错的。
A. 它可以用来动态创建对象和对象数组。
B. 使用它创建的对象或对象数组可以使用运算符 delete 删除。
10.下列关于动态联编的描述中,错误的是( )。
A. 动态联编是以虚函数为基础的
第 3页( 共 5 页)
3. 执行后输出结果是: 4. 执行后输出结果是:
系(院):
专业:
班级:
姓名:
学号:
------------------------------------------------------------------------------------------------------------------------------------------
A. 对象数组的下标是从0开始的
ቤተ መጻሕፍቲ ባይዱ
B. 对象数组的数组名是一个常量指针
C. 对象数组只能赋初值,而不能被赋值 D. 对象数组的每个元素是同一类的对象
15.C++源文件的缺省扩展名为( )。
班级:
专业:
系(院):
第 1页( 共 5 页)
---------------------------------------装-----------------------------订---------------------------线----------------------------------
()
2. 在继承和派生过程中,构造函数和析构函数是不能被继承的。
()
3. cout 可以用来输出,如果要输出三行内容需要使用三个 cout 语句。
()
4. 友元关系不具有传递性。
()
5. 静态成员变量是整个类的所有对象共用的。
()
6. C++中,只允许单继承,不允许多继承。
()
7. 在 C++中,必须在函数体开始位置集中对所需要的变量进行声明,其它位置
---------------------------------------装-----------------------------订---------------------------线----------------------------------
------------------------------------------------------------------------------------------------------------------------------------------
}; void main() { example xx(5); const example yy(10); xx.print(); yy.print(); }
4. 有如下程序 #include<iostream.h> class shape { protected: int x,y; public: void setvalue(int d,int w=0) { x=d;y=w;} virtual void disp()=0; };
cout<<"i="<<i<<" j="<<j<<"\n";
k=30;
cout<<"i="<<i<<" j="<<j<<" k="<<k<<"\n";
} 2. 有如下程序
#include<iostream.h>
void main() { int i=1;
2. 执行后输出结果是:
while(i<10)
D. link
2010——2011 学年第一学期《C++程序设计》期末考试试卷 4.当用类的一个对象去初始化该类的另一个对象时,需要调用
函数。
16.以下不属于类的成员函数的是( )。
5.在用 class 定义一个类时,数据成员和成员函数的默认访问权限是
。
A.构造函数
B.析构函数
C.友员函数
D.虚函数
B. 动态联编是在运行时确定所调用的函数代码的
C. 动态联编调用函数操作是指向对象的指针或对象引用
D. 动态联编是在编译时确定操作函数的
11.下面对于友元函数描述正确的是( )。
A. 友元函数的实现必须在类的内部定义 B. 友元函数是类的成员函数
C. 友员函数破坏了类的封装性和隐藏性 D. 友元函数不能访问类的私有成员
得分
阅卷人
四、读程序写结果(每题 5 分,共 20 分)
3. 有如下程序 #include<iostream.h> class example
1. 有如下程序 #include <iostream.h>
1. 执行后输出结果是:
void main()
{
int i;
int &j=i;
int &k=i;
i=20;
---------------------------------------装-----------------------------订---------------------------线----------------------------------
2010——2011 学年第一学期《C++程序设计》期末考试试卷
6.面向对象的程序设计有四大特征它们是封装、
、
和抽象。
学号:
17.已知:print( )函数是一个类的常成员函数,它无返回值,在类中的下列声明( )是正 7.若要把一个类 A 定义为一个类 B 的友元类,则应在 B 类中加入一条语句
。
确的。
8.显式声明一个类的成员函数为内联函数,应在类外定义成员函数时加上关键
---------------------------------------装-----------------------------订---------------------------线----------------------------------
class square:public shape{
------------------------------------------------------------------------------------------------------------------------
C. 析构函数没有函数类型 D. 析构函数的作用是在对象被撤销时收回其内存空间
指向调用它的对象。
10. 所谓基类和派生类对象的赋值兼容规则是指在需要基类对象的任何地方,都可以使用公
系(院):
2. 在 C++中用 const 修饰的数据成员或者是引用型的数据成员不允许在构造函数中用赋值
用派生类的对象来代替。
()
语句直接赋值,只能用
对其进行初始化。
3.静态数据成员的一个拷贝被类的所有对象
得分
阅卷人
一、选择题(每小题 1 分,共 20 分)
9.构造函数是在( )时被执行。 A. 创建对象 B. 程序编译
C. 创建类
D. 程序装入内存
1.在 C++程序中,封装是通过( )来实现的。
A. 函数 B. 过程
C. 结构 D. 类
2.C++对 C 语言作了很多改进,下列描述中( )使得 C 语言发生了质变,即从面向过程变
12.抽象类指的是( )。
A. 没有任何成员的类
B. 只有成员函数没有数据成员的类
C. 有虚函数的类
D. 有纯虚函数的类
13.多重继承时,如果派生类的两个父类有一个共同的虚基类,那么虚基类的初始化参数由
( )的构造函数来传递。
A. 第一个父类
B. 第二个父类
C. 派生类
D. 以上都不是
14.下列关于对象数组的描述中,( )是错的。
A. 一个派生类可以作为另一个派生类的基类
B. 派生类至少有一个基类
C. 派生类的成员除了它自己的成员外,还包括了它的基类成员
D. 派生类中继承的基类成员的访问权限到派生类中不变
20.实现运行时多态性要使用(
)。
A.重载函数
B.构造函数
C.析构函数
D.虚函数
1. 语句:const int *p;声明 p 是指向整型常量的指针。
{ public:
{ shape *ptr;
student(char *na,float s);
square s1;
~student();
ptr=&s1;
void show();
ptr->setvalue(10,3);
private:
ptr->disp();
char *name;
}
float score;
不能声明变量。
()
专业:
得分
阅卷人
二、填空题(每小题 2 分,共 20 分)
8. 在 C++的类定义中,构造函数可以重载,但析构函数不能重载。
()
9. 若一个对象是使用 new 运算符动态创建的,在使用 delete 运算符释放它时,
delete 会自动调用析构函数。
()
1.当一个成员函数被调用时,该成员函数的
2010——2011 学年第一学期《C++程序设计》期末考试试卷 myclass::~myclass()
public:
{ ② ;}
void disp()
2. 填写程序使其能正确执行。
{cout<<x*y<<endl;}
#include<iostream.h>
};
class student{
void main()
{ i++;
if(i%3!=2) continue;
else cout<<”i=”<<i<<endl;
}
}
{ private: int a;
public: example(int b){a=b;} void print(){a=a+1;cout<< a<<",";} void print()const{cout<<a<<endl;}
得分
阅卷人
五、程序填空(每空 2 分,共 10 分)
static int count; }; student::student(char *na,float s)
学号:
姓名:
2010——2011 学年第一学期《C++程序设计》期末考试试卷
《C++程序设计》期末考试试卷
题号 一 二 三 四 五 六 总分 得分
核分人
C. 使用它创建对象时要调用构造函数。 D. 使用它创建对象数组时必须指定初始值。 8.下列关于析构函数的描述中不正确的是( )。 A. 析构函数有且只有一个 B. 析构函数可以有参数
。
第 2页( 共 5 页)
系(院):
专业:
班级:
姓名:
学号:
------------------------------------------------------------------------------------------------------------------------------------------