完面向对象程序设计期末综合练习六(程序设计)
《面向对象系统分析与设计》期末综合练习题(答案版)
面向对象系统分析与设计期末综合练习题一、选择题1.Heave学院请Decoder软件公司开发一个新的OO课程系统,院长Tom宣布该系统一定要成为学院的great software,下面对于great software的说法正确的是?()(A)Decoder公司程序员满意软件。
(B)Heave学院师生满意的软件。
(C)价格最贵的软件。
(D)Decoder公司程序员和Heave学院师生都满意的软件。
2.Heave学院准备开发一个新的Java版的OO课程注册系统,该系统可以供学生查询期末成绩、教师统计班级成绩正态分布、教务统计GUITARIO各项能力在各门课程中的落实情况,而且随着历史数据的积累,今后还可能引入数据挖掘技术,为院长提供各届学生的整体进步情况,请问Decoder公司的系统架构师应该采用哪种设计模式来设计成绩统计模块()(A)状态模式(B)观察者模式(C)工厂模式(D)装饰者模式3.Heave学院原有的课程目录系统是用SmallTalk语言开发的,并向外部发不了一套访问接口。
学院为了节约成本,不准备重新开发该目录系统,为此Decoder需要设计一套与之兼容的Java接口对其进行封装。
这样可以更方便地将旧课程目录系统集成到新的系统中,同时为将来的升级留有余地。
请问系统设计师在设计时应该采用哪个设计模式?()(A)模版方法模式(B)适配器模式(C)观察者模式(D)外观模式4.Heave学院新的OO课程注册系统,可以与签约银行联网直接代收学费,但银行的业务逻辑错综复杂,为此Heave学院希望银行能够提供一套新的接口以屏蔽并简化原有业务操作的复杂性。
这套新接口设计上体现了哪个设计模式的思想()(A)适配器模式(B)观察者模式(C)装饰者模式(D)外观模式5.Heave学院的期末成绩统计可以饼状图、柱状图、曲线、表格等多种形式进行显示。
但不论何种形式显示,其统计算法census()需要通过prepareData()、generateChart()、saveChart()、showData()四个步骤,其中第1步与第2步对于不同的显示方式是不同的,那么系统设计师在设计该系统时,会使用哪个设计模式()(A)模版方法模式(B)观察者模式(C)适配器模式(D)外观模式6.Heave学院的历史数据挖掘器的设计很有挑战性,其难点在于院方要求各种形式的挖掘组件可以任意组合,任意拼装,每个挖掘组件完成独立的挖掘任务,互不干扰,组装后的挖掘器套件运行后,会形成一份报表,用以呈现挖掘结果。
《面向对象程序设计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个操作数中,第一个操作数的类型必须是逻辑型的。
计本03《面向对象程序设计》期末试卷 [A卷]
计本03级《面向对象程序设计》期末试卷[A卷] 第1页共8页计本03级《面向对象程序设计》期末试卷 [A卷]一、判断题,正确的打√,错误的打×(每小题1分,共计10分)1、C语言与C++语言的最大区别是:C语言程序是以.C作后缀的,而C++语言程序是以.CPP 作后缀的。
2、在C++语言中,字符串在内存中存放时,最后是以ASCII值为0的字符作为结尾标识的。
3、在C++语言中,语句#include “file1.h”和语句#include <file1.h>是等价的。
4、C++中标识符内的大小写字母是没有区别的。
5、所有的MFC应用程序都必须有一个且只有一个CWinApp对象。
6、当将一个类A定义为另一个类B的友元类时,类A的所有成员函数都可以直接访问类B的所有成员。
7、在C++中用new分配的内存空间,在不需要时一般用free将该空间释放。
8、Visual C++集成开发环境中,一个Workspace 中可以创建多个Project。
9、在基类中被说明为虚函数的类的成员函数必须在每个派生类中说明为虚函数,才能具有多态的特征。
10、语句“int (*p)(int x, int y);”说明了p是一个指向整数的指针。
二、简答题(共21分)1、什么是类?什么是对象?简要说明用面向对象的程序设计方法开发出的程序的运行过程。
(9分)2、在VC++6.0中,用MFC开发一个工程,一般是每个类会对应有一个.CPP源文件和一个.H 头文件。
简要说明程序中如何在一个类中使用另一个类的成员。
(6分)3、在C++中,分别使用while 和do…while 语句等价实现下列for语句的功能:for (i=1,k=0;i<10;k+=i++); (6分)三、填空题(10分)下面main()是一个求1+(1+2)+(1+2+3)+...+(1+2+3+...+n)之和的程序。
递归函数NSum(n)求1+2+…+n的和。
面向对象程序设计综合练习题
面向对象程序设计综合练习题一、单项选择题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 )。
面向对象程序设计_南开大学中国大学mooc课后章节答案期末考试题库2023年
面向对象程序设计_南开大学中国大学mooc课后章节答案期末考试题库2023年1.下面说法正确的是()。
答案:内联函数在运行时是将该函数的目标代码插入每个调用该函数的地方##内联函数在编译时是将该函数的目标代码插入每个调用该函数的地方2.()的功能是对对象进行初始化。
答案:构造函数3.在类定义的外部,可以被访问的成员有()。
答案:public的类成员4.有关析构函数的说法正确的是()。
答案:析构函数的功能是用来释放一个对象5.缺省析构函数的函数体是()。
答案:空的6.this指针是C++实现()的一种机制。
答案:封装7.下列关于对象数组的描述中,错误的是()。
答案:对象数组只能赋初值,而不能在定义后赋值8.下列关于运算符重载的描述中,()是正确的。
答案:运算符重载不可以改变语法结构9.在C++中,类与类之间的继承关系具有()。
答案:传递性10.在C++中,能被派生类继承的函数是()。
答案:成员函数11.当一个派生类公有继承一个基类时,基类中的所有公有成员成为派生类的()。
答案:public成员12.若派生类的成员函数不能直接访问基类中继承来的某个成员,则该成员一定是基类中的()。
答案:私有成员13.下列说法中错误的是()。
答案:私有继承时基类中的public成员在派生类中是protected的14.下列对派生类的描述中,()是错误的。
答案:派生类中继承的基类成员的访问权限到派生类保持不变15.动态联编所支持的多态性是()。
答案:运行时的多态性16.关于虚函数,下列表述正确的是()。
答案:虚函数不得声明为静态函数17.多态调用是指()。
答案:借助于指向对象的基类指针或引用调用一个虚函数18.下面函数原型声明中,()声明了fun为纯虚函数。
答案:virtual void fun()=0;19.关于纯虚函数,下列表述正确的是()。
答案:纯虚函数的声明总是以“=0”结束20.()是一个在基类中说明虚函数,它在该基类中没有定义,但要求任何派生类中的可访问性的规定是相同的。
《面向对象程序设计C--》期末试卷及答案
一、选择填空题(共20小题,每小题2分,共40分)。
1. 关于C++与C语言关系的描述中,(d)是错误的。
a.C语言是C++语言的一个子集b.C语言与C++语言是兼容的c.C++语言对C语言进行了一些改进d.C++语言和C语言都是面向对象的2.按照标识符的要求,(a )符号不能组成标识符。
a.连接符b.下划线c.大小写字母d.数字字符3. 为了避免嵌套的if-else语句的二义性,C语言规定else总是与(c)组成配对关系。
a.缩排位置相同的ifb.在其之前未配对的ifc.在其之前未配对的最近的ifd.同一行上的if4. 在"int a[ ][3]={{1},{3,2},{4,5,6},{0}};"中,a[2][2]的值是(c)。
a.1b.0c.6d.25. 设"char **s;",以下正确的表达式是(b)。
a.s="computer";b.*s="computer";c.**s="computer";d.*s='c';6. 对于"int *pa[5];"的描述中,(d )是正确的。
a.pa是一个指向数组的指针,所指向的数组是5个int型元素b.pa是一个指向某数组中第5个元素的指针,该元素是int型变量c.pa [5]表示某个元素的第5个元素的值d.pa是一个具有5个元素的指针数组,每个元素是一个int型指针7. 在下列表示引用的方法中,(a )是正确的。
已知:int m=10;a.int &x=m;b.int &y=10;c.int &z;d.float &t=&m;8. 下列for循环的次数为(b)。
for(i=0, x=0; !x&&i<=5; i++)a.5b.6c.1d.无限9. 对于C/C++语言的函数,下列叙述中正确的是(a)。
习题答案6-Java面向对象程序设计(第3版)-赵生慧-清华大学出版社
第六章【练习6.1 】[思考题] 请思考Java程序中编译时错误、逻辑错误和异常之间区别。
编译时的错误常常是语法上的错误。
通过编译器错误提示,能较容易修改。
程序逻辑上的错误是能被编译器编译通过,并能顺利运行,但运行出来的结果往往不是我们预期的结果。
异常是在程序运行过程中出现了错误导致程序终止,常常是运行时的错误。
练习6.21.C2.A练习6.31.C2.D3.A4.B5.B6.C练习6.41.B2.D练习6.51.C2.捕获异常;继续声明异常练习6.61.A2.C3.Exception;throws4.It’s caught!It’s finally caught!习题61.test2.不会3.[编程题]定义Triangle 类,其中包含一个方法void sanjiao(int a,int b,int c),用来判断三个参数是否能构成一个三角形。
如果不能则抛出异常IllegalArgumentException,显示异常信息a,b,c+”不能构成三角形”,如果可以构成则显示三角形三个边长,在主方法中得到命令行输入的三个整数,调用此方法,并捕获异常。
import java.util.Arrays;import java.util.Scanner;public class Triangle {public static void sanjiao(int a,int b,int c)throws Exception {if(a+b>c && c-a<b){System.out.println("能构成三角形");System.out.println("a="+a+","+"b="+b+","+"c="+c);}else {throw new IllegalArgumentException(a+","+b+","+c+" 不能构成三角形");}}public static void main(String[] args){int a[]=new int[3];System.out.println("输入三个整数");for(int i=0;i<3;i++){Scanner sc=new Scanner(System.in);a[i]=sc.nextInt();}Arrays.sort(a);//数组默认的从小到大排序,以保证三角形判定准则有效try{sanjiao(a[0],a[1],a[2]);}catch(IllegalArgumentException e){e.printStackTrace();}catch(Exception e){e.printStackTrace();}}}4.编写三个自定义异常类,分别为空异常类、年龄小异常类和年龄大异常类。
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++》期末考试试卷一、选择题(每小题3分,共48分。
)01、下列关于C++函数的叙述中,正确的是( C )。
A)每个函数至少要具有一个参数 B)每个函数都必须返回一个值C)函数在被调用之前必须先声明 D)函数不能自己调用自己02、下列关于类和对象的叙述中,错误的是( A )。
A)一个类只能有一个对象 B)对象是类的具体实例C)类是对某一类对象的抽象 D)类和对象的关系是一种数据类型与变量的关系03、在C++中,用于实现运行时多态性的是( D )。
A)内联函数 B)重载函数 C)模板函数 D)虚函数!04、下列关于运算符重载的叙述中,正确的是( B )。
A)通过运算符重载,可以定义新的运算符 B)有的运算符只能作为成员函数重载C)若重载运算符+,则相应的运算符函数名是+ D)重载二元运算符时,必须声明两个形参05、对于语句 cout<<x<<endl;错误的是描述是( D )。
A)“cout”是一个输出流对象B)“endl”的作用是输出回车换行C)“x”是一个变量D)“<<”称作提取运算符(插入运算符)06、有如下类声明,则类MyDERIVED中保护的数据成员和成员函数的个数是( 保护数据成员个数1,保护陈谷原函个数2 )。
( B )class MyBASE{ private: int k;public: void set(int n){ k=n;}int get( )const{ return k;} };class MyDERIVED: protected MyBASE{ protected: int j;public: void set(int m, int n){ MyBASE::set(m); j=n;}int get( ) const { return MyBASE::get( )+j; } };A)4 B)3 C)2 D)107、已知在一个类体中包含如下函数原型: Volume operator-(Volume)const;,下列关于这个函数的叙述中,错误的是( B )。
《面向对象程序设计(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、一个类可同时定义许多同名的方法,这些方法的形式参数的个数、类型或顺序各不相同,传回的值也可不相同。
《面向对象程序设计》期末复习带答案
一、单项选择题1.退出Visual Basic的快捷键是()。
CA.Ctrl + Q B.Shift + Q C.Alt + Q D.Ctrl + Alt + Q2.以下四个VB的变量名中,不合法的是()。
CA.Print_Num1 B.Abc% C.Const D.X1_y2_z33设置ADO数据控件RecordSource属性为数据库中的单个表名,则CommandType属性需要设置为()。
B A.adCmdText B.adCmdTable C.adCmdStoredProc D.adCmdUnknown4设有如下过程:Sub ff( x,y,z )x = y + zEnd Sub以下所有参数的虚实结合都是传址方式的调用语句是()。
BA.Call ff ( 5,7,z )B. Call ff ( x,y,z )C. Call ff ( 3 + x,5 + y,z )D. Call ff ( x + y,x - y,z )5.菜单的热键指使用Alt键和菜单标题中的一个字符来打开菜单,建立热键的方法是在菜单标题的某个字符前加上一个()字符。
CA.% B.$ C.& D.#6.函数Int( 76 * RND() )的值是在()范围内的整数。
CA. [1,75]B. [1,76]C. [0,75]D. [0,76]7.以下能够触发文本框Change事件的操作是()。
DA. 文本框失去焦点B.文本框获得焦点C. 设置文本框的焦点D.改变文本框的内容8.设组合框Combo1 中有3个项目,则以下能删除最后一项的语句是()。
BA.Combo1.RemoveItem Text B.Combo1.RemoveItem 2C.Combo1.RemoveItem 3 D.Combo1.RemoveItemCombo1.Listcount9.要使菜单项Menu1在程序运行时失效,使用的语句是()。
DA.Menu1.Visible=True B.Menu1.Visible =False C.Menu1.Enabled=True D.Menu1.Enabled=False10.以下叙述中错误的是()。
Java程序设计(面向对象基础)期末单元测试与答案
一、单选题1、下面关于类的描述错误的是()。
A.类的实现包括类声明和类体两部分B.一个包可以包含多个类C.类的方法都由方法头和方法体组成D.一个Java程序可以有多个公共类正确答案:D2、关于面向对象概念的描述不正确的是()。
A.程序中的对象等同于现实生活中的对象B.对象描述的是客观世界的实体C.在Java中通过类来描述对象D.类是具有相同特征的若干对象的模板正确答案:A3、下列构造方法的调用方式中,正确的是()。
A.按照一般方法调用B.只能通过new自动调用C.被系统调用D.由用户直接调用正确答案:B4、对于下面()类定义,可以通过“new J_Class()”生成类J_Class 的实例对象。
A.public class J_Class {public J_Class(void) {}}B.public class J_Class { }C.public class J_Class {public void J_Class() {}public J_Class(String s) {}}D.public class J_Class {public J_Class(String s) {}}正确答案:B5、在Java中,下面对于构造函数的描述正确的是()。
A.构造函数和类有相同的名称,并且不能带任何参数B.构造函数的返回类型是voidC.一个类可以定义多个构造函数D.类必须显式定义构造函数正确答案:C6、下列关于包的描述中,错误的是()。
A.包是使用package语句创建的B.包是若干个类的集合C.包是一种特殊的类D.包有有名包和无名包两种正确答案:C7、下面关于包的描述中,错误的是()。
A.包分为有名包和无名包两种B.包是若干对象的集合C.使用package语句创建包D.使用import语句引入包正确答案:B二、填空题1、类是一组具有相同()和()的对象的抽象。
()是由某个特定的类所描述的一个个具体的对象。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
面向对象程序设计期末综合练习六(程序设计)1. 编一程序求出满足不等式1+1/2+1/3+...+1/n ≥5的最小n 值。
2. 计算1+3+32+...+310的值并输出,假定分别用i,p,s 作为循环变量、累乘变量和累加变量的标识符。
3. 求满足不等式22+42+...+n 2<1000的最大n 值,假定分别用i 和s 作为取偶数值和累加值的变量,并限定使用do 循环编程。
4. 已知,⎪⎩⎪⎨⎧>-+≤+=)0( 143)0( 222x ax ax x x a y 求出并显示当x 分别取-3.8, 6.4, 2.3, -4.2,8.9, 3.5, -5.0, 4.5时所对应的y 值,要求把a 定义为常量,其值设定为10.2,x 的每个值由键盘输入,并假定用-100作为终止标志,求平方根函数为sqrt(x)。
5. 求出从键盘上输入的10个整数中的最大值,要求输入变量用x 表示,存储最大值的变量用max 表示。
6. 已知6≤a ≤30,15≤b ≤36,求满足不定方程2a+5b=126的全部整数组解。
如(13, 20)就是一个整数组解,并以所给的样式输出每个解。
7. 某班级学生进行百米跑测试,规定成绩在12秒以内(含12秒)为优秀,在12秒以上至15秒为达标,在15秒以上为不达标,编一程序,从键盘上输入每个人的成绩,以x 作为输入变量,并以小于0的任何数作为终止标志,分别用变量c1,c2和c3统计出成绩为优秀、达标和不达标的人数。
8. 编写一个函数,分别求出由指针a 所指向的字符串中包含的每种十进制数字出现的次数,把统计结果保存在数组b 的相应元素中。
9. 按照下面函数原型语句编写一个函数,返回二维数组a[m][n]中所有元素的平均值,假定采用变量v 存放平均值。
10. 按照下面函数原型语句编写一个递归函数计算出数组a 中n 个元素的平方和并返回。
int f(int a[],int n);11. 按照函数原型语句“void p(int n);”编写一个递归函数显示出如下图形,此图形是n=5的情况。
55555444433322112. 按照函数原型语句“void p(int n);”编写一个递归函数显示出如下图形,此图形是n=5的情况。
12233344445555513. 根据下面类中Count 函数成员的原型和注释写出它的类外定义。
class AA {int* a;int n;int MS;public:void InitAA(int aa[], int nn, int ms) {if(nn>ms) {cout<<"Error!"<<endl; exit(1);}MS=ms;n=nn;a=new int[MS];for(int i=0; i<MS; i++) a[i]=aa[i];}int Count(int x); //从数组a 的前n 个元素中统计出其//值等于x 的个数并返回。
};14. 根据下面类中Search 函数成员的原型和注释写出它的类外定义。
class AA {int* a;int n;int MS;public:void InitAA(int aa[], int nn, int ms) {if(nn>ms) {cout<<"Error!"<<endl; exit(1);}MS=ms;n=nn;a=new int[MS];for(int i=0; i<MS; i++) a[i]=aa[i];}int Search(int x); //从数组a 的前n 个元素中顺序查找值为x 的元素,//若查找成功则返回元素的下标,否则返回-1。
};15. 根据下面类中MaxMin 函数成员的原型和注释写出它的类外定义。
class AA {int* a;int n;int MS;public:void InitAA(int aa[], int nn, int ms) {if(nn>ms) {cout<<"Error!"<<endl; exit(1);}MS=ms;n=nn;a=new int[MS];for(int i=0; i<MS; i++) a[i]=aa[i];}int MaxMin(int& x, int& y); //从数组a 的前n 个元素中求出//最大值和最小值,并分别由引用参数x 和y 带回, //同时若n 大于0则返回1,否则返回0。
};16. 根据下面类中Compare 函数成员的原型和注释写出它的类外定义。
class AA {int* a;int n;int MS;public:void InitAA(int aa[], int nn, int ms) {if(nn>ms) {cout<<"Error!"<<endl; exit(1);}MS=ms;n=nn;a=new int[MS];for(int i=0; i<MS; i++) a[i]=aa[i];}int Compare(AA b); //比较*this与b的大小,若两者中//的n值相同,并且数组中前n个元素值对应//相同,则认为两者相等返回1,否则返回0。
};17. 根据下面类中CompareBig 函数成员的原型和注释写出它的类外定义。
class AA {int* a;int n;int MS;public:void InitAA(int aa[], int nn, int ms) {if(nn>ms) {cout<<"Error!"<<endl; exit(1);}MS=ms;n=nn;a=new int[MS];for(int i=0; i<MS; i++) a[i]=aa[i];}int CompareBig(AA b); //比较*this与b的大小,从前向后按两数组//中的对应元素比较,若*this中元素值大则返回1,若b中//元素值大则返回-1,若相等则继续比较下一个元素,直到//一个数组中无元素比较,此时若两者的n值相同则返回0,//否则若*this中的n值大则返回1,若b中的n值大则返回-1。
};18. 根据下面类中Reverse 函数成员的原型和注释写出它的类外定义。
class AA {int* a;int n;int MS;public:void InitAA(int aa[], int nn, int ms) {if(nn>ms) {cout<<"Error!"<<endl; exit(1);}MS=ms;n=nn;a=new int[MS];for(int i=0; i<MS; i++) a[i]=aa[i];}AA* Reverse(); //对于调用该函数的对象,将其a数组中前n个//元素值按相反的次序排列,返回指向该对象的指针。
};19. 根据下面类中Reverse1函数成员的原型和注释写出它的类外定义。
class AA {int* a;int n;int MS;public:void InitAA(int aa[], int nn, int ms) {if(nn>ms) {cout<<"Error!"<<endl; exit(1);}MS=ms;n=nn;a=new int[MS];for(int i=0; i<MS; i++) a[i]=aa[i];}AA* Reverse1(); //通过动态存储分配得到一个对象,并动态分配//a[MS]数组空间,要求该对象中的n和MS的值与*this中的//对应成员的值相同,数组元素的值是按照*this中数组元//素的相反次序排列得到的,要求该函数返回动态对象的地址。
};20. 根据下面类中构造函数的原型和注释写出它的类外定义。
class Array {int *a; //指向动态分配的整型数组空间int n; //记录数组长度public:Array(int aa[], int nn); //构造函数,利用aa数组长度nn初始化n, //利用aa数组初始化a所指向的数组空间Array(Array& aa); //拷贝构造函数Array& Give(Array& aa); //实现aa赋值给*this的功能并返回*this Array Uion(Array& aa); //实现*this和aa中的数组合并的 //功能,把合并结果存入临时对象并返回int Lenth() {return n;} //返回数组长度void Print() { //输出数组for(int i=0; i<n; i++)cout<<a[i]<<' ';cout<<endl;}};21. 根据下面类中拷贝构造函数的原型写出它的类外定义。
class Array {int *a; //指向动态分配的整型数组空间int n; //记录数组长度public:Array(int aa[], int nn); //构造函数,利用aa数组长度nn初始化n, //利用aa数组初始化a所指向的数组空间Array(Array& aa); //拷贝构造函数Array& Give(Array& aa); //实现aa赋值给*this的功能并返回*thisArray Uion(Array& aa); //实现*this和aa中的数组合并的 //功能,把合并结果存入临时对象并返回int Lenth() {return n;} //返回数组长度void Print() { //输出数组for(int i=0; i<n; i++)cout<<a[i]<<' ';cout<<endl;}};22. 根据下面类中Give函数的原型和注释写出它的类外定义。
class Array {int *a; //指向动态分配的整型数组空间int n; //记录数组长度public:Array(int aa[], int nn); //构造函数,利用aa数组长度nn初始化n, //利用aa数组初始化a所指向的数组空间Array(Array& aa); //拷贝构造函数Array& Give(Array& aa); //实现aa赋值给*this的功能并返回*thisArray Uion(Array& aa); //实现*this和aa中的数组合并的 //功能,把合并结果存入临时对象并返回int Lenth() {return n;} //返回数组长度void Print() { //输出数组for(int i=0; i<n; i++)cout<<a[i]<<' ';cout<<endl;}};23. 根据下面类中Uion 函数的原型和注释写出它的类外定义。