ImageVerifierCode 换一换
格式:DOC , 页数:48 ,大小:110KB ,
资源ID:4757977      下载积分:14 金币
验证码下载
登录下载
邮箱/手机:
验证码: 获取验证码
温馨提示:
支付成功后,系统会自动生成账号(用户名为邮箱或者手机号,密码是验证码),方便下次登录下载和查询订单;
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

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

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  
声明  |  会员权益     获赠5币     写作写作

1、填表:    下载求助     留言反馈    退款申请
2、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
3、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
4、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
5、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【精****】。
6、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
7、本文档遇到问题,请及时私信或留言给本站上传会员【精****】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。

注意事项

本文(C++面向对象程序设计》.doc)为本站上传会员【精****】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4008-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

C++面向对象程序设计》.doc

1、资料内容仅供您学习参考,如有不当或者侵权,请联系改正或者删除。 第2章 C+的初步知识【2.3】【解】B【2.4】【解】C【2.5】【解】C【2.6】【解】C【2.7】 【解】C【2.8】【解】A【2.9】【解】B【2.10】 【解】D【2.11】【解】D【2.12】解】 C【2.13】【解】 D说明:”int *p=new int(5);”表示动态分配1个整型内存空间,初值为5;”int *p=new int5;”表示动态分配5个整型内存空间;”int *p=new int;”表示动态分配1个整型内存空间;”int *p=new int5(0)”想给一个数组分配内存空间时,对数组进行初始化,

2、这是不允许的。【2.14】 【解】 D说明:name被定义为指向常量的常指针, 这个指针变量所指的地址不能改变,它所指向的地址中的数据也不能改变。”name3=a;”修改了name所指向的地址中的数据,”name=lin;”和”name=new char5;”修改了name所指的地址,只有D输出一个字符是正确的。【2.15】 【解】 A说明:name被定义常指针,它所指向的地址中的数据能改变,但它所指的地址不能改变。”name3=q;”修改了name所指向的地址中的数据,是正确的。而”name=lin;”、 ”name=new char5;”和”name=new char(q);”以不同的方法

3、修改了name所指的地址,都是错误的。【2.16】【解】 A说明:name被定义指向常量的指针, 它所指向的地址中的数据不能改变,但它所指的地址能够修改,而”name3=q;”修改了name所指向的地址中的数据,是错误的。”name=lin;” 、 ”name=new char5;”和”name= new char(q)”以不同的方法修改了name所指的地址,都是正确的。【2.17】【解】C【2.18】【解】 D说明:C+中不能建立引用数组和指向引用的指针,也不能建立引用的引用。因此A、 B、 C是错误的,D是正确的。【2.19】【解】A【2.20】【解】B【2.21】【解】(1) 这两个函数

4、原型是等价的,因为函数原型中的参数名能够缺省。(2) 这两个函数的第一行是不等价的,函数的第一行中必须包含参数名。【2.23】【解】本程序的运行结果如下:x+y=65【2.24】【解】本程序的运行结果如下:101说明: 在语句”:i=i+1;”中赋值号左边”:i”的中i是全局变量,赋值号右边的i是局部变量。因此执行该语句的结果是将局部变量i的值加1(即101)后赋值给全局变量i。【2.25】【解】本程序的运行结果如下:10 10说明:函数f(&m,n)中 第1个参数是引用参数, 引用参数是一种按地址传递参数的方法,对其的调用是传地址调用;而第2个参数是变量参数,对它的调用是传值调用。因此调用函

5、数f后, 实参a的值被改为10, 实参b的值不变,仍为10。【2.26】【解】本程序的运行结果如下:1020说明:函数f的参数是变量的引用, 对它的调用是传地址调用,因此函数f调用后,主函数中k的值变为10。又由于m是对函数f的引用,当m被赋值为20时,k的值也变为20 。【2.27】 【解】程序的作用是: 输入3个整数, 然后输出其中值最大的数。在主函数中输入3个整数, 然后调用f函数, 在f函数中实现找最小的整数, 用if语句比较两个数, 将大者存放在变量m中, 经过两个if语句的比较, m中存放的是3个整数中最大的数。运行情况如下: 2 4 7 (输入3个整数)7 (输出其中最大的数)【

