




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、C+程序设计试题一、单项选择题 (本大题共 20小题,每小题 1 分,共 在每小题列出的四个备选项中只有一个是符合题目要求的, 内。错选、多选 或未选均无分。1.对C+语言和C语言的兼容性,描述正确的是(A. C+兼容CB . C+部分兼容CC .2在C+中使用流进行输入输出,其中用于屏幕输出的对象是(A cerrBcinC cout D cfilecerr: 标准错误输出; cin: 标准输入3 对使用关键字new所开辟的动态存储空间,释放时必须使用( free B create 如没有使用 private 关键字定义类的数据成员,则默认为( private B public 使用值传递方式
2、将实参传给形参,下列说法正确的是( 形参是实参的备份 B 实参是形参的备份A4A5C delete D realseC protected20 分)请将其代码填写在题后的括号AC+不兼容DfriendAD . C兼容C+)A实参无联系在函数调用时,如某一默认参数要指明一个特定值,则有( 其之前所有参数都必须赋值 其前、后所有参数都必须赋值 设存在函数 int max(int , int)6AC7下列表达式不正确的是(AC)C 形参和实参是同一对象D .形参和AB 其之后所有参数都必须赋值D 其前、后所有参数都不必赋值返回两参数中较大值,若求 22, 59, 70 三者中最大值,Cint m =
3、 max(22int m = max(22 下列哪个类型函数不适合声明为内联函数(), max(59, 70) ; Bint m = max(max(22 ,59),70) ; , 59, 70) ; D int m = max(59 , max(22, 70) ; A )C 函数执行时间较短 D 函数执行时间过长8A9AC说明: 不能以形参名来区分函数; 型不同才能构 成函数重载。10对类中声明的变量,下列描述中正确的是(A.属于全局变量B .只属于该类不同实例所共享D.任何情况下都可被该类所有实例共享 11类的私有成员可在何处访问(DA. 通过子类的对象访问 B .本类及子类的成员函数中
4、类的成员函数中12如果没有为一个类定义任何构造函数的情况下,下列描述正确的是( A编译器总是自动创建一个不带参数的构造函数B. 这个类没有构造函数函数体语句较多 B 函数体语句较少 int Func(intint Func(int,int) ;不可与下列哪个函数构成重载(B ), int , int) ; B double Func(int, int) ;double Func(double , double) ; D double Func(int, double) ;不能以函数返回值来区分函数。 必须是形参的个数或者类CC)属于该类,某些情况下也可被该类C .通过该类对象访问C. 这个类不
5、需要构造函数D. 该类不能通过编译13. 一个类可包含析构函数的个数是(A. 0 个B. 1 个只有一个, 多了编译器都不知道调用哪个好。编译器可以根 据变量的类型和数量来确定调用哪个构造函数 效果。14. this 指针存在的目的是( B 保证基类公有成员在子类中可以被访问A B C DB )C .至少一个D . 0 个或多个而构造函数可以有多个, 因为构造函数调用时,而析构函数是系统调用的,不能做到这种保证每个对象拥有自己的数据成员,但共享处理这些数据成员的代码 保证基类保护成员在子类中可以被访问 保证基类私有成员在子类中可以被访问15. 下列关于类的权限的描述错误的是(A 类本身的成员函
6、数只能访问自身的私有成员 类的对象只能访问该类的公有成员 普通函数不能直接访问类的公有成员,必须通过对象访问 一个类可以将另一个类的对象作为成员ABCD16. 在编译指令中,宏定义使用哪个指令(BA. #include B . #defineC. #ifD.17. 设类A将其它类对象作为成员, 则建立A类对象时, A. A类构造函数先执行 B .成员构造函数先执行 能确定 类的组合, 描述的是一个类内嵌其他类的对象作为成员的情况, 与被包含的关 系。在声明一个组合类的对象时, 构造函数。这 时构造函数的调用顺序是:)#else下列描述正确的是 ( B C .两者并行执行不仅它自身的构造函数将被
7、调用,对象的构造函数;)D .不它们之间的关系是一种包含而且还将调用其内嵌对象的(1) 按照内嵌对象在组合类的声明中出现的次序, 依次调用内嵌(2) 执行本类构造函数的函数体 析构函数的调用执行顺序与构造函数刚好相反。A18.下列描述错误的是(A.在创建对象前,静态成员不存在C.静态成员不能是虚函数说明: 静态成员函数可以直接访问该类的静态数据和函数成员, 过参数传递方 式得到对象名,然后通过对象名来访问。19. 对于友元描述正确的是(B )A友元是本类的成员函数 B 友元不是本类的成员函数C.友元不是函数D .友元不能访问本类私有成员20. 在哪种派生方式中,派生类可以访问基类中的prote
8、cted 成员( B )A. public 和 privateB . public 和 protectedC . protected 和) B .静态成员是类的成员D .静态成员函数不能直接访问非静态成员 而访问非静态成员, 必须通private D 仅 protected 二、填空题 (本大题共 20小题,每小题 1分,共 20分) 请在每小题的空格中填上正确答案。错填、不填均无分。21. 设要把一个文件输出流对象myFile与文件“ f :相关联,所用的C+语句是:(“f:”); 。22. C+中 ostream类的直接基类是23运算符 只能用 成员24. 定义虚函数所用的关键字是_25.
9、 vector 类中用于返回向量中第_ ios 类 。_ 运算符来重载,不能用友元运算符来重载。 virtual 。1 个对象的方法是 _ front( ) 。20个char的向量E,其元素均被置为字符 t.26在C+中,利用向量类模板定义一个具有 实现此操作的语句是 _ vectorE(20, t ) 。27. 类的继承是指子类继承基类的_数据成员 和成员函数。28. 不同对象可以调用相同名称的函数,但可导致完全不同的行为的现象称为 _(类的多态 性) 。29. _ #include 指令指示编译器将一个源文件嵌入到带该指令的源文件之中。30. 设类 A 有成员函数 void Fun(voi
10、d) ;若要定义一个指向类成员函数的指针变量pafn来指向Fun,该指针变量的声明语句是:void(A:*pafn)(void);。31. 设在程序中使用如下语句申请了一个对象数组:Point * ptr = new Point2;则在需要释放 ptr 指向的动态数组对象时,所使用的语句是 _ delete ptr; 32. 在保护派生中,基类权限为33. 类 A 有如下成员函数int A:fun(double x)return (int) xint A:fun(int x)return x*2Private 的成员在派生类中 2; ;多态性或不可访问设a为类A的对象,在主函数中有int s=
11、a. fun+(2),则执行该语句后,s的值为 7。34. 对象传送的消息一般由3部分组成:接收对象名、调用操作名和 必要的参数35. 将指向对象的指针作为函数参数,形参是对象指针,实参是对象的 _地址值 。36. 在使用 string 类的 find 成员函数来检索主串中是否含有指定的子串时, 若在主串中不 含指定的子串,find函数的返回值是-1 。37. 在C+冲,声明布尔类型变量所用的关键字是38. 执行下列代码inta=29 , b=100;cout setw (3) a b endl;程序的输出结果是: 29100_。(2前面有个空格)39. 执行下列代码cout Hex: hex
12、 255 ; 程序的输出结果为_ Hex:ff。40. C+语言中可以实现输出一个换行符并刷新流功能的操控符是boolendl三、改错题 (本大题共 5 小题,每小题 2 分,共 10 分) 下面的类定义中有一处错误,请用下横线标出错误所在行并给出修改意见。 41 #includevoid main( ) int x=5 , y=6; const int * p= x;*p=y; cout*pendl ; *p=y;42 #includeiostream class f private :int x , y; public :f1( )x=0 ; y=0; pnnt( )co utx yend
13、l;void main( )f a ;(1,1) ;( ) ; (1,1); f1( ) 调用时实参与形参数量不一致 43 #includeclass f private public指针 p 所指向的为一常量,不能进行左值操作 h: int x=0 , y=0;:void f1(int a ,int b)x=a ;y=b; void get( )coutx yendl ; ;void main( )f a ;(1,3) ;( ) ; private:int x=0,y=0;44 #includeclass pointprivate数据成员声明时不允许直接赋值: float xpublic :
14、 void f(float a)x=a; void f( )x=0; friend float max(point& a ;float max(point& a, point& b)return :; void main( )point a , b;, point& b) ;cout(a,b) ; cout(a,b); max() 不是类的成员函数,不能用 ( ) 方式调用45 #include templateclass fprivate : T x , y;public : void f1(T a , T b)x=a ; y=b; T max( )retum(xy)x:y;;void ma
15、in( )f a ;cout( )endl ; cout()endl; x,y 是私有类型,不能在主函数中直接使用 四、完成程序题 (本大题共 5小题,每小题 4分,共 20 分) 46完成下面类中的成员函数的定义。class point private : int m , n ; public : point(int , int) ; point(point&) ; point:point(int a m=a; n _=b ;,int b)point:point(point&t ) m=; n=;47下面是一个输入半径,输出其面积和周长的#includeusing namespace std
16、; const double pi=; void main( )double r ;coutr double l=*pi*r double s=pi*r*r ; cout n The long islendl ;cout The area is :sendl;48在下划线处填上缺少的部分。#include#includeusing namespace std ; class complexpublic :int real;int imag;complex(int r=0, int i=0)real=r ;imag=i ;, complex& b)complex operator+(_ comp
17、lex&aint r=+;int i=+;return complex(r,i) void main( )complex x(1 ,2),y(3 ,4),z; z=x+y ;cout + i endl ; 49程序的输出结果如下:1,950 , 30 请根据输出数据在下面程序中的下划线处填写正确的语句。 源程序如下:#includeusing namespace std class baseprivate :int m ;public : base( ) ; base(int a):m(a) int get( )return m;void set(int a)m=a; ;void main()
18、base*ptr=new base2 ptr- set(30);ptr= ptr+1; ;ptr- set(50);base a2=1, 9 ;couta0.get()coutget( ) ptr=ptr-1 ; coutget( )delete ptr ; 50在下面横线处填上求两个浮点数之差的 #include using namespace std ; void main( )float a , b; float cha(float,float); a=; b= ; float c=cha(a,b) ;coutcendl ;,a1.get( )e ndlftftendlcha 函数的原型
19、声明、调用方法。函数 cha 的原型声明调用函数 cha, float y) float cha(float xfloat w ;w=x-y ;return w ;五、程序分析题 ( 本大题共 4 小题,每小题 5 分,共 20 分 ) 51给出下面程序的输出结果。#include template class SampleT n ;public :Sample(T i)n=i;; ;int operator=(Sample &)template int Sample:operator=(Sample s)if(n=return 1;else return 0; void main( )Sam
20、plesl(2) , s2(3) ;cout s1 与 s2 的数据成员(sl =s2 相等:不相等)endl ; Samples3 , s4 ;cout s3 与 s4 的数据成员(s3=s4 相等:不相等)endl ;S1与S2的数据成员不相等S3与S4数据成员相等52给出下面程序的输出结果。#includeusing namespace std ; templateT max(T ml , T m2)return(m1m2)ml:m2:,7) t max endl ;y , b t max( A , a )endl ;void main( )coutmax(1coutmax(75 y a
21、53给出下面程序的输出结果#include using namespace std ; class A public :int x ;A( ) ;A(int a)x=a; int get(int a)return x+a; void main( )A a(8) ; int(A:*p)(int) ; p=A:get ; cout(a.*p)(5)endlA*pi= a; cout*P)(7)endl1315 54给出下面程序的输出结果。include #include using namespace std ; class Book char*titlechar*author; int nums
22、oldpubliC : Book( ) Book(Const Char*strl , Const Char*str2 , Const int num) int len=strlen(strl) ; title=new Charlen+1 ; strCpy(title , str1) ; len=strlen(str2) ; author=new Charlen+1 ; strCpy(author , str2) ; numsold=num ;,const char*str2 , const int num)void setbook(Const Char*str1 int len=strlen(
23、str1) ; title=new Charlen+1 strCpy(title , str1) ; len=strlen(str2) ; author=new Charlen+1 ; strCpy(author , str2) ; numsold=num ;Book( )output output outputdelete title ; delete author ; void print(ostream&output)书名:titleendl;作者:authorendl ; 月销售量:nu msolde ndl; ; void main( ) Book obj1( 数据结构,严蔚敏,200) , obj2 ;(cout) ;(” C+语言程序设计,李春葆,210);(cout) ; 月销售量: 200书名:C+程序设计作者:李春葆月销售量: 210六、程序设计题 (本大题共 1 小题,共 10分)55在三角形类 TRI 实现两个函数,功能是输入三个顶点坐标判断是否构成三角形#include #i
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 来华留学生中级汉语综合课多模态线上教学研究
- 餐饮卫生安全教育培训
- 自我认知与心理健康
- 小班幼儿游戏活动课件设计
- 大班健康:吃进去的食物去哪了
- 解读护理条例案例
- 我爱游泳健康教育指南
- 颈椎影像检查技术课件教学
- 2025年吉林省中考招生考试数学真题试卷(真题+答案)
- 客服培训与发展战略
- GB/T 14260-2010散装重有色金属浮选精矿取样、制样通则
- GA 1283-2015住宅物业消防安全管理
- midas分析设计原理
- 2022年上高县教师进城考试笔试题库及答案解析
- 质量管理手册(隧道)(中交路桥建设有限公司)
- 黄大年式教学团队申报材料
- 出香港货物发票样板样本空白
- 医院免疫室标准化操作程序免疫室内质量控制操作指南(ELISA)人民医院检验科免疫SOP人民医院质量管理体系课件
- 柳州市柳东新区南庆安置区项目工程基坑支护方案
- 卵巢肿瘤ppt课件
- 发电可靠性考试真题及答案
评论
0/150
提交评论