面向对象程序设计期末复习题及答案
最新国家开放大学电大本科《面向对象程序设计》期末题库及答案
最新国家开放大学电大本科《面向对象程序设计》期末题库及答案考试说明:本人针对该科精心汇总了历年题库及答案,形成一个完整的题库,并且每年都在更新。
该题库对考生的复习、作业和考试起着非常重要的作用,会给您节省大量的时间。
做考题时,利用本文档中的查找工具,把考题中的关键字输到查找工具的查找内容框内,就可迅速查找到该题答案。
本文库还有其他网核及教学考一体化答案,敬请查看。
《面向对象程序设计》题库及答案一一、单项选择题(每小题2分,共20分)1.设x和y均为bool量,则x||y为假的条件是( )。
A.它们均为真 B.其中一个为真C.它们均为假 D.其中一个为假2.假定一个二维数组的定义语句为“int a[3][4]={{3,4},{2,8,6}}”,则元素a[1][2]的值为( )。
A.2 B.4 C.6 D.83.假定P是具有int* *类型的指针变量,则给P赋值的正确语句为( )。
A.p=new int B.p=new int*C.p=new int** D.p=new int[10]4.软件产品在需求发生变化、运行环境发生变化或发现软件产品本身的错误或不足时进行相应的软件更新的难易程度叫做软件的( )。
A.可维护性 B.可复用性C.兼容性 D.正确性5.若需要把一个类外定义的成员函数指明为内联函数,则必须把关键字( )放在函数原型或函数头的前面。
‘A.in B.inlineC.inLine D.InLiner .6.在一个用数组实现的队列类中,假定数组长度为MS,队首元素位置为first,队列长度为length,则队尾的后一个位置为( )。
A.1ength+1 B first+lengthC.(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的值分别为( )。
成人教育 《面向对象程序设计》期末考试复习题及参考答案
面向对象程序设计复习题二一、填空1.程序的三种常见结构是、、,其中结构是程序的默认结构。
2.同名方法给出不同的实现,并通过参数类型或个数进行区分,称为。
3.和“继承”匹配的概念是。
4.由类构建对象的过程称为。
5.抽象类是含有的类。
6.实现软件复用有两种方式,分别为、、。
7.有定义const int *p,p称为。
8.通过继承产生的类称为。
9.virtual关键字在C++中有两个用处,分贝是,和。
10.方法重载和实现了多态性。
11.请给出C++外的另外一种支持面向对象设计语言。
12.类的三个要素是、、。
13.对象释放前执行的函数是。
二、名词解释1、构造函数2、对象3、运算符重载4、析构函数5. 面向对象6. 继承三、简答1.比较类和结构体?2.重载的意义?3.抽象类的作用和意义?4.组合与继承的区别?四、辩析1.任何父类对象都可以被子类对象替代。
2.public修饰符号破坏了数据的开放性。
3.private继承方式不能产生子类。
4.不能实例化的类一定是抽象类。
五、综合回答1.简述多态的实现机制。
2.谈谈多态的意义。
3.面向对象程序设计思想的优点和缺点。
面向对象程序设计复习题二答案一、填空(1)顺序(2)选择(3)循环(4)顺序(5)函数重载(6)抽象(7)实例化(8)纯虚函数(9)继承(10) 组合(9)和(10)不区分顺序(11)常量指针(12)派生类(13)虚函数(14)虚拟继承(13)和(14)不区分顺序(15)覆盖(16)Java或者C#(17)类的标识(18)类的状态(19)类的操作(17)(18)(19)不区分顺序(20)析构函数二、名词解释1、当类实例化时自动调用的成员函数,负责实现对象的初始化2、按照数据类型分配的内存空间,可以实现方法的调用3、将系统定义的运算符操作对象的类型扩展的过程,一般针对自定义类型4、对象空间释放之前自动调用的函数5、是程序设计思想,相对面向过程而言更加强调封装性6、两个类之间的一种关系,其中一个类的某个成员类型是另一个类三、简答1、C++中类和结构体具有同等的功能,唯一区别是类缺省成员属性是private,而结构体缺省为public2、重载的意义在于丰富了动作的多样性,但是并不加重程序员的负担。
面向对象期末考试题及答案
面向对象期末考试题及答案一、选择题(每题2分,共20分)1. 面向对象编程中的三大特性是?A. 封装、继承、多态B. 抽象、继承、封装C. 继承、封装、多态D. 封装、抽象、多态答案:A2. 在Java中,哪个关键字用于定义类?A. classB. structC. typeD. interface答案:A3. 以下哪个不是面向对象设计原则?A. 单一职责原则B. 开闭原则C. 里氏替换原则D. 模块化原则答案:D4. 在面向对象编程中,构造函数的作用是什么?A. 用于创建对象B. 用于销毁对象C. 用于实现继承D. 用于实现多态答案:A5. 以下哪个是Java中的访问修饰符?A. privateB. publicC. protectedD. 全部都是答案:D...(此处省略剩余选择题)二、简答题(每题10分,共30分)1. 简述面向对象编程的基本思想。
答案:面向对象编程是一种编程范式,它将现实世界中的实体抽象成对象,这些对象具有属性和行为。
面向对象编程的基本思想是将数据和处理数据的方法结合在一起,形成对象。
通过对象之间的交互来实现程序的功能。
2. 解释什么是多态性,并给出一个简单的例子。
答案:多态性是指允许不同类的对象对同一消息做出响应,但具体的行为会根据对象的实际类型而有所不同。
例如,在Java中,可以通过重载和重写来实现多态。
假设有一个动物类Animal,它有一个方法makeSound()。
然后有一个子类Dog,它重写了makeSound()方法。
当我们创建一个Dog对象并调用makeSound()时,会执行Dog类中的makeSound()方法,而不是Animal类中的。
3. 什么是封装?封装的好处是什么?答案:封装是将对象的数据(属性)和行为(方法)组合在一起,并隐藏对象的内部细节,只暴露出一个可以被外界访问的接口。
封装的好处包括:保护数据、减少错误、提高代码的重用性、增强模块化。
三、编程题(每题25分,共50分)1. 编写一个Java程序,实现一个简单的银行账户类Account,包含以下特性:- 私有属性:账户余额balance- 公共方法:存款deposit(double amount)、取款withdraw(double amount)、获取余额getBalance()答案:```javapublic class Account {private double balance;public Account() {this.balance = 0;}public void deposit(double amount) {if (amount > 0) {balance += amount;}}public void withdraw(double amount) {if (amount > 0 && balance >= amount) {balance -= amount;}}public double getBalance() {return balance;}}```2. 假设有一个名为Car的类,它有两个属性:品牌brand和颜色color。
面向对象程序设计JAVA语言程序设计》期末考试试题及部分答案资料
面向对象程序设计JAVA语言程序设计》期末考试试题及部分答案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. i nit(D. paint(4、不允许作为类及类成员的访问控制符的是(C。
A. P ublicB. P rivateC. staticD. p rotected5、为AB类的一个无形式参数无返回值的方法method书写方法头,使得使用类名AB作为前缀就可以调用它,该方法头的形式为(A。
A. static void method(B. p ublic void method(C. final void method(D. abstract void method(、填空题(每空格1分,共20 分)1、开发与运行Java 程序需要经过的三个主要步骤为 编辑源程序、编译生成 字节码、和解释运行字节码。
2、如果一个Java Applet 源程序文件只定义有一个类,该类的类名为MyApplet ,则类MyApplet 必须是Applet 、类的子类并且存储该源程序文件的文 件名为 MyA PP let 。
3、如果一个Java Applet 程序文件中定义有3个类,则使用Sun 公司的JDK 编译器javac.exe 编译该源程序文件将产生 3个文件名与类名相同而扩展名为. class 的字节码文件。
4、在Java 的基本数据类型中,char 型采用Uni code 编码方案,每个Uni code 码占用2字节内存空间,这样,无论是中文字符还是英文字符,都是占用2字节内存空间。
java面向对象程序设计期末考试题及答案
java面向对象程序设计期末考试题及答案一、单项选择题(每题2分,共20分)1. 在Java中,哪个关键字用于声明一个类?A. classB. structC. interfaceD. enum答案:A2. 下列哪个是Java中的访问修饰符?A. publicB. privateC. protectedD. All of the above答案:D3. 在Java中,哪个关键字用于创建对象?A. newB. createC. makeD. instantiate答案:A4. Java中的继承是通过哪个关键字实现的?A. extendsB. inheritC. deriveD. superclass答案:A5. 在Java中,哪个关键字用于实现接口?A. implementsB. extendsC. interfaceD. abstract答案:A6. 下列哪个不是Java中的方法重载的条件?A. 方法名相同B. 参数列表不同C. 返回值类型不同D. 访问修饰符不同答案:C7. 在Java中,哪个关键字用于声明一个抽象方法?A. abstractB. virtualC. overrideD. final答案:A8. Java中的多态性可以通过哪种方式实现?A. 方法重载B. 方法覆盖C. 接口实现D. 继承答案:B9. 在Java中,哪个关键字用于声明一个内部类?A. innerB. nestedC. staticD. inner class答案:B10. Java中的垃圾回收机制是自动的吗?A. YesB. NoC. SometimesD. Depends on the JVM答案:A二、填空题(每题2分,共20分)1. Java中,一个类可以继承另一个类的______方法和属性。
答案:非私有2. Java中的______关键字用于声明一个类是不可被继承的。
答案:final3. 在Java中,______关键字用于声明一个类是抽象的。
《面向对象程序设计》期末复习题及答案1
面向对象程序设计》期末复习指导-单选题1. C++源程序文件的缺省扩展名为( )。
A. cppB. exeC. objD. lik2. 编写C++程序一般需经过的几个步骤依次是( )。
A. 编译、编辑、连接、调试B. 编辑、编译、连接、调试C. 编译、调试、编辑、连接D. 编辑、调试、编辑、连接3. 程序中主函数的名字为()。
A. mainB. MAINC. MainD. 任意标识符4. 存储以下数据,占用存储字节最多的是()。
A. 0B. …0‟C. “0”D. 0.01 5. 假设在程序中 a、b、c 均被定义成整型,所赋的值都大于1,则下列能正确表示代数式abc 的表达式是( )。
A. 1.0/a*b*cB. 1/(a*b*c)C. 1/a/b/(float)cD. 1.0/a/b/c6. x>0 || y==5的相反表达式为()。
A. x<=0 || y!=5B. x<=0 && y!=5C. x>0 || y!=5D. x>0 && y==57. 字符串”a+b=12\n”的长度为()。
A. 6B. 7C. 8D. 98. 循环语句“for(int i=0; i<n; i++) cout<<i*i<<’’;”中循环体执行的次数为( )。
A. 1B. n-1C. nD. n+19. 在下面循环语句中循环体执行的次数为()。
int i=0,s=0; while(s<20) {i++; s+=i;}A. 4B. 5C. 6D. 710. 在下面循环语句中循环体执行的次数为()。
int i=0,s=0; while(s<20) {i++; s+=i;}A. 4B. 5C. 6D. 711. 循环体至少被执行一次的语句为()。
A. for循环B. while循环C. do循环D. 任一种循环12. 在下面的一维数组定义中,哪一个有语法错误。
面向对象程序设计期末复习题及答案
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.函数重载是指_________。
答案:两个或两个以上的函数取相同的函数名,但形参的个数或类型不同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!=yx=y2.分析以下程序的执行结果#include<iostream.h>int add(int x,int y){return x+y;}int add(int x,int y,int z){return x+y+z;}void main(){int a=4,b=6,c=10;cout<<add(a,b)<<,<<add(a,b,c)<<endl; }解:10,20 3.分析以下程序执行结果#include<iostream.h>int add(int x,int y){return x+y;}double add(double x,double y){return x+y;}void main(){int a=4,b=6;double c=2.6,d=7.4;cout<<add(a,b)<<","<<add(c,d)<<endl; }解:10,104.分析以下程序执行的结果#include<iostream.h>class Sample{int x,y;public:Sample(){x=y=0;}Sample(int a,int b){x=a;y=b;}void disp(){cout<<"x="<<x<<",y="<<y<<endl;}};void main(){Sample s1,s2(1,2),s3(10,20);Sample *pa[3]={&s1,&s2,&s3};for(int i=0;i<3;i++)pa[i]->disp();}解:x=0,y=0x=1,y=2x=10,y=20 5. 分析以下程序的执行结果:#include<iostream.h>class base{int n;public:base(){};base (int a){cout << "constructing base class" << endl; n=a;cout << "n= "<< n << endl;}~base() { cout << "destructing base class" << endl; }};class subs : public base{int m;public:subs(int a, int b) : base(a){cout << "constructing sub class "<< endl; m=b;cout << "m= "<< m << endl;}~subs() { cout << "destructing sub class "<< endl; }};void main (){subs s(1,2);}解:constructing base classn= 1constructing sub classm= 2destructing sub classdestructing base class6.分析以下程序的执行结果:#include <iostream.h>class Sample{protected:int x;public:Sample() { x=0; }Sample(int val) { x=val; }void operator++() { x++; }};class Derived:public Sample{int y;public:Derived():Sample(){ y=0; }Derived(int val1,int val2):Sample(val1){ y=val2; }void operator--(){ x--;y--;}void disp(){cout<<"x="<< x << ",y=" << y << endl; }};void main (){Derived d(3,5);d.disp();d++;d.disp ();d--;d--;d.disp();}解:x=3,y=5x=4,y=5x=2,y=37 分析以下程序执行结果:#include <iostream.h>class A{public:A(char *s) { cout << s << endl; }~A() {}};class B:public A {public:B(char *sl,char *s2) :A(sl){cout << s2 << endl;}};class C:public A{public:C(char *sl,char *s2) :A(sl){cout << s2 << endl;}};class D:public B,public C{public:D(char *sl,char *s2,char *s3,char *s4) :B(sl,s2),C(sl,s3){cout << s4 << endl;}};void main (){D d("class A","class B","class C","class D");}解:class Aclass Bclass Aclass Cclass D 补充例题1.分析以下程序的执行结果#include<iostream.h>template <class T>T max(T x,T y){ return (x>y?x:y); }void main(){ cout<<max(2,5)<<“,”<<max(3.5,2.8)<<endl; }解答:5,3.5 2.分析以下程序的执行结果#include<iostream.h>void main(){int a[]={10,20,30,40},*pa=a;int *&pb=pa;pb++;cout<<*pa<<endl;}解答:输出为:20 3.分析以下程序的执行结果#include<iostream.h>template <class T>T abs(T x){ return (x>0?x:-x); }void main(){ cout<<abs(-3)<<“,”<<abs(-2.6)<<endl; }解答:输出为:3,2.64.分析以下程序的执行结果#include<iostream.h>class Sample{char c1,c2;public:Sample(char a){c2=(c1=a)-32;}void disp(){ cout<<c1<<“转换为”<<c2<<endl; } };void main(){Sample a('a'),b('b');a.disp();b.disp();}解答:a转换为Ab转换为B 5.分析以下程序的执行结果#include<iostream.h>void main(){int a;int &b=a; // 变量引用b=10;cout<<“a=”<<a<<endl;} 解答:输出为:a=10 6.分析以下程序的执行结果#include<iostream.h>class Sample{int x;public:Sample(){};Sample(int a){x=a;}Sample(Sample &a){x=a.x++ +10;}void disp(){cout<<“x=”<<x<<endl; }};void main(){ Sample s1(2),s2(s1);s1.disp();s2.disp();}解答:x=3 // ++运算的结果x=12 // 2+107.分析以下程序的执行结果#include<iostream.h>class Sample{int x;public:Sample(){};Sample(int a){x=a;}Sample(Sample &a){x=a.x+1;}void disp(){cout<<“x=”<<x<<endl; } };void main(){ Sample s1(2),s2(s1);s2.disp();}解答:输出为:x=3。
Java面向对象程序设计复习题附答案
Java面向对象程序设计复习题一、选择题1、下列哪个是Java中的关键字(C )。
A、runB、IntegerC、defaultD、implement2、下面关于Java.applet.Applet和其祖先类的描述语句哪个不对(B )。
A、Applet是Container的一种B、Applet是Window的一种C、Applet是Component的一种D、Applet是Panel的一种3、下列类DataOutputStream的构造方法正确的是(A )。
A、new dataOutputStream(new FileOutputStream(“out.txt”));B、new dataOutputStream(“out.txt”);C、new dataOutputStream(new writer(“out.txt”));D、new dataOutputStream(new FileWriter(“out.txt”));4、在switch(表达式)语句中,表达式的类型不能为(C )。
A、byteB、charC、longD、int5、在接口MouseMotionListener中方法正确的是(A )。
A、Public void mouseDragged(MouseEvent)B、Public boolean mouseDragged(MouseEvent)C、Public void mouseDragged(MouseMotionEvent)D、Public boolean MouseDragged(MouseMotionEvent)6、下面是一些异常类的层次关系ng.Exceptionng.RuntimeExceptionng.IndexOutOfBoundsExceptionng.ArrayIndexOutOfBoundsExceptionng.StringIndexOutOfBoundsException假设有一个方法X,能够抛出两个异常,Array Index和String Index异常,假定方法X中没有try-catch语句,下面哪个答案是正确的。
面向对象程序设计复习题(附参考答案)
【题目】【题型:单选题】【难度:中】【考核能力:理解】【漏选得分:是】【自动判分:是】【应用类别:终考】【特殊标签:】机器语言中的指令编码为()编码。
[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程序时使用的命令是()。
JAVA面向对象程序设计(期末考试试题及答案)
程序设计(期末考试试题及答案)JAVA面向对象面向对象程序设计一、单选择题1、编译Java Application源程序文件将产生相应的字节码文件,这些字节码文件的扩展名为(B)。
A.javaB..classC.htmlD..exe2、不允许作为类及类成员的访问控制符的是(C)。
A.publicB.privateC.staticD.Protected3、设x=1,y=2,z=3,则表达式y+=z--/++x的值是(A)。
A.3B.3.5C.4D.54、为AB类的一个无形式参数无返回值的方法method书写方法头,使得使用类名AB作为前缀就可以调用它,该方法头的形式为(A)。
A.static void method()B.public void method()C.final void method()D.abstract void method()5、下列属于容器的组件有:(B)A.JButton B.JPaneC.Canvas D.JTextArea6、v oid的含义:(C)A.方法体为空B.定义的方法没有形参C.定义的方法没有返回值 D.方法的返回值不能参加算术运算7、关于Java中异常的叙述正确的是:(D)A.异常是程序编写过程中代码的语法错误B.异常是程序编写过程中代码的逻辑错误C.异常出现后程序的运行马上中止D.异常是可以捕获和处理的8、下面哪个不是java语言中的关键字?(B)A.longB.sizeofC.instanceofD.Const9、在复选框中移动鼠标,然后单击一选项,要捕获所选项必需实现哪个接口?(D)A.ActionListenerB.MouseListenerC.MouseMotionListernD.ItemListener10、以下有关类的继承的叙述中,正确的是:(D)A子类能直接继承父类所有的非私有属性,也可通过接口继承父类的私有属性B.子类只能继承父类的方法,不能继承父类的属性C.子类只能继承父类的非私有属性,不能继承父类的方法D.子类不能继承父类的私有属性二、填空题1、开发与运行Java程序需要经过的三个主要步骤为编辑源程序、编译生成字节码和解释运行字节码。
面向对象程序设计复习题答案
面向对象程序设计复习选择题1. 一个设计得好的面向对象系统具有(B)特征。
A 低内聚、低耦合B 高内聚、低耦合C 高内聚、高耦合D 低内聚、高耦合2. 面向对象程序设计的特点主要概括为(C)。
A 可分解性、可组合性、可分类性B 继承性、封装性、多态性C 抽象封装性、继承性、多态性D 封装性、易维护性、可扩展性、可重用性3. 关于C#程序的书写,下列不正确的说法是( D )。
A. 区分大小写B. 一行可以写多条语句C. 一条语句可写成多行D. 一个类中只能有一个Main()方法,因此多个类中可以有多个Main()方法4. 关于C#语言的基本语法,下列哪些说法正确的是(C)A. C#语言使用using 来引用需要用到的命名空间;B. 用C#编写的程序中,Main 函数是唯一允许的全局函数;C. C#语言中使用的名称严格区分大小写;D. C#中一条语句必须写在一行内;5 以下标识符中,正确的是(A)。
A._nNameB. typeofC. 6bD. x5#6.字符串连接运算符包括&和(A)。
A. +B. -C. *D. /7.拆箱是关于:(B)A、值类型到引用类型的转换B、引用类型到值类型的转换C、引用类型到引用类型的转换D、值类型到值类型的转换8.装箱是关于:(A)A、值类型到引用类型的转换B、引用类型到值类型的转换C、引用类型到引用类型的转换D、值类型到值类型的转换9.下列引用类型和值类型描述正确的是(A)。
A. 引用类型变量保存内存地址,值类型直接保存变量值B. 引用类型在变量中直接保存变量值,值类型保存内存地址C. 引用类型和值类型保存数据的方式相同D. .NET Framework不支持值类型,因为所有的类型都是引用类型了10.一个类中的静态方法的调用可以:(A)A、通过类名调用B、通过实例化的对象调用C、在主方法中直接调用D、在同一个类中的某一方法中直接调用11.以下数据类型中,属于引用类型的是:(A)A、string类型B、double类型C、int类型D、 char类型12.下列类型中为值类型的是(C)A. 字符串类型B. 树组类型C. 枚举类型D. 接口类型13.decimal类型和浮点类型都可以表示小数,正确说法:(C)A. 两者没有任何区别B. 小数类型比浮点类型取值范围大C.小数类型比浮点类型精度高D. 小数类型比浮点类型精度低14. 有定义语句:int [,]a=new int[5,6]; 则下列正确的数组元素的引用是(C)。
《面向对象程序设计JAVA语言程序设计》期末考试试题及部分答案
《面向对象程序设计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=, y=, z=;则以下的表达式中,值为true的是CA.x > y || x > z B.z > ( y + x ) C.x != yD.x < y & ! ( x < z )8.下列修饰符中,定义类头时能使用的修饰符是C A.private B.static C.abstractD.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个操作数中,第一个操作数的类型必须是逻辑型的。
面向对象程序设计C++期末试卷2套(含答案)
面向对象程序设计C++ 第一套试卷一、选择题(共32分,每小题2分)1.按照C++标识符的规则,下面( B )是c++的标识符。
A.8_afrB.a_ideC.t-axyD._3?d2.C++中声明常量的关键字是( A )A.constB.externC.publicD.enum3.建立( C )的作用是为变量另起一个名字。
A.指针B.枚举C.引用D.结构4.在( D )情况下适宜采用内联函数。
A.函数体含有循环语句B.函数代码多,频繁调用C.函数体含有递归语句D. 函数代码少,频繁调用5.关于new运算符的下列描述中,错误的是( D )A.它可以用来动态创建对象和对象数组B.使用它创建的对象或对象数组可以使用运算符delete删除C.使用它创建对象时要调用构造函数D.使用它创建对象数组时必须指定初始值6.类成员的访问权限中,( C )只能被本类的成员函数和其友元函数访问。
A.shareB.publicC.privateD.protected7.在下面有关构造函数的描述中,正确的是( B )A.构造函数可以带有返回值B.构造函数名字与类名完全相同C.构造函数必须带参数D.构造函数必须定义,不能默认8.有如下类声明:class A{ private: int x;public: A(int n){ x=n;} };class B: public A{ private: int y;public: B(int a,int b); };在构造函数B的下列定义中,正确的是( C )。
A. B::B(int a,int b): x(a),y(b){ }B. B::B(int a,int b): x(a),B(b){ }C. B::B(int a,int b): A(a),y(b){ }D. B::B(int a,int b): A(a),B(b){ }9.设置虚基类的目的是( B )A.简化程序B.消除二义性C.提高运行效率D.减少目标代码10.当一个派生类私有继承一个基类时,基类中的所有公有成员和保护成员成为派生类的( C )A.public成员B. protected成员C.private成员D.友元11. 应在下列程序划线处填入的正确语句是( D )#include<iostream>using namespace std;class Base{ public: void fun(){cout<<"Base::fun"<<endl;}};class Derived:public Base{ public: void fun() {cout<<"Derived::fun"<<endl;}};void main(){ Derived obj;_____________ //调用基类的fun函数}A.obj.fun(); B. Base.fun(); C. Base->fun(); D. obj.Base::fun();12. 假定一个类的构造函数为B(int x,int y){a=x;b=a*y;},则执行B obj(3,5); 语句后,obj.a和obj.b的值分别为( C )A.3和5 B.5和3 C.3和15 D.20和513.模板的使用是为了( A )A.提高代码的可重用性B.提高代码的运行效率C.加强类的封装性D.实现多态性14.在下列选项中( A )不是ostream类的对象。
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++中编译器所生成的文件的扩展名为()。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
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.函数重载是指_________。
答案:两个或两个以上的函数取相同的函数名,但形参的个数或类型不同6.在派生类中重新定义虚函数时必须在_________ 方面与基类保持一致。
答案:参数个数阅读程序例题【计算题】1.分析以下程序的执行结果#include<iostream.h>class Sampleint 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!=yx=y2.分析以下程序的执行结果#include<iostream.h>int add(int x,int y){return x+y;}int add(int x,int y,int z){return x+y+z;}void main(){int a=4,b=6,c=10;cout<<add(a,b)<<,<<add(a,b,c)<<endl; }解:10,20 3.分析以下程序执行结果#include<iostream.h>int add(int x,int y){return x+y;}double add(double x,double y){return x+y;}void main(){int a=4,b=6;double c=2.6,d=7.4;cout<<add(a,b)<<","<<add(c,d)<<endl; }解:10,104.分析以下程序执行的结果#include<iostream.h>class Sample{int x,y;public:Sample(){x=y=0;}Sample(int a,int b){x=a;y=b;}void disp(){cout<<"x="<<x<<",y="<<y<<endl;}};void main(){Sample s1,s2(1,2),s3(10,20);Sample *pa[3]={&s1,&s2,&s3};for(int i=0;i<3;i++)pa[i]->disp();}解:x=0,y=0x=1,y=2x=10,y=20 5. 分析以下程序的执行结果:#include<iostream.h>class base{int n;public:base(){};base (int a){cout << "constructing base class" << endl;n=a;cout << "n= "<< n << endl;}~base() { cout << "destructing base class" << endl; } };class subs : public base{int m;public:subs(int a, int b) : base(a){cout << "constructing sub class "<< endl;cout << "m= "<< m << endl;}~subs() { cout << "destructing sub class "<< endl; } };void main (){subs s(1,2);}解:constructing base classn= 1constructing sub classm= 2destructing sub classdestructing base class6.分析以下程序的执行结果:#include <iostream.h>class Sample{protected:public:Sample() { x=0; }Sample(int val) { x=val; }void operator++() { x++; }};class Derived:public Sample{int y;public:Derived():Sample(){ y=0; }Derived(int val1,int val2):Sample(val1){ y=val2; } void operator--(){ x--;y--;}void disp(){cout<<"x="<< x << ",y=" << y << endl;}};void main (){Derived d(3,5);d.disp();d++;d.disp ();d--;d--;d.disp();}解:x=3,y=5x=4,y=5x=2,y=37 分析以下程序执行结果:#include <iostream.h>class A{public:A(char *s) { cout << s << endl; } ~A() {}};class B:public A{public:B(char *sl,char *s2) :A(sl){cout << s2 << endl;}};class C:public A{public:C(char *sl,char *s2) :A(sl){cout << s2 << endl;}};class D:public B,public C{public:D(char *sl,char *s2,char *s3,char *s4) :B(sl,s2),C(sl,s3) {cout << s4 << endl;}};void main (){D d("class A","class B","class C","class D");}解:class Aclass Bclass Aclass Cclass D 补充例题1.分析以下程序的执行结果#include<iostream.h>template <class T>T max(T x,T y){ return (x>y?x:y); }void main(){ cout<<max(2,5)<<“,”<<max(3.5,2.8)<<endl; } 解答:5,3.5 2.分析以下程序的执行结果#include<iostream.h>void main(){int a[]={10,20,30,40},*pa=a;int *&pb=pa;pb++;cout<<*pa<<endl;}解答:输出为:20 3.分析以下程序的执行结果#include<iostream.h>template <class T>T abs(T x){ return (x>0?x:-x); }void main(){ cout<<abs(-3)<<“,”<<abs(-2.6)<<endl; } 解答:输出为:3,2.64.分析以下程序的执行结果#include<iostream.h>class Sample{char c1,c2;public:Sample(char a){c2=(c1=a)-32;}void disp(){ cout<<c1<<“转换为”<<c2<<endl; } };void main(){Sample a('a'),b('b');a.disp();b.disp();}解答:a转换为Ab转换为B 5.分析以下程序的执行结果#include<iostream.h>void main(){int a;int &b=a; // 变量引用b=10;cout<<“a=”<<a<<endl;}解答:输出为:a=10 6.分析以下程序的执行结果#include<iostream.h>class Sample{int x;public:Sample(){};Sample(int a){x=a;}Sample(Sample &a){x=a.x++ +10;}void disp(){cout<<“x=”<<x<<endl; } };void main(){ Sample s1(2),s2(s1);s1.disp();s2.disp();}解答:x=3 // ++运算的结果x=12 // 2+107.分析以下程序的执行结果#include<iostream.h>class Sample{int x;public:Sample(){};Sample(int a){x=a;}Sample(Sample &a){x=a.x+1;}void disp(){cout<<“x=”<<x<<endl; }};void main(){ Sample s1(2),s2(s1);s2.disp();}解答:输出为:x=3。