6、2.28】 【解】实现本题功能的程序如下:#include#includeusing namespace std;int main() float x,y; coutxy; float z=pow(x,y); coutpow(x,y)=zendl; return 0;本程序的运行结果是:please input 2 floats to x,y: 2.1 3pow(2.1,3)=9.261说明:由于要用到系统函数pow(x, y), 因此要包含头文件cmath。【2.29】【解】实现本题功能的程序如下:#include using namespace std;int main() int *p=

7、new int20; /动态分配20个整型内存空间 *p=1; *(p+1)=1; /对前面2个内存空间赋值1 cout*pt*(p+1)t; p=p+2; /p指向第3个内存空间 for (int i=3;i=20;i+) *p=*(p-1)+*(p-2); cout*pt; if (i%5=0) coutendl;p+; /p指向下一个内存空间;return 0;本程序的运行结果是:1 1 2 3 58 13 21 34 5589 144 233 377 610987 1597 2584 4181 6765【2.30】 【解】实现本题功能的程序如下:#include #include us

8、ing namespace std;double sroot(int i) return sqrt(i);double sroot(long l) return sqrt(l); double sroot(double d) return sqrt(d);int main() int i=12; long l=1234; double d=12.34;couti的二次方根是: sroot(i)endl;coutl的二次方根是: sroot(l)endl;coutd的二次方根是: sroot(d)endl;return 0;本程序的运行结果是:i的二次方根是: 3.4641l的二次方根是: 35

9、.1283d的二次方根是: 3.51283第3章 类和对象3.1 习题参考解答【3.1】 【解】 类声明的一般格式如下:class 类名public: 公有数据成员;公有成员函数;private:私有数据成员;私有成员函数; ;类的声明由关键字class打头,后跟类名,花括号中是类体,最后以一个分号”;”结束。【3.2】【解】C【3.3】【解】B【3.4】【解】B【3.5】【解】D【3.6】【解】B说明:C+中对构造函数有一些规定:不能带返回值;能够不带参数;也能够缺省定义;但构造函数的名字与类名必须完全相同。【3.7】【解】B【3.8】【解】C【3.9】【解】C【3.10】【解】B【3.11

10、】【解】C说明:C+中对析构函数也有一些规定:没有参数;不能重载;析造函数的名字与是在类名前加”;析构函数不能指定返回类型。【3.12】 【解】C【3.13】【解】C【3.14】【解】B【3.15】【解】D【3.16】 【解】语句(1)使用带默认参数的构造函数,或不带参数的构造函数,定义了point类的两个对象p2和p3;语句(2)在建立新对象p2时,用已经存在的对象P1去初始化新对象p2,在这个过程中用”赋值法”调用了拷贝构造函数。语句(3)在建立新对象p2时,用已经存在的对象P1去初始化新对象p2,在这个过程中用”代入法”调用了拷贝构造函数。语句(4)将对象p1数据成员的值拷贝到对象p4中

11、, 这个过程是经过默认赋值运算符函数实现的。【3.17】【解】本程序的运行结果如下:Exit maindst 55【3.18】【解】本程序的运行结果如下: Counting at 0 Counting at 1 Counting at 2 Counting at 3 Counting at 4 Counting at 5 Couhting at 6 Counting at 7 Counting at 8 Counting at 9说明:在本程序中主函数main只包括了一个return语句,但竟然有内容输出! 什么时候调用了构造函数? 我们知道,构造函数在对象被定义时调用。那么对象anObjec

12、t是何时被调用的呢? 在主函数main之前,语句”test anObject”处。【3.19】【解】本程序的运行结果如下:Con.Copy con.default.【3.20】【解】 第1个错误:printStu()和setSno两个成员函数没有用public定义,不允许外部函数对对象进行操作。第2个错误:成员函数在类外定义,应加上类名”Student:”。第3个错误:setAge应在类中说明,而且在类外定义时,应加上类名”Student:”。【3.21】【解】构造函数Point是私有的,语句”Point cpoint;”执行时出现错误。【3.22】【解】 实现本题功能的程序如下:#inclu

13、de using namespace std;class Circlepublic: Circle(float r)radius=r; float area()return 3.14*radius*radius;private: float radius;int main() float r;coutr;Circle p(r);cout半径为r的圆的面积为:p.area()endl;return 0;程序的运行结果是:请输入圆的半径:3半径为3的圆的面积为:28.26【3.23】 【解】实现本题功能的程序如下:#include using namespace std;class cylinde

