《面向对象程序设计(C++)》期末考试试题.doc_第1页
《面向对象程序设计(C++)》期末考试试题.doc_第2页
《面向对象程序设计(C++)》期末考试试题.doc_第3页
《面向对象程序设计(C++)》期末考试试题.doc_第4页
《面向对象程序设计(C++)》期末考试试题.doc_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

学习中心/函授站_ 西安电子科技大学校本部 姓 名 学 号 西安电子科技大学网络与继续教育学院2015学年上学期面向对象程序设计(C+)期末考试试题(综合大作业)题号一二三四五总分题分1020202030得分考试说明:1、大作业于2015年4月3日公布,2015年5月9日前在线提交;2、考试必须独立完成,如发现抄袭、雷同、拷贝均按零分计。一、简答题(10分)1.1(3分)C+提供了哪些循环语句?它们各自的特点是什么?C+语言提供三种循环语句:for循环语句应用最广泛,使用最灵活。不仅可以用于循环次数已经确定的情况,也能用于循环次数不确定、只给出循环结束条件的情况。while循环语句,其特点是先判断表达式,后执行语句,在循环体中应有使循环趋于结束的语句。do-while 语句,其特点是先执行语句,后判断表达式。对同一个问题可以用while语句处理,也可以用do-while语句处理。1.2(3分)在C+中什么可以充当友元?友元是否可以继承,为什么?在C+中,自定义函数可以充当友元,友元只是能访问指定类的私有和保护成员的自定义函数,不是被指定类的成员,自然不能继承1.3(4分)若派生类以private方式从一个基类派生,派生类的对象可以访问基类中的那些成员?派生类的成员函数可以访问基类中的那些成员?二、填空题(每空1分,共20分)2.1 break语句在循环结构中的功能是 是跳出整个循环 ,continue语句的功能是 跳过本次循环 。2.2有一段程序为:while (表达式) 语句1 语句2 当表达式的值为非0时,执行 语句1后执行语句2 ;当表达式为0时,执行 语句2 。2.3 使用关键字 Inline 说明的函数称为内联函数。编译时,源程序中所有对该函数的调用被替换为此函数的 体内 。2.4数组名代表的是该数组的_数组首地址的指针 ;数组元素作为函数的实参时,是以 指针 方式传递参数的。2.5在C+中,类A的每一个非静态成员函数都有一个隐藏的指针类型的形参 This 指针 ,它指向当前正在操作的对象,其类型为 。2.6 C+语言引入了异常处理机制,用 throw 语句“抛出”异常,然后用相应的语句 _ try 捕获被“抛出”的异常,并做出相应的处理。2.7在C+语言中,用 new 表达式来创建动态的类对象;用 _delete_ 表达式释放动态类对象。2.8 C+支持两种类型的多态,编译时多态和运行时多态。 运行时 多态是通过虚函数来实现的, 编译时 多态是通过函数重载来实现的。2.9 纯虚函数就是 特殊 的虚函数,包含纯虚函数的类称为 抽象类 。2.10在某些应用中,需要程序中属于某个类的所有对象共享某个数据。在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语句中,条件为真的语句是 。Aif(0)Bif(3)Cbool bFlag = ture; if(!bFlag)Dif(a)3.4若i的初值为1, 能输出1到10的整数。Aif(i+ 10) cout i;Bdo cout i; while(+i = 10);C. while(i+ 10) cout i; Dswitch(+i = 10) cout i;3.5在下面的程序中,若实参a与形参x以引用传递的方式传递信息,实参b与形参y以值传递的方式传递信息,那么从函数compute返回主程序后,a和b的值分别为 。 Main Program void compute(x, y)a := 1;b := 2;compute(a, b); x := x + 2 * y;y := 2 * x + y;return ;A5和2B5和12C1和2D1和123.6下列关于运算符重载的描述中, 是正确的。A运算符重载可改变其优先级B运算符重载不改变其语法结构C运算符重载可改变其结合性D运算符重载可改变其操作数的个数3.7 为了使类中的成员能够被类的对象通过成员运算符访问,则应该把成员的访问权限定义为 。ApublicBprotectedCprivateDpackaged3.8 假设A是一个类,那么执行语句“A a, b(3), *p;”,调用了 次构造函数。A2B3C4D53.9 假设类AB用成员函数的方式重载加法运算符,以实现两个AB类对象的加法,并返回相加的结果,则该成员函数的声明为 。AAB operator + (AB &a, AB &B);BAB operator + (AB&);Coperator + (AB a); DAB & operator + ();3.10 下列对C+中静态数据成员的描述中,正确的是 。A静态数据成员是类的所有对象共享的数据B类的每个对象都有自己的静态数据成员C类的不同对象有不同的静态数据成员值D静态数据成员不能通过类的对象来调用四、读程题(每题5分,共20分)4.1给出下列源程序的输出结果。#include 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; 输出结果:164.2 指出下列类定义中的3处错误。#include class A public:A() a1 = a2 = 0; cout Default constructor called.n; A(int i, int j) a1 = i; a2 = j; cout Constructor called.n; void print() cout a1 = a1 , a2 = a2 endl; private: int a1, a2;void main() A x, y(3,9); x.print(); y.print();4.3 给出下述源程序的运行结果。#include #include struct Student char *name;double score;*p;void main() Student s1;p = &s1;p-name = (char *)new char50;p-score = 95.5;strcpy(p-name, Ma ping);cout name , (*p).score endl; 运行结果:Ma ping,95.54.4 给出下述源程序的运行结果并说明该程序的功能。#include int add(int a, int b = 5);void main() int m = 5; cout sum1 = add(m) endl; cout sum2 = add(m, add(m) endl; cout sum3 = add(m, add(m, add(m) endl;int add(int x, int y) return x + y; 运行结果: sum1 = 10sum1 = 15sum1 = 20五、编程题(每题15分,共30分)5.1有n个整数已按由小到大的顺序排列好,要求输入一个整数,把它插入到原有数列中,而且仍然保持有序,同时输出新的数列。(插入时应考虑到插入的数的各种可能性,比所有的数都小;比所有的数都大;在最大数和最小数之间)int InsertArray(int x,int a,int k)int i,j;if(kMaxSize-1) return 0;/* 插入不成功返回0 */if(k=0) /* 数组为空,直接插入即可 */a0=x;return 1; i=

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论