ImageVerifierCode 换一换
格式:DOCX , 页数:25 ,大小:22.44KB ,
资源ID:12314069      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/12314069.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(成都元亨教育面向对象程序设计复习题.docx)为本站会员(b****4)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

成都元亨教育面向对象程序设计复习题.docx

1、成都元亨教育面向对象程序设计复习题面向对象程序设计复习题一、选择题1、基类中的保护成员在其私有派生类中的访问属性是( A )。A.私有 B.公有 C.保护 D.不确定2、在类的非静态成员函数中,不可以直接访问的数据成员是( D )。A.本类的私有成员 B.本类的保护成员 C.本类的公有成员 D.本类的所有非静态成员3、下列标示符中,不符合C+标示符命名规则的是( C )。A.x10 B. _total C. D.www4、下列整型常数中,不符合C+语法的是( C )。A.12u B.-67l C.059 D.0X11ff5、下列常量中,不符合C+语法的是( D )。A.”0” B.* C.“”

2、 D.“Its an array!”6、下列数组的初始化形式中,不符合C+语法的是( A )。A.int s13=1,2,3,4 B.int s23=0 C.char s33=a,x,d D.char s4=“asd”7、如果说明语句为:int a4=10,20,30,40,50, *p=&a2;则*p的值是( B )。A.a2的地址 B.30 C.20 D.不确定8、已知:int a33;下列表示数组元素a00的方法中,不符合C+语法的是( C )。A.*a B.*a0 C.a0 D.*(*a1-1)9、已知:int a=3,b=5,下列表达式中,值为0的表达式是( B )。A.a%5-5

3、B.a/b C.!a|b D.a&b10、C+中字符常数的定界符是( B )。A.” B. C.# D.11、已知:int a=9,sum=0;下列循环中,不构成死循环的是( A )。A.for(;a;a+) sum+=a- B.dosum+=a-while(-a); C.while(a=1) sum+=a-; D.dosum+=awhile(a-1);12、如果定义一个函数时未指定该函数的返回值类型,则函数返回值类型应是( B )。A.无 B.int C.任意 D.void13、下列描述中,属于传值调用的是( C )。A.形参是指针,实参是地址 B.形参、实参都是数组C.形参是变量,形参是常

4、数 D.形参是指针,实参是数组名。14、在类的友元函数中,可以访问的数据成员是( D )。A.本类的私有成员 B.本类的保护成员 C.本类的公有成员 D.本类的所有成员15、下列各种函数中,在对象生命期结束时自动调用的函数的是( B )。A.构造函数 B.析构函数 C.友元函数 D.虚函数16、下列描述中,属于析构函数的特征是( D )。A.函数的名字与类名无关 B.函数可以重载 C.函数形参可有可无 D.不能指定函数返回值的类型17、列对类的描述中,不符合C+语法的是( B )。A.一个派生类至少有一个基类B.一个派生类只能有一个基类C.一个基类不可以有多个派生类D.抽象类一定是另一个类的基

5、类18、C+中的虚函数可以实现的面向对象的基本特性是( D )。A.封装性 B.继承性 C.抽象性 D.多态性19、下列关于运算符重载的描述中,错误的是( D )。A.运算符只能重载为成员函数B.运算符只能重载为友元函数C.有些运算符只能重载为成员函数D.有些运算符只能重载为友元函数20、有文件打开语句:ofstream fout(“data”);则下列描述中,正确的描述是( D )。A.fout是一个标准输入流对象; B.fout是一个标准输出流对象;C.fout是一个文件输入流对象; D.fout是一个文件输出流对象;21、下列标示符中,符合C+标示符命名规则的是( A )。A.Amax

6、B.x(2) C.int D.姓名22、下列常数中,不符合C+语法的是( C )。A.5 B.7 C.2e0.5 D.3.14f23、下列字符常量中,不符合C+语法的是( B )。A.0 B. C.3 D.*24、以下指针用法中错误的是( B )。A.int i; int *ptr=&i; B.int *ptr=2000; C.int *ptr=0; D.int i, *ptr=&i; *ptr=5;25、下列描述中,不属于地址调用的是( D )。A.形参、实参是指针 B.形参、实参都是数组C.形参是指针,实参是数组名 D.形参是变量的引用,实参是变量26、下列各种函数中,在对象生命期结束时自

7、动调用的函数是( B )。A.构造函数 B.析构函数 C.友元函数 D.虚函数27、下列描述中,不属于虚函数的特征是( C )。A.函数定义时不加virtual B.是类的非静态成员函数 C.函数没有形参 D.不能重载28、C+中设置友元函数的目的是( B )。A.解决继承中的二义性问题 B.提高编程效率 C.实现动态多态性 D.实现静态多态性29、下列关于运算符重载的描述中,正确的是( D )。A.运算符重载可以改变操作数的个数B.运算符重载可以改变原有运算符的优先级C.运算符重载可以改变运算符的结合性D.运算符重载可以定义新的运算方法30、用I/O流打开一个文件时,如果不指定文件存储方式,