14、rpublic: cylinder(double a,double b); void vol();private: double r,h; double volume;cylinder:cylinder(double a,double b) r=a; h=b; volume=3.141592*r*r*h;void cylinder:vol() coutvolume is:volumen;int main() cylinder x(2.2,8.09); x.vol();return 0;程序的运行结果是:volume is:123.011【3.24】【解】实现本题功能的程序如下:#include

15、 using namespace std;class Date public: Date() Date(int y,int m,int d) year=y; mon=m; day=d; Date(Date&d) year=d.year; mon=d.mon; day=d.day; void SetDate(int Y,int m,int d) year=Y; mon=m; day=d; void printDate() cout日期是:year年mon月day日endl; int GetYear() return year; int GetMonth() return mon; int Get

16、Day() return day; private: int day,mon,year;void main() Date d1( ,6,8);cout日期是:d1.GetYear()年d1.GetMonth()月d1.GetDay()日endl; Date d2; d2.SetDate( ,8,1);d2.printDate(); Date d3(d1);d3.printDate();程序的运行结果是:日期是: 6月8日日期是: 8月1日日期是: 6月8日第4章 类和对象的进一步讨论4.1 习题参考解答【4.1】【解】 所谓对象数组是指每一数组元素都是对象的数组,也就是说,若一个类有若干个对象

17、,我们把这一系列的对象用一个数组来存放。对象数组的元素是对象,不但具有数据成员,而且还有函数成员。【4.2】【解】对象指针就是用于存放对象地址的变量。声明对象指针的一般语法形式为: 类名* 对象指针名;【4.3】【解】B【4.4】【解】C【4.5】【解】B说明:C+中规定,在建立对象前就能够为静态数据成员赋值。同时规定在静态成员函数中不能使用this指针;静态成员函数在类外定义时,不需要用static前缀;静态成员函数既能够在类内定义也能够在类外定义。【4.6】【解】D 【4.7】【解】C 【4.8】【解】D 【4.9】【解】A【4.10】【解】A说明:由于友元函数能够直接访问对象的私有成员,

18、因此友元的作用是提高程序运行的效率。【4.11】【解】A 【4.12】【解】B【4.13】【解】B 如果一个对象说明为常对象,则经过该对象只能调用它的常成员函数。题中,对象a被定义成类Sample的常对象,因此经过对象a只能调用其常成员函数disp。因此程序最后输出disp2。 【4.17】 【解】实现本题功能的程序如下:#includeusing namespace std;class Student public: Student(int n,float s):num(n),score(s) void display(); private:int num;float score;void

19、Student:display()cout学号:num 成绩: scoreendl;int main() Student stu6=Student(1001,88.5),Student(1002,75.5),Student(1003,68.5),Student(1004,99.0),Student(1005,93.5),Student(1006,86.0);Student* p=stu;p=p+1;for(int i=1;idisplay();return 0;本程序的运行结果如下: 学号:1002 成绩: 75.5学号:1004 成绩: 99学号:1006 成绩: 86【4.18】【解】实现

20、本题功能的程序如下: #includeusing namespace std;class Student public: Student(int n,float s):num(n),score(s) int num; float score; ;int main() Student stu6=Student(1001,88.5),Student(1002,75.5),Student(1003,68.5),Student(1004,99.0),Student(1005,93.5),Student(1006,86.0);void max(Student*);Student* p=&stu0;max

21、(p);return 0;void max(Student* arr) float max_score=arr0.score;int k=0;for(int i=1;imax_score) max_score=arri.score; k=i; cout学号:arrk.num 成绩: max_scoreendl;本程序的运行结果如下: 学号:1004 成绩: 99【4.19】 【解】实现本题功能的程序如下:#include using namespace std;class book public: book(int a, int b) qu= a;price= b; void show_mon

22、ey() coutqu*pricen;private: int qu,price;int main() book ob5= book(1,10),book(2,20), book(3,30),book(4,40),book(5,50) ; int i; for(i=0; i5; i+) obi.show_money(); return 0;本程序的运行结果如下: 104090160250【4.21】【解】实现本题功能的程序如下: #include #include using namespace std;class Studentpublic: Student(int n,string na,

23、double d) no=n;deg=d;name=na;sum+=d;num+;static double avg() return sum/num;static int total() return num;void disp() coutno name degendl;private:int no; /学 号string name; /姓 名double deg; /成 绩static double sum; /总成绩static int num; /学生人数;double Student:sum=0;int Student:num=0;int main() Student s1(100

24、1,Zhou,97),s2(1002,Zhan,65),s3(1003,Chen,88);cout学号 姓名 成绩n;s1.disp();s2.disp();s3.disp();cout学生人数=Student:total()endl;cout平均成绩=Student:avg();return 0;本程序的运行结果如下:学号 姓名 成绩1001 Zhou 971002 Zhan 651003 Chen 88学生人数=3平均成绩=83.3333 第5章 继承与派生5.1 习题参考解答【5.1】【解】 派生类能够继承基类中除了构造函数与析构函数之外的成员,可是这些成员的访问属性在派生过程中是能够调

