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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

学年第一学期C++期末复习题网上的.docx

1、学年第一学期C+期末复习题网上的2009-2010学年第一学期C+期末复习题网上的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=q; B. name=”lin”; C. name=new char5 D. name=new char(q);3. 下面的类型声明中正确的是(D )A. int &a4 B. int &*p

2、; 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. 创建对象 C. 创建类 D.程序装入内存6. 在下面有关友元函数的描述中,正确的说法是(A )A. 友元函数是独立于当前类的外部函数 B.一个友元函数不能同时定义为两个类的有友元函数 C.友元函

3、数必须在类的外部定义 D.在外部定义友元函数时,必须加关键字friend7. 使用派生类的主要作用是(A )A.提高代码的可重用性 B.提高程序的运行效率 C.加强类的封装性 D.实现数据的隐藏8. 关于虚函数,正确的描述是(A )A.构造函数不能是虚函数 B.析构函数不能是虚函数 C.虚函数可以是友元函数 D.虚函数可以是静态成员函数9. 如果在基类中将成员函数show声明为不带返回值得纯虚函数,正确的写法是(C )A.virtual show( )=0; B.virtual void show( ) C.virtual void show( )=0; D.void show( )=0 vi

4、rtual;10. 使用myFile.open(“sales.dat”,ios:app)语句打开文件sales.dat后,则(A )A.该文件只能用于输出 B.该文件只能用于输入 C.该文件既能用于输出,又能用于输入 D.若该文件存在,则清除该文件的内容二、分析下列程序中的错误,并说明原因(前2题每题6分,第三题8分,共20分)1#includeiostream.hclass student char name10; int age; float aver; void printStu( );void main( )student p1,p2,p3;p1.age=16;/2. #include

5、iostream.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(i1),y2(i2) y1=10;x=y1;int readme()const;/.private:int x;const int y1;int CTest:readme()constint i

6、;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()return price;private:int quan,price;int main()toy op22=toy(10,20),toy(30,48),toy(50,68),toy(70,80)

7、;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 Der1_Stock:public Stockpublic:void print()coutDeri1_Stock class.n;class Der2_Stock:public Stockpublic

8、: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 operator+(A a)+a.xi;return a;A operator-(A &a) -a.xi;return a;void A:print() coutxiendl;void main()A

9、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分)错误3:i=c.y1;有错(1分),y1是私有变量,不能直接存取(1分)三 1答案:10,20;30,48;50,6870,802答案:Stock class. Stock class. Stock

10、 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” ;下面的语句中错误的是( A)A. name3=q; B. name=”lin”; C. name=new char5 D. name=new char(q);3. 在下面有关对构造函数的描述中,正确的是(B )A

11、.构造函数可以带有返回值 B. 构造函数的名字与类名完全相同 C. 构造函数必须带有参数 D. 构造函数必须定义,不能缺省4. 在下面有关析构函数特征的描述中,正确的是(C ) A. 一个类可以定义多个析构函数 B.析构函数名与类名完全相同 C. 析构函数不能指定返回类型 D.析构函数可以有一个或多个参数5. 在下面有关静态成员函数的描述中,正确的是( B)A. 在静态成员函数中可以使用this指针 B.在建立对象前,就可以为静态数据成员赋值 C. 静态成员函数在类外定义时,要用static前缀 D. 静态成员函数只能在类外定义6. 友元的作用之一是( A)A. 提高程序的运行效率 B.加强类

12、的封装性 C.实现数据的隐藏性 D.增加成员函数的种类7. 假设已经定义好了一个类student,现在要定义类derived,它是从student私有派生的,定义类derived的正确写法是( C)A.class derived:student private B. class derived:student public C.class derived:private student/ D.class derived:public student/ 8. 要实现动态联编,派生类中的虚函数(D )A.返回的类型可以与虚函数的原型不同 B.参数个数可以与虚函数的原型不同 C.参数类型可以与虚函数

