《面向对象程序设计》练习题库-2021版

合集下载

《面向对象程序设计JAVA语言程序设计》期末考试试题及部分答案

《面向对象程序设计JAVA语言程序设计》期末考试试题及部分答案

《面向对象程序设计JAVA语言程序设计》期末考试试题及部分答案一、单选题1.在下列概念中,Java语言只保留了DA.运算符重载B.结构和联合C.指针D.方法重载2.下列类定义中,不正确的是BA.cla某{....}B.taticcla某implementy1,y2{....}D.cla某e某tendy{....} C.publiccla某e某tendApplet{....}3.下列语句序列执行后,k 的值是Bintm=3,n=6,k=0;while((m++)<(--n))++k;i++先把i的初值赋给表达式(i++),作为表达式(i++)的值,然后i自增1作为i的值。

如i=1,则表达式(i++)的值等于1,而i的值变为2。

++ii先自增1,再把自增后的值赋给表达式(++i)。

如i=1,则表达式(++i)的值等于2,i的值也为2,A.0B.1C.2D.34.设i、j为int型变量名,a为int型数组名,以下选项中,正确的赋值语句是AA.a[0]=7;B.i=i+2C.i++---j;D.a(0)=66;5.Java语言的类间的继承关系是BA.多重的B.单重的C.线程的D.不能继承6.下列语句序列执行后,k的值是Cinti=10,j=18,k=30;witch(j-i){cae8:k++;cae9:k+=2;cae10:k+=3;default:k/=j;}A.31B.3C.2D.337.设有定义float某=3.5f,y=4.6f,z=5.7f;则以下的表达式中,值为true的是CA.某>y||某>zB.z>(y+某)C.某!=yD.某<y&!(某<z)8.下列修饰符中,定义类头时能使用的修饰符是CA.privateB.taticC.abtractD.protected9.设i、j、k为类某中定义的int型变量名,下列类某的构造函数中不正确的是BA.某(intm){...}B.void某(intm){...}D.某(inth,intm,intn){...}C.某(intm,intn){...}10.下列对封装性的描述中,错误的是DA.封装体包含了属性和行为B.封装使得抽象的数据类型提高了可重用性C.被封装的某些信息在封装体外是不可见的D.封装体中的属性和行为的访问权限是相同的11.下列关于包的描述中,错误的是BA.包是若干个类的集合B.包是一种特殊的类型D.包有有名包和无名包两种C.包是使用package语句创建的12.下列关于Applet程序的描述中,错误的是CA.Applet程序的主类必须是Applet类得子类B.Applet不是完整的独立程序C.Applet程序的主类中应有一个main()方法D.Applet的字节码文件必须嵌套在一个HTML文件中13.下列界面元素中,不是容器的是A.DialogB.FrameCC.LitD.Panel14.下列关于异常处理的描述中,错误的是DA.程序运行时异常由Java虚拟机自动进行处理B.使用try-catch-finally语句捕获异常C.使用throw语句抛出异常D.捕获到的异常只能在当前方法中处理,不能在其他方法中处理15.以下方法不属于迭代器(Iterator)接口所定义的方法的是D A.haNe某t()B.ne某t()16.主线程属于A.守护线程C.remove()D.ne某tElement()(C)B.Thread线程C.用户线程D.Runnable线程二、填空题1.2.三目运算符的3个操作数中,第一个操作数的类型必须是逻辑型的。

面向对象程序设计(java)题库

面向对象程序设计(java)题库

面向对象程序设计(java)题库抽题规范:(1)此题库共75道题,抽8道作为期末考试题。

其中,易8道,较易33道,较难18道,容易16道.(2)按题型,第一大题抽4道,每道10分;第二大题抽2道,每道10分;第三大题抽1道,每道20分后;第四大题扣1道,每道20分后。

(3)按难易程度:易(1道)、较易(4道)、较难(2道)、难(1道)。

一、答疑题(共40道,扣4道,每道10分后,共40分后)1.面向对象有哪三大特征?封装,继承,多态.2.什么是类?(易)类就是定义同一类所有对象的变量和方法的蓝图或原型。

