2021面向对象程序设计期末考试含答案.docx

上传人:无*** 文档编号:68362107 上传时间:2022-12-27 格式:DOCX 页数:97 大小:48.09KB
返回 下载 相关 举报
2021面向对象程序设计期末考试含答案.docx_第1页
第1页 / 共97页
2021面向对象程序设计期末考试含答案.docx_第2页
第2页 / 共97页
点击查看更多>>
资源描述

《2021面向对象程序设计期末考试含答案.docx》由会员分享,可在线阅读,更多相关《2021面向对象程序设计期末考试含答案.docx(97页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、面向对象程序设计考前练习本试卷有3种题型共!20小题,作答时间为90分钟,总分120分。单选题判断题多选题、单选题(本部分共89题,每题1分,共89分)1、在类定义的外部,可以被访问的成员有()A,所有类成员B . private的类成员C . public或private的类成员D . public的类成员 rArBrCfyD参考答案:D共137人答过,平均正确率55.47%2,下列关于C+语言类的描述中错误的是().A.类用于描述事物的属性和对事物的操作B.类与类之间通过封装而具有明确的独立性C.类与类之间必须是平等的关系,而不能组成层次结构D.类与类之间可以通过些方法进行通信和联络 rA

2、rB(yCrD参考答案:C共117人答过,平均正确率70.09%3、定义析构函数时,应该注意()A,其名与类名完全相同B.返回类型是void类型C.无形参,也不可重载D .函数体中必须有delete语句AB C r D参考答案:C共116人答过,平均正确率68.97%4、下列函数中,正确的递归函数是()A . int Fun(int n) if(nl)? return 1;? else? return n*Fun(n+l);B . int Fun(int n) if (abs(n)l)? return 1;? else? return n*Fun(n*2);)D . int Fun(int n

3、)? if(nl)? return 1; else? return n*Fun(n-l);) r A 汗 Br Cr D参考答案:B共115人答过,平均正确率73.04%5、在C+ +中编译器所生成的文件的扩展名为()。A. .cppB . .objC.libD . .exeA Br Cr D参考答案:B共113人答过,平均正确率70.8%6、派生类的对象对它的基类成员中的()是可以访问。A,公有继承的公有成员B,公有继承的私有成员C,公有继承的保护成员D.私有继承的公有成员参考答案:A共112人答过,平均正确率73.21%7,C+设置虚基类的目的是()。A .消除二义性B,简化程C.提高运行

4、效率D.减少目标代码A r B r C r D参考答案:A共112人答过,平均正确率71.43%8、以下关于this指针的叙述中正确的是()。A .任何与类相关的函数都有this指针B.类的成员函数都有this指针C.类的友员函数都有this指针D .类的非静态成员函数有this指针 rArBrCD参考答案:D共107人答过,平均正确率63.55%9、实现运行时的多态性采用(),A.重载函数C.析构函数D.虚函数ABr L D参考答案:D共107人答过,平均正确率69.16%1、关于类定义格式的描述中,()是错的。A,一般类的定义格式分为说明部分和实现部分B,一般类中包含有数据成员和成员函数C

