《面向对象程序设计》期末考核试题样例及解答

合集下载

c面向对象程序设计期末考试题及答案

c面向对象程序设计期末考试题及答案

c面向对象程序设计期末考试题及答案一、选择题(每题2分,共20分)1. 下列哪个是面向对象程序设计的特点?A. 封装B. 继承C. 多态D. 所有选项都是2. 在Java中,以下哪个关键字用于定义类?A. classB. structC. typeD. classdef3. 以下哪个是Java中不允许的类成员访问修饰符?A. publicB. protectedC. privateD. global4. 以下哪个是Java中实现多态的方式?A. 函数重载B. 函数重写C. 接口D. 抽象类5. 在Java中,哪个关键字用于声明一个方法,该方法没有返回值?A. voidB. returnC. noneD. null6. 以下哪个是Java中创建对象的语法?A. new ClassName();B. create ClassName;C. make ClassName;D. ClassName();7. 在Java中,以下哪个是正确的构造方法声明?A. public ClassName();B. public ClassName new();C. public new ClassName();D. public ClassName create();8. 以下哪个是Java中实现继承的方式?A. 使用extends关键字B. 使用implements关键字C. 使用interface关键字D. 使用new关键字9. 在Java中,以下哪个关键字用于实现接口?A. implementsB. extendsC. interfaceD. class10. 以下哪个是Java中实现封装的方式?A. 使用public关键字B. 使用private关键字C. 使用protected关键字D. 使用default关键字答案:1. D2. A3. D4. B5. A6. A7. A8. A9. A10. B二、简答题(每题10分,共20分)1. 简述面向对象程序设计中的“封装”概念及其重要性。

Java面向对象程序设计期末复习试题(附解析)

Java面向对象程序设计期末复习试题(附解析)

JAVA面向对象程序设计复习试题+解析1)在JAVA编程中,关于Font下列()是正确的。

(选择两项)a)在我们的程序中可以使用Font类中定义的字体常量。

b)我们可以使用Tookit类中的函数来获取我们的机器中java所支持的字体的列表c)我们可以自己创建字体实例对象d)以上说明都正确【解析】参考答案:A BFont属于java.awt包中的一个类,专门用来设置程序中的字体实例对象。

创建Font类的对象时使用的方法:getFont(int face,int style,int size);例如:Font font = Font.getFont(Font.FACE_SYSTEM,Font.STYLE_BOLD,Font. SIZE_MEDIUM);无论哪一个参数,都只能使用系统设置的数值,这些数值具体的大小在不同的手机上可能不同。

下面对于其中的三个参数的取值做详细的介绍:face参数指字体的外观;style参数指字体的样式;size参数指字体的大小。

这三个参数都是系统中定义好的一些常量。

获得系统的默认字体:Font font = Font.getDefaultFont();ToolKit类是 Abstract Window Toolkit 的所有实际实现的抽象父类。

Toolkit 用于把各种组件绑定到特定的本地工具箱实现上。

该类有个方法getFontList()用于返回该工具箱中可用字体名。

也就是可以获取机器中java所支持的字体的列表。

2)在Java语言中,在包Package1中包含包Package2,类Class_A直接隶属于包Package1,类Class_B直接隶属于包Package2。

在类Class_C要应用Class_A的方法A和Class_B 的方法B,你需要()语句。

(选择两项)a)import Package1.*;b)import Package1.Package2.*;c)import Package2.*d)import Package2.Package1.*;【解析】A BJava语言中的包机制就像Windows中的文件夹,用来归类类文件的位置。

面向对象程序设计试卷(试卷A)参考解答及评分标准

