面向对象程序的设计期末考核试题样例与解答
(完整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。
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面向对象程序设计复习试题+解析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中的文件夹,用来归类类文件的位置。
C++面向对象程序设计期末试卷及答案
一、程序填充(每小题10分,共20分)1.下列程序完成100以内偶数的累加#include <iostream>using namespace std;void main(){ //定义s为累加器,并置零//定义i为循环变量for(i=1;i<=100;)//累加循环变量至s//输出累加值//另起一行//输出循环变量的值//空一行}结果屏幕:2.下列程序完成你对本学期某一课程的评价#include <iostream>using namespace std;#include <string>void main(){int feeling;cout<<"请输入评价:"<<endl;string course;course=“”;cin>>feeling;switch(feeling){case 1:cout<<"十分感兴趣"<<endl;break;case 2: cout<<"感兴趣"cout<<endl;break;case 3: cout<<"不很感兴趣"<<endl;break;case 4: cout<<"很不感兴趣"<<endl;break;}cout<<course<<"老师教得很认真!”<<endl;}结果屏幕:(同学们注意友情提醒)//你要输入一个不大于4的正整数,通过键盘输入。
//你的感觉是什么?//你对那门课的老师感觉二、填空题(每小题1分,共10分)1.预处理语句以开始,C或C++语句以“;”结束。
2.C++程序的基本单位是。
3.C++语言中,函数一般由两部分组成,它们是函数首部和。
面向对象程序设计试卷(试卷A)参考解答及评分标准
#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的值分别为( )。
《面向对象程序设计JAVA语言程序设计》期末考试试题及部分答案3.doc
《面向对象程序设计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. init()D. paint()4、不允许作为类及类成员的访问控制符的是(C )。
A. publicB. privateC. staticD. protected5、为AB类的一个无形式参数无返回值的方法melhod书写方法头,使得使用类名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源程序文件只定义有一个类,该类的类名为My Applet,则类MyApplet必须是Applet. 类的子类并且存储该源程序文件的文件名为MyApplet 。
3、如果一个Java Applet程序文件中定义有3个类,则使用Sun公司的JDK编译器javac.exe 编译该源程序文件将产生 3 个文件名与类名相同而扩展名为.class 的字节码文件。
4、在Java的基木数据类型中,char型采用Unicode编码方案,每个Unicode码占用 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中,______关键字用于声明一个类是抽象的。
《面向对象程序设计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++面向对象程序设计期末试卷及答案(可编辑修改word版)
一、程序填充(每小题10分,共20 分)1.下列程序完成100 以内偶数的累加#include <iostream>using namespace std;void main(){ //定义 s 为累加器,并置零二、填空题(每小题1分,共10 分)1.预处理语句以开始,C 或C++语句以“;”结束。
2.C++程序的基本单位是。
for(i=1;i<=100; ) //定义 i 为循环变量3.C++语言中,函数一般由两部分组成,它们是函数首部和。
//累加循环变量至 s//输出累加值//另起一行//输出循环变量的值//空一行} 4.一个C++程序中至少应包括一个。
5.for 语句中有三个表达式,它们之间用间隔。
6.当循环次数不能确定时,应用来循环。
7.if(n%3==0)说明结果屏幕:2.下列程序完成你对本学期某一课程的评价#include <iostream>using namespace std;#include <string>void main(){int feeling;cout<<"请输入评价:"<<endl;string course;course=“”;cin>>feeling;switch(feeling){case 1:cout<<"十分感兴趣"<<endl;break;case 2: cout<<"感兴趣"cout<<endl;break;case 3: cout<<"不很感兴趣"<<endl;break;case 4: cout<<"很不感兴趣"<<endl;break;}cout<<course<<"老师教得很认真!”<<endl;}结果屏幕:(同学们注意友情提醒)//你要输入一个不大于 4 的正整数,通过键盘输入。
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面向对象面向对象程序设计一、单选择题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)答案一、选择题(每题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面向对象程序设计期末考试题及完整参考答案
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 )。
Python面向对象程序设计期末复习题及答案(含编程题)
Python⾯向对象程序设计期末复习题及答案(含编程题)⼀、选择题1、关于⾯向过程和⾯向对象,下列说法错误的是(B)。
A.⾯向过程和⾯向对象都是解决问题的⼀种思路B.⾯向过程是基于⾯向对象的C.⾯向过程强调的是解决问题的步骤D.⾯向对象强调的是解决问题的对象2、关于类和对象的关系,下列描述正确的是(D)。
A.类是⾯向对象的核⼼B.类是现实中事物的个体C.对象是根据类创建的,并且⼀个类只能对应⼀个对象D.对象描述的是现实的个体,它是类的实例3、构造⽅法的作⽤是(C)。
A.⼀般成员⽅法B.类的初始化C.对象的初始化D.对象的建⽴4、构造⽅法是类的⼀个特殊⽅法,Python 中它的名称为(C)。
A.与类同名B. _constructC. initD. init5、Python 类中包含⼀个特殊的变量(A),它表⽰当前对象⾃⾝,可以访问类的成员A. selfB. meC.thisD.与类同名⼆、填空题1、Python安装扩展库常⽤的是___⼯具。
(pip)2、Python程序⽂件扩展名主要有__和__两种,其中后者常⽤于GUI程序。
(py、pyw)3、查看变量类型的Python内置函数是______。
(type())4、列表对象的sort()⽅法⽤来对列表元素进⾏原地排序,该函数返回值为 _____。
(None)5、查看变量内存地址的Python内置函数是_______。
(id())6、Python源代码程序编译后的⽂件扩展名为___。
(pyc)7、为了提⾼Python代码运⾏速度和进⾏适当的保密,可以将Python程序⽂件编译为扩展名____的⽂件。
(pyc)8、____命令既可以删除列表中的⼀个元素,也可以删除整个列表。
(del)三、判断题1、在 Python 中定义类时,如果某个成员名称前有 2 个下划线则表⽰是私有成员。
(对)2、在类定义的外部没有任何办法可以访问对象的私有成员。
(错)3、Python 中⼀切内容都可以称为对象。
《面向对象程序设计》期末考核试题样例及解答
《面向对象程序设计》期末考核试题样例及解答一、单项选择(每小题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表示,若链队为空,则进行插入时必须把新结点的地址赋给( )。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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 Tao”);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二、填空(每空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 时得到的输出结果为“2223”,输入 50 时得到的输出结果为“255”,输入 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;2}___(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();//按照后进先出原则依次输出栈中每个元素,//直到栈空为止3private: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){case4:cout<<x<<’’;case7:cout<<2*x+1<<’’;case10: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;}}43.#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),Text(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;5case’/’:if(b==0){cout<<"divided by0!"<<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;//结点指针域};功能:六、程序改错。