面向对象设计试卷2.doc

上传人:wux****ua 文档编号:9671570 上传时间:2020-04-07 格式:DOC 页数:9 大小:66KB
返回 下载 相关 举报
面向对象设计试卷2.doc_第1页
第1页 / 共9页
面向对象设计试卷2.doc_第2页
第2页 / 共9页
面向对象设计试卷2.doc_第3页
第3页 / 共9页
点击查看更多>>
资源描述
面向对象程序设计试题(2)题 号一二三四五六七总 分1218181812616100得 分一、单项选择(每小题1分,共12分) 1设x和y均为bool量,则x | y为假的条件是( C )。 A. 它们均为真 B. 其中一个为真 C. 它们均为假 D. 其中一个为假 2. 假定一个二维数组的定义语句为“int a34=3,4,2,8,6;”,则元素a12的值为( )。 A. 2 B. 4 C. 6 D. 8 3. 以下错误的描述是( )。 函数调用可以 A. 出现在一个表达式中 B. 出现在执行语句中 C. 作为一个函数的实参 D. 作为一个函数的形参 4. 关于局部变量,下面说法正确的是( )。 A. 定义该变量的程序文件中的函数都可以访问 B. 定义该变量的函数中的定义处以下的任何语句都可以访问 C. 定义该变量的复合语句中的定义处以下的任何语句都可以访问 D. 定义该变量的函数中的定义处以上的任何语句都可以访问 5. 假定p是具有int*类型的指针变量,则给p赋值的正确语句为( )。 A. p=new int; B. p=new int*; C. p=new int*; D. p=new int10; 6. 软件产品在需求发生变化、运行环境发生变化或发现软件产品本身的错误或不足时进行相应的软件更新的难易程度叫做软件的( )。 A. 可维护性 B. 可复用性 C. 兼容性 D. 正确性 7. 若需要把一个类外定义的成员函数指明为内联函数,则必须把关键字( )放在函数原型或函数头的前面。 A. in B. inline C. inLine D. InLiner 8. 在一个用数组实现的队列类中,假定数组长度为MS,队首元素位置为first,队列长度为length,则队尾的后一个位置为( )。 A. length+1 B. first+length C. (first+length-1)%MS D. (first+length)%MS 9. 假定一个类的构造函数为 “A(int aa, int bb) a=aa; b=aa*bb;”,则执行 “A x(4,5);”语句后,x.a和x.b的值分别为( )。 A. 4和5 B. 5和4 C. 4和20 D. 20和5 10. 假定AB为一个类,则执行“AB *p=new AB(1,2);”语句时共调用该类构造函数的次数为( )。 A. 0 B. 1 C. 2 D. 3 11. 一个类的成员函数也可以成为另一个类的友元函数,这时的友元说明( )。 A. 需加上类域的限定 B. 不需加上类域的限定 C. 类域的限定可加可不加 D. 不需要任何限定 12. 关于插入运算符的重载,下列说法不正确的是( )。 A. 运算符函数的返回值类型是ostream & 。 B. 重载的运算符必须定义为类的成员函数。 C. 运算符函数的第一个参数的类型是ostream & 。 D. 运算符函数有两个参数。二、填空(每空1分,共14分)1. 下一行 2. 3 3.2 3. 不停止 4. 5 1 5. 代码 6.4*i 7.H 8. 单继承 9. 不能够 10. AB() 11. a 12. 2 1. 当执行cout语句输出endl数据项时,将使C+显示输出屏幕上的光标从当前位置移动到_下一行 _的开始位置。 2. 假定x和y为整型,其值分别为16和5,则x/y和double(x)/y的值分别为_3_和_3.2_。 3. 执行switch语句时,在进行作为条件的表达式求值后,将从某个匹配的标号位置起向下执行,当碰到下一个标号位置时_不停止_执行。 4. strlen(”apple”)的值为_5_,strcmp(”a”,”A”)的值为_1_。 5. C+程序运行时的内存空间可以分成全局数据区,堆区,栈区和_代码 _区。 6假定a是一个一维指针数组,则a+i所指对象的地址比a大_.4*i _字节。 7. 已知语句“coutp;”的输出是“Hello!”,则语句“cout*p;”输出的是_H_。 8. 如果一个派生类只有一个唯一的基类,则这样的继承关系称为_单继承_。 9假定AA是一个类,“AA* abc()const;”是该类中一个成员函数的原型,在该函数体中_不能够 _向*this或其成员赋值。 10假定用户没有给一个名为AB的类定义构造函数,则系统为其定义的构造函数为_ AB() _。 11假定用户为类AB定义了一个构造函数AB(int aa) a=aa;,该构造函数实现对数据成员_a_的初始化。 12. 作为类的成员函数重载一个运算符时,参数表中只有一个参数,说明该运算符有_2_个操作数。三、程序填充,对程序、函数或类中划有横线的位置,根据题意按标号把合适的内容填写到程序下面相应标号的后面(每小题6分,共24分) 1. 下面程序计算出的值。 #include void main() double x,p1=1,p2=1,s=0; int i,j=1; coutx; for(i=1;i=10;i+) p1*=_(1)_; (1) x p2*=_(2)_; (2) i s+=j*p1/p2; /j的值为(-1)i+1 j=_(3)_; (3) j coutsendl; 2. 假定有定义为“struct NODEint data; NODE* next;”,下面算法是依次显示输出以L为表头指针的链表中各结点的值。void ff(NODE* L) for(_(1)_; p!=NULL; _(2)_) cout_(3)_ ; coutnext (3) p-data 3. 假定有定义为“struct NODEint data; NODE* next;”,下面算法是把以L为表头指针的链表中各结点依次按相反次序链接并返回新链表的表头指针。NODE* f8(NODE* L) if(L=NULL) return NULL; NODE *p=NULL, *q=L, *t; while(q!=NULL) t=q; q=_(1)_; (1) q-next t-next=_(2)_; (2) p p=t; _(3)_; (3) return p(1) (2) (3) 4. 已知一个利用数组实现栈的类定义如下:const int ARRAY_SIZE=10;class Stack public:void Init() top=-1; /初始化栈为空 void Push(int newElem); /向栈中压入一个元素int Pop(); /从栈顶弹出一个元素bool Empty() /判栈空 if(top=-1) return true;else return false;int Depth() return top+1; /返回栈的深度void Print(); /按照后进先出原则依次输出栈中每个元素,直到栈空为止private:int elemARRAY_SIZE; /用于保存堆栈元素的数组int top; /指明栈顶元素位置的指针; 该类的Pop和Print函数的实现分别如下:_(1)_ if(top=-1) cout栈空!endl;exit(1); /中止运行return _(2)_;void Stack:Print() while(!Empty() cout_(3)_ ; coutendl; (a) int Stack:Pop() (2) (b) elemtop- (c) Pop() 四、写出程序运行结果(每小题8分,共16分) 1. #include int a8=36,25,20,43,12,70,66,35; void main() int s0,s1,s2; s0=s1=s2=0; for(int i=0; i8; i+) switch(ai%3) case 0: s0+=ai;break; case 1: s1+=ai;break; case 2: s2+=ai;break; couts0 s1 s2endl; 1. 114 138 55 2.abcdef 30 abcdefxyz 50 2#include #include class CD char* a; int b; public: void Init(char* aa, int bb) a=new charstrlen(aa)+1; strcpy(a,aa); b=bb; char* Geta() return a; int Getb() return b; void Output() couta bendl; ;void main() CD dx,dy; char a20; dx.Init(abcdef,30); strcpy(a,dx.Geta(); strcat(a,xyz); dy.Init(a,dx.Getb()+20); dx.Output(); dy.Output();五、指出程序或函数的功能(每小题6分,共12分) 1. #include #include #include void main() int i=10,a; while(i0) a=rand()%90+10; int j, k=int(sqrt(a)+1e-5); /sqrt(x)为求x的平方根函数 for(j=2; jk) couta ; i-; 2. void Input(IntNode*& f) int n; coutn; while(n0); if(n=0) f=NULL; return; f=new IntNode; IntNode* p=f; cout”从键盘输入”nnext=new IntNode; cinp-data; p-next =NULL; p=f; f=f-next; delete p; 假定IntNode的类型定义为: struct IntNode int data; /结点值域 IntNode* next; /结点指针域 ;六、程序改错,请根据程序段或函数模块的功能改写个别地方的错误(6分)。 假定要求下面程序的输出结果为“11/15”,其主函数中存在着三行语句错误,请指出错误语句行的行号并改正错误行。 #include class Franction /定义分数类 int nume; /定义分子 int deno; /定义分母 public: /把*this化简为最简分数,具体定义在另外文件中实现void FranSimp(); /返回两个分数*this和x之和,具体定义在另外文件中实现Franction FranAdd(const Franction& x); /置分数的分子和分母分别0和1 void InitFranction() nume=0; deno=1; /置分数的分子和分母分别n和d void InitFranction(int n, int d) nume=n; deno=d; /输出一个分数void FranOutput() coutnume/denoendl; ;void main() /1行 /2行 Franction a,b,c; /3行 a.InitFranction(6,15); /4行 b.InitFranction(1); /5行 c.InitFranction(); /6行 c=FranAdd(a,b); /7行 coutc.nume/c.denoendl; /8行 /9行错误行的行号为_、_和_。分别改正为_、_和_。七、编程(每小题8分,共16分) 1. 计算1+3+32+.+310的值并输出,假定分别用i,p,s作为循环变量、累乘变量和累加变量的标识符。 2. 根据下面类中Uion 函数的原型和注释写出它的类外定义。class Array int *a; /指向动态分配的整型数组空间int n; /记录数组长度public:Array(int aa, int nn); /构造函数,利用aa数组长度nn初始化n, /利用aa数组初始化a所指向的数组空间Array(Array& aa); /拷贝构造函数Array& Give(Array& aa); /实现aa赋值给*this的功能并返回*thisArray Uion(Array& aa); /实现*this和aa中的数组合并的功能,把合并 /结果(其长度为两数组长度之和)存入临时对象并返回int Lenth() return n; /返回数组长度void Print() /输出数组for(int i=0; in; i+)coutai ; coutnext /2分(3) p-data /2分3(1) q-next /2分(2) p /2分(3) return p /2分4.(a) int Stack:Pop() /2分(b) elemtop- /2分(c) Pop() /2分四、写出程序运行结果(每小题8分,共16分)1. 114 138 55 /每个数据占3分,全对给8分2.abcdef 30 /4分,每个数据2分abcdefxyz 50 /4分,每个数据2分五、指出程序或函数的功能(每小题6分,共12分)1随机产生出10个10至100(或99)之间的素数并显示出来。2首先从键盘上输入一个整数给n,然后依次输入n个整数建立以表头指针为f的链表。评分标准:根据叙述情况酌情给分。六、程序改错,请根据程序段或函数模块的功能改写个别地方的错误(6分)。错误行的行号为5 7 8 分别改正为b.InitFranction(1,3); c=a.FranAdd(b); c.FranOutput()评分标准:共6个数据,每个数据1分。七、编程(每小题8分,共16分)评分标准:根据编程情况酌情给分。 1. #include void main() int i; /用i作为循环变量 int p=1; /用p作为累乘变量 int s=1; /用s作为累加循环变量 for(i=1;i=10;i+) p*=3; s+=p; coutsendl; 2.Array Array:Uion(Array& aa) int k=n+aa.n; int* w=new intk; int i; for(i=0; in; i+) wi=ai; for(i=0; iaa.n; i+) wi+n=aa.ai; Array r(w,k); return r;9
展开阅读全文
相关资源
相关搜索

当前位置:首页 > 图纸专区 > 考试试卷


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!