面向对象程序设计试卷(试卷A)参考解答及评分标准
#include <iostream.h>共10分:
#include <string.h>
class CStudent{(3分)
private:
charm_Name[20];
longm_ID;
charm_Sex;
intm_Age;intm来自TotalScore;public:
CStudent(char* name="No", long ID=0, char sex='N', int age=0, int TotalScore=0);(1分)
};
void main()(1分)
{
CCylinder cylinder(200, 300, 100, 400);
cylinder.Show();
}
m_TotalScore=TotalScore;
}
voidCStudent::Input()(1分)
{
cout<<"Please input name,ID,sex,age,Total Score(separated by blank):"<<endl;
cin>>m_Name>>m_ID>>m_Sex>>m_Age>>m_TotalScore;
class B2 : public A(1分)
class B2 : virtual public A(1分)
或:共4分:
d.a=100(2分)
d.B1:: a=100(2分)
四、程序阅读分析题:本大题共4个小题,每小题4分,共16分。
1、共4分:
Max=101(4分)

最新国家开放大学电大本科《面向对象程序设计》期末题库及答案

最新国家开放大学电大本科《面向对象程序设计》期末题库及答案

最新国家开放大学电大本科《面向对象程序设计》期末题库及答案考试说明:本人针对该科精心汇总了历年题库及答案,形成一个完整的题库,并且每年都在更新。

该题库对考生的复习、作业和考试起着非常重要的作用,会给您节省大量的时间。

做考题时,利用本文档中的查找工具,把考题中的关键字输到查找工具的查找内容框内,就可迅速查找到该题答案。

本文库还有其他网核及教学考一体化答案,敬请查看。

《面向对象程序设计》题库及答案一一、单项选择题(每小题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的值分别为( )。

《面向对象程序设计C 》期末试卷及标准答案

《面向对象程序设计C 》期末试卷及标准答案

《面向对象程序设计C++》期末考试试卷(B)一、单项选择题(每小题2分,共40分)1、关于C++与C语言关系的描述中,( )就是错误的。

A.C语言就是C++语言的一个子集B.C语言与C++语言就是兼容的C.C++语言对C语言进行了一些改进D.C++语言与C语言都就是面向对象的2、已知:int m=10; 下列表示引用的方法中,( )就是正确的。

A.int &x=m;B.int &y=10;C.int &z;D.float &t=&m;3、考虑下面的函数原型声明:void testDefaulParam(int a,int b=7,char z='*');下面函数调用中,不合法的就是( )。

A.testDefaulParam(5);B.testDefaulParam(5,8);C.testDefaulParam(5,'#');D.testDefaulParam(0,0,'*');4、系统在调用重载函数时往往根据一些条件确定哪个重载函数被调用,在下列选项中,不能作为依据的就是( )。

A.函数的返回值类型B.参数的类型C.函数名称D.参数个数5、下列有关C++类的说法中,不正确的就是( )。

A.类就是一种用户自定义的数据类型B.只有类中的成员函数或类的友元函数才能存取类中的私有成员C.在类中,如果不做特别说明,所有成员的访问权限均为私有的D.在类中,如果不做特别说明,所有成员的访问权限均为公用的6、已知X类,则当程序执行到语句X array[3];时,调用了( )次构造函数。

A.0B.1C.2D.37、有关析构函数的说法,不正确的就是( )。

A.析构函数有且仅有一个B.析构函数与构造函数一样可以有形参C.析构函数的功能就是在系统释放对象之前作一些内存清理工作D.析构函数无任何函数类型8、类定义的内容允许被其对象无限制地存取的就是( )。

《面向对象程序设计C 》期末试卷及答案

《面向对象程序设计C  》期末试卷及答案

选择题1.在C++中,函数原型不能标识( D )A.函数的返回类型B.函数参数的个数C.函数参数类型D.函数的功能2.在C++程序中,对象之间的相互通信通过( B )A.继承实现B.调用成员函数实现C.封装实现D.函数重载实现3.对于任意一个类,析构函数的个数最多为( B )A.0B.1C.2D.34.友元关系不能( A )A.继承B.是类与类的关系C.是一个类的成员函数与另一个类的关系D.提高程序的运行效率5.语句ofstream f(″SALARY.DAT″,ios::app|ios::binary);的功能是建立流对象f,试图打开文件SALARY.DAT 并与之连接,并且( A )A.若文件存在,将文件写指针定位于文件尾;若文件不存在,建立一个新文件B.若文件存在,将其置为空文件;若文件不存在,打开失败C.若文件存在,将文件写指针定位于文件首;若文件不存在,建立一个新文件D.若文件存在,打开失败;若文件不存在,建立一个新文件6.下面说法正确的是( B )A.内联函数在运行时是将该函数的目标代码插入每个调用该函数的地方B.内联函数在编译时是将该函数的目标代码插入每个调用该函数的地方C.类的内联函数必须在类体内定义D.类的内联函数必须在类体外通过加关键字inline 定义7.可以用p.a 的形式访问派生类对象p 的基类成员a,其中a 是( D )A.私有继承的公有成员B.公有继承的私有成员C.公有继承的保护成员D.公有继承的公有成员8.在公有派生情况下,有关派生类对象和基类对象的关系,不正确的叙述是( C )A.派生类的对象可以赋给基类的对象B.派生类的对象可以初始化基类的引用C.派生类的对象可以直接访问基类中的成员D.派生类的对象的地址可以赋给指向基类的指针9. 派生类对象可访问基类中的什么成员( A )A.公有继承的公有成员B.公有继承的私有成员C.公有继承的保护成员D.私有继承的公有成员10. 定义析构函数时,应该注意(C)A.其名与类名完全相同B.返回类型是void类型C.无形参,也不可重载D.函数体中必须有delete语句11. 如果类A被说明成类B的友元,则( D )。

java面向对象程序设计期末考试题及答案

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中,______关键字用于声明一个类是抽象的。

《面向对象程序设计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=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个操作数中,第一个操作数的类型必须是逻辑型的。

《面向对象程序设计C》期末试卷及标准答案(A)

《面向对象程序设计C》期末试卷及标准答案(A)

《面向对象程序设计C》期末试卷及标准答案(A)一、选择题(每小题2分,共40分)1、C++是()。

A. 面向对象的程序设计语言B. 面向过程的程序设计语言C. 既支持面向对象的程序设计又支持面向过程的程序设计的混合型语言D. 非结构化的程序设计语言2、面向对象程序设计思想的主要特征中不包括()。

A. 封装性B. 多态性C. 继承性D. 功能分解,逐步求精3、若定义:string str; 当语句cin>>str; 执行时,从键盘输入:Microsoft Visual Studio 6.0!所得的结果是str=()。

A. Microsoft Visual Studio 6.0!B. MicrosoftC. Microsoft VisualD. Microsoft Visual Studio 6.04、考虑下面的函数原型声明:void testDefaulParam(int a,int b=7,char z='*');下面函数调用中,不合法的是()。

A. testDefaulParam(5);B. testDefaulParam(5,8);C. testDefaulParam(5,'#');D. testDefaulParam(0,0,'*');5、下列语句中,将函数int sum(int x, int y)正确重载的是()。

A. float sum(int x, int y);B. int sum(int a, int b);C. float sum(float x, float y);D. double sum(int y, int x);6、下列表示引用的方法中,()是正确的。

已知:int a=1000;A. int &x=a;B. char &yC. int &z=1000;D. float &t=&a7、在一个函数中,要求通过函数来实现一种不太复杂的功能,并且要求加快执行速度,选用()。

JAVA面向对象程序设计(期末考试试题及答案)

JAVA面向对象程序设计(期末考试试题及答案)

JAVA面向对象程序设计(期末考试试题及答案)一、选择题(每题5分,共30分)1. 下列哪个不是Java基本数据类型?A. intB. charC. StringD. boolean答案:C2. 下列哪个操作符用于取模?A. %B. /C.D. &答案:A3. 下列哪个关键字用于定义接口?A. classB. interfaceC. extendsD. implements答案:B4. Java中,下列哪个方法可以实现字符串的截取?A. substring(int start, int end)B. substring(int start, int length)C. substring(int index)D. substring(int index, int length)答案:A5. 下列哪个方法用于判断字符串是否为空?A. isEmpty()B. isBlank()C. isEmptyD. isNull()答案:B6. 下列哪个方法用于获取字符串长度?A. length()B. lengthC. size()D. getSize()答案:A二、填空题(每题5分,共30分)1. 在Java中,所有的类都是_______类的子类。

答案:Object2. Java中定义接口时,需要使用_______关键字。

答案:interface3. 在Java中,定义抽象类时需要使用_______关键字。

答案:abstract4. Java中,字符串比较可以使用_______方法。

答案:equals()5. 在Java中,若要实现字符串的翻转,可以使用_______类。

答案:StringBuilder6. 下列哪个方法用于判断字符串是否以指定的字符串开头?答案:startsWith(String prefix)三、编程题(共40分)1. 编写一个Java程序,实现一个简单的计算器功能,包括加、减、乘、除四种运算。

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程序需要经过的三个主要步骤为编辑源程序、编译生成字节码和解释运行字节码。

《面向对象的程序设计》期末试卷(B)答案

《面向对象的程序设计》期末试卷(B)答案

电子系计控专业《面向对象的程序设计》期末试卷(B)答案一、选择题(每题2分,共40分)1、下列关于窗体的描述中,错误的是A。

A. 执行Unload Form1语句后,窗体Form1消失,但仍在内存中B. 窗体的Load事件在加载窗体时发生C. 当窗体的Enabled属性为False时,通过鼠标和键盘对窗体的操作都被禁止D. 窗体的Height、Width属性用于设置窗体的高和宽2、窗体文件的扩展名是_D_。

A.frxB. basC. vbpD. frm3、双击窗体上的控件后,将显示的窗口是 C 。

A. 项目(工程)窗口B. 工具箱C. 代码窗口D.1属性窗口4、表示滚动条控件取值范围最大值的属性是__A__A. MaxB. LargeChangeC. ValueD. Max-Min5、若要设置文本框中文本所显示的颜色,使用的属性是_C__。

A. BackColorB. FillColorC. ForeColorD. BackStyle6、下列属性中, B 属性是列表框不具有的。

A. NameB. CaptionC. ColumnsD. Text7、设计动画时,通常用定时器控件的A属性来控制动画速度。

A. IntervalB. ValueC. MoveD. Enabled8、改变控件在窗体中的左右位置,应设置该控件的__B__。

A. TopB. LeftC.WidthD.Height9、可以同时删除字符串前导和尾部空格的函数是 C 。

A. LtrimB. RtrimC. TrimD. Mid10、列表框的_B_属性返回或设置列表框中各列表项的文本。

A. SelectedB. ListC. TextD. Caption11、以下选项中,不是VB标准控件的是_C_。

A. 单选框B. 复选框C. 对话框D. 定时器12、为了把焦点移到某个指定的控件,所使用的方法是 D 。

A. SetFocusB. VisibleC. RefreshD. GetFocus13、Byte类型的变量可存的最大整数是_A_。

面向对象程序设计-试卷[附参考答案]

面向对象程序设计-试卷[附参考答案]

《面向对象程序设计》试卷第一学期“本科”期末考试计算机专业面向对象程序设计试题一、单项选择题(每小题1分,共20分)1.由C++源程序文件编译而成的目标文件的默认扩展名为(C)。

A.cppB.exeC.objD.lik2.设x和y均为bool量,则x&&y为真的条件是(A)。

A. 它们均为真B.其中一个为真C. 它们均为假D. 其中一个为假3.在下面的二维数组定义中,正确的语句是(C)。

A.int a[5][];B.int a[][5];C.int a[][3]={{1,3,5},{2}};D.int a[][10];4.在文件包含命令中,被包含文件的扩展名(C)。

A.必须是 .h;B.不能是 .h;C.可以是 .h或 .cpp;D.必须是 .cpp;5.要使语句“p=new int[10][20]”正确,p应事先定义为(D)。

A.int *p;B.int **p;C.int *p[20];D.int (*p)[20];6.在关键字public后定义的成员为该类的(B)成员。

A.私有B. 公有C.保护D.任何7.假定AA为一个类,a为该类私有的数据成员,若要在该类的一个成员函数中访问它,则书写格式最好为(B)。

A.aB.AA::aC.a( )D. AA::a( )8.队列具有(A)的操作特性。

A.先进先出B.先进后出C.进出无序D.仅进不出9.假定AB为一个类,则执行“AB a,b(3),*p”语句时共调用该类构造函数的次数为(D)。

A. 5B. 4C. 3D. 210.在重载一个运算符时,其参数表中没有任何参数,这表明该运算符是(B)。

A. 作为友元函数重载的1元运算符B. 作为成员函数重载的1元运算符C. 作为友元函数重载的2元运算符D. 作为成员函数重载的2元运算符二、填空题(每空2分,共20分)1.当执行cout语句输出endl数据项时,将使C++显示输出屏幕上的光标从当前位置移动到下一行的开始位置。

面向对象程序设计》期末试卷及标准答案

面向对象程序设计》期末试卷及标准答案

《面向对象程序设计C++》期末考试试卷(A)班级:姓名:学号:分数:试卷说明:本套试题共四个大题,全部题目都答在答题纸上,写在其他地方均无效。

(答题纸在本套试卷的第10页上)一、选择题(每小题2分,共40分)1、C++是(C )。

A. 面向对象的程序设计语言B. 面向过程的程序设计语言C. 既支持面向对象的程序设计又支持面向过程的程序设计的混合型语言D. 非结构化的程序设计语言2、面向对象程序设计思想的主要特征中不包括( D )。

A. 封装性B. 多态性C. 继承性D. 功能分解,逐步求精3、若定义:string str; 当语句cin>>str; 执行时,从键盘输入:Microsoft Visual Studio 6.0!所得的结果是str=( B )。

A. Microsoft Visual Studio 6.0!B. MicrosoftC. Microsoft VisualD. Microsoft Visual Studio 6.04、考虑下面的函数原型声明:void testDefaulParam(int a,int b=7,char z='*'); 下面函数调用中,不合法的是( C )。

A. testDefaulParam(5);B. testDefaulParam(5,8);C. testDefaulParam(5,'#');D. testDefaulParam(0,0,'*');5、下列语句中,将函数int sum(int x, int y)正确重载的是( C )。

A. float sum(int x, int y);B. int sum(int a, int b);C. float sum(float x, float y);D. double sum(int y, int x);6、下列表示引用的方法中,( A )是正确的。

c面向对象程序设计期末考试题及完整参考答案

c面向对象程序设计期末考试题及完整参考答案
2.Iflyable接口定义中的public float Run(float distanee);,改为float Run(float distanee);
3.distanee/400.0改为distanee/400或者distanee/400.0f;
4.public float ISwimmable.Run(float distanee)改为float ISwimmable.Run(float distanee)
7.类索引函数的参数类型必须为或。
8.类对接口方法的实现时,在方法名称之前加上接口名,这叫做对接口方法的实现,此时这个方法是这个
类的员,不能通过类的实例来访问。
9.作为一种特殊的函数成员,重载类的操作符时,被重载的操作符必须被声明为公有的和,并通过在关键
字operator后跟操作符来声明。
二、判断题(每小题1分,共5分)
public virtual float Run( float dista nce)
{
retur n dista nce/Speed;
}
public Automobile(float speed)
{
Speed = speed;
}
}
public class Amphicar:Automobile, ISwimmable
Console.WriteLine("{0}空中飞行1000公里需{1}小时", plane, plane.Run(1000)); //调用IFlyable接口Run方法
Con sole.ReadL in e();
}
}
public in terface IFIyable
{
public float Run( float dista nee);

面向对象程序设计》期末试卷及标准答案

面向对象程序设计》期末试卷及标准答案

⾯向对象程序设计》期末试卷及标准答案《⾯向对象程序设计C++》期末考试试卷(A)班级:姓名:学号:分数:试卷说明:本套试题共四个⼤题,全部题⽬都答在答题纸上,写在其他地⽅均⽆效。

(答题纸在本套试卷的第10页上)⼀、选择题(每⼩题2分,共40分)1、C++是(C )。

A. ⾯向对象的程序设计语⾔B. ⾯向过程的程序设计语⾔C. 既⽀持⾯向对象的程序设计⼜⽀持⾯向过程的程序设计的混合型语⾔D. ⾮结构化的程序设计语⾔2、⾯向对象程序设计思想的主要特征中不包括( D )。

A. 封装性B. 多态性C. 继承性D. 功能分解,逐步求精3、若定义:string str; 当语句cin>>str; 执⾏时,从键盘输⼊:Microsoft Visual Studio 6.0!所得的结果是str=( B )。

A. Microsoft Visual Studio 6.0!B. MicrosoftC. Microsoft VisualD. Microsoft Visual Studio 6.04、考虑下⾯的函数原型声明:void testDefaulParam(int a,int b=7,char z='*'); 下⾯函数调⽤中,不合法的是( C )。

A. testDefaulParam(5);B. testDefaulParam(5,8);C. testDefaulParam(5,'#');D. testDefaulParam(0,0,'*');5、下列语句中,将函数int sum(int x, int y)正确重载的是( C )。

A. float sum(int x, int y);D. double sum(int y, int x);6、下列表⽰引⽤的⽅法中,( A )是正确的。

已知:int a=1000;A. int &x=a;B. char &yC. int &z=1000;D. float &t=&a7、在⼀个函数中,要求通过函数来实现⼀种不太复杂的功能,并且要求加快执⾏速度,选⽤( A )。

《面向对象程序设计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=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 ) ----------------------------精品word文档值得下载值得拥有----------------------------------------------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线程二、填空题----------------------------精品word文档值得下载值得拥有----------------------------------------------1.三目运算符的3个操作数中,第一个操作数的类型必须是逻辑型的。

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