13、的原型不同 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; char c=a; 错误的调用语句是( D)A. max( i,i) B. max(c,c) C.max(int )c,i) D.max(i,c)二、分析下列程序中的错误,并说明原因(前2题每

14、题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; Stack() delete v; void push(T x) *p+=x; T pop() return *-p; int lenth()const return (p-v);private:

15、 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”.”endl; void setSno(int d)sno=d;void setAge(int a)age=a;void main( )student lin;lin.setSno(20021);

16、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() coutjendl;protected:int j;class b3:public b1,public b2public:b3(int ii,int jj,int kk):b1(ii),b2(jj)k=k

17、k;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.setall(50,60,70);o3.display();2#includeiostream.hclass Stockpublic:virtual void print()coutStock clas

18、s.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;template /声明一个类模板class stack public: void init() tos=0; void push(Type ch); /参数取Type类型 Type pop()

19、; /返回类型取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) coutstack is empty; return 0; tos-; return stcktos;int main() /定义字符堆栈 stack s1,s2; /创建两个模板参数为char型

20、的对象 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分

21、),因为Stack是类模板,应将模板实例化,才可定义对象(3分)3.答案:错误1:printStu、setSno两个成员函数不是公有成员,不允许在类外访问(4分) 错误2:成员函数在类外定义,应加上类名“student:”(2分) 错误3:setAge函数应在类中说明(2分)三、写出下列程序的运行结果(前2题每题6分,第三题8分,共20分)1答案:40 50 10 20 30 50 60 702答案:Stock class. Deri1_Stock class. Deri2_Stock class.3答案:pop s1:c pop s1:b pop s1:a pop s2:z pop s2:y

22、 pop s2:xA 卷 一、单项选择题:(每小题2分,共20分)1、假设已经有定义const char *name=”chen”;下列语句中错误的是_A. name3=q B. name=”lin” C. name=new char5 D. name=new char(q)2、在下列关键字中,用于说明类中公有成员的是_A. public B. private C. protected D. friend3、下列哪项不是面向对象程序设计的主要特征_。A. 封装 B. 继承 D. 多态 D. 结构4、构造函数是在_时被执行的。A. 程序编译 B. 创建对象 C. 创建类 D. 程序装入内存5、在

23、下面有关析构函数的描述中,正确的是_A. 一个类中可以定义多个析构函数B. 析构函数的名字和类名完全相同C. 析构函数不能指定返回类型D. 析构函数可以有一个或多个参数6、使用派生类的主要原因是_A. 提高代码的可充用性 B. 提高程序的运行效率 C. 加强类的封装性 D. 实现数据的隐藏7、下列的各函数中, _不是类的成员函数A. 构造函数 B. 析构函数 C. 友元函数 D. 拷贝构造函数8、关于虚函数,正确的描述是_A. 构造函数不能是虚函数 B. 析构函数不能是虚函数C. 虚函数可以是友元函数 D. 虚函数可以是静态成员函数9、友元的作用之一是_A.提高程序的运用效率 B.加强类的封装

24、性C.实现数据的隐藏性 D.增加成员函数的种类10、在下面有关静态成员函数的描述中,正确的是_A. 在静态成员函数中可以使用this指针B. 在建立对象前,就可以为静态数据成员赋值C. 静态成员函数在类外定义时,要用static前缀D. 静态成员函数只能在类外定义得 分 评卷人 二、 判断题:(每题1分,共10分)( )1、使用关键字class定义的类中缺省的访问权限是私有(private)的。( )2、构造函数和析构函数都不能重载。( )3、说明或定义对象时,类名前不需加关键字class。( )4、可以在类的构造函数中对静态数据成员进行初始化。( )5、protected和private区别在于protected成员可以被派生类访问,而private成员则不能被派生类访问。( )6、在C+中,封装是通过类实现的。( )7、无论何时编译器都为类构造一个无参数的缺省的构造函数。( )8、无论什么方式的继承,基类的私有成员都不能被派生

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

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