8、则该文件的格式是(B)。A.二进制文件 B.文本文件 C.无格式 D.不确定二、判断题(每题1分,共10分,对的打,错的打)1、一个程序文件中,main函数有且只能有一个。 ( )2、程序中的注释是可执行的语句。 ( )3、C+的表达式中不允许不同类型数据的混合运算。 ( )4、系统函数不需要任何人定义,编程时可直接使用。 ( )5、数组名可以看作一个指针变量。 ( )6、不同函数间传递数组时,采用的是引用调用方式。 ( )7、虚函数可以是类的静态成员。 ( )8、抽象类只能做基类,但可以定义该类的对象。 ( )9、文本文件只能保存字符数据,不能保存数值数据。 ( )10、函数调用在前,定义在

9、后时,需要原型声明。 ( )11、main函数总是程序中第一个被执行的函数。 ( )12、程序中的注释是写给编程人员看的。 ( )13、C+的表达式中允许不同类型数据的混合运算。 ( )14、函数在调用之前必须先定义或声明。 ( )15、数组名中存放的是一个地址。 ( )16、不同函数间传递数组时,采用的是地址调用方式。 ( )17、基类的指针可以指向其派生类的对象。 ( )18、复制构造函数与构造函数的执行时机是一样的。 ( )19、类中定义的成员函数都是内联函数。 ( )20、没有main函数的C+程序也可以执行。 ( )21、程序中有没有注释不影响程序的执行。 ( )22、一个函数的函数

10、体中不能包含另一个函数的定义。 ( )23、类的任何公有成员在类体外必须通过对象来访问。 ( )24、一个指针变量指向数组元素时可以做+或操作。 ( )25、具有块作用域的变量在块结束时,所占存储空间一定被释放。 ( )三、阅读程序写结果1、#include void main()int s=0, k;for(k=7; k=0; k-)switch(k)case 1:case 4:case 7: s+=k; break;case 2:case 3:case 6: break;case 0:case 5: s+; break;cout”S=”sendl;输出结果:答:S=142、写出以下程序运行

11、时分别输入1、0、5时的输出结果。#include void main() int a,b=5;couta;switch(a0) case 1: switch(b10) case 0:cout*endl;case 1:cout#endl;default:cout0) case 0:coutok1n;case 1:coutok2n;输出结果:答:第一次运行: 输入一个整数:1#!ok2第二次运行: 输入一个整数:0ok2第三次运行: 输入一个整数:5#!ok23、写出下列程序运行时输入9的运行结果#include void main()int a10=23,4,78,9,9,37,92,47,9

12、,17, x, i, k= -1;coutx;for(i=0; i10; i+) if(ai!=x) a+k=ai;for(i=0; i=k; i+)coutai“ ”;coutendl;输出结果:答: 23 4 78 37 92 47 17 4、#include void main()int a4,i,j,k;for(i=0;i4;i+) ai=0;k=3;for(i=0;ik;i+)for(j=0;j=k;j+)aj=ai+2;couta1 a3endl;输出结果:答:10 125、#include long fac(int);void main()int i;for(i=1;i=5;i+

13、)couti fac(i+1)endl;long fac(int n) static long f=1;f=f*n;return f;输出结果:答:1 22 63 244 1205 7206、#include void swap(int &m1,int &m2) m1*=2; m2+=2; void main() int a(10), b(20);coutabendl;swap(a,b);coutabendl;输出结果:答:10 2020 227、#include class myclass private: int x,y;static long sum;public: myclass(in

14、t a,int b) x=a;y=b;void getxy() sum*=x*y;coutsum=sumendl;long myclass:sum=1;void main() myclass ob1(1,2);ob1getxy();myclass ob2(3,4);ob2getxy();myclass ob3(5,6);ob3getxy();输出结果:答:sum=2sum=24sum=7208、#include class cube public:cube(int ht=2,int wd=5,int dp=3) height=ht; width=wd; depth=dp;coutdepth=d

15、epthconstruncted calledendl;cube() coutdepth=depthDestructed calledendl;int volume() return height *width*depth;private:int height,width,depth;void main() cube cone(10,20,15),ctwo;coutcone.volume()endl;coutctwo.volume()endl;输出结果:答:depth=15construncted calleddepth=3construncted called300030depth=3Des

16、tructed calleddepth=15Destructed called9、#include class Apublic:virtual void disp() cout”A”endl; ;class B:public Avoid disp() cout”B”endl; ;void p1(A &a1) a1disp(); void p2(A a2) a2disp(); void main() B b;p1(b);p2(b);输出结果:答:BA10、#include void f(int);void main() for(int i(1); i=4 ; i+) f(i);void f(in