《面向对象程序设计》期末考核试题样例及解答一、单项选择(每小题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 T ao”);D. strcpy((*book)->title,”Wang Tao”);7. 软件产品所具有的全部或部分地再用于新的应用的能力称为该软件的()。

A. 可维护性B. 可复用性C. 兼容性D. 正确性8. 在多文件结构的程序中,通常把含有main()函数的文件称为()。

A. 主文件B. 实现文件C. 程序文件D. 头文件9. 在一个用链表实现的队列类中,假定每个结点包含的值域用elem表示,包含的指针域用next表示,链队的队首指针用elemHead表示,队尾指针用elemTail表示,若链队为空,则进行插入时必须把新结点的地址赋给( )。

A. elemHeadB. elemTailC. elemHead和elemTailD. elemHead或elemTail10. 假定AB为一个类,则执行“AB a, b(2), c[3], *p=&a;”语句时共调用该类无参构造函数的次数为( )。

A. 5B. 6C. 3D. 411. 引入友元的主要目的是为了()。

A. 增强数据安全性B. 提高程序的可靠性C. 提高程序的效率和灵活性D. 保证类的封装性12. 如果是类B在类A的基础上构造,那么,就称()。

A. 类A为基类或父类,类B为超类或子类B. 类A为基类、父类或超类,类B为派生类或子类C. 类A为派生类,类B为基类D. 类A为派生类或子类,类B为基类、父类或超类二、填空(每空1分,15小题,共18分)1. C++语言是在_________语言的基础上发展起来的。

