|
学习中心/函授站_
姓 名 学 号
西安电子科技大学网络与继续教育学院
2018学年下学期
《面向对象程序设计(C++)》期末考试试题
(综合大作业)
题号 一 二 三 四 五 总分
题分 10 20 20 20 30
得分
考试说明:
1、大作业于2018年10月18日下发,2018年11月3日交回,此页须在答卷中保留;
2、考试必须独立完成,如发现抄袭、雷同均按零分计;
3、资料须手写完成,要求字迹工整、卷面干净。
一、谋学网(www.mouxue.com)(10分)
1.1(3分)C++提供了哪些循环语句?它们各自的特点是什么?
1.2(3分)派生类与基类之间是什么关系?类与对象之间是什么关系?
1.3(4分)若派生类以private方式从一个基类派生,派生类的对象可以访问基类中的那些成员?派生类的成员函数可以访问基类中的那些成员?
二.谋学网(www.mouxue.com)(20分,每空2分)
2.1纯虚函数是指 的虚函数。包含纯虚函数的类被称为 。
2.2 break语句在循环结构中的功能是 ,continue语句的功能是 。
2.3在C++中,类A的每一个非静态成员函数都有一个隐藏的指针类型的形参 ,它指向当前正在操作的对象,其类型为 。
2.4使用关键字 说明的函数称为内联函数。编译时,源程序中所有对该函数的调用被替换为此函数的 。
2.5 C++语言引入了异常处理机制,用 语句“抛出”异常,然后用相应的语句 _ 捕获被“抛出”的异常,并做出相应的处理。
三、选择题(20分,每题2分)
3.1在下列给字符数组赋值语句中, 是错误的。已知,char s[5]。
A.s[0] = 'm'; B. s[5] = 'n';
C. s[1] = 'a'; D. s[2] = 'b';
3.2下列对结构变量赋值的描述中, 是错误的。
A.结构变量可以使用初始值表对它初始化
B.可以给一个结构变量的各个成员赋值
C.可将任意已知的结构变量名赋给一个结构变量
D.可将一个已知结构变量名赋给相同结构类型的另一个结构变量
3.3下列语句中,没有语法错误的是 。
A. const c = 7;
B. int a[3] = { 0, 1, 2, 3 ,4};
C. int static = 20;
D. int a = 10L, *p = &a; int &r = *p;
3.4若i的初值为1, 能输出1到10的整数。
A. if(i++ < 10) cout << i;
B. do cout << i; while(++i <= 10);
C. while(i++ < 10) cout << i;
D. switch(++i <= 10) cout << i;
3.5虚函数使用关键字 。
A. virtual B. static
C. public D. private
3.6关于静态成员的描述中, 是错误的。。
A. 静态成员可分为静态数据成员和静态成员函数
B. 静态数据成员定义后必须在类体内进行初始化
C. 静态数据成员初始化不使用其构造函数
D. 静态成员函数中不能直接引用非静态成员
3.7 下列关于C++的类的叙述中,错误的是 。
A. 类的构造函数在创建对象时自动执行
B. 析构函数不能够重载
C. 一个类中只能有一个构造函数
D. 在类中,成员缺省的访问权限是private
3.8 内联函数使用关键字 来定义。
A. inline B. online
C. void D. static
3.9 在C++的类与对象关系的叙述中,错误的是 。
A. 对象是类的一个实例
B. 一个类只能有一个实例
C. 类与对象的关系和数据类型与变量的关系相似
D. 任何一个对象都属于一个已知的类
3.10 下列关键字中, 不是类定义中使用的关键字。
A. class B. public C. case D. protected
四、读程题(20分,每题5分)
4.1 给出下述源程序的运行结果。
#include<iostream.h>
void main( )
{ double d = 2.2, e = 3.3;
double &rd = d, &re = e;
cout << rd+re << ", " << d+re << endl;
rd = 4.4;
cout << rd+re <<", " << d+re << endl;
}
4.2 指出下列类定义中的3处错误。
class MyClass {
int i = 0;
public:
void MyClass();
~MyClass(int value);
};
4.3 给出下述源程序的运行结果。
#include <iostream.h>
int add(int *x, int n)
{ int sum , i;
for(sum = 0, i = 0; i < n; i++) sum += *(x+i);
return sum;
}
void main(){
int arr[] = {1, 3, 5, 7};
cout << add(arr, 4) << endl;
}
4.4 给出下述源程序的运行结果。
#include <iostream.h>
class Base {
public:
void fun() { cout << "1"; }
};
class Derived : public Base {
public:
void fun() {
cout << "2" << endl;
}
};
void main() {
Derived a;
Base *p = &a;
(*p).fun();
a.fun();
}
五、编程题(30分)
5.1有n个整数已按由小到大的顺序排列好,要求输入一个整数,把它插入到原有数列中,而且仍然保持有序,同时输出新的数列。(插入时应考虑到插入的数的各种可能性,比所有的数都小;比所有的数都大;在最大数和最小数之间)
5.2 定义并实现一个类Myst,使下列语句能够正常运行。
Myst x(3.2), y(5,5), z(0.0);
z = 8.9 – y;
y = x – 6.3;
|
|