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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

c++总复习试题.docx

1、c+总复习试题 典型例题解释程序功能并写出运行结果1. #includeclass s int x,y;public: s(int a,int b)x=a;y=b; int getx()return x; int gety()return x+y;void main() int (s:*fp)(); fp=s:getx; s s1(1,2); int v=(s1.*fp)(); fp=s:gety; int t=(s1.*fp)(); coutv=v,t=tendl;(答案:v=2,t=7)2. #includevoid main() int a=10,20,30,40,*pa=a; int

2、* &pb=pa;pb+; cout*paendl;(答案:20)编程序例题3.写一个程序,输入N个学生数据,包括学号、姓名、成绩,要求只输出成绩在60以下分数段的学生数据。(答案:#include#include#define N 3class studint no;char name10;int deg;public:void setdata(int n,char na,int d) no=n;deg=d;strcpy(name,na);void disp()if(deg60) printf(%-5d%-8s%3dn,no,name,deg); ;void main()stud stN;

3、int i,n,d; char na10; for(i=0;iN;i+) printf(输入学号 姓名 成绩:); scanf(%d%s%d,&n,&na,&d);sti.setdata(n,na,d); printf(输出数据n);printf( 学号 姓名 成绩n);for(i=0;iN;i+) sti.disp();4有一个向量类Vector,包括一个点的坐标位置x和y,设计两个友元函数,实现两个向量的加法和减法运算。在主函数中实现向量(10,20)和(30,40)的加减运算。(答案:#includeclass Vectorint x,y;public:Vector() Vector(i

4、nt i,int j)x=i;y=j; void disp() cout(x,y); friend Vector add(Vector v1,Vector v2) Vector v; v.x=v1.x+v2.x; v.y=v1.y+v2.y; return v; friend Vector sub(Vector v1,Vector v2) Vector v; v.x=v1.x-v2.x; v.y=v1.y-v2.y; return v; ; void main() Vector v1(10,20),v2(30,40),v3; v3=add(v1,v2); cout输出结果:endl;cout

5、;v1.disp();cout+;v2.disp(); cout=;v3.disp();coutendl; v3=sub(v1,v2); cout ;v1.disp();cout-;v2.disp(); cout=;v3.disp();cout、的重载。6.对文件的操作。复习题1. 下列语句中错误的是( D)A. int *p=new int(10) ; B. int *p=new int10 ; C. int *p=new int ; D. int *p=new int40(0)2. 假设已经有定义char *const name=”chen” ;下面的语句中正确的是( A)A. name3

6、=q; B. name=”lin”; C. name=new char5 D. name=new char(q);3. 下面的类型声明中正确的是(D )A. int &a4 B. int &*p ; C. int &q ; D. int I,*p=& I ;4. 在声明类时,下面的说法正确的是( C)A.可以在类的声明中给数据成员赋值 B. 数据成员的数据类型可以是register C. private、public、protected可以按任意顺序出现 D. 没有用private、public、protected定义的数据成员是公有成员5. 构造函数是在(B )时被执行的。A.程序编译 B.

7、 创建对象 C. 创建类 D.程序装入内存6. 在下面有关友元函数的描述中,正确的说法是(A )A. 友元函数是独立于当前类的外部函数 B.一个友元函数不能同时定义为两个类的有友元函数 C.友元函数必须在类的外部定义 D.在外部定义友元函数时,必须加关键字friend7. 使用派生类的主要作用是(A )A.提高代码的可重用性 B.提高程序的运行效率 C.加强类的封装性 D.实现数据的隐藏8. 关于虚函数,正确的描述是(A )A.构造函数不能是虚函数 B.析构函数不能是虚函数 C.虚函数可以是友元函数 D.虚函数可以是静态成员函数9. 如果在基类中将成员函数show声明为不带返回值得纯虚函数,正

8、确的写法是(C )A.virtual show( )=0; B.virtual void show( ) C.virtual void show( )=0; D.void show( )=0 virtual;10. 使用myFile.open(“sales.dat”,ios:app)语句打开文件sales.dat后,则(A )A.该文件只能用于输出 B.该文件只能用于输入 C.该文件既能用于输出,又能用于输入 D.若该文件存在,则清除该文件的内容二、分析下列程序中的错误,并说明原因(前2题每题6分,第三题8分,共20分)1#includeiostream.hclass student char

9、 name10; int age; float aver; void printStu( );void main( )student p1,p2,p3;p1.age=16;/2. #includeiostream.hclass stackpublic:stack(int sz);private:char *p;int size;stack:stack(int sz)p=new charsize=sz;void main()stack stt;/.3. #includeiostream.hclass CTestpublic:const int y2;CTest(int i1,int i2):y1

10、(i1),y2(i2) y1=10;x=y1;int readme()const;/.private:int x;const int y1;int CTest:readme()constint i;i=x;x+;return x;void main()CTest c(2,8);int i=c.y2;i=c.y1;三、写出下列程序的运行结果(前2题每题6分,第三题8分,共20分)1#includeiostream.hclass toy public:toy(int q,int p) quan=q; price=p;int get_quan()return quan;int get_price()

11、return price;private:int quan,price;int main()toy op22=toy(10,20),toy(30,48),toy(50,68),toy(70,80);int i;for(i=0;i2;i+) coutopi0.get_quan(),; coutopi0.get_price()n; coutopi1.get_quan(),; coutopi1.get_price()n;coutn;return 0;2#includeiostream.hclass Stockpublic:void print()coutStock class.n;class Der

12、1_Stock:public Stockpublic:void print()coutDeri1_Stock class.n;class Der2_Stock:public Stockpublic:void print()coutprint();ptr=&d1;ptr-print();ptr=&d2;ptr-print();3#includeiostream.hclass Apublic:A(int i):xi(i)A()xi=0;friend A operator+(A a);friend A operator-(A &a);void print();private:int xi;A ope

13、rator+(A a)+a.xi;return a;A operator-(A &a) -a.xi;return a;void A:print() coutxiendl;void main()A i(7);+i;i.print();-i;i.print();二 1答案:p1.age=16; 有错(3分),因为age是私有数据成员,不能直接访问(3分)2. 答案:stack stt; 有错,(3分)类中没有定义无参构造函数(3分) 3. 答案:错误1:y1=10;有错(2分),y1是常成员,不能修改(1分)错误2:x+;有错(2分),readme函数是常成员函数,不能修改对象的数据成员(1分)错

14、误3:i=c.y1;有错(1分),y1是私有变量,不能直接存取(1分)三 1答案:10,20;30,48;50,6870,802答案:Stock class. Stock class. Stock class.3答案:7 6B卷一、选择题(每题2分,共20分,答案填写在题后的表格内)1. 假设已经有定义 const char *const name=”chen” ;下面的语句中正确的是(D )A. name3=a; B. name=”lin”; C. name=new char5 D. coutname3;2. 假设已经有定义const char * name=”chen” ;下面的语句中错误

15、的是( A)A. name3=q; B. name=”lin”; C. name=new char5 D. name=new char(q);3. 在下面有关对构造函数的描述中,正确的是(B )A.构造函数可以带有返回值 B. 构造函数的名字与类名完全相同 C. 构造函数必须带有参数 D. 构造函数必须定义,不能缺省4. 在下面有关析构函数特征的描述中,正确的是(C ) A. 一个类可以定义多个析构函数 B.析构函数名与类名完全相同 C. 析构函数不能指定返回类型 D.析构函数可以有一个或多个参数5. 在下面有关静态成员函数的描述中,正确的是( B)A. 在静态成员函数中可以使用this指针

16、B.在建立对象前,就可以为静态数据成员赋值 C. 静态成员函数在类外定义时,要用static前缀 D. 静态成员函数只能在类外定义6. 友元的作用之一是( A)A. 提高程序的运行效率 B.加强类的封装性 C.实现数据的隐藏性 D.增加成员函数的种类7. 假设已经定义好了一个类student,现在要定义类derived,它是从student私有派生的,定义类derived的正确写法是( C)A.class derived:student private B. class derived:student public C.class derived:private student/ D.clas

17、s derived:public student/ 8. 要实现动态联编,派生类中的虚函数(D )A.返回的类型可以与虚函数的原型不同 B.参数个数可以与虚函数的原型不同 C.参数类型可以与虚函数的原型不同 D.以上都不对9. 有关运算符重载正确的描述是(D )A.C+语言允许在重载运算符时改变运算符的操作个数 B. C+语言允许在重载运算符时改变运算符的优先级C. C+语言允许在重载运算符时改变运算符的结合性 D. C+语言允许在重载运算符时改变运算符的原来的功能10. 假设定义了函数模板:templateT max(T x,T y) return (xy)?x:y; 并定义了int i=6

18、; char c=a; 错误的调用语句是( D)A. max( i,i) B. max(c,c) C.max(int )c,i) D.max(i,c)二、分析下列程序中的错误,并说明原因(前2题每题6分,第三题8分,共20分)1. #includeiostream.hclass pointpublic:int x,y;private:point( )x=1;y=2;void main( )point cpoint;cpoint.x=2;2. #includeiostream.htemplateclass Stackpublic: Stack(int sz) v=p=new Tsize=sz;

19、Stack() delete v; void push(T x) *p+=x; T pop() return *-p; int lenth()const return (p-v);private: T *v,*p; int size;void main()Stack obj(5);obj.push(10);3.#includeiostream.hclass studentint sno;int age;void printStu( );void setSno(int d);void printStu( )cout”nStudent No.is “sno”,”; cout”age is”age”

20、.”endl; void setSno(int d)sno=d;void setAge(int a)age=a;void main( )student lin;lin.setSno(20021);lin.setAge(20);lin.printStu( );三、写出下列程序的运行结果(前2题每题6分,第三题8分,共20分)1#includeiostream.hclass b1public:b1(int ii)i=ii;void display()coutiendl;protected:int i;class b2public:b2(int jj)j=jj;void display() cout

21、jendl;protected:int j;class b3:public b1,public b2public:b3(int ii,int jj,int kk):b1(ii),b2(jj)k=kk;void setall(int ii,int jj,int kk)i=ii;j=jj;k=kk;void display()coutiendl; coutjendl; coutkendl;private:int k;void main()b1 o1(40);o1.display();b2 o2(50);o2.display();b3 o3(10,20,30);o3.display();o3.set

22、all(50,60,70);o3.display();2#includeiostream.hclass Stockpublic:virtual void print()coutStock class.n;class Der1_Stock:public Stockpublic:void print()coutDeri1_Stock class.n;class Der2_Stock:public Stockpublic:void print()coutprint();ptr=&d1;ptr-print();ptr=&d2;ptr-print();3#includeconst int size=10

