面向对象程序设计二试卷A.doc
《面向对象程序设计二试卷A.doc》由会员分享,可在线阅读,更多相关《面向对象程序设计二试卷A.doc(19页珍藏版)》请在咨信网上搜索。
华侨大学 面向对象程序设计( 二) 试卷( A) 系别 计算机、 软件工程、 网络工程08 考试日期 06月29日 姓名 学号 成绩 一、 选择题 (20分, 每小题2分) (1)关于重载函数在调用时匹配依据的说法中, 错误的是 (1) 。 A)参数个数 B)参数的类型 C)函数名字 D)函数的类型 (2)下面对友元函数描述正确的是( 2) 。 A)友元函数的实现必须在类的内部定义 B)友元函数是类的成员函数 C)友元函数破坏了类的封装性和隐藏性 D)友元函数不能访问类的私有成员 (3)( 3) 不是面向对象系统所包含的要素。? A)对象 B)内联 C)类 D)继承 (4)在C++语言中函数返回值的类型是由( 4) 决定的。 A)调用该函数时系统临时 B) return语句中的表示式类型 C)定义该函数时所指定的函数类型 D)调用该函数时的主调函数类型 (5)在C++语言中, 对函数参数默认值描述正确的是( 5) 。 A) 函数若有多个参数, 只能为一个参数设定默认值( 函数参数的默认值只能设定一个) B)一个函数的参数若有多个, 则参数默认值的设定能够不连续 C)函数参数必须设定默认值 D)在设定了参数的默认值后, 该参数后面定义的所有参数都必须设定默认值 (6)在C++中, 数据封装要解决的问题是( 6) 。 A)数据的规范化 B)便于数据转换 C)避免数据丢失 D)实现数据隐蔽( 防止不同模块之间数据的非法访问) (7) C++语言规定, 程序中各函数之间 (7) A) 既允许直接递归调用也允许间接递归调用 B) 不允许直接递归调用也不允许间接递归调用 C) 允许直接递归调用不允许间接递归调用 D) 不允许直接递归调用允许间接递归调用 (8)以下关于派生类特性的叙述中, 错误的叙述是 ( 8) 。 A) 派生类中只能继承基类成员而不能重定义基类成员。 B) 对于私有继承, 基类成员的访问权限在派生类中全部变成私有。 C) 派生类对基类的继承具有传递性。 D) 初始化从基类继承来的数据成员, 必须经过调用基类的构造函数来完成。 (9)以下关于指针函数的叙述中, 正确的是( 9) 。 A) 指针函数用来存放函数名 B) 指针函数用来存放函数调用结果的地址 C) 指针函数用来指示函数的入口 D) 指针函数就是函数指针的别名 (10) 将全局数据对象的存储类别限定为static, 其目得是 (10) 。 A) 为了解决同一程序中不同的源文件中全局量的同名问题; B) 为了保存该变量的值; C) 使该变量成为局部变量; D) 使该变量能作为函数参数。 二、 阅读以下程序并给出执行结果( 20分, 每小题5分) 。 1、 #include<iostream> using namespace std; class A{ public: A(){ cout<<"A-> "; } ~A(){ cout<<"<-~A; "; } }; class B{ public: B(){ cout<<"B-> "; } ~B(){ cout<<"<-~B; "; } }; class C{ public: C(){ cout<<"C-> "; } ~C(){ cout<<"<-~C; "; } }; void func(){ cout<<"\nfunc: "; A a; static B b; C c; } int main(){ cout<<"main: "; for(int i=1; i<=2; ++i){ if(i==2) C c; else A a; B b; } func(); func(); return 1; } 2、 #include <iostream> using namespace std; class B1 {public: B1(int i){ cout<<"constructing B1 "<<i<<endl; } ~B1(){ cout<<"destructing B1"<<endl; } }; class B2 {public: B2(){ cout<<"constructing B2 *"<<endl; } ~B2(){ cout<<"destructing B2"<<endl; } }; class C:public B2,public B1 {public: C(int a,int b):B1(a),b1(b) { cout<<"constructing C"<<endl; } ~C() { cout<<"destructing C"<<endl;} private: B1 b1; B2 b2; }; void main() { C obj(1,2); } 3、 #include <iostream> using namespace std; class A { private: //…其它成员 public: virtual void func(int data) { cout<<"class A:"<<data<<endl; } }; class B: public A { //…其它成员 public: void func() { cout<<"function in B without parameter! \n"; } void func(int data) { cout<<"class B:"<<data<<endl; } }; int main() { A a,*p; A &p1=a; B b; p=&b; p1.func(1); p->func(100); return 1; } 4、 #include <iostream> using namespace std; func(int a,int b); int main() { int k=4,m=1,p; p=func(k,m); cout<<p<<endl; p=func(k,m); cout<<p<<endl; return 1; } func(int a,int b) { static int m=0,i=2; i+=m+1; m=i+a+b; return (m); } 三、 阅读以下程序( 或函数) 并简要叙述其功能( 20分, 每小题5分) 1、 int chnum (char *str) { int i,j,k,h,len,num=0; len=strlen(str); for(i=0; i<len ; i++) { k=1; j=len-i; while(j>1) { k=k*10; j--; } h=str[i]-'0'; num=num+h*k; } return num; } 输入: 123 运行结果: ? 此题比较难, 且没有主函数无法运行 功能: 2、 # include <iostream> using namespace std; int main() { char *a[5]={"student","worker","cadre","soldier","peasant"}; char *p1,*p2; p1=p2=a[0]; for (int i=0; i<5; i++) { if (strcmp(a[i],p1)>0) p1=a[i]; if (strcmp(a[i],p2)<0) p2=a[i]; } cout <<p1<<' '<<p2<<endl; return 1; } 运行结果: ? 功能: 3、 #include <iostream> using namespace std; void func(int[],int); int main() { int array[]={48,91,83,75,36}; int len=sizeof(array)/sizeof(int); for (int i=0;i<len;i++) cout<<array[i]<<","; cout<<endl<<endl; func(array,len); return 1; } void func(int a[],int size) { int i,temp; for(int pass=1;pass<size;pass++) { for(i=0;i<size-pass;i++) if (a[i]>a[i+1]) { temp=a[i]; a[i]=a[i+1]; a[i+1]=temp; } } for (i=0;i<size;i++) cout<<a[i]<<","; cout<<endl; } 请叙述函数func( )的功能。 4、 #include <iostream> using namespace std; int funp(const char* str1, const char* str2); int main() { char a[80],b[80]; cout<<"Please input two string:"; cin>>a>>b; cout<<"result="<<funp(a,b)<<endl; return 1; } int funp (const char* str1, const char* str2) { while(*str1 && *str1==*str2) { str1++; str2++; } return *str1 - *str2; } 请叙述函数funp( )的功能。 四、 阅读以下程序并填空( 填上正确的语法成分) , 使其成为完整的程序( 10分,每空2分) 从已建立的学生链表中删除学号为number的学生结点。 struct Student { long number; float score; Student * next; }; Student * Delete (Student *head,long number) //删除链表结点 { Student *p, *pGuard; //p指向要删除的结点, pGuard指向要删除的结点的前一结点 if( (1) ) //原链表为空链表 { cout<<"\nList is null!\n"; return(head); } if ( (2) ) //要删除的结点为链表的第一个结点 { p=head; head=head->next; delete p; cout<<number<<"the head of list have been deleted\n"; return(head); } for(Student * pGuard=head; (3) ;pGuard=pGuard->next) { if (pGuard->next->number==number) //找到要删除的结点 { (4) (5) delete p; cout<<number<<"have been deleted \n"; return(head); } } cout<<number<<"not found!\n"; //未找到要删除的结点 return (head); } 五、 编程题( 30%) 1、 编写函数char* copystr(char * dest,const char * source ,int m)将字符串source中第m个字符开始的全部字符( source的最右子串) 复制成另一个字符串dest, 并返回复制的串, 请在主函数中输入字符串及m的值并输出复制结果。 2、 设计并测试复数类( Complex) (1) 设计一个复数类( Complex) 包含两个数据成员: 实部( real) , 虚部( imagin) ; 包含如下主要成员函数: ¨ 构造函数( 用来初始化一个复数对象, 默认实部、 虚部均为0) ; ¨ 重载加、 减法运算符( +、 -) 实现复数类的加、 减法运算; ¨ 显示复数对象, 按a+bi( a为实部、 b为虚部) 格式输出一个复数对象。 (2) 请在主函数中使用所设计的复数类定义两个复数对象, 求其和、 差并输出。 华侨大学 面向对象程序设计( 二) 试卷( A) 答题纸 系别 计算机、 软件工程、 网络工程08 考试日期 06月29日 姓名 学号 成绩 一、 选择题 (20分, 每小题2分) ( 1) ( 2) ( 3) ( 4) ( 5) ( 6) ( 7) ( 8) ( 9) ( 10) 二、 阅读以下程序并给出执行结果( 20分, 每小题5分) 。 1、 2、 3、 4、 三、 阅读以下程序( 或函数) 并简要叙述其功能( 20分, 每小题5分) 1、 2、 3、 4、 四、 阅读以下程序并填空( 填上正确的语法成分) , 使其成为完整的程序( 10分,每空2分) (1) (2) (3) (4) (5) 五、 编程题( 30%) 1、 2、- 配套讲稿:
如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。
关于本文