25、整的。从基类继承来的成员在派生类中的访问属性是由继承方式控制的。类的继承方式有public(公有继承)、 protected(保护继承)和private(私有继承)3种,不同的继承方式导致不同访问属性的基类成员在派生类中的访问属性也有所不同。在派生类中,从基类继承来的成员能够按访问属性划分为4种:不可直接访问、 公有 (public)、 保护 (protected)和私有(private)。表5.1列出了基类成员在派生类中的访问属性。表5.1 基类成员在派生类中的访问属性基类中的成员继承方式基类成员在派生类中的访问属性私有成员(private)公有继承(public)不可直接访问私有成员(pr

26、ivate)私有继承(private) 不可直接访问私有成员(private)保护继承(protected) 不可直接访问 公有成员(public)公有继承(public) 公有(public) 公有成员(public) 私有继承(private) 私有(private) 公有成员(public) 保护继承(protected) 保护(protected) 保护成员(protected) 公有继承(public) 保护(protected) 保护成员(protected) 私有继承(private) 私有(private) 保护成员(protected) 保护继承(protected) 保护(

27、protected) 【5.2】 【解】派生类不能直接访问基类的私有成员,可是能够经过基类提供的公有成员函数间接地访问基类的私有成员。 【5.3】【解】当类的继承方式为公有继承时,基类中的所有保护成员在派生类中仍以保护成员的身份出现,在派生类内能够访问这些成员,但派生类外部不能访问它们,而在下一层派生类内能够访问它们。当类的继承方式为私有继承时,基类中的所有保护成员在派生类中都以私有成员的身份出现, 在派生类内能够访问这些成员,但派生类外部不能访问它们。【5.4】【解】一般情况下,当创立派生类对象时,首先调用基类的构造函数,随后再调用派生类的构造函数;当撤销派生类对象时,则先调用派生类的析构函

28、数,随后再调用基类的析构函数。【5.5】【解】当一个派生类具有多个基类时,这种派生方法称为多继承。多重继承的构造函数的执行顺序与单继承构造函数的执行顺序相同,也是遵循先调用基类的构造函数,再调用对象成员的构造函数,最后调用派生类构造函数体的原则。处于同一层次的各个基类构造函数的调用顺序,取决于声明派生类时所指定的各个基类的顺序,与派生类构造函数中所定义的成员初始化列表的各项顺序没有关系。析构函数的调用顺序则刚好与构造函数的执行顺序相反。【5.6】【解】B说明:经过派生类的使用,能够经过增加少量代码的方法得到新的的类,从而解决了代码的重用问题。【5.7】【解】A【5.10】【解】B.【5.11】

29、【解】A.【5.12】【解】B.【5.13】【解】B.【5.14】【解】本程序的运行结果如下:0, 0, 0 0, 1, 0 3, 6, 9 【5.15】 【解】本程序的运行结果如下:主食=bread 副食=steak 【5.17】 【解】 修改后的程序如下:#include using namespace std;class Timepublic: Time(int h,int m,int s) hours=h; minutes=m; seconds=s;void display() cout出生时间:hours时minutes分seconds秒endl; protected: int ho

30、urs,minutes,seconds;class Datepublic:Date(int m,int d,int y) month=m;day=d;year=y; void display() cout出生年月:year年month月day日endl; protected: int month,day,year;class Birthtime:public Time,public Date public: Birthtime(char *Cn,int yy,int mm,int dd,int hh,int mint,int ss) :Time (hh,mint,ss),Date(mm,dd,

31、yy) strcpy(Childname,Cn); void display() cout姓 名:Childnameendl; Date:display(); Time:display(); protected: char Childname20;int main() Birthtime yx(王小明 , ,12,17,18,20,30); yx.display();return 0;程序的运行结果是:姓 名:王小明出生年月: 12月17日出生时间:18时20分30秒第6章 多态性与虚函数6.1 习题参考解答【6.1】【解】从实现的角度来讲, 多态能够划分为两类:编译时的多态性和运行时的多态性