23、;template /声明一个类模板class stack public: void init() tos=0; void push(Type ch); /参数取Type类型 Type pop(); /返回类型取Type类型private: Type stcksize; /数组的类型为类型参数Type,即可取任意类型 int tos;template void stack:push(Type ob) if (tos=size) coutstack is full; return ; stcktos=ob; tos+; template Type stack :pop() if (tos=0)

24、coutstack is empty; return 0; tos-; return stcktos;int main() /定义字符堆栈 stack s1,s2; /创建两个模板参数为char型的对象 int i; s1.init(); s2.init(); s1.push(a); s2.push(x); s1.push(b); s2.push(y); s1.push(c); s2.push(z); for(i=0;i3;i+) coutpop s1: s1.pop()endl; for(i=0;i3;i+) coutpop s2: s2.pop()endl; return 0;二、分析下列程序中的错误,并说明原因(前2题每题6分,第三题8分,共20分)1答案:point cpoint;是错误的(3分),因为构造函数是私有成员(3分)2. 答案:Stack obj(5); 有错(3分),因为Stack是类模板,应将模板实例化,才可定义对象(3分)3.答案:错误1:printStu、setSno两个成员函数不是公有成员,不允许在类外访问(4分) 错误2:成员函数在类外定义,应加上类名“student:”(2分) 错

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

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