17、t j) static int a=10; int b=1; a+=10; b+=5; couta+b=a+bendl;输出结果:答:20+6=2630+6=3640+6=4650+6=56四、程序填空1、以下的程序实现求分数序列2/1,3/2,5/3,8/5,13/8,21/13,前15项的和。#include#define N 15void main( )int i, m, n, k; double s=0 ;m=2, n=1;for( i=1; i=N; i+)s=s+10*m/n;k=m;m= m+n ;n= k ;cout”s=”sendl; 2、下面是利用运算符重载实现字符串加等的

18、程序,请在空白处填入合适的内容。#include#includeclass Cstringchar *s;public: Cstring(char *s1=0) s=new charstrlen(s1)+1; strcpy(s,s1); _ Cstring operator+=(Cstring &s1);_ void list()coutsendl;Cstring Cstring:operator+=(Cstring &s1) char *t=new charstrlen(s)+strlen(s1.s)+1; strcpy(t,s); strcat(t,s1.s); delete s; s=t

19、; _ return *this;_ void main() Cstring cstr1(abcd),cstr2(1234); _ cstr1+=cstr2;_ cstr1.list();3、下面程序将输入到数组a中的数据重新按逆序存放,然后将逆序存放后的数据输出。 #include const int N 10;void main() int aN,*p=a,*q,r;cout”输入10个整数:”;for (int i=0; iaI+;p=a; q=&a9;while( _ pq _ ) r=*p; p=q; *q=r;p+; _ q- _ ;cout” 逆序存放结果:”;p= a ;for

20、(i=0; iN ;i+)cout*p+ ;coutendl;4、输入一串有字母和数字混合的字符串,编程序将字符串中的字母和数字分开,分别存入两个不同的文件。# include # include # includevoid main() char ch100; cout请输入一串有字符和数字的字符串:endl; ofstream fout1(shuzitxt); ofstream fout2(zimutxt); if(!fout1) cout文件打开失败! endl; exit(1); if(!fout2) cout文件打开失败! ch; int i=0; do if( 0=chi&chi=

21、9 ) fout1chi; if(a=chi&chi=z)|(A=chi&chi=Z) fout2chi ; i+; while(chi!=0); fout1close(); fout2close();5、下面的程序输出小于200的素数,而且每行最多输出10个素数。 # include # include class Prime int p;public: Prime(int n)if (n3) p=3;else p=n; void Run(); ;void Prime:Run() int k,j,flag,line=0;for(j=2;jp;j+) flag=1;for (k=2;kj;k+

22、)if(j%k=0) flag=0 ;if(flag)coutsetw(5)j;line+;if( line%10=0 )coutendl;coutendl;void main() Prime obj(200) ;objRun();6、下面是将一个一维数组及各元素乘积写入文本文件data.txt的程序,请在空白处填入合适的内容。_#include _ #include void main() int a10=1,2,3,4,5,6,7,8,9,10,cum=0; _ ofstream fout(data.txt); _ if(!fout) /打开文件失败 coutCannot open the

23、 file!endl; exit(1); int i; for(i=0;i10;i+) cum*=ai; _ foutaiendl;_ /将数组元素写入文件 _ foutcumendl;_ /将元素的乘积写入文件 fout.close(); 7、以下程序用友元函数实现复数加和复数赋制运算,完成程序。#include class complexprivate:double real,image;public:complex( )real=0; image=0; complex(double r , double i )real=r; image=i; friend complex operato

24、r+(complex &a,const complex &b);complex &operator=(complex &c);void print();complex operator + (complex &a,const complex &b)return complex(_ a.real+b.real, a.image+b.image _);complex &complex:operator = (complex &c) real=c.real; imag=c.imag; return *this;void complex:print()coutreal”+”imageendl;void

25、 main() complex c1,c2(1.5,4.0),c3(6.5, -2.8);complex c4=c2+c3;c1=c4;c1.print();c4.print();8、下面是利用运算符重载实现字符串赋值(=)的程序,请在空白处填入合适的内容。#include#includeclass Cstringchar *s;public: Cstring(char *s1=0) s=new charstrlen(s1)+1; strcpy(s,s1); _ Cstring operator=(Cstring &s1);_ void list()coutsendl;Cstring Cstring:operator=(Cstring &s1) delete s;s=new charstrlen(s1.s)+1; strcpy(s,s1.s); _ return *this;_ void main() Cstring cstr1(abcd),cstr2(1234); _ cstr1=cstr2;_ cstr1.list();五、编程题1、从由键盘输入的若干整数中找出其中最大的数并输出。当输入为负数时结束输入。答:#include void main( ) int a,

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1