5、.类中成员有三种访问数据:公有、私有和保护D .成员函数都应是公有的、数据成员都应是私有的A r B r C 汗 D参考答案:D共108人答过,平均正确率65.74%11、关于new运算符的下列描述中,()是错误的。A.它可以用来动态创建对象和对象数组B .使用它创建的对象或对象数组可以使用运算符delete删除C.使用它创建对象时要调用构造函数D.使用它创建对象数组时必须指定初始值rArBrC(?D参考答案:D共108人答过,平均正确率63.89%12、在()情况下适宜采用inline定义内联函数。A,函数体含有循环语句B,函数体含有递归语句C,函数代码小,频繁调用D,函数代码多,不常调用A

6、r Cr D参考答案:C共107人答过,平均正确率75.7%13、定义析构函数时,应该注意().A.其函数名与类名完全相同B ,函数返回类型是void类型C.无形参,也不可重载D .函数体中必须有delete语句AB C r D参考答案:C共107人答过,平均正确率69.16%14、关于成员函数特征的下列描述中,()是错误的。A,成员函数一定是内联函数B,成员函数可以重载C.成员函数可以设置缺省参数值D,成员函数可以是私有的A r B r C r D参考答案:A共107人答过,平均正确率75.7%15、下列有关类的说法不正确的是()A.类是种用户自定义的数据类型B,只有类中的成员函数才能存取类

7、中的私有数据C,在类中,如果不作特别说明,所有的数据均为私有类型D ,在类中,如果不作特别说明,所有的成员函数均为公有类型ABC D参考答案:D共107人答过,平均正确率69.16%16、在C+程序中,对象之间的相互通信通过()。A.继承实现B.调用成员函数实现C.封装实现D,函数重载实现 A BC r D参考答案:B共107人答过,平均正确率72.9%17、对于任意个类,析构函数的个数有()A.0B. 1C.不确定 rAffBrCrD参考答案:B18、在下列各函数中,不是类的成员函数的是()。A,构造函数B.析构函数C,友元函数D.拷贝构造函数rArB(?CrD参考答案:C共107人答过,平

8、均正确率71.96%19、在多基继承的构造函数定义中,几个基类的构造函数之间用()分隔。A.:B.C. .参考答案:C共107人答过,平均正确率70.09%20、若类A和类B的定义如下:class Aint i,j;public:void get(););class B:Aint k;public:void make(int);/.);void B:make(int j)k = i*j;)则上述定义中,非法的表达式是().A. void get()C . void make(int)D . k=i*jABL D参考答案:D共107人答过,平均正确率66.36%已知:print函数是个类的常成员

9、函数,它无返回值,下列表示中正确的是()。A . const void print()B . void const printQC . void print(const)D . void printQconst rArBrC?D参考答案:D22、下列关于运算符重载的描述中,正确的叙述是()。A,运算符重载可以改变运算数的个数B.运算符重载可以改变语法结构C,运算符重载可以构造新的运算符D.运算符重载不可以改变优先级和结合性rArBrC?D参考答案:D共107人答过,平均正确率68.22%23、在类外部可以用p.a的形式访问派生类对象p的基类成员a,则a应是()。A,私有继承的公有成员B,公有继

