C++试题及答案

上传人:油** 文档编号:44987774 上传时间:2021-12-06 格式:DOC 页数:13 大小:56KB
收藏 版权申诉 举报 下载
C++试题及答案_第1页
第1页 / 共13页
C++试题及答案_第2页
第2页 / 共13页
C++试题及答案_第3页
第3页 / 共13页
资源描述:

《C++试题及答案》由会员分享,可在线阅读,更多相关《C++试题及答案(13页珍藏版)》请在装配图网上搜索。

1、精品文档,仅供学习与交流,如有侵权请联系网站删除C+考试试卷得 分一、单项选择(每空1分,共20分)(注意选项填写到下面表格中!)12345678910cbdcb111213141516171819201. 已知:char *s=123456; 则couts;C) char *s1=abcd,*s2=efghijk;strcpy(s1,s2);D) char *s=abcdefg; cout D) +12. 下列关于运算符重载的描述中,错误的是( )。A) 运算符重载不可以改变优先级B) 运算符重载不可以改变结合性C) 运算符重载不可以改变运算符的操作数个数D) 加法运算符“+”和赋值运算符“

2、=”都重载之后,意味着“+=”也被重载了13. 有关运算符重载的说法错误的是( )。A) 在一个类中,可以对一个操作符进行多次重载B) 重载赋值运算符“=”时,为了保持原有特性,重载运算符函数中应该使用返回语句“return *this;”C) C+中所有的运算符都可以被重载D) 如果在某个类中使用成员函数对运算符重载,其左操作数必须是该类的对象14. 已知某个类的友元函数重载了+=和-,a,b,c是该类的对象,则“a+=b-c”被C+编译器解释为( )。A) operator+=(a,operator-(b,c)B) a.operator+=(b.operator-(c)C) operato

3、r+=(a,b.operator-(c)D) a.operator+=(operator-(b,c)15. 下面4个选项中,专门用于读取单个字符的是( )。A) cin.read() B) cin.get() C) cin.put() D) cin.getline()16. 下列关于getline( )函数的叙述中,错误的是( )。A) getline( )函数仅用于从键盘而不能从文件读取字符串B) getline( )函数读取字符串长度是受限制的C) getline( )函数读取字符串时,遇到终止符就停止D) getline( )函数中所使用的终止符默认是换行符,也可指定其他终止符17. 打

4、开文件的方式中,( )以追加方式打开文件。A) ios:in B) ios:out C) ios:app D) ios:trunc18. 当使用ofstream流类定义一个流对象并打开一个磁盘文件时,文件的隐含打开方式为( )。A) ios: out| ios:binary B) ios:in| ios:binaryC) ios:out D) ios:in19. 有关函数模板和模板函数说法错误的是( )。A) 函数模板只是对函数的描述,编译器不为其产生任何执行代码,所以它不是一个实实在在的函数B) 模板函数是实实在在的函数,它由编译系统在遇到具体函数调用时所生成,并调用执行C) 函数模板需要实

5、例化为模板函数后才能执行D) 当函数模板和一般函数同名时,系统先去匹配函数模板,将其实例化后进行调用20一个( )允许用户为类定义一种模式,使得类中的某些数据成员及某些成员函数的返回值能取任意类型。A) 类模板 B) 模板类 C) 函数模板 D) 模板函数得 分二、判断题(每空1分,共20分)注意:请将判断题结果(正确为T,错误为F)填写到下面表格中!12345678910111213141516171819201. 类定义中的成员默认的访问权限是private。2. 一个类中的保护成员和公有成员类似,在程序的任何地方都可以被访问。3. 系统提供的缺省构造函数没有参数,所以自定义构造函数必须带

6、有参数。4. 一旦自定义了构造函数,系统便不再提供缺省的构造函数。5. 一个类只能有一个构造函数和一个析构函数。6. 静态数据成员必须在类中进行定义和初始化。7. 静态成员函数中不能访问非静态成员。8. 重载插入运算符“”必须采用成员重载。9. 如果类A是类B的友类,那么类A中的所有成员函数都可以访问类B中的所有成员。10. 释放派生类的对象时,首先调用基类的析构函数,然后调用派生类的析构函数。11. 拥有纯虚函数的类称为虚拟基类,它不能用来定义对象。12. 虚函数只有在有继承的情况时才会存在。13. 已知:class Base1/; class Base2/; class Derived:p

7、ublic Base1,public Base2 Derived():Base2(),Base1()创建Derived类的对象时,先调用Base2的构造函数,然后调用Base1的构造函数,最后调用Derived的构造函数。14. 基类的指针或引用调用虚函数时采用后期绑定。15. 由抽象基类继承得到的派生类肯定是具体类。16. 友元函数内能够访问任何对象的任何成员。17. 对二元运算符采用成员函数重载时,只需要一个参数,而且该参数可以是内部类型。18. 对一元运算符采用某个类的友元函数重载时需要一个参数,参数为该类的对象,不能是其他类型。19. C+的输入/输出流库中,ios类是一个虚基类,is

