2009C++考题

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

晋中学院期末考试试题(卷)
2009—2010学年第一学期
考试科目:面向对象程序设计(本试题适用于:计算机学院2007本1、本2、本3)
题号一二三四五六总分
分数
评卷人
得分评卷人
一、名词解释(12分)
多态
重载
继承
OOP
得分评卷人
二、选择题(每小题2 分,共20分)
1.下列叙述中正确的是()
A) 一个类可以有多个默认构造函数
B) 带默认参数的构造函数也叫默认构造函数
C) 如果构造函数全部是默认参数,不能再定义重载构造函数
D) 重载构造函数时,参数个数必须不同
2.下列叙述中错误的是()
A) 构造函数可以对私有成员初始化B) 构造函数不具有任何类型
C) 构造函数返回值为void D) 构造函数是在定义对象时自动执行的成员函数
3.P为指向常对象的指针,下列叙述中正确的是()
A) P的值不能改变B) P所指对象的值不能改变
C) 可以把一个普通对象的地址赋给P D) P所指的对象一定是常对象
4.设类的数据成员num是静态成员,下列叙述中错误的是()
A) 可以在构造函数中通过参数对num初始化B) 保存num需在所有对象之外单独开辟空间
C) 即使没有定义类对象,也可以通过类名引用num D) 该类的所有对象的num值都相同
5.设A类是B类的友元,下列叙述中正确的是()
A) A类的所有成员函数都是B类的友元函数B) B类的所有成员函数都是A类的友元函数
C) B类也是A类的友元D) 若C类是A类的友元,则C类也是B类的友元
6.下列叙述中错误的是()
A) 运算符重载实质上是函数的重载B) 重载运算符函数只能为友元函数
C) 重载运算符参数至少应该有一个是类的对象D) 重载运算符不能改变运算对象的个数
7.在一个派生类对象结束其生命周期时()
A)先调用基类的析构函数后调用派生类的析构函数
B)先调用派生类的析构函数后调用基类的析构函数
C)如果基类没有定义析构函数,则只调用派生类的析构函数
D)如果派生类没有定义析构函数,则只调用基类的析构函数
8.派生类的成员函数不能访问基类的()
A)公有成员和保护成员B)私有成员C)公有成员D)保护成员
9.下列叙述中错误的是()
A)以ios::out方式打开的文件必须是存在的
B)要访问外存文件需要包含头文件fstream
C)打开文件是为文件流对象和指定的磁盘文件建立关联,并指定工作方式
D)cin是istream类的对象和cout是ostream类的对象
10.下列叙述中哪个不符合赋值兼容规则()
A)基类的对象可以赋给派生类的对象B)派生类的对象可以赋给基类的对象
C)派生类对象的地址可以赋给指向基类的指针D)派生类对象可以初始化基类的引用
得分评卷人
三、填空题(每空2 分,共28分)
1.面向对象程序设计的4个主要特点是、、、
2.类是对象的抽象,对象是类的
3.静态成员函数只能访问数据成员,因为成员函数中没有指针
4.友元包括和
5.把其他类型的数据转换成类的对象需要用到
6.允许一个类同时继承多个基类,这种行为称为
7.C++中控制格式输出的两种方法是使用流对象的成员函数和使用
8.已知如下程序的输出结果是23, 请将画线处缺失的部分补充完整
#include<iostream>
using namespace std;
class MyClass{
public:
void Print( ) const{cout<<23;} }; int main(){
MyClass *p=new MyClass;
(*p) .Print(); return 0;
}
9.有如下复数类的声明,请补充完整class complex{
double real;
double imag;
public:
complex(double x,double y){
real=x; imag=y;
}
complex operator+(complex c){ // 重载加法运算符“+”
return
complex( real+c.real,imag+c.imag );
}
};
得分评卷人
四、判断题(每题1 分,共10分)
1)类的析构函数不唯一( x )
2)类的inline成员函数只能定义在类体内( )
3)可以在定义类的同时定义对象( v )
4)类就是结构体类型( x )
5)类的成员函数不占用对象的存储空间( v )
6)构造函数中带了默认参数相当于几个重载的构造函数( )
7)对象的赋值是指用已有的对象定义新的对象( v )
8)对象复制时会调用复制构造函数( v )
9)文件流是若干个文件组成的流( )
10)凡是包含纯虚函数的类都是抽象类( )
得分评卷人
五、分析题(10分)
有以下程序结构,请分析所有成员在各类的范围内的访问权限,填入下表中
class A {pubilc:
void f1( ); protected:
void f2( ); private:
int i;
};
class B:private A {public:
void f3( );
int j;
protected:
float k;
private:
int h;
};
class C:protected B
{public:
void f4();
protected:
int m;
private:
int n;
};
int main(){
A a1;
B b1;
C c1;
return 0;
}
f1 f2 i f3 j k h f4 m n A类
B类
C类
得分评卷人六、程序设计(20分)
1.定义一个Document类,有数据成员name,从Document派生出Book类,增加数据成员PageCount。

2.设计一个学生类student,包括学号、姓名和成绩等私有成员和一个公有成员函数getdata,getdata 函数完成对数据的输入。

将100个该类的对象数据存储到文件stud.dat中。

相关文档
最新文档