10、承的私有成员C.公有继承的保护成员D.公有继承的公有成员rArBrC(?D参考答案:D共107人答过,平均正确率72.9%24、下列带缺省值参数的函数说明中,正确的说明是()。A . int Fun(int x=l,int y=2,int z)B . int Fun(int x,int y=2,int z=3)C . int Fun(int x,int y=2,int z)D . int Fun(int x=l,int y,int z=3)参考答案:A共107人答过,平均正确率71.96%25、C+源程序文件的缺省扩展名为()。A. cppB. exeC. objD . lik(yArBrCr

11、D参考答案:A共107人答过,平均正确率71.96%26、存储以下数据,占用存储字节最多的是()。A.0B. 0C. ”0”D. . 0.0A r B r C 0 D参考答案:D共107人答过,平均正确率68.22%27、字符串a + b=12n的长度为().A.6B.7C.8D . 9A Br Cr D参考答案:B共107人答过,平均正确率66.36%28、switch语句能够改写为()语句。A . forB. ifC. doD . whileA 台 B r C r D参考答案:B共107人答过,平均正确率69.16%29、函数重载是指()0A .两个或两个以上的函数取相同的函数名,但形参的

12、个数或类型不同B .两个以上的函数取相同的名字和具有相同的参数个数,但形参的类型 可以不同C.两个以上的函数名字不同,但形参的个数或类型相同D .两个以上的函数取相同的函数名,并且函数的返回类型相同 (?ArBrCrD共107人答过,平均正确率76.64%30、编写C+程序一般需经过的几个步骤依次是()0A .编译、编辑、连接、调试B .编辑、编译、连接、调试C.编译、调试、编辑、连接D .编辑、调试、编辑、连接ABC D参考答案:B共107人答过,平均正确率71.03%31、设inta=15,b=26 /,贝!Tcout(a,b);的输出结果是()。A. 15C . 15,26 rArBrC

13、D参考答案:D共107人答过,平均正确率67.29%32、下列的符号常量定义中,错误的定义是()0A . const M = 10B . const int M=20C . const char chD . const bool mark=true r AB Cr D参考答案:C 在下面循环语句中循环体执行的次数为()。int i=O,s=O; while(s20) i+; s+=i;A.4B. 5C.6D . 7rArB(?CrD参考答案:C共106人答过,平均正确率70.75%34、以下说法中正确的是()。A . C+程序总是从第一个定义的函数开始执行B . C+程序总是从main函数开始

14、执行c. C+ +函数必须有返回值否则不能使用函数D . C+程序中有调用关系的所有函数必须放在同一个程序文件中rA?BrCrD参考答案:B共106人答过,平均正确率68.87%35、假定p是具有double类型的指针变量,则表达式+ + p使p的值(以字节为单位)A. 1B.4C. sizeof(double)D . sizeof(p) rArBf?CrD参考答案:C共107人答过,平均正确率71.96%()是析构函数的特征。A.个类中只能定义个析构函数B,析构函数名与类名不同C.析构函数的定义只能在类体内D,析构函数可以有一个或多个参数*ArBrCrD参考答案:A共106人答过,平均正确率

15、75.47%3、关于delete运算符的下列描述中,()是错误的。A ,它必须用于new返回的指针C.对个指针可以连续使用多次该运算符D .指针名前只有一对方括号符,不管所删除数组的维数rArBf?CrD参考答案:C共107人答过,平均正确率68.22%38、关于类成员函数的描述中,()是错的。A类中可以说明一个或多个成员函数B.类中的成员函数只能定义在类体外C,定义在类体外的成员函数前加inline可以成为内联函数(内置函数)D,在类体外定义成员函数时,在函数名前除了加类名外,还需加作用域符A 汗 Br Cr D参考答案:B共107人答过,平均正确率69.16%假定有struct BOOK

16、char title40;floatprice;B00Kbgk;,则不正确的语句为()0A . BOOK *x=new bookB . BOOK x=nC+ Programming,27.0)C . BOOK *x=new BOOKD . BOOK *x=bookAB r C r D参考答案:A共106人答过,平均正确率74.53%40、下列对引用的陈述中不正确的是()。A ,每个引用都是其所引用对象的别名,因此必须初始化B.形式上针对引用的操作实际上作用于它所引用的对象C , 一旦定义了引用,一切针对其所引用对象的操作只能通过该引用间接 进行D.不需要单独为引用分配存储空间参考答案:C共10

17、7人答过,平均正确率74.77%面向对象程序设计思想的主要特征不包括()。B ,功能分解,逐步求精C,封装性和信息隐藏D.多态性A 汗 Br Cr D参考答案:B共107人答过,平均正确率74.77%类中定义的成员默认访问权限为(),A. publicB. privateC. protectedD . friendrAf?BrCrD参考答案:B共107人答过,平均正确率69.16%D. 、构造函数在()时被调用。A.程序编译B.程序装入内存C.创建类D.创建对象ABC 出 D参考答案:D共106人答过,平均正确率68.87%E. 、关于构造函数,下面说法错误的是()。A.对用户来说,是否调用构

18、造函数不可选,它由编译器在对象定义时自 动完成B.构造函数也是类的一个成员函数,具有一般成员函数的特征,也可以 被重载C.拷贝构造函数的作用是使用个已经存在的对象去初始化个新的 同类的对象D,构造函数的函数名与类名相同,而且有返回值Ar Br D参考答案:D共107人答过,平均正确率64.49%关于析构函数,说法错误的是()0A,与构造函数几乎正好相反,析构函数用于完成对象被删除前的清理工 作B,析构函数在对象的生存期即将结束时由系统自动调用。调用完成后, 对象消失,相应的内存单元被释放C,是类的个公有函数成员,它的函数名与类名相同,有返回值,可以 接受任何参数D,通常,如果没有显式说明定义析

19、构函,系统将自动生成默认析构函数, 不做任何事情rArBffCrD参考答案:C共107人答过,平均正确率73.83%46、下列关于运算符重载的描述中,错误的是()。A,可以通过运算符重载在C+种创建新的运算符B.赋值运算符只能重载为成员函数C.运算符函数重载为类的成员函数时,第一操作数是该类对象D.重载类型转换运算符时不需要声明返回类型(yArBrCrD参考答案:A共107人答过,平均正确率75.7%47、以下错误的C+标识符是()。A. AXHB._80C.3CD . mainABa Cr D参考答案:C共107人答过,平均正确率67.29%下列代码段声明了 3个类class Person;

20、class Student:public Person;class Undergraduate:Student;下列关于这些类之间的关系的描述中,错误的是()0A .类 Person 是类 Undergraduate 的基类B .类 Undergraduate 从类 Student 公有继承C .类Student是类Person的派生类D .类Undergraduate是类Person的派生类rA(?BrCrD参考答案:B共106人答过,平均正确率71.7%对于继承,下面说法错误的是()0A.派生类会继承基类的全部数据成员和除了构造、析构函数之外的所有 函数成员B.派生类会继承基类的全部数据成

21、员和除了构造、析构函数之外的所有 函数成员C.当基类中定义了带有形参表的构造函数时,派生类就应当定义构造函 数并传递参数给基类的构造函数D,当类的继承方式为私有继承时,基类中公有、保护和私有成员都以私 有成员身份出现在派生类中,派生类的其他成员可以直接访问它们 rArBrCf?D参考答案:D共106人答过,平均正确率66.04%50、下列字符串中不能作为C+标识符使用的是()0A . WHILEB. userC . IvarD . 9starsrArBrC(?D参考答案:D共106人答过,平均正确率65.09%已知枚举类型定义语句为:enum Token NAME, NUMBER, PLUS

22、= 5,MINUS, PRINT = 10;则下列叙述中错误的是().A .枚举常量NAME的值为0B .枚举常量NUMBER的值为1C,枚举常量MINUS的值为3D .枚举常量PRINT的值为10AB C r D参考答案:C共106人答过,平均正确率69.81%下列控制格式输入输出的操作符中,能够设置浮点数精度的是()0A. setprecisionB.setwC . setfillD . showpoint参考答案:A共106人答过,平均正确率75.47%53、执行语句序列int n;p cin n;j switch(n) case 1: case 2: cout ,1. case 3 c

23、ase 4: cout 2 ; break default: cout 3时,若键盘输入1,则屏幕显示()。A. 1B . 2C. 12D . 123AB C r D参考答案:C共106人答过,平均正确率66.04%54、已知下列语句中的x和y都是int型变量,其中错误的语句()。A.x=y+B.x=+yC . (x+y)+ +D . +x=y rArBf?CrD共106人答过,平均正确率74.53%55、已知:int m=10 ;在下列定义引用的语句中,正确的是()。A. int &x=mB. int y=&mC. int &zD . int &t=&m?ArBrCrD参考答案:A共106人

24、答过,平均正确率72.64%56、下列函数原型声明中错误的是()。A . void Fun(int x=0, int y=0)B . void Fun(int x, int y)C . void Fun(int x, int y=0)D . void Fun(int x=0, int y)rArBrC=A&ch=ZB.ch=ZC . ,A=ch = A & ch = ZABr L D参考答案:D共106人答过,平均正确率69.81%59、下列关于类定义的说法中,正确的是()A.类定义中包括数据成员和函数成员的声明B.类成员的缺省访问权限是保护的C,数据成员必须被声明为私有的D.成员函数只能在类

25、体外进行定义 A r BC r D参考答案:A共106人答过,平均正确率76.42%60、使用输入输出操作符setw,可以控制().A.输出精度C.对齐方式 rAf?BrCrD参考答案:B共106人答过,平均正确率68.87%void .func (int a, int& B: a+; b+; 有如下函数定义:本执行f码颦一则变量x和yInt x=0 , y=l func (x, y) ; using namespace std;class test Qprivate int a;/public:/test () gsy!” constructor” test (int a) (coutaen

26、dl;p test (const test& test) 有如下程序:户f不 一运行时输出的结d nd cout、 copy constructor endl .test () cout destructor” endl;int mainO test A(3);preturn ; )_果是()。A. 3B . constructor destructorC . copy constructorD . 3 destructorA r B r C D参考答案:D共106人答过,平均正确率66.04%下列选项中不符合良好程序设计风格的是()0B.数据说明的次序要规范化C.避免滥用goto语句D .模

27、块设计要保证高耦合、高内聚 rArBrC?D参考答案:D共105人答过,平均正确率69.52%64、在面对对象方法中,实现信息隐蔽是依靠()0B.对象的多态C.对象的封装D.对象的分类rArBf?CrD参考答案:C共106人答过,平均正确率73.58%65、已知一程序运行后执行的第一个输出操作是coutsetw(10)setfill( *) 1234 则此操作的输出结构是()。A . 1234B *234C *234D 234*Br Cr D参考答案:B共106人答过,平均正确率65.09%66、#include using namespace std; int mainO int sum;.

28、运行时的输出结果是()0for(int i=0; i6; i+=3) . sum=i;.for(int j = i; j6; j+). sum+=j;.j coutsumendl;.return 0;pA. 3B. 10 rArBrC(s,D参考答案:D共105人答过,平均正确率62.86%67、若已经声明了函数原型void fun(int a, double b=0.0 )I则下列重载函数 声明中正确的是()A . void fun(int a=90, double b=0.0)B . int fun(int a, double B)C . void fun(double a, int B)

29、D . bool fun(int a, double b = 0.0)Ar B Cr D参考答案:C共105人答过,平均正确率75.24%68、int k = 202有如下语句序列:do k+=5;匂聾 $ ; while (k 0)cput, *面的语句序列输出字符$和的个数分别是()0A . 0 和 25B . 0 和 26C . 1 和 25D . 1 和 26AB C r D参考答案:C共105人答过,平均正确率73.33%69、有如下类声明:class Foo int data;则Foo类的成员data是()。A.公有数据成员B,公有成员函数C.私有数据成员D,私有成员函数AB C

30、r D参考答案:C共105人答过,平均正确率72.38%70、int x =do有如下程序:x -= 2执行这个程序的输出结果是()COUtX;Jwhile(!(x);A. 1B . 30C. 1-2D,死循环AB C r D参考答案:C共105人答过,平均正确率69.52%在语句 for( int i = 50; i 1; i )cout / using namespace std;p class Complex 4j public:Complex(double r =0, double i =0):re(r), im(i) double real() const return re; /

31、double imagO const ( return im; Complex operator +(Conplex c const/有以下程丿予(return Complex(re+c. re, im+c. im) ; jprivatedouble re, im;p vwint main() Complex a = Complex(1, 1) + Coirplex(5) ;pcout a. real () + a. imagO i endl; return 0;p 程序执行后的输出结果是()0A . 6+6iB . 6+liC , l+6iD. 1+liA 荷 B r C r D共105人答

32、过,平均正确率67.62%73、有如下类声明:class MyClass int i;v private: int j;/ protected: int k; public: int m, n; int s;ij)厚其中,私有成员的数量为()。A. 1B . 2C . 3D .4A B r CD参考答案:B共105人答过,平均正确率67.62%74、以卜程序输出的结果是().#includeusing namespace std;void fun(int x=0, int y=0) coutxy;pVWV*W)率intmain()pfun;/return 0;/1pA. 00B. 50 rA?

33、BrCrD参考答案:B共104人答过,平均正确率66.35%75、在类声明中,紧跟在public后声明的成员的访问权限是()。A.私有B,公有C .靜D.默认 rA?BrCrD参考答案:B共105人答过,平均正确率65.71%76、下列有关内联函数的叙述中,正确的是()0A,内联函数在调用时发生控制转移B.内联函数必须通过关键词inline来定义C.内联函数是通过编译器实现的D ,内联函数函数体的最后一条语句必须是return语句AB CD参考答案:C共105人答过,平均正确率70.48%77、若有下面的函数调用:Fun( a + b, 3, max( n -1, b)则Fun的实参个数是()

34、。A. 3B.4参考答案:A共104人答过,平均正确率74.04%78、下列有关函数重载的叙述中,正确的是().A,重载函数的形参个数可以相同B.重载函数的形参个数必须不同C.重载函数的返回值类型必须不同D.重载函数的任何参数都不能带默认值参考答案:A共105人答过,平均正确率66.67%79、字面常量12、1.2. 12L的数据类型分别是()。A .long、double intB .long、float、intC .int、double, longD .int、float、longAr B6 Cr D参考答案:C共104人答过,平均正确率70.19%80、执行下列语句后,变量sum的值是(

35、)。int sum = for( int i = 1; i = 3; i+ )for( int j = 1; j = i; j+* sum+;*j屋A.7B . 8C.9D. 10AB C r D参考答案:C共105人答过,平均正确率67.62%下列函数原型中,可以作为类Foo构造函数的是()。A . void Foo(int)B . int Foo()C. Foo(int)constD . Foo(int)rArBrC(?D参考答案:D共105人答过,平均正确率66.67%82、若x和y是程序中的两个整型变量,则下列if语句中正确的是()A . if(x=0) y=l; else y=2B

36、. if(x=0) then y=l else y=2C . if(x=0) y=l else y=2D . if x=0 y=l; else y=2参考答案:A共105人答过,平均正确率70.48%83、下列叙述中,错误的是()。A . false是个逻辑型常量B . b是一个字符型常量C . 365是个int常量D . 3.1415926 是一个 double 常量rAffBrCrD参考答案:B共104人答过,平均正确率65.38%84、程序如下:#include4jusing namespace std;class A Qpublic:A(int i) :rl(i) void print

37、 ( ) cout Erl;) void print( ) const coutC rl*rl, private:pint rl;, )3 int mainO A al(2);pconst A a2(4);al. print 0;a2. print() ;preturn 0;/运行时的输出结果是()oA.运行时出错B.E2-C16-C. C4-C16-D . E2-E4-A 汗 B r C r D参考答案:B共105人答过,平均正确率67.62%85、计算斐波那契数列第n项的函数定义如下:int fib(int n) if (n = 1) return 1;else if (n = 2) re

38、turn 1;若执行函数调用表达式fib(3),函数fibelse return fib(n-l)+fib(n-2) 被调用的次数是()。A. 1B.2C.3D .4AB CD参考答案:C共105人答过,平均正确率74.29%86、有如下程序段:int i=l;pwhile (1)i+3if(i = 10) break”if (i%2 = 0) cout ;执行这个程序段输出字符的个数是()。A. 10B.3C .4ABff Cr D参考答案:C共105人答过,平均正确率69.52%87、下列关于C+函数的叙述中,正确的是()。A,每个函数至少要具有一个参数B,每个函数都必须返回一个值C.函数

39、在被调用之前必须声明D.函数不能自己调用自己 rArBf?CrD共105人答过,平均正确率76.19%88、/includei ostreanC” using rwnjeseace std class MyClass public:MyClass(int x):val(x) 0p void Set(int x) val=x; v void Print()const cout,val=/val,t? ; private: int val;有如下程序: ; 其主函数中错int mainO MyClass objl(10);.MyClass obj2(20);pobjl. Print 0 ; 语句

40、1obj2. Print 0 ; 语句 2pobj 1. Set (20); 语句 3jobj2.Set(30);语句 4p return ;。误的语句是()。A.语句1B .语句2C .语句3D .语句4Ab 出 C r D参考答案:C共105人答过,平均正确率66.67%89、在C+ +中,编译系统自动为个类生成缺省构造函数的条件是().A.该类没有定义任何有参构造函数B.该类没有定义任何无参构造函数C.该类没有定义任何构造函数D.该类没有定义任何成员函数Ar Cr D参考答案:C共105人答过,平均正确率74.29%二、判断题(本部分共30题,每题1分,共30分)90、面向对象的特点是封装、继承、多态()。r正确错误参考答案:正确共105人答过,平均正确率83.81%91、函数形参的作用域是该函数的函数体()正确错误参考答案:正确

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

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

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