河南电大面向对象程序设计期末复习题2(历年考试题)
(完整word版)面向对象程序设计期末复习题及答案

(完整word版)面向对象程序设计期末复习题及答案C++面向对象程序设计复习试题类型1、单项选择题(在每小题的四个备选答案中,选出一个正确答案,并将正确答案的序号填在题干的括号内。
15题,每小题2分,共30分) [主要从作业题目中抽出来]2。
填空题。
(10题,每小题3分,共30分)3、阅读程序,写出程序运行结果。
【也称计算题】(3题,每小题5分,共15分)4、程序编制题【也称综合分析题】. (第1、2题每题8分,第3题9分,共25分)重点复习内容打*号是重点,打▲号是编程题出题范围*基本概念,对象,消息,类。
面向对象系统特性,封装性,继承性,多态性.*▲C++类的构成,类与对象,构造与析构,动态存储,类嵌套.静态成员,对象数组,友元。
*函数重载。
运算符重载。
*引用定义与引用参数* 基类与派生类的定义。
*基类及派生类的访问权(含派生类对基类的访问、通过派生类对象对基类的访问)和初始化。
多继承与虚基类.*多态性与虚函数.纯虚函数、抽象类。
*▲函数模板。
*▲使用类来定义对象并在程序中的应用题型样题填空题1。
假定AB为一个类,则执行“AB a[10];"语句时,系统自动调用该类的构造函数的次数为_________。
答案:102。
可以用p。
a的形式访问派生类对象P的基类成员a,其中a是_________。
答案:公有继承的公有成员3.能作为重载函数的调用的依据是_________。
答案:参数个数、参数类型4.在进行完任何C++流的操作后,都可以用C++流的有关成员函数检测流的状态;其中只能用于检测输入流是否结束状态的操作函数名称是_________答案:eof5。
函数重载是指_________。
答案:两个或两个以上的函数取相同的函数名,但形参的个数或类型不同(完整word版)面向对象程序设计期末复习题及答案6。
在派生类中重新定义虚函数时必须在_________ 方面与基类保持一致。
答案:参数个数阅读程序例题【计算题】1.分析以下程序的执行结果#include〈iostream.h>class Sample{int x,y;public:Sample() {x=y=0;}Sample(int a,int b) {x=a;y=b;}~Sample(){if(x==y)cout〈〈“x=y”〈<endl;elsecout〈〈“x!=y"〈〈endl;}void disp(){cout〈〈“x=”<〈x〈<“,y”=<<y<<endl; }};void main(){Sample s1,s2(2,3);s1.disp();s2.disp();}解:x=0,y=0x=2,y=3x!=y x=y2.分析以下程序的执行结果#include〈iostream。
电子科技大学22春“计算机科学与技术”《面向对象程序设计》期末考试高频考点版(带答案)试卷号2

电子科技大学22春“计算机科学与技术”《面向对象程序设计》期末考试高频考点版(带答案)一.综合考核(共50题)1.J2SDK中主要有两个相关环境变量,即path和classpath。
前者指定了JDK命令搜索路径,后者指定了Java类路径。
()A.正确B.错误参考答案:A2.()类是所有异常类的父类。
A.ThrowableB.ExceptionC.ErrorD.AWTError参考答案:B3.容器Panel和Applet默认使用的布局管理器是()。
A.GridLayoutB.FlowLayoutC.CardLayoutD.BorderLayout参考答案:B4.Which modifier should be applied to a method for the lock of object "this" to be obtained prior to execution any of the method body? ()A.synchronizedB.staticC.finalD.abstract5.下列关于接口的叙述中,()是正确的。
A.接口之间不能有继承关系B.接口中只含有抽象方法和常量C.接口与抽象类是相同的概念D.一个类只能实现一个接口参考答案:B6.创建字符串s:String s=new String("abcd"); 以下()将改变s。
A.以上语句都不会B.s.substring(3);C.s.concat("y");D.s.append("x");参考答案:A7.下列()关键字通常用来给对象进行加锁,该标记使得对对象的访问是排他的。
A.transientB.synchronizedC.staticD.serialize参考答案:B8.class A {public int getNumber(int a){return a+1;}} class B extends A {public int getNumber(int a, char c){return a+2;} public static void main(String[] args) {B b=new B(); System.out.println(b.getNumber(0));} } what is the result?pilation succeeds and 3 is printedpilation succeeds and 2 is printedpilation succeeds and 1 is printedD.An error at this program cause compilation to fail9.如果子类中覆盖了父类中的同名方法,则在子类中调用父类中的同名方法时应使用关键字()。
电大资源网1008《面向对象程序设计》期末考试历届试题2020年1月(含答案)