2. 假定x=5,y=6,则执行表达式y*=x++计算后,x和y的值分别为__________和__________。

3. 假定x是一个逻辑量,则x && false的值为__________。

4. 在if语句中,每个else关键字与它前面同层次并且最接近的________关键字相配套。

5. 一个二维字符数组a[10][20]能够存储________个字符串,每个字符串的长度至多为________。

6. 局部变量具有局部生存期,存放在内存的____________区中。

7.假定p所指对象的值为25,p+1所指对象的值为42,则执行*(p++)或*p++运算后,p所指对象的值为________。

8. 已知语句“cout<<s;”的输出是“apple”,则执行语句“cout<<s+2;”的输出结果为__________。

9. 面向对象软件开发的生命周期分为三个阶段,即分析、__________和__________。

10. 若采用p->abc(y)表达式调用一个成员函数,在成员函数中使用的________就代表了类外的p指针。

11.当用户为一个类定义有____________时,则系统不会为该类再自动生成一个默认构造函数。

12.假定用户为类AB定义了一个构造函数"AB(int aa, int bb):a(aa),b(bb){}",则定义该类的对象时,有________种定义格式。

13.假定用户只为类AB定义了一个构造函数"AB(int aa, int bb=0) {a=aa; b=bb;}",则定义该类的对象时,其实参表中至少带有_________个实参。

