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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

c复习题.docx

1、c复习题一、判断题+程序中,不得使用没有定义或说明的变量。()2C和C+都是面向对象的。()3对象实际上是功能相对独立的一段程序。()4包含有纯虚函数的类称为抽象类。()5函数定义voidswap(A&x)中的形式参数是一个变量的地址。()6C+提供了string类型。()7析构函数不能设置默认参数。()8静态成员函数只能直接访问该类的静态数据成员。()9用成员函数重载运算符所需的参数个数总比它的操作数少一个。()10在C+的输入输出系统中,最核心的对象是流。()11在面向对象程序设计中,类通过消息与外界发生关系。()12引用是某个变量或对象的别名,建立引用时要对它初始化。()13当用类的一个

2、对象去初始化该类的另一个对象时,该类的拷贝构造函数会被自动调用。()14拷贝构造函数可以被显示调用。()15一个类的析构函数只能有一个。()16私有派生时,基类的public成员仍被继承为派生类的public成员。()17设类Counter有私有变量x,它的构造函数Counter(inta)x=a;,则对象声明“Counterc1(3);”定义了三个Counter类的对象。()18静态成员函数不能访问静态数据成员。()19类中有函数声明:“friendvoidf(A&x);”,则函数f只能访问该类的公有成员。()20重载“”运算符函数可以带多个参数。()二、填空题1面向对象程序设计方法具有抽象

3、性、封闭性、继承性和等特点。2声明内联函数的关键字是。3C+有值传递和传递两种参数传递机制。4运算符用于动态内存分配,运算符用于释放动态分配的内存。5如果类A继承了类B,则类A称为类,类B称为类。6在C+中,要实现动态联编,必须使用基类指针调用。7具有纯虚函数的类称为。8定义模板的关键字是。9虚基类的作用是解决问题。10假定ABC是一个类,由“ABCa5,b(3)”创建对象时该类的构造函数被调用了次。11面向对象程序设计方法,程序可表示为程序=_。12面向对象程序设计着重于_的设计。13在创建对象时,使用类作为样板,故称对象为类的_。14声明内联函数的关键字是_15要求一个变量在程序运行期间其

4、值不能改变,在声明时要用的修饰符是_。16_是一种参数化的多态性工具,可以为逻辑功能相同而类型不同的程序提供代码共享机制。17动态联编所支持的多态性称为_的多态性。18使用C+风格的输入输出,在程序中必须包含头文件_。19默认的继承方式为_继承方式。20C+有值传递和_传递两种参数传递机制。21.控制格式输出的操纵符中,()是设置数据精度的,()是设置十六进制的。22.如果s是int型变量,且s=6,则下面s%2+(s+1)%2表达式的值为_。23已知字母a的ASCII码为十进制数97,且设ch为字符型变量,则表达式ch=a+4的值为_。24数组与函数参数联系密切,当用数组元素作函数参数时,这

5、是属于值传递;当数组名作为参数时,这是属于传递,对形参的改变可影响到实参。25利用“对象名.成员变量”形式访问的对象成员仅限于被声明为的成员;若要访问其他成员变量,需要通过函数或友元函数函数。26一个_和_的关系,正如基本数据类型与该类型的变量一个。27类成员的默认访问方式是_.28一个类有_个构造函数,有_析构函数。29类的_成员函数不能对类中的非静态成员进行默认访问。30如果说明类B是类A的友元类,则类B的所有成员函数都是类A的_。31利用成员函数对二元运算符重载,其左操作数为 ,右操作数为 。32类有两种用法:一种是类的实例化,即生成类的_;另一种是通过_派生出新的类。33运算函数中的关

6、键字是_,它和运算符一起组成该运算符函数的函数名。34如果一个类中有一个或多个纯虚函数,则这个类称为_。35文件的打开是通过通过使用类_的成员函数_来实现的。36设所有变量均为整型,则表达式(e=2,f=5,e+,f+,e+f)的值为_。37已知c的ASCII码为十进制数99,设k为字符型变量,则表达式k=c+1的值为_。38函数的形参在未被调用之前分配空间,函数的形参的要和实参的相同。39类的成员分为数据成员和_。40类完成了面向对象程序设计的_特性。三、单项选择题1下面说法法中错误的是()A、C语言是C+的一个子集B、C语言和C+是兼容的C、C和C+都是面向对象的D、C对C语言进行了一些改

7、进2函数没有返回值时,应该选择的函数类型是()A、intB、floatC、voidD、任意类型3在类定义的外部,可以被任意函数访问的成员是()A、所在类成员B、private类成员C、public类成员D、protected类成员4有关类的说法不正确的是()A、类是一种用户自定义的数据类型B、在类中,不做权限说明的数据变量是私有的C、在类中,不做权限说明的数据变量是公有的D、类的友元函数可以访问类的私有数据成员5类的析构函数被调用的时刻是()A、释放对象B、引用对象C、创建类D、创建对象6引入虚基类的目的是为了解决()A、静态联编问题B、二义性问题C、浅拷贝问题D、封装性问题7关于this指针