3.什么就是对象?对象是类的实例;对象是通过newclassname产生的,用来调用类的方法;类的构造方法.。

4.类和对象的区别是什么?java中的类就是模板,而对象就是依据模板产生的实体5.详述java的PCB性,如何在java中同时实现PCB封装性是指的把代码封装到大括号中,只能访问自己内部的数据,外边的东西访问不了。

实现为加访问权限。

6.构造方法有哪些特点方法名与类名相同,没返回值,可以存有多个空载。

7.构造方法的促进作用就是什么?(更易)初始化对象,就是你new一个类的时候可以很方便的给你的对象里的属性赋值。

8.this在程序中所代表的意思(易)指当前对象9承继的促进作用就是什么?(极易)同时实现代码F83E43Se。

10.java支持多继承吗?(易)不能。

11.子类可以承继父类的哪些成员?(较难)变量和构造方法。

12.简述构造子类对象时子类和父类构造方法执行顺序(较易)先执行父类再执行子类。

13.什么就是方法的空载,如何挑选被空载的方法?(更易)同一个类中如果同时存在两个以上的方法有同一个名字,在这种情况下,我们说方法被重载了,这个过程被称为重载。

14什么就是方法的改写,如何挑选被改写的方法?(较难)当同名方法同时存在于子类和父类中时,对于子类来说就是将继承父亲的方法重载写过了,实现功能完全和父类无关。

1008面向对象程序设计-国家开放大学2021年1月期末考试真题及答案-计算机专业

1008面向对象程序设计-国家开放大学2021年1月期末考试真题及答案-计算机专业

共 30 分)
11. X (错)
12. X (错)
13. X (错)
16. ,J (对)
17. ,J (对)
18. ,J (对)
三、程序分析题(每小题 10 分,共 40 分)
14. .J (对)
19. X (错)
15. X (错) 20. ,J( 对)
评分标准:根据答案正确程度酌情给分。
21. s= 12
}
结果为:
24. Public class Test { Public static void main(String[] args) { Vector teamList = new Vector() ; teamList. add("Zhang"); teamList. add (11 Li 11) ; teamList. add(11Wang11); teamList. remove(O); teamList. remove(O); System. out. println(teamList. size()+ 11, 11 十 teamList. get(O));
D. switch
)。
A. volatile
B. pack
C. import
D. package
5. 假定一个字符串对象 x 的值为 "abcdef\n", 则 x. substring(0,3) 的值为(
)。
A. "003"
B. "bed"
C. "f\n"
D. "abc"
6. 把对象的属性和服务组合成一个独立的整体,尽可能隐蔽其内部的细节,这称为对象

《Java面向对象程序设计》考试卷及答案带注释

《Java面向对象程序设计》考试卷及答案带注释

一、单选题(每小题1分,共30分)1.在MyEclipse中,()视图可以将项目中包含的文件及层次结构展示出来。

CA) Package B)Declaration C)Navigator D) Console2.下列标识符中,正确的是()。

CA)class B) 123_rr C) _lei D) test&123.下列的()选项可以正确用以表示八进制值8。

0x代表16进制,0代表8进制 D A)0x8 B)0x10 C)08 D)0104.以下哪个不是Java的原始数据类型()DA) int B) boolean C) float D) Char引用数据类型5.下列有关Java布尔类型的描述中,正确的是()AA)一种基本的数据类型,它的类型名称为booleanB)用int表示类型C)其值可以赋给int类型的变量D)有两个值,1代表真,0代表假6.在Java中,不属于整数类型变量的是( ) AA) double 浮点型B) long C) int D) byte7.以下do-while语句构成的循环执行次数是()。

Bint k=0;do { ++k ;}while(k<1);A) 一次也不执行B) 执行1次C) 无限次D) 有语法错误,不能执行8.表达式(1/0<1)&& (12==0) 的值为()。

