面向对象程序设计试题一.doc
《面向对象程序设计试题一.doc》由会员分享,可在线阅读,更多相关《面向对象程序设计试题一.doc(17页珍藏版)》请在咨信网上搜索。
一、 单项选择题(本大题共10小题, 每小题2分, 共20分) 在每小题列出的四个备选项中只有一个是符合题目要求的, 请将其代码填写在题后的括号内。错选、 多选或未选均无分。 1.一个函数功能不太复杂, 但要求被频繁调用, 选用( ) A. 内联函数 B.重载函数 C.递归函数 D.嵌套函数 2.C++的继承性允许派生类继承基类的( ) A. 部分特性, 并允许增加新的特性或重定义基类的特性 B.部分特性, 但不允许增加新的特性或重定义基类的特性 C.所有特性, 并允许增加新的特性或重定义基类的特性 D.所有特性, 但不允许增加新的特性或重定义基类的特性 3.在C++中, 封装是借助什么达到的? ( ) A.结构 B.类 C.数组 D.函数 4.建立包含有类对象成员的派生类对象时, 自动调用构造函数的执行顺序依次为( ) A. 自己所属类、 对象成员所属类、 基类的构造函数 B.对象成员所属类、 基类、 自己所属类的构造函数 C.基类、 对象成员所属类、 自己所属类的构造函数 D.基类、 自己所属类、 对象成员所属类的构造函数 5.类的析构函数是对一个对象进行以下哪种操作时自动调用的? ( ) A.建立 B.撤消 C.赋值 D.引用 6.下列不是描述类的成员函数的是( ) A.构造函数 B.析构函数 C.友元函数 D.拷贝构造函数 7.所有在函数中定义的变量, 连同形式参数, 都属于( ) A. 全局变量 B.局部变量 C.静态变量 D.寄存器变量 8.假定AB为一个类, 则执行AB x; 语句时将自动调用该类的( ) A.有参构造函数 B.无参构造函数 C.拷贝构造函数 D.赋值构造函数 9.假定AA为一个类, a()为该类公有的函数成员, x为该类的一个对象, 则访问x对象中函数成员a()的格式为( ) A.x.a B.x.a() C.x->a D.x->a() 10.对于任一个类, 用户所能定义的构造函数的个数至多为( ) A.0 B.1 C.2 D.任意个 二、 填空题(本大题共10小题, 每小题2分, 共20分) 请在每小题的空格中填上正确答案。错填、 不填均无分。 11.对象的四大基本特性是多态性、 继承性、 ______和封装性。 12.为了使类中的成员不能被类外的函数经过成员操作符访问, 则应把该成员的访问权限定义为______。 13.C++程序的源文件扩展名为______。 14.所有模版都是以______关键字和一个形参表开头的。 15.在#include命令中所包含的头文件, 能够是系统定义的头文件, 也能够是______定义的头文件。 16.一个const对象只能访问______成员函数。 17.C++是经过引用运算符______来定义一个引用的。 18.若y是x的引用, 则对y的操作就是对______的操作。 19.执行______操作将释放由p所指向的动态分配的数据空间。 20.C++的流库预定义了4个流, 它们是cin、 cout、 ______和clog。 三、 改错题(本大题共2小题, 每小题6分, 共12分) 21.假定下面程序将分数a和b相加, 其和赋值给c并输出, 要求输出结果为”13/18”,其主函数5到8行之间存在着三行语句错误, 请指出错误行的行号并改正。 #include<iostream.h> 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() {cout<<nume<<′/′<<deno<<endl;} }; void main() //1行 { //2行 Franction a,b,c; //3行 a.InitFranction(7,18); //4行 b.InitFranction(1); //5行 c.InitFranction(); //6行 c=FranAdd(a,b); //7行 cout<<c.nume<<′/′<<c.deno<<endl; //8行 } //9行 错误行的行号为______、 ______和______。 分别改正为______、 ______和______。 22.下面是一个类的定义, 在5到12行之间有3行存在语法错误, 请指出错误行的行号并改正。 class CE { //1行 private: //2行 int a,b; //3行 int getmin() {return (a<b?a:b);} //4行 public //5行 int c; //6行 void SetValue(int x1,int x2,int x3) { //7行 a=x1;b=x2;c=x3; //8行 }; //9行 int GetMin(); //10行 }; //11行 int GetMin(){ //12行 int d=getmin(); //13行 return(d<c? d:c); //14行 } //15行 错误行的行号为______、 ______和______。 分别改正为______、 ______和______。 四、 程序填空题( 本大题共3小题, 每小题6分, 共18分) 请按提示要求完成以下程序段的填空。 23.class A { int a,b; public: ____(1)____ //定义构造函数, 使参数aa和bb的默认值为0, //在函数体中用aa初始化a, 用bb初始化b }; main(){ A *p1,*p2; ____(2)____; //调用无参构造函数生成由p1指向的动态对象 ____(3)____; //调用带参构造函数生成由p2指向的动态对象, //使a和b成员分别被初始化为4和5 } (1) (2) (3) 24.一种类定义如下: #include<iostream.h> #include<string.h> class Books { private: char bk_name[20]; //书的名称 int price; //书的价格 static int totalprice; //同类书总价格 public: Books(char*str,int p){ //构造函数 strcpy(bk_name,str); //strcpy函数将str字符串的内容拷贝到bk_name price=p; totalprice+=price; } ~Books(){totalprice-=price;} char*GetN(){____(4)____;}//返回书名称 int GetP(){return price;} ____(5)____GetTotal_Price(){ //定义静态成员函数 ____(6)____; //返回总价格 } }; (4) (5) (6) 25.已知一个类的定义如下: #include<iostream.h> class AA { int a[10]; int n; public: void SetA(int aa[],int nn); //用数组aa初始化数据成员a, //用nn初始化数据成员n int MaxA(); //从数组a中前n个元素中查找最大值 void SortA(); //采用选择排序的方法对数组a中前n个元素 //进行从小到大排序 void InsertA(); //采用插入排序的方法对数组a中前n个元素进行从小到大排序 void PrintA(); //依次输出数组a中的前n个元素 }; voidAA::SortA() { int i,j; for(i=0; ____(7)____;i++){ int x=a[i],k=i; for(j=i+1; j<n;j++) if(a[j]<x){ x=a[j]; k=____(8)____; } a[k]=a[i]; a[i]=____(9)____; } } (7) (8) (9) 五、 程序分析题( 本大题共6小题, 每小题5分, 共30分) 阅读以下程序, 写出其运行结果。 26.#include<iostream.h> const int N=6; void fun(); void main() { for(int i=1;i<N;i++) fun(); } void fun() { static int a=2; cout<<(a+=3)<<′ ′; } 27.#include<iostream.h> #include<iomanip.h> class fun{ friend ostream& operator<<(ostream&,fun); }ff; ostream& operator<<(ostream& os,fun f){ os.setf(ios::left); return os; } void main() { cout<<setfill(′*′)<<setw(10)<<12345<<endl; cout<<ff<<setw(10)<<54321<<endl; } 28.#include<iostream.h> class a { public: virtual void func(){cout<<"func in class a"<<endl;} }; class b { public: virtual void func(){cout<<"func in class b"<<endl;} }; class c:public a,public b { public: void func(){cout<<"func in class c"<<endl;} }; void main() { c c; a &pa=c; b &pb=c; pa.func(); pb.func(); } 29.#include<iostream.h> class testa{ public: testa(){a1=0;} testa(int i){a1=i;} void printout(){cout<<a1;} private: int a1; }; class testb:public testa{ public: testb(){b1=0;}; testb(int i,int j,int k); void printout(); private: int b1; testa aa; }; testb::testb(int i,int j,int k):testa(i),aa(j){b1=k;} void testb::printout(){ testa::printout(); cout<<endl; } void main(){ testb tt[2]; tt[0]=testb(9,3,5); tt[1]=testb(8,4,7); for(int i=0;i<2;i++) tt[i].printout(); } 30.#include<iostream.h> void main() { for(int i=-1;i<4;i++) cout<<(i ? ′ 0′:′*′); } 31.#include<iostream.h> class Date { int Year,Month,Day; public: void SetDate(int y,int m,int d){Year=y;Month=m;Day=d;} void PrintDate(){cout<<Year<<"/"<<Month<<"/"<<Day<<endl;} Date(){SetDate( ,1,1);} Date(int y,int m,int d){SetDate(y,m,d);} }; class Time { int Houre,Minutes,Seconds; public: void SetTime(int h,int m,int s){Houre=h;Minutes=m;Seconds=s;} void PrintTime(){cout<<Houre<<":"<<Minutes<<":"<<Seconds<<endl;} Time(){SetTime(0,0,0);} Time(int h,int m,int s){SetTime(h,m,s);} }; class Date_Time:public Date,public Time { public: Date_Time():Date(),Time(){}; Date_Time(int y,int mo,int d,int h,int mi,int s): Date(y,mo,d),Time(h,mi,s){} void PrintDate_Time(){PrintDate();PrintTime();} }; void main() { Date_Time dt_a,dt_b( ,10,1,6,0,0); dt_a.PrintDate_Time(); dt_b.SetTime(23,59,59); dt_b.PrintDate_Time(); dt_a.SetDate( ,12,31); dt_a.PrintDate_Time(); }- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 面向 对象 程序设计 试题
咨信网温馨提示:
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【丰****】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【丰****】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【丰****】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【丰****】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
关于本文