8、正确的说法是()A、this指针必须显示说明B、友元函数拥有this指针C、当创建一个对象后,this指针就指向该对象D、静态成员函数拥有this指针8下列中不能重载的运算符是()A、B、+C、=D、?:9派生类的的对象可以访问它的基类成员中的()A、公有继承的公有成员B、私有继承的公有成员C、公有继承的私有成员D、公有继承的保护成员10定义模板的关键字是()A、templateB、classC、staticD、public11面向对象程序设计着重于()的设计A、对象B、类C、算法D、代码12如果一个函数的功能不太复杂,但要被频繁调用应选用()A、重载函数B、内联函数C、递归函数D、友元函数1

9、3以下不属于类访问权限的是()A、privateB、staticC、publicD、protected14有关类的说法不正确的是()A、类是一种用户自定义的数据类型B、在类中,不做权限说明的数据变量是公有的C、在类中,不做权限说明的数据变量是私有的D、可以不定义类的拷贝构造函数15下面关于成员函数的说法中不正确的是()A、成员函数一定是内联函数B、成员函数可以重载C、成员函数可以无返回值D、成员函数可以设定参数的默认值16下面关于构造函数的说法中不正确的是()A、构造函数可以有参数,所以也可以有返回值B、系统可以提供默认的构造函数C、一个类可以有多个构造函数D、构造函数可以设置默认参数17关于

10、this指针正确的说法是()A、this指针必须显示说明B、友元函数拥有this指针C、当创建一个对象后,this指针就指向该对象D、静态成员函数拥有this指针18对delete运算符的下列描述中,错误的是()A、用它可以释放用new运算符创建的对象和数组B、用它释放一个对象时,它作用于一个new所返回的指针C、用它可以一次释放多次用new运算符创建的多个对象D、用它释放一个对象数组时,它用的指针名前须加下标运算符19可以访问类对象的私有数据成员的是()A、公有派生类的成员函数B、该类的友元类派生的成员函数C、其它类的公有函数D、该类的友元函数20一个类的析构函数有()A、任意多个B、4个C

11、、2个D、1个21C+源文件的扩展名为()。AcppBcCtxtDexe22在C+语言中,()的陈述是正确的。A能使用关键字并区分大小写B能使用关键字并不区分大小写C不能使用关键字并区分大小写D不能使用关键字并不区分大小写23运算符+、=、*、=中,优先级最高的运算符是()。A+B=C*D=24下列不合法的变量名为()。AintBint1 Cname_1Dname025已知x=43,ch=A,y=0;则表达式(x=y&chB&!y)的值是()。A0B语法错C1D“假”26以下不正确的是()。 A语句for(i=0;i+)表示无限循环Bfor(;)表示无限循环Cfor()也表示无限循环Dwhil

12、e(1)表示无限循环27在函数的返回值类型与返回值表达式的类型的描述中,错误的是()。A 函数返回值的类型是在定义函数时确定,在函数调用时是不能改变的B 函数返回值的类型就是返回值表达式的类型C 函数返回值表达式类型与返回值类型不同时,函数表达式类型应转换成返回值类型D 函数返回值类型决定了返回值表达式的类型28如果一个函数无返回值,定义时它的函数类型应是()。A任意BintCvoidD无29在C+语言中,关于参数默认值的描述正确的是()。A只能在函数定义时设置参数默认值B设置参数默认值时,应当从右向左设置C设置参数默认值时,应当全部设置D设置参数默认值后,调用函数不能再对参数赋值30若有以下

13、定义,则说法错误的是()。 inta=100,*p=&a;A声明变量p,其中*表示p是一个指针变量B变量p经初始化,获得变量a的地址C变量p只可以指向一个整形变量D变量p的值为10031列关于结构体的说法错误的是()。A结构体是由用户自定义的一种数据类型B结构体中可设定若干个不同数据类型的成员C结构体中成员的数据类型可以是另一个已定义的结构体D在定义结构体时,可以为成员设置默认值32下列有关类的说法不正确的是()。A?对象是类的一个实例B?任何一个对象只能属于一个具体的类C?一个类只能有一个对象D类与对象的关系和数据类型与变量的关系相似33()的功能是对象进行初始化。A析构函数B.数据成员C.

14、构造函数D.静态成员函数34关于友元的描述中,()是错误的。A?友元函数是成员函数,它被说明在类体内B?友元函数可直接访问类中的私有成员C?友元函数破坏封装性,使用时尽量少用D?友元类中的所有成员函数都是友元函数35了使类中的某个成员不能被类的对象通过成员操作符访问,则不能把该成员的访问权限定义为()。派生类的对象对它的()是可以访问的。A公有继承的基类的公有成员B.公有继承的基类的保护成员C.公有继承的基类的私有成员D.保护继承的基类的公有成员37多继承派生类构造函数构造对象时,()被最先调用。A派生类自己的构造函数B虚基类的构造函数C非虚基类的构造函数D派生类中子对象类的构造函数38C+类

