08-09面向对象程序设计(二)试卷A

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

1华侨大学面向对象程序设计(二)试卷(A)系别计算机、软件工程、网络工程08考试日期2009年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)对于私有继承,基类成员的访问权限在派生类中全部变成私有。2C)派生类对基类的继承具有传递性。D)初始化从基类继承来的数据成员,必须通过调用基类的构造函数来完成。(9)以下关于指针函数的叙述中,正确的是(9)。A)指针函数用来存放函数名B)指针函数用来存放函数调用结果的地址C)指针函数用来指示函数的入口D)指针函数就是函数指针的别名(10)将全局数据对象的存储类别限定为static,其目得是(10)。A)为了解决同一程序中不同的源文件中全局量的同名问题;B)为了保存该变量的值;C)使该变量成为局部变量;D)使该变量能作为函数参数。二、阅读以下程序并给出执行结果(20分,每小题5分)。1、#includeiostreamusingnamespacestd;classA{public:A(){coutA-;}~A(){cout-~A;;}};classB{public:B(){coutB-;}~B(){cout-~B;;}};classC{public:C(){coutC-;}~C(){cout-~C;;}};voidfunc(){cout\nfunc:;Aa;staticBb;Cc;}intmain(){coutmain:;for(inti=1;i=2;++i){if(i==2)Cc;elseAa;Bb;}func();func();return1;}2、3#includeiostreamusingnamespacestd;classB1{public:B1(inti){coutconstructingB1iendl;}~B1(){coutdestructingB1endl;}};classB2{public:B2(){coutconstructingB2*endl;}~B2(){coutdestructingB2endl;}};classC:publicB2,publicB1{public:C(inta,intb):B1(a),b1(b){coutconstructingCendl;}~C(){coutdestructingCendl;}private:B1b1;B2b2;};voidmain(){Cobj(1,2);}3、#includeiostreamusingnamespacestd;classA{private://…其它成员public:voidfunc(intdata){coutclassA:dataendl;}};classB:publicA{//…其它成员public:voidfunc(){coutfunctioninBwithoutparameter!\n;}voidfunc(intdata)4{coutclassB:dataendl;}};intmain(){Aa,*p;A&p1=a;Bb;p=&b;p1.func(1);p-func(100);return1;}4、#includeiostreamusingnamespacestd;func(inta,intb);intmain(){intk=4,m=1,p;p=func(k,m);coutpendl;p=func(k,m);coutpendl;return1;}func(inta,intb){staticintm=0,i=2;i+=m+1;m=i+a+b;return(m);}三、阅读以下程序(或函数)并简要叙述其功能(20分,每小题5分)1、intchnum(char*str){inti,j,k,h,len,num=0;len=strlen(str);for(i=0;ilen;i++){k=1;j=len-i;while(j1){k=k*10;j--;5}h=str[i]-'0';num=num+h*k;}returnnum;}输入:123运行结果:?此题比较难,且没有主函数无法运行功能:2、#includeiostreamusingnamespacestd;intmain(){char*a[5]={student,worker,cadre,soldier,peasant};char*p1,*p2;p1=p2=a[0];for(inti=0;i5;i++){if(strcmp(a[i],p1)0)p1=a[i];if(strcmp(a[i],p2)0)p2=a[i];}coutp1''p2endl;return1;}运行结果:?功能:3、#includeiostreamusingnamespacestd;voidfunc(int[],int);intmain(){intarray[]={48,91,83,75,36};intlen=sizeof(array)/sizeof(int);for(inti=0;ilen;i++)coutarray[i],;coutendlendl;func(array,len);return1;}voidfunc(inta[],intsize){inti,temp;for(intpass=1;passsize;pass++)6{for(i=0;isize-pass;i++)if(a[i]a[i+1]){temp=a[i];a[i]=a[i+1];a[i+1]=temp;}}for(i=0;isize;i++)couta[i],;coutendl;}请叙述函数func()的功能。4、#includeiostreamusingnamespacestd;intfunp(constchar*str1,constchar*str2);intmain(){chara[80],b[80];coutPleaseinputtwostring:;cinab;coutresult=funp(a,b)endl;return1;}intfunp(constchar*str1,constchar*str2){while(*str1&&*str1==*str2){str1++;str2++;}return*str1-*str2;}请叙述函数funp()的功能。四、阅读以下程序并填空(填上正确的语法成分),使其成为完整的程序(10分,每空2分)从已建立的学生链表中删除学号为number的学生结点。structStudent{longnumber;floatscore;Student*next;};7Student*Delete(Student*head,longnumber)//删除链表结点{Student*p,*pGuard;//p指向要删除的结点,pGuard指向要删除的结点的前一结点if((1))//原链表为空链表{cout\nListisnull!\n;return(head);}if((2))//要删除的结点为链表的第一个结点{p=head;head=head-next;deletep;coutnumbertheheadoflisthavebeendeleted\n;return(head);}for(*pGuard=head;(3);pGuard=pGuard-next){if(pGuard-next-number==number)//找到要删除的结点{(4)(5)deletep;coutnumberhavebeendeleted\n;return(head);}}coutnumbernotfound!\n;//未找到要删除的结点return(head);}五、编程题(30%)1、编写函数char*copystr(char*dest,constchar*source,intm)将字符串source中第m个字符开始的全部字符(source的最右子串)复制成另一个字符串dest,并返回复制的串,请在主函数中输入字符串及m的值并输出复制结果。2、设计并测试复数类(Complex)(1)设计一个复数类(Complex)包含两个数据成员:实部(real),虚部(imagin);包含如下主要成员函数:构造函数(用来初始化一个复数对象,默认实部、虚部均为0);重载加、减法运算符(+、-)实现复数类的加、减法运算;显示复数对象,按a+bi(a为实部、b为虚部)格式输出一个复数对象。(2)请在主函数中使用所设计的复数类定义两个复数对象,求其和、差并输出。8华侨大学面向对象程序设计(二)试卷(A)答题纸系别计算机、软件工程、网络工程08考试日期2009年06月29日姓名学号成绩一、选择题(20分,每小题2分)(1)(2)(3)(4)(5)(6)(7)(8)(9)(10)二、阅读以下程序并给出执行结果(20分,每小题5分)。1、2、3、4、9三、阅读以下程序(或函数)并简要叙述其功能(20分,每小题5分)1、2、3、4、四、阅读以下程序并填空(填上正确的语法成分),使其成为完整的程序(10分,每空2分)(1)(2)(3)(4)(5)10五、编程题(30%)1、2、

1 / 10
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功