1、第 1 页 (共 5 页)学习中心/函授站_ 西安电子科技大学校本部 姓 名 学 号 西安电子科技大学网络与继续教育学院2015 学年上学期面向对象程序设计(C+) 期末考试试题(综合大作业)题号 一 二 三 四 五 总分题分 10 20 20 20 30得分考试说明:1、大作业于 2015 年 4 月 3 日公布,2015 年 5 月 9 日前在线提交;2、考试必须独立完成,如发现抄袭、雷同、拷贝均按零分计。一、简答题(10 分)1.1(3 分)C+提供了哪些循环语句?它们各自的特点是什么?C+语言提供三种循环语句:for 循环语句应用最广泛,使用最灵活。不仅可以用于循环次数已经确定的情况,
2、也能用于循环次数不确定、只给出循环结束条件的情况。while 循环语句,其特点是先判断表达式,后执行语句,在循环体中应有使循环趋于结束的语句。do-while 语句,其特点是先执行语句,后判断表达式。对同一个问题可以用 while 语句处理,也可以用 do-while 语句处理。1.2(3 分)在 C+中什么可以充当友元?友元是否可以继承,为什么?在 C+中,自定义函数可以充当友元,友元只是能访问指定类的私有和保护成员的自定义函数,不是被指定类的成员,自然不能继承1.3(4 分)若派生类以 private 方式从一个基类派生,派生类的对象可以访问基类中的那些成员?派生类的成员函数可以访问基类中
3、的那些成员?二、填空题(每空 1 分,共 20 分)2.1 break 语句在循环结构中的功能是 是跳出整个循环 ,continue 语句的功能是 跳过本次循环 。2.2 有一段程序为:while (表达式)语句 1 语句 2当表达式的值为非 0 时,执行 语句 1 后执行语句 2 ;当表达式为 0 时,执行 语句 2 。2.3 使用关键字 Inline 说明的函数称为内联函数。编译时,源程序中所有对该函数第 2 页 (共 5 页)的调用被替换为此函数的 体内 。2.4 数组名代表的是该数组的_数组首地址的指针 ;数组元素作为函数的实参时,是以 指针 方式传递参数的。2.5 在 C+中,类 A
4、 的每一个非静态成员函数都有一个隐藏的指针类型的形参 This 指针 ,它指向当前正在操作的对象,其类型为 。2.6 C+语言引入了异常处理机制,用 throw 语句“抛出”异常,然后用相应的语句 _ try 捕获被“ 抛出”的异常,并做出相应的处理。2.7 在 C+语言中,用 new 表达式来创建动态的类对象;用 _delete_ 表达式释放动态类对象。2.8 C+支持两种类型的多态,编译时多态和运行时多态。 运行时 多态是通过虚函数来实现的, 编译时 多态是通过函数重载来实现的。2.9 纯虚函数就是 特殊 的虚函数,包含纯虚函数的类称为 抽象类 。2.10 在某些应用中,需要程序中属于某个
5、类的所有对象共享某个数据。在 C+语言中,为了不破坏数据的封装性,需将所要共享的数据说明为类的 私有成员 ,即用关键字_ private _说明的类成员。三、选择题(每题 2 分,共 20 分)3.1 在下列给字符数组赋值语句中, 是错误的。已知,char s5。As0 = m; Bs5 = n; Cs1 = a; Ds2 = b;3.2 下列对结构变量赋值的描述中, 是错误的。A结构变量可以使用初始值表对它初始化B可以给一个结构变量的各个成员赋值C可将任意已知的结构变量名赋给一个结构变量D可将一个已知结构变量名赋给相同结构类型的另一个结构变量3.3 下列 if 语句中,条件为真的语句是 。A
6、if(0) Bif(3) Cbool bFlag = ture; if(!bFlag) Dif(a)3.4 若 i 的初值为 1, 能输出 1 到 10 的整数。Aif(i+ int add(int *x, int n) int sum , i;for(sum = 0, i = 0; i class A public:A() a1 = a2 = 0; cout #include 第 4 页 (共 5 页)struct Student char *name;double score;*p;void main() Student s1;p = p-name = (char *)new char50
7、;p-score = 95.5;strcpy(p-name, “Ma ping“);cout name int add(int a, int b = 5);void main() int m = 5;cout MaxSize-1) return 0;/* 插入不成功返回 0 */if(k=0) /* 数组为空,直接插入即可 */a0=x;第 5 页 (共 5 页)return 1; i=0;while(aii;j-) /* 插入位置之后的元素依次后移 */aj=aj-1;ai=x;return 1;5.2 利用运算符重载,定义复数类的加法与减法,使之能够执行下列运算。 Complex a(4.0, 6), b(7.4, 2), c(0, 0);c = a + b;c = 4.1 + a;c = b + 2.3;