8、tream类、ostream类以及streambuf类都是ios类的派生类。20. 设inf是一个ifstream类的流对象,则inf.seekg(10,ios:beg);表示将文件指针从文件当前位置向后移动10个字节。得 分三、读程序写结果(每空2分,共32分) (注意将结果写在下面相应横线上!) _1. 写出下面程序的运行结果。#includeclass A public: A( ) coutA:A()called.n; virtual A( ) coutA:A()called.n; class B:public A public: B(int i) coutB:B()called.n;

9、buffer=new chari; virtual B( ) delete buffer; coutB:B()called.n; private: char* buffer;void fun(A* a) delete a; void main() A *b=new B(10); fun(b);运行结果:2. 写出下面程序的运行结果。#includeclass Shapepublic: void Draw() coutShapeendl; virtual void Print()=0;class Circle:public Shapeprivate: double r;public: void

10、Draw() coutCircleendl; void SetData(double radius) r=radius; void Print() coutarea:3.14*r*rendl;class Rectangle:public Shapeprivate: double a,b;public: void Draw() coutRectangleendl; void SetData(double x,double y) a=x,b=y; void Print() coutarea:a*bDraw(); c.Print(); sp2.Draw(); r.Print();运行结果:3. 写出

11、下面程序的运行结果(注:运行结果中首行的空白行不考虑)。#includeclass CArray public: CArray(int i) Length=i; Buffer=new charLength+1; CArray() delete Buffer; int GetLength() return Length; char& operator(int i); private: int Length; char* Buffer;char& CArray:operator(int i) static char ch; if(i=0) return Bufferi; else coutnInd

12、ex out of range.; return ch; void main() int cnt; CArray string1(6); char *string2=Nankai; for(cnt=0;cnt8;cnt+) string1cnt=string2cnt; coutendl; for(cnt=0;cnt8;cnt+) coutstring1cnt; coutn; coutstring1.GetLength()endl;运行结果:4. 写出下面程序的运行结果。#includevoid fun(char *s) int n=0; while(sn!=0) n+; char t,*p=s

13、+n-1; while(sp) t=*s; *s=*p; *p=t; s+; p-;void main() char str=abcdefg; fun(str); coutstrendl; fun(str+1); coutstrendl;运行结果:得 分四、程序填空(每空2分,共28分) (注意将结果写在下面相应横线上!)1. 下面的程序是一个类模板,可实现求三个变量的和,请将程序补充完整。# include class ff Type a1, a2, a3; public: a1=b1; a2=b2; a3=b3; return a1+a2+a3; void main() ff x(12,1

14、3,14), y(16,17,18); coutx.sum( ) y.sum( )endl;2. 下面的程序将一个普通函数作为类的友元函数,求坐标点之和,并且程序输出结果为2,2,4,请将程序补充完整。#includeclass Point int X,Y; public: X=x; Y=y; Countp+; Point(Point &p) X=p.X; Y=p.Y; Countp+; Point() Countp-; static int Countp; void display()coutX,Y,;Point myfun(Point p1, Point p2, Point p3) Poi

15、nt tmp(p1.X+p2.X+p3.X, p1.Y+p2.Y+p3.Y);void main() Point pp0,pp1(1,2),pp2(1); Point p=myfun(pp0,pp1,pp2); p.display (); coutendl; / 输出Countp的值3. 下面的程序将一个已有文件的内容复制到另一个文件中。请将程序补充完整。#include#include#includevoid main( ) infile.open(d:file1.txt,ios:in); if(!infile) coutfile1.txt cant open.n; abort(); out

16、file.open(d:file2.txt,ios:out); if(!outfile) coutfile2.txt cant open.n; abort(); char str80=0; while(!infile.eof() infile.read(str,sizeof(str); coutstr; coutendl; infile.close();4. ARRAY类的定义如下,构造函数把参数n的值赋给s,给v动态分配长度为n的数组空间,然后利用数组参数a初始化v所指向的数组。请将类定义补充完整。class ARRAY int *v; int s; public: ARRAY( int a

17、, int n ); ARRAY( ) delete v; int size() return s; int& operator(int n);ARRAY(int a, int n) if( n=0 ) v=NULL; s=0; return; s=n; v= for(int i=0; in; i+)答案一、单项选择(每空1分,共20分)12345678910CBDCBDAACD11121314151617181920BDCABACCDA二、判断题(每空1分,共20分)(正确为T,错误为F)12345678910TFFTFFTFTF11121314151617181920FTFTFFTTFF三

18、、读程序写结果(每空2分,共32分)A:A()called. B:B()called. B:B()called. A:A()called.Shape area:314 Shape area:15 Index out of range. Index out of range.Nankai Index out of range.Index out of range.6 gfedcba gabcdef四、程序填空(每空2分,共28分)template ff(Type b1, Type b2, Type b3)Type sum() Point(int x=0, int y=0)friend Point

19、 myfun(Pointp1, Pointp2, Pointp3);return tmp;int Point:Countp=0; Point:Countp or pp0.Countpfstream infile, outfile; outfile.write(str,sizeof(str);outfile.close();ARRAY:new intn; vi=ai; or *(v+i)=*(a+i);注:第1空class也可写为typename ;第5空中p1 p2 p3可缺省;第10空,如果写成outfile.write(str,strlen(str);由于没有头文件string.h,应该算错;但如果写成outfilestrendl; 应该是对的。【精品文档】第 13 页

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!