逻辑运算结果只有true和false两种 BA) true B) false C) 0 D) 运行时抛出异常9.以下()表达式不可以作为循环条件 AA) i=5 B )i<3 C) count==i D) bEqual=str.equals("q") 10.下列数组初始化正确的是() DA) int score[5] = {90,12,34,77,56};B) int[5] score = new int[];C) int[] score = new int[5]{90,12,34,77,56};D) int score[] = new int[]{90,12,34,77,56};11.若有定义:byte[] x={11,22,33,-66};其中0≤k≤3,则对x数组元素错误的引用是() CA) x[5-3] B) x[k] C) x[k+5] D) x[0]12.以下代码的输出结果是()。

福建师范大学2021年8月课程考试《面向对象的程序设计》作业考核(答案参考)

福建师范大学2021年8月课程考试《面向对象的程序设计》作业考核(答案参考)

《面向对象的程序设计》期末考试A卷姓名:专业:学号:学习中心:一、单选题 (请将答案填在下表中,共25题,每题2分,共50分)1 2 3 4 5 6 7 8 9 10C A B B AD A D A A11 12 13 14 15 16 17 18 19 20A C C C D D D A D C21 22 23 24 25D A A A A1、Observer模式不适用于()。

A.当一个抽象模型存在两个方面,其中一个方面依赖于另一方面,将这二者封装在独立的对象中以使它们可以各自独立的改变和复用B.当对一个对象的改变需要同时改变其他对象,而不知道具体有多少个对象有待改变时C.当一个对象必须通知其它对象,而它又不能假定其它对象是谁,也就是说你不希望这些对象是紧耦合的D.一个对象结构包含很多类对象,它们有不同的接口,而想对这些对象实施一些依赖于其具体类的操作2、顺序图由类角色,生命线,激活期和()组成。

A.关系B.消息C.用例D.实体3、UML中类的有三种,下面哪个不是其中之一()A.实体类B.抽象类C.控制类D.边界类4、如果用例A与用例B相似,但A的功能较B多,A的动作序列是通过在B的动作序列中的某些执行点上插入附加的动作序列而构成的,则称()。

A.用例A实现用例BB.用例A继承用例BC.用例A扩展用例BD.用例A包括用例B5、()技术是将一个活动图中的活动状态进行分组,每一组表示一个特定的类、人或部门,他们负责完成组内的活动。

A.泳道B.分叉汇合C.分支D.转移6、关于继承表述错误的是:()。

A.继承是一种通过扩展一个已有对象的实现,从而获得新功能的复用方法B.泛化类(超类)可以显式地捕获那些公共的属性和方法。

特殊类(子类)则通过附加属性和方法来进行实现的扩展C.在一定意义上说破坏了封装性,因为这会将父类的实现细节暴露给子类D.继承本质上是“白盒复用”,对父类的修改,不会影响到子类7、当我们想创建一个具体的对象而又不希望指定具体的类时,可以使用()模式。

《面向对象程序设计c++》复习题

《面向对象程序设计c++》复习题

《面向对象程序设计》综合复习题集一、程序填充1. 1. 已知一个类的定义如下:已知一个类的定义如下:已知一个类的定义如下:#include<iostream.h>class AA {int a[10];int n;public: void SetA(int aa[], int nn); //void SetA(int aa[], int nn); //用数组用数组aa 初始化数据成员a ,// //用用nn 初始化数据成员nint MaxA(); //int MaxA(); //从数组从数组a 中前n 个元素中查找最大值个元素中查找最大值void SortA(); //void SortA(); //采用选择排序的方法对数组采用选择排序的方法对数组a 中前n 个元素个元素// //进行从小到大排序进行从小到大排序进行从小到大排序void PrintA(); //void PrintA(); //依次输出数组依次输出数组a 中的前n 个元素,个元素,// //最后输出一个换行最后输出一个换行最后输出一个换行};使用该类的主函数如下:使用该类的主函数如下:使用该类的主函数如下:void main() {int a[10]={23,78,46,55,62,76,90,25,38,42};___AA x___;x.SetA(a,8);int ___m___;_m=x.MaxA()___;x.PrintA();cout<<m<<endl;}该程序运行结果为该程序运行结果为该程序运行结果为: : 23 25 46 55 62 76 78 9090(1) (2) (3)2 2..class A {char *a;public:A( ){ a=NULL;} _______________ // A( ){ a=NULL;} _______________ //定义无参构造函数,使定义无参构造函数,使a 的值为空的值为空A(char *aa) {a=_new char[strlen(aa)];strcpy(a,aa); // strcpy(a,aa); //用用aa 所指字符串初始化a 所指向的动态存储空间所指向的动态存储空间}~A( ){ delete []a; } // ~A( ){ delete []a; } //定义析构函数,删除定义析构函数,删除a 所指向的动态存储空间所指向的动态存储空间};(1) (2) (3)int a,b;public:A(int aa=0, int bb=0){ a=aa;b=bb;} // A(int aa=0, int bb=0){ a=aa;b=bb;} //分别用分别用aa 和bb 对应初始化a 和b };main() {A x(5),y(x) ; // A x(5),y(x) ; //定义类定义类A 的对象x 并用5初始化,同时定义y 并用x 初始化初始化A *p=&x ; // A *p=&x ; //定义定义p 指针,使之指向对象x }(1) (2) (3)3.class A {int a,b;public:___(1)__A_(int aa=0,int bb=0) // ___(1)__A_(int aa=0,int bb=0) //定义构造函数,使参数定义构造函数,使参数aa 和bb 的默认值为0, A=aa;b=bb; // A=aa;b=bb; //在函数体中用在函数体中用aa 初始化a ,用bb 初始化b};main() { A *p1, *p2;___(2)p1=new A();___ ; // ___(2)p1=new A();___ ; //调用无参构造函数生成由调用无参构造函数生成由p1指向的动态对象指向的动态对象___(3)_p2=new A(4,5)__ ; // ___(3)_p2=new A(4,5)__ ; //调用带参构造函数生成由调用带参构造函数生成由p2指向的动态对象,指向的动态对象, // //使使a 和b 成员分别被初始化为4和5}(1) (2) (3)4. #include<iostream.h>#include<stdlib.h>class A { int *a; int n; int MaxLen;public:A(): a(0), n(0), MaxLen(0) {}A(int *aa, int nn, int MM) {n=nn;MaxLen=MM;if(n>MaxLen) exit(1);___(1)_a=new int[MaxLen]__; // ___(1)_a=new int[MaxLen]__; //由由a 指向长度为MaxLen 的动态数组的动态数组 for(int i=0; i<n; i++) a[i]=aa[i];}~A() {delete []a;}int GetValue(int i) ___(2)___ // int GetValue(int i) ___(2)___ //函数体返回函数体返回a[i]a[i]的值的值的值};void main(){int b[10]={1,2,3,4,5,6,7,8,9,10};A r(b,10,10);int i,s=0;// //元素值依次累加到元素值依次累加到s 中cout<<"s="<<s<<endl;}(1) (2) (3)5. #include<iostream.h> #include<stdlib.h>class A {int *a; int n; int MaxLen;public:A(): a(0), n(0), MaxLen(0) {}A(int *aa, int nn, int MM) {n=nn;MaxLen=MM;if(n>MaxLen) exit(1);a=new int[MaxLen];___(1)___; // ___(1)___; //以以i 为循环变量把aa 数组中每个元素值数组中每个元素值 // //传送给传送给a 数组的对应元素中数组的对应元素中}~A();int GetValue(int i) {return a[i];} // int GetValue(int i) {return a[i];} //函数体返回函数体返回a[i]a[i]的值的值的值};___(2)___ //___(2)___ //析构函数的类外定义析构函数的类外定义析构函数的类外定义void main(){int b[10]={1,2,3,4,5,6,7,8,9,10}; A r(b,10,10);int i,s=0;___(3)___ ; // ___(3)___ ; //以以i 为循环变量,把r 对象的a 数据成员中的数据成员中的// //每个元素值依次累加到每个元素值依次累加到s 中cout<<"s="<<s<<endl;}(1) (2) (3)6. 6. 一种类定义如下一种类定义如下一种类定义如下: :class Goods{private:char gd_name[20]; // char gd_name[20]; //商品名称商品名称商品名称int weight; // int weight; //商品重量商品重量商品重量static int totalweight; // static int totalweight; //同类商品总重量同类商品总重量同类商品总重量public:Goods (char*str,int w){ //Goods (char*str,int w){ //构造函数构造函数构造函数weight=w;totalweight+=weight;}~ Goods (){totalweight -= weight;}char* GetN(){___(1)___;} // char* GetN(){___(1)___;} //返回商品名称返回商品名称返回商品名称int GetW(){return weight;}___(2)___ GetTotal_Weight() { //___(2)___ GetTotal_Weight() { //定义静态成员函数返回总重量定义静态成员函数返回总重量定义静态成员函数返回总重量 ___(3)___;}}(1) (2) (3)7.class Point{private:int x, y; public:Point(){x=y=0;}Point(int x0,int y0) {x=x0;y=y0;}int GetX() { return x; }int GetY() { return y; }void Print(){cout<<"Point("<<x<<","<<y<<")"<<endl;}___(1)___; // ___(1)___; //友元函数声明友元函数声明友元函数声明___(2)___; // ___(2)___; //友元函数声明友元函数声明友元函数声明};Point operator+(Point& pt,int dd) // //加号操作符重载函数,实现加号操作符重载函数,实现Point 类对象与整数加法类对象与整数加法{Point temp=pt;temp.x+=dd;temp.y+=dd;return temp;}Point operator+(Point& pt1,Point& pt2)// //加号操作符重载函数,实现两个加号操作符重载函数,实现两个Point 类对象的加法类对象的加法{Point temp=pt1;temp.x+=pt2.x;___(3)___;return temp;}(1) (2) (3)8. 8. 在下面一段类定义中,在下面一段类定义中,Derived 类是由直接基类Base 1和Base 2所派生的,Derived 类包含有两个间接基类BaseBase BaseBase,在初始化函数,在初始化函数Init 中,需要把x1和x2的值分别赋给属于基类Base1的x 成员和属于基类Base2的x 成员。

2021年面向对象程序设计形成性考核册作业一

2021年面向对象程序设计形成性考核册作业一

面向对象程序设计形成性考核册作业一一、单选题1. C++源程序文献缺省扩展名为( A )。

A. cppB. exeC. objD. lik2. 编写C++程序普通需通过几种环节依次是( B )。

A. 编译、编辑、连接、调试B. 编辑、编译、连接、调试C. 编译、调试、编辑、连接D. 编辑、调试、编辑、连接3. 程序中主函数名字为( A )。

A. mainB. MAINC. MainD. 任意标记符4. 存储如下数据,占用存储字节最多是( D )。

A. 0B. ‘0’C. “0”D. 0.05. 假设在程序中 a 、b 、c 均被定义成整型,所赋值都不不大于1,则下列能对的表达代数式abc1表达式是( D )。

A. 1.0/a*b*c B. 1/(a*b*c) C. 1/a/b/(float)c D. 1.0/a/b/c6. x>0 || y==5相反表达式为( B )。

A. x<=0 || y!=5B. x<=0 && y!=5C. x>0 || y!=5D. x>0 && y==57. 字符串”a+b=12\n ”长度为( B )。

A. 6B. 7C. 8D. 98. 循环语句“for(int i=0;i<n ;i++) cout<<i*i<<’ ’;”中循环体执行次数为( C )。

A. 1B. n-1C. nD. n+19. 在下面循环语句中循环体执行次数为( C )。

int i=0,s=0;while(s<20) {i++;s+=i;}A. 4B. 5C. 6D. 710. 在下面循环语句中循环体执行次数为( C )。

int i=0,s=0;while(s<20) {i++;s+=i;}A. 4B. 5C. 6D. 711. 循环体至少被执行一次语句为(C)。

A. for循环B. while循环C. do循环D. 任一种循环12. 在下面一维数组定义中,哪一种有语法错误。

面向对象程序设计综合练习题

面向对象程序设计综合练习题

面向对象程序设计综合练习题一、单项选择题1-1.C++语言是从早期的C语言逐步发展演变而来的,与C语言相比,它在求解问题方法上进行的最大改进是( B )。

A.面向过程 B.面向对象 C.安全性 D.复用性 1-2. C++源程序文件的缺省扩展名为( A )。

A. cppB. exeC. objD. lik1-3.由C++源程序文件编译而成的目标文件的缺省扩展名为( C )。

A. cpp B. exe C. obj D. lik1-4.由C++目标文件连接而成的可执行文件的缺省扩展名为( B )。

A. cpp B. exe C. obj D. lik1-5.编写C++程序一般需经过的几个步骤依次是( B )。

A. 编译、编辑、连接、调试 B. 编辑、编译、连接、调试C. 编译、调试、编辑、连接D. 编辑、调试、编辑、连接1-6.用“>>”运算符从键盘输入多于一个数据时,各数据之间应使用( D )符号作为分隔符。

A.空格或逗号 B.逗号或回车 C.逗号或分号 D.空格或回车1-7.C++中声明常量的关键字是( A )。

A.const B.extern C.public D.enum 1-8.以下叙述中正确的是( B )A. 使用#define可以为常量定义一个名字,该名字在程序中可以再赋另外的值B. 使用const定义的常量名有类型之分,其值在程序运行时是不可改变的C.在程序中使用内置函数使程序的可读性变差D. 在定义函数时可以在形参表的任何位置给出缺省形参值1-9.下列的符号常变量定义中,错误的定义是( C )。

A.const M=10; B.const int M=20;C.const char ch; D.const bool mark=true; 1-10.函数原型语句正确的是( B )。

A.int Function(void a) B.void Function (int); C.intFunction(a); D.void int(double a); 1-11.以下正确的函数原型语句是( C )。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

《面向对象程序设计》练习题库-2021版《面向对象程序设计》练习题库-2021版一、选择题1.假定p所指对象的值为5,p+1所指对象的值为8,则执行“(*p)++;”语句后,p所指对象的值为()A.5B.9C.6D.82.下面关于对象的描述中,不正确的是()A.对象是一种数据类型B.对象可大可小C.对象具有属性和行为两个要素D.对象是一种客观存在3.面向对象的程序是()的组合.A.数据结构+算法B.对象+方法C.对象+消息D.对象+算法4.以下不属于面向对象的程序设计语言的是()A.C#B.C++C.JavaD.C5.下面关于构造函数的说法,不正确的是()A.构造函数没有返回值B.构造函数不能重载C.构造函数名称一定要和类名一致D.构造函数的参数可以缺省6.下面有关内置函数说法不正确的是()A.提高执行效率B.增加目标代码长度C.与带参宏定义效果一样D.用于规模小且使用频繁场合7.以下不属于C++关键字的是()A.mutableB.classC.endlD.static8.下列关于类和对象的叙述中,错误的是()A.可以用一个类定义多个对象B.类比对象大,包含对象C.类是对某一类对象的抽象D.对象是类的具体实例9.下面关于常变量的描述中,不正确的是()A.用const定义常变量B.指向常变量的指针即是常指针C.常变量是不能改变值的变量D.常成员函数不能修改数据成员10.假定A为一个类,a为该类私有的数据成员,Get()为该类公有的函数成员,它返回a的值。

现有如下语句At,*p=t;,则得到t对象中数据成员a的语句为()A.p.Get();B.t.a;C.p-Get();D.t-a;11.自减运算符的重载中,函数形参是int,意味着()A.编译不通过B.后置自减C.前置自减D.2个参数12.下列语句中,不能定义一个常量的是()A.#definedoublePI=3.1414926B.constdoublePI=3.1415926;C.#definePI3.1415926D.conststaticdoublePI=3.1415926;13.如果一个类没有定义任何构造函数,下列描述正确的是()A.该类也就不定义析构函数B.编译器创建一个不带参数的构造函数C.该类不能通过编译D.编译器创建一个带参数的构造函数14.对于语句couta;,下列描述中不正确的是()A.“cout”是一个输出流对象B.该语句输出了a的值C.“”称作提取运算符D.该语句需要头文件iostream15.C++中,下面对结构体和类之间关系的描述中,正确的是()A.类中的默认权限是私有的,而结构体中默认权限是公有的B.类有函数成员,而结构体没有C.类有构造函数,而结构体没有D.类的成员可以定义为私有权限,而结构体成员不能定义为私有权限16.下面关于友元的说法,不正确的是()A.友元函数可以是成员函数B.友元类的函数均是友元函数C.友元不具备传递性D.友元的关系是双向的17.下面有关内置函数说法不正确的是()A.提高执行效率B.增加目标代码长度C.与带参宏定义效果一样D.用于规模小且使用频繁场合18.下面那个描述常成员函数的定义是正确的()A.constintshow()B.intconstshow()C.intshow()constD.intshow(const)19.已有定义virtualintarea()=0;下面关于该函数的解释中正确的是()A.该函数是纯虚函数B.该函数返回值为0C.该函数通常在派生函数中声明D.该函数的入口地址为020.下面哪个特性是C++相对于C所特有的()A.使用了引用的定义B.使用static关键字C.使用const关键字D.使用了指针的定义21.下列关于C++中运算符重载的描述中,错误的是()A.运算符重载可以对所有的运算符进行重载B.重载的运算符,其运算对象可以是自定义的数据类型C.运算符重载不能改变运算符的优先级D.运算符的重载实质上是函数的重载22.通过()方法可以在现有类基础上得到新的类。

A.引用B.继承C.包含D.封装23.关于赋值运算符,下面哪个说法不成立()A.必须是类成员函数B.不能被派生类继承;C.不能进行运算符重载D.编译器可以自动生成;24.下面关于构造函数的说法,不正确的是()A.构造函数不能重载B.构造函数没有返回值C.构造函数名称一定要和类名一致D.构造函数不能做虚函数25.下面属于一个C++程序头文件部分的是()A.类的声明B.类的实现C.类的使用D.类的编译26.下面关于cin的说明中,不正确的是()A.是一个对象B.是一个关键字C.用于输入D.配合提取运算符使用27.下面有关类的静态成员函数说法正确的是()A.可以访问非静态成员;B.只能访问静态成员;C.可以是对象的一部分;D.在定义时也要加上static;28.自减运算符的重载中,函数形参是int,意味着()A.编译不通过B.后置自减C.前置自减D.2个参数29.下面有关常成员函数不正确的说法是()A.只能访问常数据成员B.不能修改任何数据成员C.可以访问任何数据成员D.可以修改一般数据成员30.对类的常数据成员进行初始化,正确的是()A.在构造函数中赋值;B.利用公有接口函数对其赋值;C.利用成员初始化表;D.无法初始化,默认为0;31.派生类的私有函数成员不可以访问基类的()成员。

A.私有成员B.公用成员C.保护成员D.任何成员32.作为类的成员函数重载一个运算符时,如果参数表中有一个参数,通常情况下,说明该运算符有()个操作数A.0B.1C.2D.333.C++代码源文件的扩展名应为()A.cB.cppC.objD.exe34.若在类外可用x.p的形式访问派生类对象x的基类成员p,则p一定是()A.私有继承的公用成员B.公有继承的公用成员C.保护继承的公用成员D.公有继承的保护成员35.C++语言相对于C语言的最根本的变化是()A.增加了一些新的运算符B.允许函数重载,并允许设置缺省参数C.引进了类和对象的概念D.输入输出使用流对象36.下面属于一个C++程序头文件部分的是()A.类的实现B.类的声明C.类的对象实例D.类的编译37.设置虚基类的目的是()A.消除二义性B.方便程序书写C.减少目标代码体积D.提高运行效率38.静态成员函数一定没有()A.返回值B.返回类型C.指针参数D.*this39.下面关于友元的说法,不正确的是()A.友元函数可以是成员函数B.友元类的函数均是友元函数C.友元的关系是双向的D.友元不具备传递性40.下面有关类的静态成员函数说法正确的是()A.可以访问非静态成员;B.只能访问静态成员;C.可以是对象的一部分;D.在定义时也要加上static;41.以下运算符不能进行运算符重载的是()A.*=B.sizeofC.=D.42.在编译时,将所调用的函数代码嵌入到主调函数中,这种函数称为()A.内置函数B.子函数C.成员函数D.宏函数43.下面有关常成员函数不正确的说法是()A.只能访问常数据成员B.不能修改任何数据成员C.可以访问任何数据成员D.不能访问一般数据成员44.派生类的私有函数成员不可以访问基类的()成员。

A.私有成员B.公用成员C.保护成员D.任何成员45.下列关于函数模板与类模板的描述中,不正确的是()A.函数模板的实例化是由编译程序在处理函数调用时自动完成B.类模板的实例化必须由程序员在程序中显式的指定C.函数模板与类模板均可以显式调用D.定义函数模板时可以使用多个类型参数,而类模板不可以46.下列不属于类定义中的访问限定符的是()A.privateB.publicC.constD.protocted47.以下说法中,不正确的是()A.基类的析构函数不能被继承B.基类的构造函数可以被继承;C.静态成员函数只能访问静态数据成员;D.静态函数不能声明为虚函数;48.若在类外可用x.p的形式访问派生类对象x的基类成员p,则p一定是()A.私有继承的公用成员B.公有继承的保护成员C.保护继承的公用成员D.公有继承的公用成员49.下面与实现多态性无关的概念是()A.虚基类B.虚函数C.抽象类D.纯虚函数50.假定p所指对象的值为6,p+1所指对象的值为8,则执行“(*p)++;”语句后,p所指对象的值为()A.6B.9C.7D.8二、填空题1.C++中,专门用于定义重载运算符的关键字是。

2.假定用户没有给一个名为BASE的类定义析构函数,则系统为其定义的默认析构函数写法为。

3.在C++中,继承间接共同基类时只保留一份成员的方法是。

4.继承关系可以是public、和。

5.常数据成员只能通过构造函数的初始化。

6.派生类与其基类均有定义intb;则派生类中访问的b是在中的定义。

7.常对象中的数据成员必须通过_________函数才可以访问。

8.对象将其大部分实现细节隐藏起来,这种机制称为。

9.通常可将含有纯虚函数的类称为,可用该类作为基类去建立派生类。

10.如果希望类的成员为该类所有对象所共享,可以使用关键字________来修饰。

11.在C++中,由继承而产生的新类,它的对象对同一个消息会作出不同的响应,这种特性被称为。

12.从系统实现角度看,C++中的动态多态性是通过来实现的。

13.在C++中,用于动态分配内存的运算符是。

14.C++支持友元的目的是提高。

15.在类的定义中,如果定义为函数要求派生类必须实现同名函数。

16.在类的定义中,通常用函数对类的数据成员进行初始化。

17.如果希望类的成员为该类所有对象所共享,可以使用关键字____来修饰。

18.在C++中,用struct定义一个类时,数据成员和成员函数的默认访问权限是。

19.常对象中的私有数据成员必须通过才可以访问。

20.重载函数在参数类型或上不同,但函数名相同。

派生类与其基类均有定义intb;则派生类中对b的使用是以的定义为准。

21.已有定义constinta=5;定义一个常指针p指向该变量a的语句是:。

22.语句cinx;中“”称为运算符23.一般的,系统提供的头文件只包括对成员函数的,而不包括对成员函数的定义。

24.要用对象名访问类成员,类成员的权限必须是对象的概念中,有静态和动态两种特征,其中静态特征称为,可由数据表示,而动态特征称为行为,可由表示。

25.在C++中,用定义一个类型时,数据成员和成员函数的默认访问权限是公有的。

26.重载函数在参数个数或上不同,但相同。

27.语句cinx;中“”称为运算符。

28.只能通过构造函数的初始化表初始化。

29.在类定义时,如果在其某个成员后面加上const关键字,则这个成员称为。

30.假定有一个类B,是由类A保护继承而来,有一个类C由A类公开继承而来,根据基类成员在派生类中的访问属性,填写下表。

相关文档
最新文档