长沙理工大学考试试卷
??????????????????????????????????????????
试卷编号 7 拟题教研室(或教师)签名 教研室主任签名
??????????????????????????????????????????
课程名称(含档次) C++程序设计 课程代号 0806005
专 业 计算机科学与技术 层次(本、专) 本 考试方式(开、闭卷) 闭
一、填空题(15分,每空1分)
1、C++ 语言中规定的返回值的类型是由 所决定的。在定义该函数时所指定的函数类型
2、在类的定义体外定义成员函数时,需要在函数名前加上 ,而在域外使用成员函数时,需要在成员名外加上 的名字。
3、在C++中,可以把具有相同内部存储结构和相同操作的对象看成属于同一类。在指定一个类后,往往把属于这个类的对象称为类的 。从语言角度来说,类是一种数据类型,而 是具有这种类型的变量。
4、要在类的对象上使用运算符,除了运算符______和______以外,其他的运算符都必须被重载。
5、有如下定义语句: MyClass p[10];则系统自动调用该类构造函数______次。当类对象数组p离开它的作用域时,系统自动调用该类析构函数______次。
6、对类中的成员函数和属性的访问是通过______、______和______这3个关键字来控制的。
7、______运算符对指定类型对象动态分配内存并返回该类型的指针。
8、使用传址调用方式时,调用函数的实参使用地址值,被调用函数的形参使用 。 9、利用继承能够实现_________。这种实现缩短了程序的开发时间,促使开发人员复用已经测试和调试好的高质量软件。
二、选择题(20分,每题2分)
1、下面语句彼此等价的是_________。
A)!(a<10)&&!(a>0)___ !((a<10)&&(a>0)) B)!(a= =b)______ (a>b)&&(ab)______ a
D)!((a>10)||(a<0))___ !(a<=10)&&!(a>=0)
2指针运算的描述错误的是_________。 A)在一定条件下,两个指针可以相加
B)在一定条件下,两个指针可以进行逻辑判断 C)在一定条件下,指针可以为空值
D)在一定条件下,两个指针可以相互赋值
3、一个函数带有参数说明时,则参数的默认值应该在_________中给出。
A) 函数定义 B)函数声明 C)函数定义或声明 D)函数调用 4、关于类的说法错误的是_________。
第 1 页 共 6 页
C++程序设计试卷
A) 对象是类的一个实例
B) 类是一种用户自定义的数据类型
C) 在类中,如果不作特别说明,所有的成员函数均为公有类型 D) 在类中,如果不作特别说明,所有的数据均为私有类型 5、两个变量定义不能同名,是因为_________。
A)这两个变量定义在同一文件中 B)这两个变量定义在同一作用域中 C)一个定义在main函数中,一个定义在子函数中 D)以上说法均不正确 6、在C++语言中函数返回值的类型是由_________决定的。
A) 定义该函数时所指定的函数类型 B)return语句中的表达式类型 C) 调用该函数时系统临时 D)调用该函数时的主调函数类型 7、下面是类MyClass的定义,对定义中语句描述正确的是_________。 Class MyClass {
public:
void MyClass(int a){X=a;}___ //① int f(int a,int b)______//② { X=a; Y=b; }
int f(int a,int b,int c=O)___ //③ {
X=a; Y=b; Z=c; }
static void g(){X=10;}___ //④ private: int X,Y,Z; };
A) 语句①是类MyClass的构造函数定义 B) 语句②和语句③实现类成员函数的重载 C) 语句④实现对类成员变量X的更新操作 D) 语句①、②、③和④都不正确 8、有关构造函数的说法不正确的是 。 A)构造函数的函数名与类名相同 B)构造函数在说明类变量时自动执行 C)构造函数无任何函数类型 D)构造函数有且只有一个
9、在多继承的构造函数定义中,几个基类的构造函数之间用 分隔。 A) .: B) .; C) ., D).::
10、下列关于条件语句的描述中,________是错误的。
A)if语句中只有一个else子句 B) if语句中可以有多个else if子句
C) )if语句中if体内不能是switch语句 D)if语句中if体内可以是循环语句 三、阅读程序填空(15分,第2小题最后一空1分,其它空2分)
1、下列程序通过把类Distance定义为类Point的友元类来实现计算两点之间距离的功
第 2 页 共 6 页
C++程序设计试卷
能。请完成该程序。 #include iostream.h> #include
public:
____________ ;
Point (____________ ) { X=a; Y=b; }
void Print() {
cout<<\cout<<\ }
private: float X,Y; };
class Distance {
public:
float Dis(Point &p,Point &q); };
f1oat Distance::Dis(Point &p,Point &q) {
float result; ____________ ;
cout< void main() { Point p(10,10),q(20,20); Distance d; d.Dis(p,q); } 2、下面的程序实现从键盘输入一个偶数,输出该偶数写成的两个素数之和。 #include #include 第 3 页 共 6 页