面向对象程序设计综合练习题a
- 格式:doc
- 大小:411.50 KB
- 文档页数:60
▆■■■■■■■■■■■■福建师范大学网络与继续教育学院《面向对象的程序设计》期末考试A卷姓名:专业:学号:学习中心:一、单项单选题 (共25题,每题2分,共50分)1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 251、以下对部署图说法不正确的是()。
A.部署图有主要建模元素是构件B.使用部署图可以显示运行时系统的结构,同时还传达构成应用程序的硬件和软件的配置的部署方式C.从部署图中,可以了解到软件与硬件之间物理关系及处理节点的组件分布情况D.部署图是用来显示系统中软件和硬件的物理结构2、组件图用于对系统的静态实现视图建模,这种视图主要支持系统部件的配置管理,通常可以分为三种方式来完成,下面哪种不是其中之一()。
A.对源代码建模B.对事物建模C.对数据库建模D.对可执行文件建模3、关于面向对象方法的优点,下列不正确的叙述是()。
A.与人类习惯的思维方法比较一致B.可重用性好C.以数据操作为中心D.可维护性好4、类和接口的关系类似于下面哪种类型的关系()。
A.关联(association)和聚集(aggregation)B.关联(association)和组合(composition)C.脚本(scenario)和用例(use case)D.包(Package)和子系统(subsystem)5、UML通过图形化的表示机制从多个侧面对系统的分析和设计模型进行刻画,其中()包括构件图,它描述软件系统中各组成构件,构件的内部结构以及构件之间的依赖关系。
A.行为视图B.结构视图C.构件视图D.用例视图6、行为类模式使用()在类间分派行为。
A.接口B.继承机制C.对象组合D.委托7、通常对象有很多属性,下面仅能在对象内部访问的属性可见性限制是()。
A.公有的(public)B.受保护的(protected)C.友员(friendly)D.私有的(private)8、下面不属于创建型模式的有()。
课程代码:座位号:大学20 -20 学年度第二学期期末考试《面向对象程序设计》试卷: 学号: 专业:学院: 班级:20 年月日一、单选题(10小题,共10分)1.下列选项中,用于在定义子类时声明父类名的关键字是【】A.interface B. package C. extends D. class2.在以下哪种情况下可以获得缺省构造器? 【】A.当作任何类的定义时 B.当类没有其它构造器时C.当定义至少一个构造器的时 D.从不需要3.如果局部变量和成员变量同名,如何在局部变量作用域引用成员变量?【】 A.不能引用,必须改名,使它们的名称不相同B.在成员变量前加this,使用this访问该成员变量C.在成员变量前加super,使用super访问该成员变量D.不影响,系统可以自己区分4.在异常处理中,如释放资源、关闭文件、关闭数据库等由哪个子句来完成【】A.try子句B.catch子句 C.finally子句 D.throw子句5.下面哪个流类属于面向字符的输入流【】A.BufferedWriter B.FileInputStream C.ObjectInputStream D.InputStreamReader6.在Java中,由Java编译器自动导入,而无需在程序中用import导入的包是【】。
A.java.applet B.java.awt C.java.util D.ng7.下面程序定义了一个类,关于该类说确的是【】Abstract class abstractClass{……}A. 该类能调用new abstractClass(),方法实例化为一个对象B. 该类不能被继承C. 该类的方法都不能被重载D. 以上说法都不对8.已知有下面类的说明:public class X5_1_1 extends x{private float f =10.6f;int i=16;static int si=10;public static void main(String[] args) {X5_1_1 x=new X5_1_1();}}在main()方法中,下面哪条语句的用法是正确的?【】A.x.f B.this.si C .X5_1_1.i D.X5_1_1.f9.下列说法中,错误的一项是【】A.Thread类中没有定义run()方法 B.可以通过继承Thread类来创建线程C.Runnable接口中定义了run()方法 D.可以通过实现Runnable接口创建线程10.当一个Statement对象要执行一个查询类的SQL语句,调用的方法是【】A. executeQueryB.executeC. executeUpdatemit二、填空题(10小题,共10分)1.Java应用程序中有多个类时,java命令后的类名必须是包含了___________方法的那个类的名字。
面向对象程序设计期末综合练习一(单选题)单选题1. C++源程序文件的缺省扩展名为( )。
A. cppB. exeC. objD. lik2. 由C++源程序文件编译而成的目标文件的缺省扩展名为( )。
A. cppB. exeC. objD. lik3. 由C++目标文件连接而成的可执行文件的缺省扩展名为( )。
A. cppB. exeC. objD. lik4. 编写C++程序一般需经过的几个步骤依次是( )。
A. 编译、编辑、连接、调试B. 编辑、编译、连接、调试C. 编译、调试、编辑、连接D. 编辑、调试、编辑、连接5. 以下标识符中不全是保留字的是( )。
A. case for intB. default then whileC. bool class longD. goto return char6. 能作为C++程序的基本单位是( )。
A. 字符B. 语句C. 函数D. 源程序文件7. 程序中主函数的名字为( )。
A. mainB. MAINC. MainD. 任意标识符8. C++程序的基本模块为( )。
A. 表达式B. 标识符C. 语句D. 函数9. 可用作C++语言用户标识符的一组标识符是( )。
A. void define +WORDB. a3_b3 _123 YNC. for -abc CaseD. 2a DO sizeof10. 存储以下数据,占用存储字节最多的是( )。
A. 0B. ‘0’C. “0”D. 0.011. 程序运行中需要从键盘上输入多于一个数据时,各数据之间应使用( )符号作为分隔符。
A. 空格或逗号B. 逗号或回车C. 逗号或分号D. 空格或回车12. 设”int a=12;”,则执行完语句”a+=a*a;”后,a 的值是( )。
A. 12B. 144C. 156D. 28813. 假设在程序中 a 、b 、c 均被定义成整型,所赋的值都大于1,则下列能正确表示代数式abc1的表达式是( )。
《面向对象程序设计C++》期末考试试卷(A)试卷说明:本套试题共四个大题,全部题目都答在答题纸上,写在其他地方均无效。
(答题纸在本套试卷的第10页上)一、选择题(每小题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 &y;C. int &z=1000;D. float &t=&a;7、在一个函数中,要求通过函数来实现一种不太复杂的功能,并且要求加快执行速度,选用()。
《C++面向对象程序设计》试题(A卷) (满分:100分时间:150分钟日期:2005.1.10)一、(共20分,每题2分)单项选择1.已定义了一个类A并有语句A* pa=new A(5); 那么以下说法正确的是:A. 该语句会创建A类的一个对象,并将此对象的地址赋给指针pa; B. 该语句会创建A类的5个对象,且它们的地址是连续的; C. 当指针变量pa超出其作用域时,pa和为对象分配的空间都将被自动释放;D. 类A中一定有一个显式定义的构造函数和一个显式定义的虚析构函数;2.定义类A的非静态成员函数A& f(A& one)时,需有语句return exp;则exp不能是:A.类A 中类型为A的静态数据成员 B. f中用语句A a = one; 定义的量a C. oneD. *this3.在一个类中,下列哪些成员可以是多个?A. 无参构造函数 B. 析构函数C. 原型相同的非静态成员函数 D. 静态成员函数4.对类T中的下列成员,若不考虑代码优化,一般来说它们中的哪个执行起来最慢?A. 缺省的无参构造函数 B. 缺省的拷贝构造函数 C. T f( ) { T t; return t; }D. 不能判定A、B、C哪个最慢5.对函数原型为int& min(int& a, int& b);的全局函数,下列语句块哪个是错误的:A. int x=10,y=5; min(x,y)=100; B. int x=10,y=5, z; z=min(x,y+=x); C. int x=10,y=5;min(x,10)=y; D. int x=10,y=5; x=min(x,y);6.关于拷贝构造函数错误的说法有:A. 拷贝构造函数是一种特殊的构造函数,且不能在类中进行函数重载。
B. 若自定义派生类的拷贝构造函数,那么也必须自定义基类的拷贝构造函数。
C. 拷贝构造函数只能有一个参数,且为常量引用或非常量引用。
面向对象程序设计期末综合练习一(单选题)单选题1.C++源程序文件的缺省扩展名为( A )。
A. cppB. exeC. objD. lik2.由C++源程序文件编译而成的目标文件的缺省扩展名为( C )。
A. cppB. exeC. objD. lik3.由C++目标文件连接而成的可执行文件的缺省扩展名为( B )。
A. cppB. exeC. objD. lik4.编写C++程序一般需经过的几个步骤依次是( B )。
A. 编译、编辑、连接、调试B. 编辑、编译、连接、调试C. 编译、调试、编辑、连接D. 编辑、调试、编辑、连接5.以下说法中正确的是( B )。
A. C++程序总是从第一个定义的函数开始执行B. C++程序总是从main函数开始执行C. C++函数必须有返回值,否则不能使用函数D. C++程序中有调用关系的所有函数必须放在同一个程序文件中6.以下叙述中不正确的是( C )。
A. 在一个函数中,可以有多条return语句B. 函数的定义不能嵌套,但函数的调用可以嵌套C. 函数必须有返回值D. 不同的函数中可以使用相同名字的变量7.当#include后面的文件名用双引号括起来时,寻找被包含文件的方式是( B )。
A. 直接按系统设定的标准方式搜索目录B. 先在源程序所在目录搜索,再按系统设定的标准方式搜索目录C. 仅仅搜索源程序所在目录D. 搜索当前逻辑盘上的所有目录8.当#include后面的文件名用尖括号括起来时,寻找被包含文件的方式是( A )。
A. 直接按系统设定的标准方式搜索目录B. 先在源程序所在目录搜索,再按系统设定的标准方式搜索目录C. 仅仅搜索源程序所在目录D. 搜索当前逻辑盘上的所有目录9.预处理命令在程序中都是以( B )符号开头的。
A. *B. #C. &D. @10.用new运算符创建一个含10个元素的一维整型数组的正确语句是( C )。
A. int *p=new a[10];B. int *p=new float[10];C. int *p=new int[10];D. int *p=new int[10]={1,2,3,4,5}11.假定变量m定义为“int m=7;”,则定义变量p的正确语句为(B )。
《JAVA语言与面向对象程序设计》复习纲要A一、单项选择题1. Java application中的主类需包含main方法,以下哪项是main方法的正确形参?()A、String argsB、String args[]C、Char argD、StringBuffer args[]2.下列的哪个选项可以正确用以表示八进制值8?()。
A、0x8B、0x10C、08D、0103. 设 int x=1,float y=2,则表达式 x / y的值是()。
A、0B、1C、2D、以上都不是4. 若有定义:byte[] x={11,22,33,-66};其中0≤k≤3,则对x数组元素错误的引用是()。
A、x[5-3]B、x[k]C、x[k+5]D、x[0]5. Java Applet在被浏览器加载的时候首先被执行且在applet整个生命周期中只被运行一次的方法是()。
A、init()B、start()C、opreationcrawl()D、reader()6. 在浏览器中执行applet 程序,以下选项中的哪个方法将被最先执行?()A、init()B、start()C、destroy()D、stop()7. 在Java中,一个类可同时定义许多同名的方法,这些方法的形式参数的个数、类型或顺序各不相同,传回的值也可以不相同。
这种面向对象程序特性称为()。
A、隐藏B、重写C、重载D、Java不支持此特性8. 以下有关构造方法的说法,正确的是()。
A、一个类的构造方法可以有多个B、构造方法在类定义时被调用C、构造方法只能由对象中的其它方法调用D、构造方法可以和类同名,也可以和类名不同9. 以下for循环的执行次数是()。
for(int x=0;(x==0)&(x>4);x++);A、无限次B、一次也不执行C、执行4次D、执行3次10. 下面类定义中哪一个给出了合法的抽象类的定义?()A、abstract Animal {abstract void growl();};B、class abstract Animal {abstract void growl();};C、abstract class Animal {abstract void growl();};D、abstract class Animal {abstract void growl() {System.out.println("growl");}}二、多项选择题1.Java中main()函数的值是什么?()A、StringB、intC、charD、void2.下面哪句话是正确的?()A、>> 是算术右移操作符B、>> 是逻辑右移操作符C、>>> 是算术右移操作符D、>>> 是逻辑右移操作符3. 下面哪个赋值语句是合法的?()A、float a = 2.0B、double b = 2.0C、int c = 2D、long d = 24. 已知表达式int m[] = {0, 1, 2, 3, 4, 5, 6 };下面哪个表达式的值与数组下标量总数相等?()A、m.length()B、m.lengthC、m.length()+1D、m.length+15. 下列关于静态初始化器的叙述中,哪一个是正确的?()。
Java 语言与面向对象程序设计基础试题 第1页(共10页) Java 语言与面向对象程序设计基础试题 第2页(共10页)一、判断题(判断下列说法是否正确,正确打“√”,错误打“×”,每小题2分,共20分) 1. Java 有两类程序:Java Application 和Java Applet ,其中Java Applet 程序由嵌入到浏览器中的解释器解释运行。
( ) 2.Java 程序里,创建新的对象用new 调用构造方法,回收无用的对象使用关键字free 。
( ) 3.Java 的类不允许多重继承,但接口支持多重继承。
( ) 4.Applet 是一种特殊的Panel ,它是Java Applet 程序的最外层容器。
( ) 5.Java 语言中的数组元素下标总是从0开始,下标可以是整数或整型表达式。
( ) 6.构造方法是一种特殊的方法,名字与类名一致,但返回类型都为void 型。
( ) 7.无论Java 源程序包含几个类的定义,若该源程序文件以A.java 命名,编译后生成的都只有一个名为A 的字节码文件。
( ) 8.在不同的软硬件平台上,Java 的各种数据类型所占用的内存长度不同,因此程序的可移植性不强。
( ) 9.Java 系统的标准输入对象是System.in ,标准输出对象有两个,分别是标准输出System.out 和标准错误输出System.err 。
( ) ( ) 二、单项选择题(每小题2分,共40分) 1.在编写Java Applet 程序时,需要在程序的开头写上( )语句。
A .import java.awt.* ; B .import java.applet.* ; C .import java.io.* ; D .import java.awt.event.* ; 2.以下声明正确的是( )。
A .public static int x; B .default int x; C .abstract double d; D .abstract final int x; 3.Java application 中的主类需包含main 方法,main 方法的返回类型是( )。
面向对象程序设计模拟练习题(含答案)一、单选题(共50题,每题1分,共50分)1、下列关于JDK和JRE的说法中,错误的是()A、JDK是java开发核心组件,是用来编译解释java程序的核心组件B、JDK包括Java编译器、Java文档生成工具、Java打包工具等C、JRE是个单独的软件,所以安装JDK后,还需要单独安装JRED、JRE是java运行环境,用来支持java程序的运行正确答案:C2、下列File类的构造方法格式,错误的是()A、File(File parent)B、File(String pathname)C、File(String parent,String child)D、File(URI url)正确答案:A答案解析:A选项,正确的应该是File(File parent, String child)3、下列关于静态变量的描述中,错误的是()A、静态变量指的是被static修饰的变量B、静态变量是随着类的加载而加载C、静态变量可以被所有的实例对象共享D、静态变量同成员变量一样,都需要通过实例对象来调用正确答案:D答案解析:静态变量是通过“类名.变量名”“方式调用的。
4、下列对于Runtime的描述中,正确的是()A、每一个Java应用程序运行时都产生一个Runtime类实例B、Runtime实例可以将应用程序和运行环境相结合C、Runtime类有构造函数D、Runtime实例需要被创建后才可以通过getRuntime()方法获取正确答案:A答案解析:Runtime类用于表示虚拟机运行时的状态,它用于封装JVM虚拟机进程。
每次使用java命令启动虚拟机都对应一个Runtime实例,并且只有一个实例,因此该类采用单例模式进行设计,可以通过getRuntime()方法获得一个Runtime实例。
5、下列关于LinkedList类的方法,不是从List接口中继承而来的是()A、toArray()B、pop()C、remove()D、isEmpty()正确答案:B答案解析:pop()方法表示移除并返回此列表的第一个元素,是LinkedList特有的方法。
计算机技术与软件水平考试面对对象程序设计试题(6)一、单项选择题( 在每小题的四个备选答案中,选出一个正确答案,并将正确答案的序号填在题干的括号内。
每小题2 分,共40 分)1.C++ 对C 语言作了许多改进,即从面对过程变成为面对对象的主要缘由是( )A. 增加了一些新的运算符B. 允许函数重载,并允许设置缺省参数C. 规定函数说明符必需用原型D. 引进了类和对象的概念2. 下列符号不能组成标识符的是( )A. 连接符B. 下划线C. 大小写字母D. 数字字符3. 类型修饰符unsigned 不能修饰( )A. charB. intC. long intD. float4. 在int a=3,int *p=&a ;中,*p 的值是( )A. 变量a 的地址值B. 无意义C. 变量p 的地址值D.35. 下列关于指针的操作中,错误的是( )A. 两个同类型的指针可以进行比较运算B. 可以用一个空指针赋给某个指针C. 一个指针可以加上两个整数之差D. 两个同类型的指针可以相加6. 重载函数在调用时选择的依据中,错误的是( )A. 函数的参数B. 参数的类型C. 函数的名字D. 函数的类型7. 一个函数功能不太困难,但要求被频繁调用,选用( )A. 内联函数B. 重载函数C. 递归函数D. 嵌套函数8. 下列不是描述类的成员函数的是( )A. 构造函数B. 析构函数C. 友元函数D. 拷贝构造函数9. 构造函数不具备的特征的是( )A. 构造函数的函数名与类名相同B. 构造函数可以重载C. 构造函数可以设置默认参数D. 构造函数必需指定类型说明10. 通常,拷贝构造函数的参数是( )A. 某个对象名B. 某个对象的成员名C. 某个对象的引用名D. 某个对象的指针名11. 继承机制的作用是( )A. 信息隐藏B. 数据封装C. 定义新类D. 数据抽象12. 类的析构函数的作用是( )A. 一般成员函数B. 类的初始化C. 对象的初始化D. 删除对象创建的全部对象13. 类的析构函数是在( ) 调用的。
面向对象程序设计综合练习题一、单项选择题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 )。
《面向对象程序设计(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、一个类可同时定义许多同名的方法,这些方法的形式参数的个数、类型或顺序各不相同,传回的值也可不相同。
2006-2007学年第1学期2005级《C++面向对象程序设计》期末考试试题(A卷)考试时间:2007年1月13日班级学号0943041000 姓名田文熙✧本试卷满分100分;✧请将答案写在答题纸上,写明题号,不必抄题,字迹工整、清晰;✧请在答题纸和试题纸上都写上你的班级,学号和姓名,交卷时请将试题纸、答题纸和草纸一并交上来。
一、单选题(共10分,每题1分)1.C++中解决命名冲突的机制是:D(A) 虚基类(B) 虚函数(C) 函数重载(D) 名字空间2.若类A的一个对象所占的内存空间中包含虚函数表的入口地址,则: C(A) 类A不能有静态数据成员(B) 类A中公有的成员函数一定是虚的(C) 类A中至少有一个成员函数是虚的(D) 类A的析构函数一定是虚的3.任意一个类,析构函数的个数最多是:B(A) 不限个数(B) 1 (C) 2 (D) 34.下列关于this指针的说法,哪个是正确的: D(A) this指针一定指向常量型数据(B) this指向的数据不可更改(C) 静态成员函数中也可以访问this指针(D) this指针本身可直接作为成员函数的返回值5.在类定义中,为说明成员的访问权限,private, protected, public可以出现次数为:A(A)次数没有具体限定(B) 每种至多一次(C) public至少一次(D) 每种至少一次6.下面哪种定义方式是正确的,并且使得p可以作为函数void f( A* const pp);的实参:A(A) A * p = new A; (B) A a; A* p = a;(C)const A* p = new A; (D) A a; const A* p = a;7.obj是类A的一个对象,执行语句const A& aA= obj; ,则下列说法正确的是: C(A)类A的拷贝构造函数会被调用(B)类A的赋值函数会被调用(C)&aA的值就是&obj (D) 语句obj.f( );等价于语句aA.f( );8.下面关于访问类A的私有数据成员的说法,错误的是: C(A)类A的友元函数可以访问类A的私有成员。
《面向对象程序设计》练习题及答案1. 单选题1. 数组的大小在创建以后( )。
A. 可以改变B. 不能改变C. 使用new方法可以改变D. 有些可以改变正确答案:B2. 已知如下代码:boolean m = true;if ( m = false ) System.out.println("False");else System.out.println("True");执行结果是( )A. FalseB. TrueC. NoneD. 出错正确答案:B3. 下列代码中,将引起一个编译错误的行是( ) 1)public class Test{ 2) int m,n; 3) public Test(){} 4) public Test(int a){m=a;} 5) public static void main(String args[]){ 6) Test t1,t2; 7) int j,k; 8) j=0;k=0; 9) t1=new Test(); 10) t2=new Test(j,k); 11) }12) }A. 第3行B. 第5行C. 第6行D. 第10行正确答案:D4. 如果类中的成员变量可以被同一包访问,则使用如下哪个约束符( )。
A. privateB. publicC. protectedD. no modifier正确答案:D5. 下列哪个类声明是正确的( )A. abstract final class Hl{…}B. abstract private move(){…}C. protected private numberD. public abstract class Car{…}正确答案:D6. 下列构造方法的调用方式中,正确的是( )。
A. 按照一般方法调用B. 由用户直接调用C. 只能通过new 自动调用D. 被系统调用正确答案:C7. 以下有关构造方法的说法,正确的是( )A. 一个类的构造方法可以有多个B. 构造方法在类定义时被调用C. 构造方法只能由对象中的其它方法调用D. 构造方法可以和类同名,也可以和类名不同正确答案:A8. 设x = 1 , y = 2 , z = 3,则表达式y+=z--/++x 的值是( )A. 3B. 3.5C. 4D. 5正确答案:A9. 下面的表达式哪个是正确的( )A. String s="你好";int i=3; s+=i;B. String s="你好";int i=3; if(i==s){ s+=i};C. String s="你好";int i=3; s=i+s;D. String s="你好";int i=3; s=i+;正确答案:A10. 下列正确的句子是( )。
一、单项选择题1-1.C++语言是从早期的C语言逐步发展演变而来的,与C语言相比,它在求解问题方法上进行的最大改进是( B )。
A.面向过程B.面向对象C.安全性D.复用性1-2.C++源程序文件的缺省扩展名为( A )。
A. cppB. exeC. objD. lik1-3.由C++源程序文件编译而成的目标文件的缺省扩展名为( C )。
A. cppB. exeC. objD. lik1-4.由C++目标文件连接而成的可执行文件的缺省扩展名为( B )。
A. cppB. exeC. objD. lik1-5.编写C++程序一般需经过的几个步骤依次是( B )。
A. 编译、编辑、连接、调试B. 编辑、编译、连接、调试C. 编译、调试、编辑、连接D. 编辑、调试、编辑、连接1-6.用“>>”运算符从键盘输入多于一个数据时,各数据之间应使用( D )符号作为分隔符。
A.空格或逗号B.逗号或回车C.逗号或分号D.空格或回车1-7.C++中声明常量的关键字是( A )。
A.const B.externC.public D.enum1-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.int Function(a);D.void int(double a);1-11.以下正确的函数原型语句是( C )。
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);1-12.下面有关重载函数的说法中正确的是( C )。
A.重载函数必须具有不同的返回值类型B.重载函数形参个数必须不同C.重载函数必须有不同的形参列表D.重载函数名可以不同1-13.函数重载是指(A)。
A. 两个或两个以上的函数取相同的函数名,但形参的个数或类型不同B. 两个以上的函数取相同的名字和具有相同的参数个数,但形参的类型可以不同C. 两个以上的函数名字不同,但形参的个数或类型相同D. 两个以上的函数取相同的函数名,并且函数的返回类型相同1-14.采用重载函数的目的是( D )。
A.实现共享B.减少空间C.提高速度D.使用方便,提高可读性1-15.以下关于函数模板叙述正确的是( C )。
A.函数模板也是一个具体类型的函数B.函数模板的类型参数与函数的参数是同一个概念C.通过使用不同的类型参数,函数模板可以生成不同类型的函数定义D.用函数模板定义的函数没有类型1-16.以下正确的描述是( C )。
A. 不允许设置参数的默认值B. 设置参数的默认值只能在定义函数时设置C. 设置参数的默认值时,应该设置右边的参数D. 设置参数的默认值时,应该全部参数都设置1-17.( B )是给变量取一个别名,它引入了变量的同义词。
A.指针B.引用C.枚举D.结构1-18.假定变量x定义为“int x=5;”,要使rx成为x的引用(别名),rx应定义为( D )。
A. int rx=x;B. int rx=&x;C. int *rx=&x;D. int &rx=x;1-19.下列对引用的陈述中不正确的是( C )。
A. 每一个引用都是其所引用对象的别名,因此必须初始化B. 形式上针对引用的操作实际上作用于它所引用的对象C. 一旦定义了引用,一切针对其所引用对象的操作只能通过该引用间接进行D. 不需要单独为引用分配存储空间1-20.下列( C )的调用方式是引用调用。
A. 形参和实参都是变量B.形参是指针,实参是地址值C. 形参是引用,实参是变量D.形参是变量,实参是地址值1-21.在( C )情况下适宜采用inline定义内置函数。
A.函数体含有循环语句B.函数体含有递归语句C.函数代码少、且频繁调用D.函数代码多、不常调用1-22.为了提高程序的运行速度,可将不太复杂的功能用函数实现,此函数应选择( A )。
A.内置函数B.重载函数C.递归函数D.函数模板1-23.一个函数功能不太复杂,但要求被频繁调用,选用( A )A.内置函数B.重载函数C.递归函数D.嵌套函数1-24.说明内置函数的关键字是( A )。
A.inline B.virtualC.define D.static1-37.对于动态分配内存空间描述正确的是( D )。
A.使用new运算符分配的内存空间的长度必须是常量B.delete运算符可以释放动态的存储空间和静态的存储空间C.用new分配的内存空间是不连续的D.delete运算符只能以释放由new分配的动态存储空间1-38.定义p并使p指向动态空间中的包含30个整数的数组所使用的定义语句为( A )。
A. int *p=new int[30];B. int *p=new int(30);C. int *p=new [30];D. *p=new int[30];2-1.C++对C语言作了很多改进,即从面向过程变成为面向对象的主要原因是( D )。
A.增加了一些新的运算符B.允许函数重载,并允许设置缺省参数C.规定函数说明符必须用原型D.引进了类和对象的概念2-2.面向对象软件开发中使用的OOA表示( A )。
A. 面向对象分析B. 面向对象设计C. 面向对象语言D. 面向对象方法2-3.面向对象软件开发中使用的OOD表示( B )。
A. 面向对象分析B. 面向对象设计C. 面向对象语言D. 面向对象方法2-4.关于面向对象系统分析,下列说法中不正确的是( B )。
A. 术语“面向对象分析”可以用缩写OOA表示B. 面向对象分析阶段对问题域的描述比设计阶段更详细C. 面向对象分析包括问题域分析和应用分析两个步骤D. 面向对象分析需要识别对象的内部和外部特征2-5.下列关于成员函数特征的描述中,( A )是错误的。
A.成员函数一定是内置函数B.成员函数可以重载C.成员函数可以设置参数的默认值D.成员函数可以是静态的2-6.在关键字private后面定义的成员为类的( A )成员。
A. 私有B. 公用C. 保护D. 任何2-7.在一个类的定义中,包含有( C )成员的定义。
A. 数据B. 函数C. 数据和函数D. 数据或函数2-8.在类作用域中能够通过直接使用该类的( D )成员名进行访问。
A. 私有B. 公用C. 保护D. 任何2-9.在关键字public后面定义的成员为类的( B )成员。
A. 私有B. 公用C. 保护D. 任何2-10.类中定义的成员默认为( B )访问属性。
A. publicB. privateC. protectedD. friend2-11.假定AA为一个类,a为该类公有的数据成员,x为该类的一个对象,则访问x对象中数据成员a的格式为( D )。
A. x(a)B. x[a]C. x->aD. x.a2-12.假定AA为一个类,a()为该类公有的函数成员,x为该类的一个对象,则访问x对象中函数成员a()的格式为( B )。
A. x.aB. x.a()C. x->aD. x->a()2-13.假定AA为一个类,a为该类公有的数据成员,px为指向该类对象的一个指针,则访问px所指对象中数据成员a的格式为( C )。
A. px(a)B. px[a]C. px->aD. px.a2-14.假定AA为一个类,a为该类私有的数据成员,GetValue()为该类公有函数成员,它返回a的值,x为该类的一个对象,则访问x 对象中数据成员a的格式为( D )。
A. x.aB. x.a()C. x->GetValue()D. x.GetValue()2-14.假定AA为一个类,int a()为该类的一个成员函数,若该成员函数在类定义体外定义,则函数头为( A )。
A. int AA::a()B. int AA:a()C. AA::a()D. AA::int a()2-15.若需要把一个类外定义的成员函数指明为内联函数,则必须把关键字( B )放在函数原型或函数头的前面。
A. inB. inlineC. inLineD. InLiner2-16.下列特性不是面向对象程序设计语言所特有的是( D )。
A.数据封装B.继承C.多态性D.模板3-1.关于构造函数,下列说法不正确的是( D )。
A.构造函数名字和类名相同B.构造函数在创建对象时自动执行C.构造函数无任何函数返回类型D.构造函数有且只有一个3-2.类的构造函数是在定义该类的一个( C )时被自动调用执行的。
A. 成员函数B. 数据成员C. 对象D. 友元函数3-3.一个类的构造函数通常被定义为该类的( A )成员。
A. 公用B. 保护C. 私有D. 友元3-4.关于构造函数特点描述中,错误的是(A)。
A.定义构造函数必须指出类型B.构造函数的名字与该类的类名相同C.一个类中可以定义0个至多个构造函数D.构造函数是一个成员函数3-5.对于一个类的构造函数,其函数名与类名( A )。
A.完全相同B.基本相同C.不相同D.无关系3-6.每个类( C )构造函数。
A.只能有一个B.可以有公用的C.可以有多个D.只可有缺省的3-7.对类对象成员的初始化是通过构造函数中给出的( B )实现的。
A.函数体B.参数初始化表C.参数表D.参数初始化表或函数体3-8.假定AB为一个类,则执行“AB x;”语句时将自动调用该类的( B ).。
A.有参构造函数B.无参构造函数C.复制构造函数D.赋值重载函数3-9.假定AB为一个类,则执行“AB x(a,5);”语句时将自动调用该类的( A )。
A. 带参构造函数B. 无参构造函数C. 复制构造函数D. 赋值重载函数3-10.假定CT est为一个类,并且有一无默认值的的有参构造函数和一无参构造函数,则执行“CT est objT est;”语句时将自动调用该类的( B )。
A.有参构造函数B.无参构造函数C.复制构造函数D.赋值构造函数3-11.构造函数不具备的特征是( D )。