收藏 分销(赏)

自考-面向对象程序设计测试题附答案C.docx

上传人:二*** 文档编号:4522813 上传时间:2024-09-26 格式:DOCX 页数:9 大小:22.32KB 下载积分:5 金币
下载 相关 举报
自考-面向对象程序设计测试题附答案C.docx_第1页
第1页 / 共9页
本文档共9页,全文阅读请下载到手机保存,查看更方便
资源描述
面向对象程序设计试卷 第一部分选择题 一、单项选择题在每小题列出的四个备选项中只有一个是符合题目要求的,请将其选出并将“答题卷” 上的相应字母涂黑。错涂、多涂或未涂均无分。 1. 在C++中,函数原型不能标识函数的返回类型B.函数参数的个数 C.函数参数类型D.函数的功能 2. 在C++程序中,对象之间的相互通信通过继承实现B.调用成员函数实现 C.封装实现D.函数重载实现 3. 对于任意一个类,析构函数的个数最多为0B. 1C. 2D. 3 4. 假定一个二维数组的定义语句为“inta[3][4]={{3,4},{2,8,6}};”,则元素a[l][2]的值为2 B. 4 C. 6 D. 8 5. 友元关系不能继承 A. 是类与类的关系是一个类的成员函数与另一个类的关系 B. 提高程序的运行效率 6. 对重载函数形参的描述中,错误的是参数的个数可能不同 A. 参数的类型可能不同 B. 参数的顺序可能不同 C. 参数的个数、类型、顺序都相同,只是函数的返回值类型不同 7. 下面说法正确的是 A. 内联函数在运行时是将该函数的目标代码插入每个调用该函数的地方 B. 内联函数在编译时是将该函数的目标代码插入每个调用该函数的地方 C. 类的内联函数必须在类体内定义 D. 类的内联函数必须在类体外通过加关键字inline定义 8. 可以用p.a的形式访问派生类对象p的基类成员a,其中a是 A.私有继承的公有成员B,公有继承的私有成员 C.公有继承的保护成员D,公有继承的公有成员 9. 在公有派生情况下,有关派生类对象和基类对象的关系,不正确的叙述是 A. 派生类的对象可以赋给基类的对象 B. 派生类的对象可以初始化基类的引用 C. 派生类的对象可以直接访问基类中的成员 D. 派生类的对象的地址可以赋给指向基类的指针 10. 在每个C++程序中都必须包含有这样一个函数,该函数的函数名为。 A. main B. MAIN C. name D. function 11. 设x和y均为bool量,则x&&y为真的条件是A.它们均为真B.其中一个为真C.它们均为假 D.其中一个为假 12. 下面的哪个保留字不能作为函数的返回类型? A. void B. int C. new D. long 13. 假定a为一个整型数组名,则元素a[4]的字节地址为A. a+4 B. a+8 C. a+16 D. a+32 14. 假定AB为一个类,则执行“AB a(4),b[3],*p[2];”语句时,自动调用该类构造 函数的次数为。 A. 3 B. 4 C. 6 D. 9假定要对类AB定义加号操作符重载成员函数,实现两个AB类对象的加法,并返 回相加结果,则该成员函数的声明语句为: A. AB operator+(AB & a , AB & b) B. AB operator+(AB & a)C. operator+(AB a)D. AB & operator+() 15. 循环语句whlie(int i=0 )i-;的循环次数是A. 0 B. 1 C. 5 D.无限 16. 如果有int x,*p; float y,*q;则下面操作正确的是A. p=x B. p=q C. p=&x D. p=&y 17. 已知:print()函数是一个类的常成员函数,它无返回值,下列表示中,正确的是A. void print() const;B. const void print(); C. void const print( );D. void print(const); 18. 下列表示引用的方法中,正确的是已知:int a=1000: A. int &x=a; B. char &y; C. int &z= 1000;D. float &t=&a; 19. 下列的各类函数中,不是类的成员函数A.构造函数 B.析构函数 C.友元函数 D.复制构造函数 第二部分非选择题 二、填空题 20. 定义类的动态对象数组时,系统只能够自动调用该类的构造函数对其进行初始化。 21. 无论是什么继承方式,派生类的成员不能访问基类属性的成员。 22. 表达式coul«end 1还可表示为。 23. 基类的公有成员在派生类中的访问权限由决定。 24. C++支持的两种多态性分别是多态性和多态性。 25. C++中语句const char * const p= 〃 hello 〃 ;所定义的指针p和它所指的内容都不能被。 26. 假定AB为-个类,则语句AB(AB&x);为该类函数的原型说明。 27. 说明常成员函数时,关键字const写在成员函数的和之间。 28. 在C++中,访问一个对象的成员所用的运算符是,访问一个指针所指向的对象的成员所用的运算符是o 3().派生类从一个或多个以前定义的该类的继承数据和函数。 三、完成程序题 31. 在下面横线处填上适当字句,完成类中成员函数的定义。 class A{int * a; public: A(int aa=0) {a= }〜A(){1 };下面是一个函数模板,用于计算两个向量的和。在下面横线处填上适当字句,完成函 数模板定义。 祥 include <iostream.h>template<class T> T* f(T* a,T* b,int n){ T* c=;for(int i=0;i<n;i++) c[i]=;return c; void inain()int a[5]= {1,2,3,4,5} ,b[5]={ 10,20,30,40} ,*p; p=f(a,b,5);for(int i=0;i<5;i++) coul«p[il«endl; }下面是类fraction(分数)的定义,其中重载的运算符vv以分数形式输出结果,例如将 三分之二输出为2/3。在横线处填上适当字句。 class fraction! int den; 〃分子int num; 〃分母 friend ostrcam& opcrator«(ostrcain&,fraction); }; ostream& operator «(ostream& os,fraction fr){return; float a=2;cout«fun(a); }下面是一个用户口令检查程序,在横线处填上适当语句完成程序功能。 # include <iostream.h> # include <string.h> ;〃定义由PASS指针所指向的口令wolleho void main() {char user (10) ;//用于存放输入的口令 cout« 〃 please input your password: " «endl;//输入口令 if((strcmp(user,PASS))==0)cout« 〃 your password is correct 〃 «cndl: else cout« 〃 your password is error " «cndl; 32. 在下面程序横线处填上适当的字句,使其输出结果为0, 56, 56。 # include <iostream.h> class base{public: func(){return 0;} }; class derived:public base{public: int a.b,c;_setVakic(int x,int y,int z){a=x;b=y;c=z;} int func( ){rcturn(a+b)*c;} }; void main() {base b; derived d;cout«b.func( )«7; d.setValue(3,5,7);cout«d.fiinc( )«7; base& pb=d;cout«pb.func( )«end 1; }四、程序分析题 33. 给出下面程序的输出结果。 #include<ioslream > using namespace std; void fun(int &a, int &b) { int p;p=a; a=b; b=p; } void exchange(int &a, int &b, int &c) { if( a<b ) fun(a, b);if( a<c ) fun(a, c); if( b<c ) fun(b、c); } int main(){ int a= 12,b=89,c=56; exchange(a, b, c); cout«"a=,,«a«',,b="«b«,,,c="«c«endl; return 0; } 34. 请写出下面程序段的输出结果。 #include <iostream> using namespace std; class A { public: A() { cout « "A"; } }; class B { public: B() { coin v<”B”; } }; class C: public A { public: C() ( cout « "C"; } private: Bb; }; int main () ( C obj; return 0; }五、编程题 35. 从键盘上输入数组sl[2][3J的各元素,并将数组si转置后存入数组s2中,最后输出 数组si和数组s2的各元素。 36. 测试一个名为rectangle的矩形类,其属性为矩形的左下角与右上角两个点的坐标, 能计算矩形的面积。 面向对象程序设计试卷(答案)第一部分选择题 在每小题列出的四个备选项中只有一个是符合题目要求的,请将其选出并将“答题卷” 上的相应字母涂黑。错涂、多涂或未涂均无分。 1. D 2. B 3. B 4. C 5. A 6. D 7. B 8. D 9. A 10. A 11. A 12. C 13. C 14. B 15. B 16. A 17. C 18. A 19. A 20. C 第二部分 非选择题 二、填空题( 21.无参24.访问控制(或其它等价形式) 22. private23. Cout«,7n^,25.编译时的(或静态,或操作重载); 运行运行时的(或动态,或虚函数) 26. 改变(或重新赋值)复制初始化(或拷贝) 29. 成员选择运算符(或基类 28.函数头(或参数表)函数体 成员访问运算符(或三、完成程序题 31. a=new int(aa); delete a32. newT[n]; a[ij+b[i] 33. Cout«den«,7,,«nuin«endI ; os34. Char*PASS=''wQlleh"; cin»user 35. int; void四、程序分析题 36. A=89 b=56 c=1237. ABC //(l 分) 〃(2 分) //(2 分) //(l 分) //(2 分) //(2 分) 五\编程题 38.源程序如下: #include <iostream.h> void main() {imsl[2][3],s2[3]⑵,i,j; for(i=0;i<2;i++)for(j=0;j<3y++) { cout«,,sl[,'«i«"][,,«j«"]="; cin»sl[i][j];s2[j][i]=sl[i][j]; }cout«"Array s 1:"«cndl; for(i=0;i<2;i++){ for(j=0;j<3;j++) couivvsl[i]|j]vv”\r'; coutvvendl;} cout«"Array s2:"«endl;for(i=0;iv3;i++) {for(j=0;j<2;j++) cout«s2[i]U]«H\tH;cout«endl; 39.源程序如下: #include <iostream.h> class car; (1 分) class boat{private: int weight; //(l 分) public: boat(int w):wcight(w){} //(l 分) friend int totalweight(boat b l,car c 1); //(2 分) 1; class car{ /(I 分) private: int weight; (I 分) public: car(int w):weight(w){}; friend int totalweight(boat bl,car cl); (1 分) }; int totalweight(boat bl,car c 1) //(l 分) { return b 1 .wcight+c 1.weight; } void main() carcl(lOOO); boat bl(2000); cout«totalweight(bl,cl)«endl;(l 分)
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服