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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

本文(大学c习题答案习题13答案Word文档下载推荐.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

大学c习题答案习题13答案Word文档下载推荐.docx

1、 D:show( ) called. 8 若将A行的virtual去掉,则结果为: B:show( ) called. 5 对本题,若将虚线框中的fun( )和main( )函数同时修改成右侧实线框中的对应函数,则若A行有virtural时,结果为:show( ) called. 8 ;若A行无virtual时,结果为:show( ) called. 5 。3运行结果为:The B version BThe D1 info: 4 version 1The D2 info: 100 version BThe D3 info: -25 version 3去掉A行的virtual,则运行结果为:Th

2、e B version 1The B version 34(1)operator char *( )(2)return s; (3)str = num;四、编程题/ 实现1,赋值运算符重(=和+=)载函数的返回值为对象的引用。/ 缺点:不可实现对象的连续赋值,只能 c1= c2 #includeclass Complex float Real, Image;public: Complex(float r=0,float i=0) Real=r;Image=i; void show( ) cout(Real,Image)n; void operator=(Complex &); /用成员实现,注

3、意:=不能用友元实现 void operator+=(Complex & /用成员实现,+=可以用友元实现 friend Complex operator+(Complex &,Complex & /用友元实现 friend Complex operator-(Complex &;void Complex: operator=(Complex &c) /返回值 void Real=c.Real; Image=c.Image; operator+=(Complex & Real=Real+c.Real; Image=Image+c.Image;Complex operator+(Complex

4、&c1, Complex &c2) Complex t; t.Real=c2.Real+c1.Real; t.Image=c2.Image+c1.Image; return t;Complex operator-(Complex & t.Real=c1.Real-c2.Real; t.Image=c1.Image-c2.Image;void main( ) Complex c1(1,2),c2(3,4),c3; c3=c1; c3.show( ); c3=c1+c2; c3.show( ); c3+=c2; c3=c1-c2;/ 实现2,赋值运算符重(=和+=)载函数的返回值为对象的引用。/

5、优点:可实现对象的连续赋值,如 c1=c2=c3 Complex &Complex & Complex:c) /返回值为对象的引用 return *this; c3=c2=c1;2 #include class Fraction int m, n; / m 是分子,n 是分母 Fraction(int im=0,int in=1) int t=gcd(im,in); m=im/t; n=in/t; if(m*n0) / 若分子和分母同号 m=abs(m); n=abs(n); else / 若分子和分母异号 m=-abs(m); ; int gcd(int x,int y); Fraction

6、 & operator= ( Fraction b ) m=b.m; n=b.n; return *this; Fraction operator+ ( Fraction b ) return Fraction(m*b.n+n*b.m,n*b.n); Fraction operator- ( Fraction b ) return Fraction(m*b.n-n*b.m,n*b.n); friend Fraction operator* ( Fraction a, Fraction b ); friend Fraction operator/ ( Fraction a, Fraction b

7、 ); void Show() coutm/nendl;int Fraction:gcd(int x,int y ) /返回的最大公约数是正数 int r; if(x0) x= -x; if(y0) y= -y; while( r=x%y ) x=y; y=r; return y;Fraction operator* ( Fraction a, Fraction b ) return Fraction(a.m*b.m, a.n*b.n);Fraction operator/ ( Fraction a, Fraction b ) return Fraction(a.m*b.n, a.n*b.m)

8、; Fraction a(1,3),b(3,-12),c; couta= a.Show( );b= b.Show( ); c=a+b;a+b= c.Show(); c=a-b;a-b= c=a*b;a*b= c=a/b;a/b=class Point float x,y; Point(float a=0,float b=0) x=a;y=b;x=xty=yclass string char *str; int len; string(char *s=0)/构造函数,含缺省构造函数 if(s) /此处必须判断s是否为空指针。 len=strlen(s); /若s为空指针,则strlen(s)报运

9、行错。 str=new charlen+1; strcpy(str,s); else len=0,str=0; /注意逗号 string(string &st) /拷贝构造函数,必须要定义,想一想为什么? if(st.str) len=st.len; str=new charlen+1; strcpy(str,st.str); string( ) /析构函数 if(str) delete str; void set(char *s) /置值 /必须先删除原空间 if(s) str=new charstrlen(s)+1; str=0,len=0; void show(void) /显示串 co

10、utstr else The string is empty! int getlen(void) /获取长度 return len;/解 1 void delchar(char ch) /删除字符(删除所有参数指定的字符) int i, j; for(i=j=0; stri; i+) if( stri!=ch ) strj+=stri; strj=0 char *t=str;/使字符串长度与成员len的值保持一致 str=new charstrlen(t)+1; strcpy(str,t); len=strlen(str); delete t;/* 解 2 int i=0; /while(il

11、en) while(stri)/删除若干字符后,len与str指向的空间长度不一致 if(stri=ch)/可处理成一致,亦可忽略这种不一致 strcpy(str+i, str+i+1); len-;/注意 else i+;*/* 解 3 void delchar(char ch) int i=0,j=0; for(;ilen;i+) if(stri=ch) j=i; for(;jj+)/循环将后面的字符向前挪动一位 strj=strj+1; i-; string& operator=(string &s) / 赋值运算只能用成员实现 len=s.len; if(s.str) strcpy(s

12、tr,s.str); str=0; string & operator+=(string &s) /字符串拼接+= string t=*this; /调用拷贝构造函数,初始化t(保存老串) delete str; /删除老串 len=len+s.len; if(len) str = new charlen+1; strcpy(str,t.str); strcat(str,s.str); friend string operator+(string &s1, string &s2); /字符串拼接 +,类外实现 int operator=(string &s) /字符串比较 if(strcmp(

13、str,s.str)=0) return 1; return 0; /或 return(!strcmp(str, s.str);string operator+(string &s2) /字符串拼接 +,类外实现 string t; t.len=s1.len+s2.len; if(t.len) t.str=new chart.len+1; strcpy(t.str,s1.str); strcat(t.str,s2.str); t.str=0; return t; /因为返回对象(动态申请空间),所以要定义拷贝构造函数 char *a=C plus plus string s1(a), s2(l

14、anguage), s3;/测试两种构造函数 s1.show( ); s2.show( ); s3.show( ); cout Befor assign:n if(s1=s2) /测试比较运算符 = = s1 and s2 is same!endl if(!(s1=s2)s1 and s2 is different! s1=s2; /测试赋值运算符 = After assign s1=s2: if(s1=s2) s3=s1+s2; /测试加法及赋值运算符 +=,= s3+=s2; /测试运算符 += s3.delchar(e /想一想,能否处理成 s3-/测试删除字符串函数ag5 class

15、Matrix int *p, m, n; Matrix(int mm, int nn ) m=mm, n=nn; p=new intm*n; Matrix(Matrix &b) for(int i=0; ipi; Matrix operator+(Matrix &b) / ? if(m!=b.m | n!=b.n)The two matrix are not same size! return *this; pi += (b.p)i; void operator =( Matrix &b) int i,j; int *p1=p;m; for(j=0; jn; j+) cout(*p1+)end

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

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