《C++练习题库.docx》由会员分享,可在线阅读,更多相关《C++练习题库.docx(60页珍藏版)》请在优知文库上搜索。
1、C+程序设计模拟试卷(一)一、单项选择题(本大题共20小题,每小JgI分,共20分)在每小题列出的四个备选项中只有一个是符合题目要求的,清将其代码填写在题后的括号内。错选、多选或未选均无分.1 .编写C+程序一般需羟过的几个步骤依次是OA.编制、调试、编译、连接B.编辑、编译、连接、运行C.娟译、调试、编辑、连接。.弟洋、编科、连接、运行答案:B解析:羟过编辑、编洋、连接和运行四个步骤.编辑是4C+源程序筠入计算机的过程,保存文件名为CPM编译是使用系统提供的编评涔将懑程序CPP生成机涔活言的过程,目标文件为Obj,由于没有得到系统分配的绝对地址,还不能直.接运行。连接是将目标文件。W游换为U
2、J执行程序的过程,结果为CXc,运行是执行exc,在屏幕上显示结果的过程,2 .决定C+潘吉中函数的返【可值类型的是OA.return语句中的表达式类型B.调用该函数时系统匐机产生的类型C.园用该函数时的主调用函数类型D.在定义该函数时所指定的数据类型答案;1)斛析If价数的返回值类型由定义函数时的指定的数据类型决定的。A项的衣达式的值要依换成函数的定义时的返回类型.3 .下面叙述不正确的是OA.派生类一皎都用公有派生B.对基类成员的访问必须是无二义性的C.Mtft我容规则也适用于多更维承的组合D.班类的公布成员在派生类中仍然是公有的答案:D解折:绊承方式有三种:公有、私有和保护,多维承中,多
3、个基类具有同Z成员,在它们的子类中访问这些成员,就产生了二义性,但进行访问时,不能存在二义性.赋值兼容规则是指而生类对象可以当作基类对望使用,只要存在继承关系,所以单维承或多继承都适用.基类中的公行成员采用私有继承时,在派生类中变成了私有成m,所以D项错误.4 .所谓数据封装就是将一组数据和与这如数据有关操作组装在一起,形成一个实体,这实体也就是OA.类B,对象C.函数体D.数据块答案:A就折:类即数据和操作的组合体,数据是类的静态特征,操作是类具行的动作。5 .在公有海生类的成员南数不能宜按访问基类中继承来的某个成员,则该成员一定是基类中的()A.私有成员B.公有成员C.保护成员D.保护成员
4、或私有成员答案:A解析;在派生类中狄类的保护或者框类公仃都可以宜接访问,象类的私有成员只能是战关的成员函数来访问.,所以选择A项,6 .对基类和派生类的关系描述中,错误的是OA.派生类是狭类的具体化B.基类继承了派生类的属性C.麻生类是基类定义的廷续D.派生类是基类的特殊化答案:B解析:派生类的成员一个是来自基类,一个来自本身.所以派生类是基类的犷展,也是基类的具体化和特殊化.派生类是对基类扩展B度基类不能继承派生类成员.所以惜误.7 .关于this指针使用说法正确的是OA,保证每个对象拥行自己的数据成员,但共享处理这些数据的代码,保证她类秣有成员在子类中可以战访问.C.保证基类保护成S在子类
5、中可以被访问。0.保证基类公有成员在子类中可以被访问,答案:A解析;Ihic指针是唠藏的,可以使用该指针来访问调用对象中的数据”块类的成员在派生类中能否访问,与维承方式有关,与IhiS没有关系,所以选择A项,8 .所谓多态性足指OA.不同的为象谓用不I可名称的函数B.不同的对象调用相同名称的函数C. 一个对望调川不同名称的雨数D. 一个对象冏用不同名称的对象答案:B解析:多态性有两种静态多态性和动态多态性,静态多态性是指调用同名函数,由于参数的不同调用不同的同名除数:动态多余性是指不同对象调用同名函数时.由于对象不同调用不同的同名函数.多态性肯定具有相同的函数名所以选择B项.9.一个函数功能不
6、太复杂,但要求被猱繁两用,则应把它定义为A.内联函数B.重载函数C.递妇函数。.嵌套函数答案:R解析:内联函数特征代码少.颇繁调用,执行效率高.重载函数解淡统一接U的何麴:递归是子程序调用,程序调用要耗费很多空间和时间,循环/迭代都比递归有效率得多,递归只是从形式上,逻辑比较简洁.嵌套函数即反复词用,速度较慢.所以选择A项.10.卜面函数模板定义中不正确的是()A.BBD.D答案:R解析:A项中F是一个退网Q类型的位,而return中用返回类型作为返,岫错误,所以选择A项。11 .假设C1.aSSY邛UbIiCX,即类Y是类X的派生类,则说明一个Y类的对皱时和删除Y类对领时.调用构造函数和析构
7、函数的次序分别为OA. X.V:Y1XB. X.Y;X1YC. Y.X:X.YD. Y.X:Y1X答案:A解析:派生类构造函数必须对这三类成员进行初始化,其执行顶序:调用茶类构造函数;调用干对象的构造函数:源生类的构造函数体.析构函数在执行过程中也要对基类和成员对象进行操作,但它的执行过程与构造函数正好桐反.即对派生类新增普通成员进行清理:调用成员对象析构函数,对派生类新增的成员对象进行清理:调用基类析构函数.对基类进行清理.所以选择A%12 .适宜采用in1.ine定义函数僧况是OA.函数体含有循环语句B.函数体含有递归语句C.函数代码少、频繁调用。.除数代码多、不常调用答案:C解析:内联函
8、数具有程序代码少、嫉繁调用和执行效率高的特征,所以选择C项.13 .假定,个类的构造函数为A(intaa,intbb)a=aa;b=a*bb:),则执行Ax(4,5):语句后.x.u和x.b的值分别为()A. 3和15B. 5和4C. 4和20D. 20和5答案:C解析:a=4,因为后减,b的他与a、bb相关,b=1*5=20,而与丁没有任何关系。14 .在类中说明的成员可以使用关键字的是OA. pub1.icB. externC. cpuD. register答案:R解析:extern用于声明外部变心的。register声明寄存器类型变做,无CDU类型。它们都不能声明类.成员pub1.ic声
9、明为公有访问权限,所以选择R项。15 .下列不能作为类的成员的是O.自身类对软的指针B.自身类对象C.自身类对象的引用D.另一个类的对软答案;B解析:炎的定义,如果有自身类对象,使得循环定义,B项错误,在类中具有自身类的指针,可以实现链表的操作,当然也可以使用对象的引用.类中可以有另一个类的时象,即成员对象所以选择B选项.16 .使用地址作为实参传给形参.下列说法正确的是OA.实卷是形参的备份B.实参与形参无联系C.形参是实参的备份D.实参与形参是同一对效答案:D解析:地址作为实参,表示实参与形参代衣同一个对象.如果实参足数值.形参也是普通变Jh此时形参是实参的备份,所以选择D攻.17 .卜列
10、程序的输出结果是()Sinc1.UdCvoidmain()(i11tn3-110.20,30,40,50,601;int(*p)3:I=n:cou1.p00*.*(p0+1)*.*(*p)2end1.;A.10.30.50.10.20.30C.20.40.60D.10.30.60答案:H解析:如果数组元素布是相同类型的指针.则称这个数组为指竹数纵.指计数组般用于处理1维数组,声明的格式为;.P表示指向数组n的行指针。如果将指针的初始化(*p)34;地址的等价形式:pHPiMp+i)都表示b数组第行的第1个元素的甘地址.*(p+i)jpCi+j&PEi1.j都表示b数组第i1.行、第j+1.列元
11、素的地址.依的等价形式:*(*(+i)j)*(pi+j)pij都衣示b数祖第i+1、第j+1列元索的值.所以题目分别访问P00,p01,p02.18.在O*中使用St进行输入辎出、其中用于屏幕输入(A. cinB. cerrC. COUtD. c1.og答案:R解析;标准输入流cin:istream类的对软。标准输出流COut:OS1.rea1类的对象,(3)非缓冲型标准出播流CC】T:US1.reUm类的时象。(4)缓冲型标准出错流c1。的OS1.rCam类的对象19.假定AA为一个类,n为该类公芍的函数成员,X为该类的一个对望.则访问X对象中函数成员a的格式为SA. X.aB. x.a()
12、C. x-aD. (*x),a()答案;B解析:对象访问成员的方式为:对象名.成员.指针可以有两种,(*对/指针).成员或者对您指豺-成员.A选项是访问数捌成员.B项是访问成员函数,20.关于对象概念的描述中,说法错误的是()A.对象就是C语言中的结构变阜B.对象代表着正在创建的系统中的一个实体C对竹是扬的一个变如D.对之间的信息传递是通过消息进行的答案:R解析:A对象在C+中才有,包括数据和操作两项,而C中的变成只有数据,没有操作.所以A项错误,二、填空题(本大题共20小题,每小题1分,共20分)话在每小题的空格中填上正确答案错携,不填均无分。1 .Ci的流库预定义了4个流.它们是cin、c
13、out.c1.ogf11.”答案:(P193)cerr解析cin.cout,C1.og和Cerr分别用于标准输入、输出、标准错误流(接冲和标准错误流(小缓冲)2 .每个对望都是所园类的一个.答案:实例解析类是对型的抽象.对望是类的一个实例.3 .在已经定义了整型指针ip后,为了得到一个包括10个整数的数组并由2所指向,应使用语句一。答案:intip-newi11t10:解析ne.用来动态开辟空间.常用来产生动态数组及对象构造函数.4 .函数模板中紧随IemPIate之后尖括号内的类型参数都要冠以保留字_。答案:c1.ass解析类模板的使用temp1.atec1.assT,也可以引入多参数的如:
14、Icmp1.aic5 .定义类的动态对攻数组时,系统只能修自动附用该类的构造函数对其进行初始化.答案:无多解析使用now创建对数1,调用无参构造函数。6 .表达式COUt解析指针使用成员有两种方法:“”指向运算符和”成员访问运算符.8,假如个类的名称为MyC1.aSs,使用这个类的个对象初始化谈无位力、WQR.可以调用一构造函数来完成此功能,答案:受制或拷贝红制或拷贝构造函数就是用对象初始化新的对象.9 .对赋他运兑符进行垂毂时,应声明为函数.答案;(P183)类成员解析运或符虫我的方法有友元或者成员函数两种途径,但是赋俏运算符只能使用成员函数的方法来实现.10 .如果要把A类成员函数CJBJg回值为Void声明为类B的友元函数.则为在类B的定义中的入的i?5句_.答案:(P109)friendvoidA:f();解析成员函数作为月一个类的反元函数,格式为:friend返回类型类名:函数(形卷K11 .下列程序段的给址结果是for(i=0,j=10.k=0;i=jji*+tj-3.k=i*j):coutk: