《面向对象程序设计》练习题库-2021版
《面向对象程序设计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)题库抽题规范:(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月期末考试真题及答案-计算机专业
共 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面向对象程序设计》考试卷及答案带注释
一、单选题(每小题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月课程考试《面向对象的程序设计》作业考核(答案参考)
《面向对象的程序设计》期末考试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++》复习题
《面向对象程序设计》综合复习题集一、程序填充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年面向对象程序设计形成性考核册作业一
面向对象程序设计形成性考核册作业一一、单选题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 )。
《JAVA面向对象程序设计》练习题库B
第一章 Java 简介1. 下面( )是JDK中的Java运行工具.(选择二项)A. javacB. javamC. javaD. javar【解析】A C2. 选出在Java中有效的注释声明 (选择二项)A.//This is a commentB.*/This is a commentC./This is a commentD./*This is a comment*/【解析】AD3. 下面( )命令可用于编译Java程序.(选择一项)A. javaB. javacC. appletviewerD. javadoc【解析】B4. 下面( )数据类型可用于main()方法中传递的参数. (选择一项)A. StringB. IntegerC. BooleanD. Variant【解析】A5. 在屏幕上显示的消息正确的语句是(选择一项) 【解析】A6. Java编译器会将Java程序转换为 (选择一项)A. 字节码B. 可执行代码C. 机器代码D. 以上所有选项都不正确【解析】A7. Java源代码文件的扩展名为 (选择一项)A. .classB. .javaC. .comD. 以上所有选项都不正确【解析】B第二章 Java语言基础1. 在Java中,byte数据类型的范围是(选择一项)A. -32767~32768B. -32768~32767C. -127~128D. -128~127【解析】D2. 以下( )是合法的标识符(选择二项)A. Te1_numB. emp1C. 8678【解析】AB3. 下列代码的输出结果是(选择一项)【解析】A4. 以下关键字(选择一项)用于终止循环语句A. breakB. exitC. endD. terminate【解析】A5. 不论测试条件是什么,下列(选择一项)循环将至少执行一次.A. whileB. do-whileC. forD. for-each【解析】B6. 下列代码的输出结果是 (选择一项 )A.6A.6B.3C.1D.0【解析】A7. 编译运行下面的代码时会打印 (选择一项)D.数组超界【解析】C第三章面向对象的概念和Java实现(1)1. ( )是拥有属性和行为或方法的实体. (选择一项)A. 对象B. 类C. 方法D. 构造方法【解析】A2. 对象的特性在类中表示为变量,成为类的(选择一项)A. 对象B. 属性C. 方法D. 数据类型【解析】B3. ( )就是检验有关某个实体的所有可用信息的过程,以便标识与应用程序相关的信息. (选择一项)A. 抽象B. 封装C. 方法D. 构造方法【解析】A4. 如果类的方法没有返回值,该方法的返回类型应当是 (选择一项)A. nullB. voidC. staticD. public【解析】B5. ( )关键字表示它是一种类方法,且无需创建对象即可访问. (选择一项)A. voidB. staticC. returnD. public【解析】B6. 每个类都定义有( ) ,以便初始化其成员变量(选择一项)A. 方法B. main() 方法C. 构造方法D. 对象【解析】C第四章面向对象的概念和Java实现(2)1、()术语常常用来指代类。
《JAVA面向对象程序设计》练习题-参考答案
《JAV A语言程序设计》练习题 1一、单选择题1、编译Java Application 源程序文件将产生相应的字节码文件,这些字节码文件的扩展名为( )。
A. .javaB. .classC. .htmlD. .exe2、设x = 1 , y = 2 , z = 3 ,则表达式y+=z--/++x 的值是( )。
A. 3B. 3. 5C. 4D. 53、不允许作为类及类成员的访问控制符的是( )。
A. publicB. privateC. staticD. protected4、为AB 类的一个无形式参数无返回值的方法method 书写方法头,使得使用类名AB 作为前缀就可以调用它,该方法头的形式为( )。
A. static void method( )B. public void method( )C. final void method( )D. abstract void method( )5、给定java 代码如下,编译运行后,输出结果是( )(选择一项)。
public class test {static int i;public int aMethod() {i++;return i;}public static void main (String args[]) {Test test=new Test() ;test.aMethod () ;System.out.println (test.aMethod()) ;} }a) 0 b) 1 c) 2 d) 3二、填空题1、开发与运行Java程序需要经过的三个主要步骤为编辑源程序、编译生成字节码和解释运行字节码。
2、在Java 的基本数据类型中,char 型采用Unicode 编码方案,每个Unicode 码占用 2 字节内存空间,这样,无论是中文字符还是英文字符,都是占用 2 字节内存空间。
3、设x = 2 ,则表达式( x + + ) /3 的值是0 。
面向对象程序设计考试模拟题含参考答案
面向对象程序设计考试模拟题含参考答案一、单选题(共50题,每题1分,共50分)1、下列数据结构中,哪一个是ArrayList类的底层实现()A、数组结构B、链表结构C、哈希表结构D、红黑树结构正确答案:A答案解析:ArrayList的底层是数组实现的。
2、Java属于以下哪种语言()A、机器语言B、汇编语言C、高级语言D、以上都不对正确答案:C答案解析:Java是一门高级编程语言。
3、下面关于path和classpath的说法中,错误的是()A、path用来指定java虚拟机(JVM)所在的目录B、classpath用来指定我们自己所写的或要用到的类文件(.jar文件)所在的目录C、在dos命令行中,classpath和path环境变量的查看与配置的方式不相同D、只要设置了classpath这个环境变量系统就不会再在当前目录下查询某个类正确答案:C答案解析:classpath和path环境变量的查看与配置的方式完全相同,都是通过 set关键字实现的。
4、若double val = Math.ceil(-11.9);,则val的值是()A、11.9B、-11.0C、-11.5D、-12.0正确答案:B答案解析:ceil是天花板的意思,表示向上取值,永远是得到大于参数的最小整数。
5、下列集合中,不属于Collection接口的子类的是()A、ArrayListB、LinkedListC、TreeSetD、Properties正确答案:D答案解析:Properties集合属于Map集合的子类。
6、下列关于类与对象的说法中,错误的是()A、类是对某一类事物的抽象描述,而对象则是该类事物的个体。
B、对象是类的实例化。
C、类用于描述多个对象的共同特征,它是对象的模板。
D、类与对象没有什么实际关系。
正确答案:D答案解析:对象是通过类来创建的。
7、下列关于List接口的描述中,错误的是()A、List接口继承自Collection接口,是单列集合。
2021年秋季国开成都《面向对象程序设计(专)》形考任务题库汇总
静态数据成员不是类所有对象共享的。
选择一项:对错试题2未作答满分1.00未标记标记试题试题正文类模板中的成员函数没有返回值。
选择一项:对错试题3未作答满分1.00未标记标记试题试题正文类模板的主要作用是生成抽象类。
选择一项:对错试题4未作答满分1.00未标记标记试题试题正文静态数据成员的声明以关键字static开头。
选择一项:对错试题5未作答满分1.00未标记标记试题试题正文继承描述类的层次关系,派生类可以具有与基类相同的属性和方法。
选择一项:对错试题6未作答满分1.00未标记标记试题试题正文系统在调用重载函数时,不能作为确定哪个重载函数被调用的依据是:()选择一项:参数类型b.函数的返回值类型参数个数d.函数名称试题7未作答满分1.00未标记标记试题试题正文已知X类,则当程序执行到语句:Xarray⑶;时,调用了()次构造函数。
选择一项:a.b.23d.1试题8未作答满分1.00未标记标记试题试题正文定义析构函数时,应该注意:()选择一项:其名与类名完全相同b.无形参,也不可重载返回类型是void类型d.函数体中必须有delete语句试题9未作答满分1.00未标记标记试题试题正文对于语句cout<选择一项:“endl”的作用是输出回车换行b.“<<”称作提取运算符(插入运算符),&,,是一个变量d.“cout”是一个输出流对象试题10未作答满分1.00未标记标记试题试题正文己知:print()函数是一个类的常成员函数,它无返回值,下列表示中,()是正确的。
选择一项:a.void print() constb.const void print()void print(const)d.void const print()试题11未作答满分1.00未标记标记试题试题正文虚函数的定义是在基类中进行的,定义时需要冠以关键字彩蛋选择一项:a.staticb.frendc.publicd.virtual试题12未作答满分1.00未标记标记试题试题正文若数组名作实参而指针变量作形参,函数调用时实参传给形参的是彩蛋选择一项:a.数组的长度b.数组第一个元素的值c.数组所有元素的值d.数组第一个元素的地址试题13未作答满分1.00未标记标记试题试题正文设置虚基类的目的是()选择一项:a.提高运行效率b.消除二义性c.简化程序d.减少目标代码试题14未作答满分1.00未标记标记试题试题正文已知:intm=10;下列表示引用的方法中,()是正确的。
《面向对象程序设计(Java)》综合练习题
《面向对象程序设计(Java)》综合练习题一、判断题1、Java程序里,创建新的类对象用关键字new,回收无用的类对象使用关键字free。
2、对象可以赋值,只要使用赋值号(等号)即可,相当于生成了一个各属性与赋值对象相同的新对象。
3、有的类定义时可以不定义构造函数,所以构造函数不是必需的。
4、类及其属性、方法可以同时有一个以上的修饰符来修饰。
5、Java的屏幕坐标是以像素为单位,容器的左下角被确定为坐标的起点.6、抽象方法必须在抽象类中,所以抽象类中的方法都必须是抽象方法。
7、final类中的属性和方法都必须被final修饰符修饰。
8、最终类不能派生子类,最终方法不能被覆盖。
9、子类要调用父类的方法,必须使用super关键字。
10、一个Java类可以有多个父类。
11、创建新的类对象用new,回收无用的类对象用free。
12、虽然有的类定义时可不定义构造函数,但构造函数是必需的。
13、Java的屏幕坐标是以像素为单位,容器的左下角被确定为坐标的起点。
14、final类中的属性和方法都必须被final修饰符修饰。
15、子类要调用父类的方法,不必用super关键字。
16、如果p是父类Parent的对象,而c是子类Child的对象,则语句c = p是正确的。
17、当一个方法在运行过程中产生一个异常,则这个方法会终止,但整个程序不一定终止运行。
18、用+可以实现字符串的拼接,用-可以从一个字符串中去除一个字符子串。
19、设String对象s=”Hello”,运行语句System.out.println(s.concat(“w orld!”));后String对象s的内容为”Hello world!”,所以语句输出为:Hello world!20、一个容器中可以混合使用多种布局策略。
参考答案:1、×2、×3、×4、√5、×6、×7、×8、√9、×10、×11、×12、√13、×14、×15、√16、×17、√18、×19、×20、√二、单选题1、关于被私有访问控制符private修饰的成员变量,以下说法正确的是()A、可被三种类引用:该类自身、与它在同一个包中的其他类、在其他包中的该类的子类B、只能被该类自身所访问和修改C、只能被同一个包中的类访问D、可被两种类访问和引用:该类本身、该类的所有子类2、下列关于修饰符混用的说法,错误的是()A、static方法中能处理非static的属性B、abstract方法必须在abstract类中C、abstract类中不可以有private的成员D、abstract不能与final并列修饰同一个类3、容器Panel和Applet缺省使用的布局编辑策略是()A、BorderLayoutB、FlowLayoutC、GridLayoutD、CardLayout4、main方法是Application的入口点,以下main方法的方法头合法的是()A、public static void main( )B、public static int main(String[ ] args)C、public static void main(String[ ] arg)D、public void main(String arg[ ])5、以下代码段执行后的输出结果为()int x=3; int y=10; System.out.println(y%x);A、0B、1C、2D、36、编译运行以下程序后,关于输出结果的说明正确的是()public class Conditional{public static void main(String args[ ]){int x=4;System.out.println(“value is “+ ((x>4) ? 99.9 : 9));}}A、输出结果为:value is 99.99B、输出结果为:value is 9C、输出结果为:value is 9.0D、编译错误7、以下声明合法的是()A、public final static native int w( );B、default String s;C、abstract final double hyperbolicCosine( );D、abstract double d;8、关于以下程序代码的说明正确的是()1.class HasStatic{2.private static int x=100;3.public static void main(String args[ ]){4.HasStatic hs1=new HasStatic( );5.hs1.x++;6.HasStatic hs2=new HasStatic( );7.hs2.x++;8.hs1=new HasStatic( );9.hs1.x++;10.HasStatic.x- -;11.System.out.println(“x=”+x);12.}13.}A、5行不能通过编译,因为引用了私有静态变量B、10行不能通过编译,因为x是私有静态变量C、程序通过编译,输出结果为:x=102D、程序通过编译,输出结果为:x=1039、类Test1定义如下:1.public class Test1{2.public float aMethod(float a,float b){ }3.4.}将以下哪种方法插入行3是不合法的()A、public float aMethod (float a,float b,float c) { }B、p ublic float aMethod (float c,float d) { }C、p ublic int aMethod (int a,int b) { }D、private float aMethod (int a,int b,int c) { }10、关于以下程序段,正确的说法是()1.String s1=”abc” + ”def”;2.String s2=new String(s1);3.if (s1= =s2)4.System.out.print ln(“== succeeded”);5.if (s1.equals(s2))6.System.out.println(“.equals() succeeded”);A、行4与行6都将执行B、行4执行,行6不执行C、行6执行,行4不执行D、行4、行6都不执行11、被私有保护访问控制符private protected修饰的成员变量,以下说法正确的是()A.可被三种类引用:该类自身、与它在同一个包中的其他类、在其他包中的该类的子类B.可被两种类访问和引用:该类本身、该类的所有子类C.只能被该类自身所访问和修改D.只能被同一个包中的类访问12、以下标识符中哪项是不合法的()A、BigMeaninglessNameB、$intC、3kuD、$113、执行完以下代码int [ ] x = new int[25];以下哪项说明是正确的()A、x[24]为0B、x[24]未定义C、x[25]为0D、x[0]为空14、以下哪个表达式是不合法的()A、String x=”Hello”; int y=9; x+=y;B、String x=”Hello”; int y=9; if(x= =y) { }C、String x=”Hello”; int y=9; x=x+y;D、String x=null; int y=(x!=null)&&(x.length>0) ? x.length : 015、一个类可同时定义许多同名的方法,这些方法的形式参数的个数、类型或顺序各不相同,传回的值也可不相同。
面向对象的程序设计_第二阶段练习
江南大学网络教育第二阶段练习题考试科目:《面向对象的程序设计》第章至第章(总分100分)__________学习中心(教学点)批次:层次:专业:学号:身份证号:姓名:得分:一单选题 (共7题,总分值7分,下列选项中有且仅有一个选项符合题目要求,请在答题卡上正确填涂。
)1. 若一个类中含有纯虚函数,则该类称为(C )(1 分)A. 基类B. 虚基类C. 抽象类D. 派生类2. 下列运算符中,不能用友元函数重载的是(A )(1 分)A. =B. >C. <D. <>3. 派生类的对象对它的基类成员中( A)是可以访问的。
(1 分)A. 公有继承的公有成员B. 公有继承的私有成员C. 公有继承的保护成员D. 私有继承的公有成员类4. 下列运算符中,不能被重载的是(B )(1 分)A. [ ]B. .C. ( )D. /5. 用关键字(A )标记的函数被称为虚函数。
(1 分)A. virtualB. privateC. publicD. protected6. 多重继承是(B )(1 分)A. 多个单继承的叠加B. 派生类有多个直接基类C. 多个派生类有唯一的基类D. 每个派生类最多只有一个直接基类,但它可以有多个间接基类7. C++语言建立类族是通过(B )。
(1 分)A. 类的嵌套B. 类的继承C. 虚函数D. 抽象类二多选题 (共4题,总分值8分,下列选项中至少有2个或2个以上选项符合题目要求,请在答题卡上正确填涂。
)8. 下面描述中,(BD )是正确的。
(2 分)A. 虚函数是没有实现的函数B. 纯虚函数的实现是在派生类中定义C. 抽象类是只有纯虚函数的类D. 抽象类指针可以指向不同的派生类9. 作用域运算符通常用来(AD )。
(2 分)A. 指定特定的类B. 指明从哪一个基类中导出来的C. 在某些成员函数中限定静态变量的可视范围D. 解决二义性10. 继承的优点是(ABC )。
(2 分)A. 扩大类的使用范围,更便于使用类库B. 避免重写程序代码,提供有用的概念框架C. 把类组织成有条理的转化层次结构D. 通用继承的自然选择和重写使类进一步拓展11. 下列函数中,可以作为虚函数的是(BD)。
《面向对象程序设计》期末考核试题样例及解答
《面向对象程序设计》期末考核试题样例及解答一、单项选择(每小题1分,12小题,共12分)1. C++源程序文件的缺省扩展名为( )。
A. cppB. exeC. objD. lik2. x>0 || y==5的相反表达式为()。
A. x<=0 || y!=5B. x<=0 && y!=5C. x>0 || y!=5D. x>0 && y==53. 在下面的字符数组定义中,有语法错误的是( )。
A. char a[20]=“abcdefg”;B. char a[]=“x+y=55.”;C. char a[15];D. char a[10]=’5’;4. 以下正确的函数原型语句是( )。
A. double fun(int x,int y)B. double fun(int x;int y)C. double fun(int,int);D. double fun(int x,y);5. 在下面存储类中,()的对象不是局部变量。
A. 外部静态类B. 自动类C. 函数形参D. 寄存器类6. 假定有“struct BOOK{char title[40]; float price;}; BOOK *book=new BOOK;”,则正确的语句是()。
A. strcpy(book->title,”Wang Tao”);B. strcpy(book.title,”Wang Tao”);C. strcpy(*book.title,”Wang Tao”);D. strcpy((*book)->title,”Wang Tao”);7. 软件产品所具有的全部或部分地再用于新的应用的能力称为该软件的()。
A. 可维护性B. 可复用性C. 兼容性D. 正确性8. 在多文件结构的程序中,通常把含有main()函数的文件称为()。
A. 主文件B. 实现文件C. 程序文件D. 头文件9. 在一个用链表实现的队列类中,假定每个结点包含的值域用elem表示,包含的指针域用next表示,链队的队首指针用elemHead表示,队尾指针用elemTail表示,若链队为空,则进行插入时必须把新结点的地址赋给( )。
2021 面向对象程序设计 期末考试 含答案
面向对象程序设计考前练习本试卷有3种题型共120小题,作答时间为90分钟,总分120分。
单选题判断题多选题一、单选题(本部分共89题,每题1分,共89分)1、在类定义的外部,可以被访问的成员有()。
• A . 所有类成员• B . private的类成员• C . public或private的类成员• D . public的类成员A B C D参考答案:D共137人答过,平均正确率55.47%2、下列关于C++语言类的描述中错误的是()。
• A . 类用于描述事物的属性和对事物的操作• B . 类与类之间通过封装而具有明确的独立性• C . 类与类之间必须是平等的关系,而不能组成层次结构• D . 类与类之间可以通过一些方法进行通信和联络A B C D参考答案:C共117人答过,平均正确率70.09%3、定义析构函数时,应该注意()。
• A . 其名与类名完全相同• B . 返回类型是void类型• C . 无形参,也不可重载• D . 函数体中必须有delete语句A B C D参考答案:C共116人答过,平均正确率68.97%4、下列函数中,正确的递归函数是()。
• A . int Fun(int n){{ if(n<1)? return 1;?? else? return n*Fun(n+1); }}• B . int Fun(int n){{ if (abs(n)<1)? return? 1;? else? return?n*Fun(n/2); }}• C . int Fun(int n){{ if(n>1)? return 1;? else? return n*Fun(n*2); }}• D . int Fun(int n){{?? if(n>1)? return 1; else? return n*Fun(n-1); }}A B C D参考答案:B共115人答过,平均正确率73.04%5、在C++中编译器所生成的文件的扩展名为()。
北理工21春《面向对象程序设计》在线作业
北理工21春《面向对象程序设计》在线作业试卷总分:100 得分:100一、单选题(共38 道试题,共76 分)1.关于运行时多态的下列描述中,______是错误的。
A.运行时多态是以虚函数为基础的;B.运行时多态是在运行时确定所调用的函数代码的;C.用基类指针或引用所标识的派生类对象来操作虚函数才能实现运行时多态;D.运行时多态是在编译时确定操作函数的答案:C2.在下列函数原型中,可以作为类A构造函数的是()。
A.void A(int);B.int A();C.A(int) const;D.A(int);答案:D3.复制构造函数的参数通常为()A.某个对象名B.某个对象的成员名C.某个对象的引用名D.某个对象的指针名答案:C4.释放一个类的对象时,系统自动调用()。
A.构造函数B.析构函数C.成员函数D.友元函数答案:B5.下列函数中,不是类的成员函数的是()。
A.构造函数B.友元函数C.析构函数D.复制构造函数答案:B6.设置虚基类的目的是()。
A.简化程序B.消除二义性C.提高运行效率D.减少目标代码答案:B7.对语句(1)constint*x;和语句(2)int*constx;,描述正确的是()。
A.语句(1)的含义是指针变量x不能更改B.语句(2)的含义是指针变量x所指向的值不能更改C.语句(2)的含义是指针变量x不能更改D.语句(1)和(2)是相同含义的不同定义方式答案:C8.下列对引用的陈述中不正确的是()。
A.每一个引用都是其所引用对象的别名,因此必须初始化B.形式上针对引用的操作实际上作用于它所引用的对象C.一旦定义了引用,一切针对其所引用对象的操作只能通过该引用间接进行D.不需要单独为引用分配存储空间答案:C9.下列关于类成员的描述中,正确的是()。
A.友元函数是类的成员函数B.类成员的默认访问权限是私有的C.类成员函数必须声明为公有的D.类的静态数据成员不能是常成员答案:B10.若函数原型为voidFun(intx,inty=6,intchar='a'),则下列调用错误的是()。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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类公开继承而来,根据基类成员在派生类中的访问属性,填写下表。