32、。编译时的多态性是经过静态联编实现的, 而运行时的多态性则是经过动态联编实现的。在C+中, 编译时多态性主要是经过函数重载和运算符重载实现的。运行时多态性主要是经过虚函数来实现的。【6.2】【解】A【6.3】【解】D【6.4】【解】A说明:C+规定构造函数不能是虚函数, 而析构函数能够是虚函数。【6.5】【解】D说明:C+规定虚函数在派生类中重新定义时,其函数原型,包括函数类型、 函数名、 参数个数、 参数类型的顺序,都必须与基类中的原型完全相同。【6.6】【解】A【6.7】【解】C 说明:”virtual show()=0; ”表示是show是纯虚函数,但没指定不带返回值,因此是错误的;”v

33、irtual void show();”未表明show是纯虚函数,因此也是错误的;”void show()=0 virtual;”把 virtual 的位置写错了。正确的答案应该是”virtual void show()=0;”。【6.8】【解】A【6.9】【解】C 说明: 如果在抽象类的派生类中没有重新说明纯虚函数,则该函数在派生类中依然为纯虚函数,而这个派生类依然还是一个抽象类。【6.10】【解】A第10章 异常处理和命名空间10.1 习题参考解答【10.1】【解】程序在运行过程中出现的错误统称为异常,对异常的处理称为异常处理。异常处理是对所能预料的运行错误进行处理的一套实现机制。【10.

34、2】【解】 C+处理异常的办法是:如果在执行一个函数过程中出现异常,能够不在本函数中立即处理,而是发出一个信息,传给它的上一级(即调用函数)来解决,如果上一级函数也不能处理,就再传给其上一级,由其上一级处理。如此逐级上传,如果到最高一级还无法处理,运行系统一般会自动调用系统函数terminate,由它调用abort终止程序。这样的异常处理方法使得异常的引发和处理机制分离, 而不是由同一个函数完成。这样做法的好处是使底层函数(被调用函数)着重用于解决实际任务,而不必过多地考虑对异常的处理,以减轻底层函数的负担,而把处理异常的任务上移到上层去处理。例如在主函数中调用十几个函数,只需在主函数中设计针

35、对不类型的异常处理,而不必在每个函数中都设置异常处理,这样能够大大提高效率。【10.3】【解】所谓命名空间, 实际上就是一个由程序设计者命名的内存区域。程序设计者能够根据需要指定一些有名字的命名空间, 将各命名空间中声明的标识符与该命名空间标识符建立关联,保征不同命名空间的同名标识符不发生冲突。B) 【10.4】【解】B【10.5】 【解】A 【10.6】【解】B【10.7】【解】 本程序的运行结果如下:4!=24n=-2 不能计算n!.程序执行结束.【10.8】【解】 本程序的运行结果如下:NS1:funNS2:fun 【10.9】【解】 实现本题功能的程序如下: #include usin

36、g namespace std;#include class Stud protected: int no;char name10; int score;public: Stud() ; void getdata() cinnonamescore; if(score100|score0) throw name; void disp() cout setw(4)nosetw(10)namesetw(16)scoreendl; ;int main() Stud st5;cout输入学生数据:endl;cout学号, 姓名, 成绩:endl;for(int i=0;i5;i+) trysti.get

37、data(); catch(char*s) cout s成绩输入错误!endl; cout输出学生数据:endl; for(i=0;i5;i+) sti.disp(); return 0;【解】 本程序的运行结果如下:输入学生数据:学号, 姓名, 成绩:1001 aa 451002 bb 102 bb成绩输入错误!1003 cc -8 cc成绩输入错误!1004 dd 671005 ff 78输出学生数据: 1001 aa 45 1002 bb 102 1003 cc -8 1004 dd 67 1005 ff 78 第11章 综合设计与实现【11.1】【解】 实现本题功能的程序如下: #include using namespace std; class Data_rec; class Student; class Teacher; class Employee; ostream& operator(istream& input, Student& ob); ostream& operator(istream& input, Teacher& ob); ostream& operator(istream& input, Employee& ob); class Data_rec friend class LinkList; protected:

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服