14. 在重载一个单目运算符时,参数表中没有参数,说明该运算符函数只能是类的_____________。

15. 若要保证一个公共的基类在派生类中只产生一个基类子对象,则必须都以____________的方式继承它。

三、程序填充。

对程序、函数或类中划有横线的位置,根据题意按标号把合适的内容填写到程序下面相应标号的后面(每小题6分,3小题,共18分)1. 把从键盘上输入的一个大于等于3的整数分解为质因子的乘积。

如输入24时得到的输出结果为“2 2 2 3”,输入50时得到的输出结果为“2 5 5”,输入37时得到的输出结果为“37”。

#include<iostream.h>void main(){int x;cout<<"请输入一个整数,若小于3则重输:";do cin>>x; while(___(1)___);int i=2;do{while(___(2)___) {cout<<i<<' ';x/=i;}___(3)___;}while(i<x);if(x!=1) cout<<x;cout<<endl;}(1)(2)(3)2. 假定有定义为“struct NODE{int data; NODE* next;};”,下面算法根据table数组中的n个元素建立一个表头指针为L的链表,链表中结点值的顺序与数组元素值的顺序正好相反。

void f6(NODE*& L, int table[], int n){L=NULL;if(n<=0) return;int i=0;NODE* p;while(___(1)___) {p=new NODE;p->data=___(2)___;p->next=L;___(3)___;i++;}}(1)(2)(3)3. 已知一个利用数组实现栈的类定义如下:const int ARRAY_SIZE=10;class Stack {public:void Init() {top=-1;} //初始化栈为空void Push(int newElem); //向栈中压入一个元素int Pop(); //从栈顶弹出一个元素bool Empty() { //判栈空return top==-1;}int Depth() {return top+1;} //返回栈的深度void Print(); //按照后进先出原则依次输出栈中每个元素,//直到栈空为止private:int elem[ARRAY_SIZE]; //用于保存栈元素的数组int top; //指明栈顶元素位置的指针};void Stack::Push(int newElem) {if(___(1)___) {cout<<"栈满!"<<endl;exit(1); //中止运行}___(2)___;elem[top]=___(3)___;}(1)(2)(3)四、写出程序或程序段的运行结果(每小题6分,3小题,共18分)1. #include<iostream.h>void main(){int x=5;switch(2*x-3) {case 4: cout<<x<<’’;case 7: cout<<2*x+1<<’’;case 10: cout<<3*x-1<<’’; break;default: cout<<"default"<<endl;}cout<<"switch end."<<endl;}2. #include<iostream.h>void main(){int i,j,len[3];char a[3][8]={"year","month","day"};for(i=0;i<3;i++) {for(j=0;j<8;j++)if(a[i][j]=='\0') {len[i]=j;break;}cout<<a[i]<<":"<<len[i]<<endl;}}3. #include <iostream.h>#include <string.h>class Point {int x,y;public:Point(int x1=0, int y1=0) :x(x1), y(y1) {cout<<"Point:"<<x<<' '<<y<<'\n';}~Point() {cout<<"Point des!\n";}};class Text {char text[100]; //文字内容public:Text(char * str) {strcpy(text,str);cout<<"Text con!\n";}~Text() {cout<<"Text des!\n";}};class CircleWithText : public Point,public Text { public:CircleWithText(int cx,int cy, char *msg):Point(cx,cy),T ext(msg) {cout<<"Point with Text con!\n";}~CircleWithText() {cout<<"Point with Text des\n";}};void main(){CircleWithText cm(3,4,"hello");}五、指出程序或函数的功能(每小题6分,2小题,共12分)1. double f1(double a, double b, char op) {switch(op) {case ’+’: return a+b;case ’-’: return a-b;case ’*’: return a*b;case ’/’: if(b==0) {cout<<"divided by 0!"<<endl;exit(1);}else return a/b;default: cout<<"operator error!"<<endl;exit(1);}}功能:2. IntNode* FindMax(IntNode *f){if(!f) return NULL;IntNode *p=f;f=f->next;while(f) {if(f->data>p->data) p=f;f=f->next;}return p;}假定IntNode的类型定义为:struct IntNode {int data; //结点值域IntNode* next; //结点指针域};功能:六、程序改错。

相关文档
最新文档