15、体系中,不能被派生类继承的有()。A.构造函数B.虚函数C.静态成员函数D.赋值操作函数39编译时的多态性可以通过使用()获得。A虚函数和指针B重载函数和析构函数C虚函数和对象D虚函数和引用40下列描述中,()是抽象类的特征。A可以说明虚函数B可以进行构造函数重载C可以定义友元函数D不能说明其对象四、找出并改正以下程序段中的错误1如下的程序输出25(有3处错误)。usingnamespacestd;intmain() int*p=newint(); coutp; deletep; return0;2、下面程序输出“a=4b=5 c=6”,找出并改正其中的错误(有7处错误)。#includeus

16、ingnamespacestd;classBase1public:Base1()a=x;voidshowa()couta=a;private:inta;classBase2voidBase2(intx)b=x;voidshowb()coutb=b;private:intb;classDer:publicBase2public:Der(inti,intj,intk):Base1(i) voidshowc()coutc=c;private:intc;voidmain()Derobj;();();();return0;1下面程序定义一个点类Point,输出内容为一个点的坐标“(3,4)”。(有4处错

17、误)usingnamespacestd;classPoint public: Point(int,int); voiddisplayxy(); private: intX,Y;voidPoint:Point(intx,inty) X=x; Y=y;voidPoint:displayxy() cout(X,Y)endl;intmain() Pointp; cout(,)endl; return0;2如下程序建立一个分数类,并具有下述功能:防止分母为0;避免分母为负;重载运算符“*”完成分数的乘法运算。(有6处错误)#include#includeclassFraction Fraction(in

18、tx=0,inty=0);读下面的程序。画出各个类的DAG图;根据DAG图写出程序的输出结果。#includeusingnamespacestd;classB1 public: B1()coutconstructingB1endl;classB2 public: B2()coutconstructingB2endl;classD1:publicB2,virtualpublicB1public: D1()coutconstructingD1endl;classD2:publicB2,virtualpublicB1public: D2()coutconstructingD2endl;classD1

19、2:publicD1,virtualpublicD2public: D12()coutconstructingD12endl;intmain()D12obj;return0;5. #includeclassBase public: virtualvoidshow()coutBase:show()endl; ;classDerived1:publicBase public: voidshow()coutDerived1:show()endl; ;classDerived2:publicDerived1 public: voidshow()coutDerived2:show()endl;voidm

20、ain() Baseb; Derived1d1; Derived2d2; Base*ptr3=&b,&d1,&d2; for(inti=0;ishow();6.去掉上题(即第5小题)程序中的“virtual”关键字,运行结果如何?六、编程1.声明一个Rectangle(矩形)类,有数据成员width(宽)和height(高),有求面积的成员函数area()。创建一个Rectangle的对象进行测试。2.定义一个triangle(三角形)类,重载运算符“”,使之用于两个三角形面积大小的比较。并写一个main()函数测试它。3.写一个求两个数据的最大值的函数模板,并利用它分别求出3和4、a和b、”

21、photo”和”shop”等三组不同类型的数据的最大值。4定义一个三角形类triangle,私有数据成员为高和底,公有成员函数为求三角形的面积。在主函数中创建一个triangle的对象并输出这个对象的面积。5下面的代码已定义一个点类(Point)。在此基础上派生出矩形类(Rectangle)和立方体类(Cube)的层次结构,矩形类增加长和宽两个新数据成员,矩形的位置由点类继承而来。立方体类在矩形类的基础上增加高数据成员。各类要有支持初始化的构造函数和显示自己数据成员的成员函数。编写主函数,测试这个层次结构。输出立方体类的相关信息。完成下面的程序#includeusingnamespacestd

22、;classPointprotected:intx,y;public:Point(intmyx,intmyy)x=myx;y=myy;voiddisplayxy() cout(x,y)endl; ;6定义一个抽象类Shape,在此基础上派生出类Rectangel和Circle,二者都有计算对象面积的函数GetGetArea(),计算对象周长的函数GetPerim(),在主函数中定义一个Shape指针数组分别指向Rectangel和Circle的对象,并通过Shape类的指针数组实现对这两个对象的成员函数的调用,输出圆和矩形的面积和周长。7定义一个字符串类String,有两个私有数据成员:cha

23、r*content和intlen;要求:1)在构造函数中提示用户输入字符串;2)用户能提取和显示字符串;(分别由两个函数完成)3)实现对字符串中所有小写字母变成大写,并显示。4)在主函数中定义String类的对象,并对所有成员函数进行测试。8定义一个学生类Student,具有三个属性:学号(longint)、姓名(char*)及年龄(int),其中括号内注明了此属性值的数据类型,并要求自动生成学号;具有三个公有成员函数:带参数的构造函数,析构函数及print()(用于输出3个数据成员的值),在主函数中定义Student类的两个对象(其中一个动态创建)对Student类进行测试。9定义一个抽象类Shape,在此基础上派生出类Rectangel和Circle,二者都有计算对象面积的函数GetArea(),在主函数中定义一个Shape指针数组分别指向Rectangel和Circle的对象,并通过Shape类的指针数组实现对这两个对象的成员函数的调用,输出圆和矩形的面积。

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

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