public class XXK3 { public static void main(String[] args) { Shape x; x= new Rectangle(3 ,4); System. out. println(x. area()+", "十 x. girth O) ;
结果为: 15
得分 1 评卷人
三、程序分析题(写出下列每个程序运行后的输出结果,每题 10 分,
共 40 分)
21. public class XXK2 { private int a; public XXK20 {a=2;} public XXK2(int aa) {a=aa;} public double fl() { return Math. pow(a, 3);
boolean bl = hs. add("a"); hs. add("b"); hs. add ("c") ; hs. add (11 d 11) ; hs. add (11 d") ; boolean b2 = hs. add(11a"); System. out. println("size= 11 + hs. size()); } } 结果为:
)。
A. static
B. public
C. final
D. 缺省
7. 下列能表示栈 (stack)s1 长度的是(
)。
A. s1. lengthO
B. sl. length
C. s1. size
D. sl. size()
8. 下面的异常(
)为文件没有找到异常。
A. NullPointerException
《面向对象程序设计JAVA语言程序设计》期末考试试题及部分答案

《面向对象程序设计JA V A语言程序设计》期末考试试卷及部分答案2一、单选择题(每小题2分,共10分)1、编译Java Application 源程序文件将产生相应的字节码文件,这些字节码文件的扩展名为( B )。
A. .javaB. .classC. .htmlD. .exe2、设x = 1 , y = 2 , z = 3,则表达式y+=z--/++x 的值是( A )。
A. 3B. 3. 5C. 4D. 53、在Java Applet程序用户自定义的Applet子类中,一般需要重载父类的( D )方法来完成一些画图操作。
A. start( )B. stop( )C. init( )D. paint( )4、不允许作为类及类成员的访问控制符的是( C )。
A. publicB. privateC. staticD. protected5、为AB类的一个无形式参数无返回值的方法method书写方法头,使得使用类名AB作为前缀就可以调用它,该方法头的形式为( A )。
A. static void method( )B. public void method( )C. final void method( )D. abstract void method( )二、填空题(每空格1分,共20分)1、开发与运行Java程序需要经过的三个主要步骤为编辑源程序、编译生成字节码、和解释运行字节码。
2、如果一个Java Applet源程序文件只定义有一个类,该类的类名为MyApplet,则类MyApplet必须是Applet、类的子类并且存储该源程序文件的文件名为MyApplet 。
3、如果一个Java Applet程序文件中定义有3个类,则使用Sun公司的JDK编译器 javac.exe 编译该源程序文件将产生 3 个文件名与类名相同而扩展名为 . class 的字节码文件。
4、在Java的基本数据类型中,char型采用Unicode编码方案,每个Unicode码占用 2 字节内存空间,这样,无论是中文字符还是英文字符,都是占用 2 字节内存空间。
《面向对象程序设计JAVA语言程序设计》期末考试试题及部分答案

一、单选题1.在下列概念中,Java语言只保留了DA.运算符重载B.结构和联合C.指针D.方法重载2.下列类定义中,不正确的是BA.class x { .... } B.static class x implements y1,y2 { .... }C.public class x extends Applet { .... } D.class x extends y { .... }3.下列语句序列执行后,k 的值是Bint m=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.0 B.1 C.2 D.34.设i、j为int型变量名,a为int型数组名,以下选项中,正确的赋值语句是AA.a[0] = 7; B.i = i + 2 C.i++ - --j; D.a(0) = 66;5.Java语言的类间的继承关系是BA.多重的B.单重的C.线程的D.不能继承6.下列语句序列执行后,k 的值是Cint i=10, j=18, k=30;switch( j - i ) {case 8 : k++;case 9 : k+=2;case 10: k+=3;default : k/=j;}A.31 B.3 C.2 D.337.设有定义float x=3.5f, y=4.6f, z=5.7f;则以下的表达式中,值为true的是CA.x > y || x > z B.z > ( y + x ) C.x != y D.x < y & ! ( x < z )8.下列修饰符中,定义类头时能使用的修饰符是CA.private B.static C.abstract D.protected9.设i、j、k为类x中定义的int型变量名,下列类x的构造函数中不正确的是BA.x( int m){ ... } B.void x( int m){ ... }C.x( int m, int n){ ... } D.x( int h,int m,int n){ ... }10.下列对封装性的描述中,错误的是 DA.封装体包含了属性和行为B.封装使得抽象的数据类型提高了可重用性C.被封装的某些信息在封装体外是不可见的D.封装体中的属性和行为的访问权限是相同的11.下列关于包的描述中,错误的是BA.包是若干个类的集合B.包是一种特殊的类型C.包是使用package语句创建的D.包有有名包和无名包两种12.下列关于Applet程序的描述中,错误的是 CA.Applet程序的主类必须是Applet类得子类B.Applet不是完整的独立程序C.Applet程序的主类中应有一个main()方法D.Applet的字节码文件必须嵌套在一个HTML文件中13.下列界面元素中,不是容器的是CA.Dialog B.Frame C.List D.Panel14.下列关于异常处理的描述中,错误的是DA.程序运行时异常由Java虚拟机自动进行处理B.使用try-catch-finally语句捕获异常C.使用throw语句抛出异常D.捕获到的异常只能在当前方法中处理,不能在其他方法中处理15.以下方法不属于迭代器(Iterator)接口所定义的方法的是DA.hasNext()B.next()C.remove()D.nextElement()16.主线程属于(C )A.守护线程B.Thread线程C.用户线程D.Runnable线程二、填空题1.三目运算符的3个操作数中,第一个操作数的类型必须是逻辑型的。
面向对象程序设计复习题及参考答案

网络教育课程考试复习题及参考答案面向对象程序设计一、填空题:1.创建类的对象时,使用运算符___________给对象分配内存空间。
2.Java通过来区分重载函数。
3.在子类中使用保留字_ _可调用被子类覆盖的父类中的方法。
4.使用保留字可以从一个构造方法中调用同一个类的另一个构造方法。
5.抽象类用修饰符定义。
6.类的数据成员的访问权限修饰符一般为7.访问权限修饰符按照访问权限的大小从大到小分别为、、、。
8.定义类的构造方法不能有,其名称与名相同。
9.抽象方法是的特征是。
10.Java中的所有异常都是从继承来的。
11.对象引用中存储的内容是。
12.下列程序段执行后,String str1 = new String("Java");String str2 = new String("Java");if (str1.equals(str2)) {System.out.println("They are equal");} else {System.out.println("They are not equal");}输出结果为:。
13.下面循环执行后的sun值为int count =0, sum = 0;while ( count <10 ) {sum += count;count ++;}14.Java语言中关键字_ _表示双精度类型。
15.保留字_ _用于导入包中的类到程序中,供程序中使用。
16.Java语言中继承是用保留字表示。
17.面向对象程序设计中,类是指。
18.对象包含和。
19.若有类定义:class B extends A{…}则类B是类A的_ 。
20.Java语言中, 通常把可能发生异常的方法调用语句放到try块中,并用紧跟其后的_ 块来捕获和处理异常。
21.多态是指。
22.声明常量时使用修饰符。
23.Java中异常抛出使用保留字。
面向对象程序设计复习题(附参考答案)

【题目】【题型:单选题】【难度:中】【考核能力:理解】【漏选得分:是】【自动判分:是】【应用类别:终考】【特殊标签:】机器语言中的指令编码为()编码。
[A.]二进制[B.1符号[c.1十进制[D.]数字【答案】A【知识点】01106.1.1.1【解析】无【题目】【题型:单选题】【难度:中】【考核能力:理解】【漏选得分:是】【自动判分:是】【应用类别:终考】【特殊标签:】JaVa语言的主要特点不包括()。
[A.]面向对象[B.]自动垃圾回收[CJ处理文件[D.]可移植性【答案】C【知识点】01106.1.1.1【解析】无【题目】【题型:单选题】【难度:中】【考核能力:理解】【漏选得分:是】【自动判分:是】【应用类别:终考】【特殊标签:】Java开发工具包简称为()。
[A.]JKD[B.]JRK[C.]JDK[D.]JRE【答案】C【知识点】01106.1.1.1【解析】无【题目】【题型:单选题】【难度:中】【考核能力:理解】【漏选得分:是】【自动判分:是】【应用类别:终考】【特殊标签:】具有相同属性和服务的一组对象的模板称为()。
1B.]类[c.1代码[D.]概念【答案】B【知识点】01106.1.1.1【解析】无【题目】【题型:单选题】【难度:中】【考核能力:理解】【漏选得分:是】【自动判分:是】【应用类别:终考】【特殊标签:】类是对具有共同属性和行为的对象的抽象描述,每个对象称为该类的一个()。
[A.]产品[B.1元素[c1成分[D.]实例【答案】D【知识点】01106.1.1.1【解析】无【题目】【题型:单选题】【难度:中】【考核能力:理解】【漏选得分:是】【自动判分:是】【应用类别:终考】【特殊标签:】Java是一门()语言。
[A.]机器[B.]汇编[C.)面向过程的高级[D.]面向对象的高级【答案】D【知识点】01106.1.1.1【解析】无【题目】【题型:单选题】【难度:中】【考核能力:理解】【漏选得分:是】【自动判分:是】【应用类别:终考】【特殊标签:】使用JDK编译JaVa程序时使用的命令是()。
电大面向对象程序期末复习题目与答案(精选)

电大面向对象程序期末复习题目与答案(精选)一、单选题,在括号内填写正确的选项编号{每小题2分,共20分)1.对象是构成现实世界的一个独立单位,它具有自己的静态特征和()特征。
A.颜色B.动态 c.状态 D 重量2.使用JDK编译Java程序时使用的命令是( )。
A. javaB. javacC. appletviewer D javadoc3.包含主方法的类被称为主类,主方法的存储控制属性应定义为()。
A. finalB. abstractC. short Do static4.在类的定义中,若需要把一个属性或方法定义为类成员,而不是实例成员,则使用的修饰符为( )。
A. constB. finalC. static D public5.JaV3 语言中规定的转义字符,以()字符作前缀。
A. B.I C. / D.\6.把对象的属性和服务组合成一个独立的整体,尽可能隐蔽其内部的细节,这称为对象的()。
A.封装性B.多态'性C.继承性D.开放性7.具有()访问权限的成员能够被本类和其他任何类中的成员所访问。
A. publicB. protectdC. privateD.缺省8.在类定义首部的语法格式中,()不能作为其中的修饰符。
A. publicB. protectdC. extendsD. abstract9.下面的关键字( )与异常处理无关。
A. throwB. throwsC. importD. finally10.下面( )既可以作为流的数据源,又可以作为流的目的地。
A.键盘B.磁盘文件c.显示器D.扫描仪二、是非判断题,在每小题后面括号内打上对号、/表示叙述正确,打上叉号×表示叙述错误11. Java既支持类的单继承,又支持类的多重继承。
( )12.在一个派生类中,能够定义与上层父类中的成员具有相同名称的成员。
( )13.派生类可以直接访问从父类中继承下来的所有成员。
( )14.在Java语言中,可以把实现了一个接口的类对象,赋给这个接口的引用对象。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1.设x和y均为bool量,则x||y为假的条件是( C )。
A.它们均为真 B.其中一个为真C.它们均为假 D.其中一个为假2.假定一个二维数组的定义语句为“int a[3][4]={{3,4},{2,8,6}}”,则元素a[1][2]的值为( C )。
A.2 B.4 C.6 D.83.假定P是具有int* *类型的指针变量,则给P赋值的正确语句为( B )。
A.p=new int B.p=new int* C.p=new int** D.p=new int[10]4.软件产品在需求发生变化、运行环境发生变化或发现软件产品本身的错误或不足时进行相应的软件更新的难易程度叫做软件的( A )。
A.可维护性 B.可复用性 C.兼容性 D.正确性5.若需要把一个类外定义的成员函数指明为内联函数,则必须把关键字( B )放在函数原型或函数头的前面。
A.in B.inline C.inLine D.InLiner .6.在一个用数组实现的队列类中,假定数组长度为MS,队首元素位置为first,队列长度为length,则队尾的后一个位置为( D )。
A.1ength+1 B first+length C.(first+1ength—1)%MS D.(first+length)%MS7.假定一个类的构造函数为“A(int aa,int bb){a=aa;b=aa*bb;)”,则执行“A x(4,5);”语句后,X.a和x.b的值分别为( C )。
A.4和5 B.5和4 C.4和20 D.20和5 8.假定AB为一个类,则执行“AB*p=new AB(1,2);”语句时共调用该类构造函数的次数为( B )。
A.0 B.1 C.2 D.39.一个类的成员函数也可以成为另一个类的友元函数,这时的友元声明( A )类域的限定。
A.需加上 B.不需加上 C.可加可不加 D.取消10.队列具有( A )的操作特性。
A.先进先出 B.先进后出 C.进出无序 D.仅进不出二、填空题(每小题2分,共20分)1.多行注释的开始标记符为 /* 。
2.假定x=5,y=6,则表达式x++*++y的值为 35 。
3.假定x是一个逻辑量,则x &&true的值与x的值相同。
4.含随机函数的表达式rand()%20的值在0至 19 的整数区间内。
5.程序的编译是以文件为单位进行的。
6.一个数组的数组名实际上是指向该数组的第一个元素的指针,并且在任何时候都不允许修改它。
7.指针变量pv和pc定义为“void*pv=”Hell0,word!”;char*pc;”,要将pv值赋给pc,则正确的赋值语句是pc=( char* )pv8.一个类的析构函数通常用于实现释放该类对象中指针成员所指向的动态存储空间的任务。
9.假定用户为类AB定义了一个构造函数“AB(int aa):a(aa){}”则 a 是该类的数据成员。
10.在多文件结构的程序中,通常把含有main()函数的文件称为该程序的主文件三、程序填充题,根据题意在横线上填写合适的内容。
(每小题6分-共24分)1.采用辗转相除法求出两个整数的最大公约数。
.#include<iostream.h>void main(){int a,b;cout<<”请输入两个正整数:”;ein>>a>>b;while(a<=0 || b<=0){cout<<”重新输人:”;cin>>a>>b;}while(b){int r;r=a%b;a =b ;b = r ;//分别修改a和b的值}cout<<a<<endl;}//输出最大公约数2·用插入排序方法对table指针数组中size个指针所指向的字符串进行按升序排序的算法。
void sort(char*table[ ],int size){for(int i=1;i<size;i++){char*p=table[i];for(int j=i=1;j>=0;j- -)if(strcmp(p,table[j])<0)table[j+1]= Table[j] ;else break;table[j+1]= P ;}}3.类A的定义class A{char*a:public:A(){a=NULL;) //定义无参构造函数,使a为空指针A(char*aa){a= new char[strlen(aa)+1];strcpy(a,aa);//N aa所指字符串初始化a所指向的动态存储空间}~A(){delete[]a;} //定义析构函数,删除a所指向的动态存储空间};4.类Goods的定义class{private:char Name[20];//商品名称int Weight;//商品重量static int totalWeight;//同类商品总重量public:Goods(char*str,int w){ //构造函数strcpy(Name,str);Weight=w;totalWeight+ =Weight;}~Goods(){totalWeight-=Weight;}char*GetN()( return Name ;) //返回商品名称int GetW(){return weight;)static int GetTotalWeight(){ //定义静态成员函数返回总重量( return totalWeight );}}四、理解问答题,分别写出前2小题的程序运行结果和指出后2小题的程序或函数功能。
(每小题6分.共24分)1.#include<iostream.h>const int T=6;void main()(int i,j,k=0;for(i=1;i<=T;i+=2){for(j=2;j<=T;j+=2)k++;}c out<<”k=”<<k<<endl:}运行结果: K = 92.#include<iostream.h>class CE {private:int a,b;int getmax(){return(a>b?a.b);}public:int c:void SetValue(int xl,int x2,int x3){a=xl;b=x2;c=x3;}int GetMax();};int CE::GetMax(){int d=getmax();return(d>c?d:c);}void main(){int x=5,y=12,z=8;CE ex;ex.SetValue(x,y,z);cout<%ex.GetMax()<<endl;}运行结果:123.#inelude<iostream.h>void main( ){int i,p=1;int N;cout<<”输入一个正整数:”;cin>>N;for(i=1;i<=N;i++)P*=i;cout<<”N!=”<<p<<endl;}程序功能:计算并输出N阶乘的值,其中N值由键盘输入。
4.int f(char*s){int i=0:while(*s++)i++;return i;};函数功能:求出并返回字符指针参数S所指向的字符串长度。
五、编程题(每小题6分,共12分)1.编写一个函数,分别求出由指针a所指向的字符串中包含的每种十进制数字出现的次数,把统计结果保存在数组b的相应元素中,该函数的原型声明如下:void fun(char*a,int b[]);解: void fun(char*a,int b[]){int i;for(i=0;i<10;i++)b[i]=0;while(*a){int j=*a一0;if(j>一0&&j<=9)b[j]++;a++;}}2.根据下面类中CompareBig函数成员的原型和注释写出它的类外定义。
class AA{Int*a:int n;int MS:public:void InitAA(int aa[],int nn,int ms){if(nn>ms){cout<<”Error!”<<en dl;exit(1);}MS=ms;n=nn:a=new int[MS]:for(int i=0;i<n;i++)a[i]=aa[i];}int CompareBig(AA&b)://比较*this与b的大小,从前向后按两数组//中的对应元素比较,若*this中元素值大则返回l,若b中//元素值大则返回一l,若相等则继续比较下一个元素,直到//一个数组中无元素比较,此时若两者的n值相同则返回0,//否则若*this中的n值大则返回l,若b中的n值大则返回一l。
};解: int AA::CompareBig(AA&b){int k;if(n>b.n)k=b.n;else k=n;for(int i=0;i<k;i++)if(a[i]>b.a[i])return l;else if(a[i]<b.a[i])return—l;if(k= =n&&k==b.n)return 0;else if(k<n)return l;else return一1;}。