面向对象的与设计期末考试试卷(F卷)
- 格式:doc
- 大小:88.00 KB
- 文档页数:7
华南农业大学期末考试试卷(A卷-答案)2008学年第2学期考试科目:面向对象分析与设计考试类型:(闭卷)考试时间:120 分钟学号_______________________ 姓名_____________________ 年级专业_________________________、单项选择题(每题2分,共30分。
将正确答案填入下表)A.低内聚、低耦合B.高内聚、低耦合C.高内聚、高耦合D.低内聚、高耦合2、不是传统开发方法的是()。
DA. 功能分解法B.结构化方法C.信息建模方法D.面向对象方法3、不是面向对象的基本思想的是()。
DA. 客观世界中的事物都是对象,对象间存在一定的关系。
B. 用对象的属性描述事物的静态特征C. 用对象的操作描述事物的动态特征(行为)。
D. 通过随机方式对事物进行分类。
4、面向对象的特点主要概括为()。
CA. 可分解性、可组合性、可分类性B.继承性、封装性、多态性C. 抽象性、继承性、封装性、多态性D.封装性、易维护性、可扩展性、可重用性5、下列关于面向对象分析(OOA)中描述错误的是()。
DA. 是运用面向对象方法进行系统分析。
B. 是软件生命周期的一个阶段C•强调对问题域和系统责任进行分析和理解。
D. 强调与实现有关的分析和理解。
6、下列叙述中正确的是()。
AA. 系统边界是一个系统所包含的所有系统成分与系统以外各种事物的分界线。
B. 参与者一定是系统中的一部分。
C. 参与者是在系统之外但可不与系统进行交互的任何事物。
D. 参与者只能是人或者设备。
7、关于用例与类的对比中()是错误的。
DA. 都属于模型结构元素B. 都存在继承关系C. 类描述系统的部分静态视图,用例描述系统动态的行为视图D. 类描述的是系统的内部构成,用例也可以描述系统的内部构成 8、关于类和对象的描述中, ()是错误的。
BA. 对象是具有明确语义边界并封装了状态和行为的实体。
B. 类与对象之间的关系,如同一个铸件和它的模具之际的关系。
C++面向对象程序设计语言期末考试试卷一.选择题(每题1分,共10分)1.在C++中,常量’C’和”C”两者________。
A)完全不同B)存储长度相同C)类型相同D)存储值相同2.有二维字符数组char s[4][6]={“zhang”,”gao”,”tang”,”wang”},执行程序cout<<*s[2],屏幕上显示________。
A)gao B)tang C)g D)t3.若w=1,x=2,y=3,z=4,则条件表达式w>x?w:z>y?z:x的结果为_______。
A)4 B)3 C)2 D)14.设a和b为整型变量,执行语句b=(a=2+3,a*4),a+5;后a和b的值为_______。
A)5,10 B)20,25 C)5,25 D)5,205.如果整型变量a,b,c的值分别为5,4,3,则语句if(a>=b>=c) c++;执行后c的值是______。
A)5 B)4 C)3 D)2int i=10;执行下列语句后,i的值是_______。
{case 9: i+=1;case 10: i+=1;case 11: i+=1;case 12: i+=1;}A)10 B)11 C)12 D)136.执行以下程序:#include<iostream.h>void main(void){char c=0; cout<<c<<’\n’;}输出的结果是________。
A) ‘\0’B)语法错C)0 D) 一个空行7.设有类型说明:enum color{red,yellow=3,white,black};则执行语句cout<<white<<’\n’;后输出的结果是________。
A) 4 B) 3 C) 2 D) 18.对于下面的几个函数:void f(int x){……}//1int f(int y){……}//2int f(int i,int j){……}//3float k(int x) {……}//4_______是重载函数。
《面向对象程序设计JAVA语言程序设计》期末考试试题及部分答案一、单选题1.在下列概念中,Java语言只保留了DA.运算符重载B.结构和联合C.指针D.方法重载2.下列类定义中,不正确的是BA.cla某{....}B.taticcla某implementy1,y2{....}D.cla某e某tendy{....} C.publiccla某e某tendApplet{....}3.下列语句序列执行后,k 的值是Bintm=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.0B.1C.2D.34.设i、j为int型变量名,a为int型数组名,以下选项中,正确的赋值语句是AA.a[0]=7;B.i=i+2C.i++---j;D.a(0)=66;5.Java语言的类间的继承关系是BA.多重的B.单重的C.线程的D.不能继承6.下列语句序列执行后,k的值是Cinti=10,j=18,k=30;witch(j-i){cae8:k++;cae9:k+=2;cae10:k+=3;default:k/=j;}A.31B.3C.2D.337.设有定义float某=3.5f,y=4.6f,z=5.7f;则以下的表达式中,值为true的是CA.某>y||某>zB.z>(y+某)C.某!=yD.某<y&!(某<z)8.下列修饰符中,定义类头时能使用的修饰符是CA.privateB.taticC.abtractD.protected9.设i、j、k为类某中定义的int型变量名,下列类某的构造函数中不正确的是BA.某(intm){...}B.void某(intm){...}D.某(inth,intm,intn){...}C.某(intm,intn){...}10.下列对封装性的描述中,错误的是DA.封装体包含了属性和行为B.封装使得抽象的数据类型提高了可重用性C.被封装的某些信息在封装体外是不可见的D.封装体中的属性和行为的访问权限是相同的11.下列关于包的描述中,错误的是BA.包是若干个类的集合B.包是一种特殊的类型D.包有有名包和无名包两种C.包是使用package语句创建的12.下列关于Applet程序的描述中,错误的是CA.Applet程序的主类必须是Applet类得子类B.Applet不是完整的独立程序C.Applet程序的主类中应有一个main()方法D.Applet的字节码文件必须嵌套在一个HTML文件中13.下列界面元素中,不是容器的是A.DialogB.FrameCC.LitD.Panel14.下列关于异常处理的描述中,错误的是DA.程序运行时异常由Java虚拟机自动进行处理B.使用try-catch-finally语句捕获异常C.使用throw语句抛出异常D.捕获到的异常只能在当前方法中处理,不能在其他方法中处理15.以下方法不属于迭代器(Iterator)接口所定义的方法的是D A.haNe某t()B.ne某t()16.主线程属于A.守护线程C.remove()D.ne某tElement()(C)B.Thread线程C.用户线程D.Runnable线程二、填空题1.2.三目运算符的3个操作数中,第一个操作数的类型必须是逻辑型的。
面向对象程序设计复习题二一、填空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。
C++面向对象程序设计考试试卷(详细讲解)一、单项选择题(共20题,每题1分,共20分)1、下列关于C++标识符的命名不合法的是 C 与C#一样A. PadB. name_1C. A#bcD. _a122、若有以下类型标识符定义:()Dint x=2; char w='a'; float y=23.45f; double z=45.6712;则表达式w*x+y-z的结果类型是A. floatB. charC. intD. double6、对重载函数形参的描述中,错误的是 D 重载是重点A. 参数的个数可能不同B. 参数的类型可能不同C. 参数的顺序可能不同D. 参数的个数、类型、顺序都相同,只是函数的返回值类型不同7、以下能正确定义数组并正确赋初值的语句是 DA. int N=5,b[N][N];B. int a[2]={{1},{3},{4},{5}};C. int c[2][]={{1,2},{3,4}};D. int d[3][2]={{1,2},{3,4}};8、下列给字符数组进行的初始化中,不正确的是 DA. char s1[]="abcd";B. char s2[3]={'x','y','\0'};C. char s3[]={'a','x','y','\0'};D. char s4[6]={"xyz","mnp"};9、通常的拷贝构造函数的参数是 CA.某个对象名 B.某个对象成员名C.某个对象的引用 D.某个对象的指针名10、关于构造函数特点的描述中,错误的是 AA. 定义构造函数必须指出类型(构造函数特点是无返回类型)B. 构造函数的名字与该类的类名相同C. 一个类中可定义0至多个构造函数(不写构造函数,系统会自动生成一个空的构造函数)D. 构造函数是一种成员函数11、下面程序的运行结果为 C#include <iostream.h>int add(int a,int b);void main(){extern int x,y;cout<<add(x,y)<<endl;}int x=20,y=5;int add(int a,int b){int s=a+b;return s;}A.20 B.5 C.25 D.编译会提示出错信息12、关于常成员的描述中,错误的是 BA. 常成员包含常数据成员和常成员函数两种B. 常数据成员必须是公有的C. 常数据成员要使用构造函数成员初始化列表进行初始化D. 常对象只能调用它的常成员函数,不能调用其它的成员函数13、关于友元函数的描述中,错误的是 BA. 友元函数不是成员函数B. 友元函数只能访问类中私有成员C. 友元函数破坏隐藏性,尽量少用D. 友元函数说明在类体内,使用关键字friend14、如果有int x,*p; float y,*q;则下面操作正确的是 CA.p=x B.p=qC.p=&x D.p=&y16、若数组名作实参而指针变量作形参,函数调用时实参传给形参的是 DA. 数组的长度B. 数组第一个元素的值C. 数组所有元素的值D.数组第一个元素的地址17、对于动态分配内存空间描述正确的是 DA.使用new运算符分配的内存空间的长度必需是常量B.delete运算符可以释放动态的存储空间和静态的存储空间C.由new分配的内存空间是不连续的D.delete运算符只能释放由new分配的动态存储空间18、能够释放对象所占资源的是() AA.析构函数 B.数据成员C.构造函数 D.静态成员函数19、虚函数的定义是在基类中进行的,定义时需要冠以关键字 CA.static B.frendC.virtual D.public20、在C++中串流类是在头文件strstrea.h中定义的,下列不属于串流类的是) C A.strstream B.ostrstreamC.ofstream D.istrstream二、填空题(共9题16空,每空1分,共16分)1、函数重载时,编译系统会根据__形参的类型__ 或__形参的个数__ 来区分。
《面向对象程序设计JA V A语言程序设计》期末考试试题及部分答案1一、单选题:(每题1分)下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确选项的标记写在题干后的括号内。
1.下列语句序列执行后,k 的值是( B )。
int m=3, n=6, k=0;while( (m++) < ( -- n) ) ++k;A) 0 B) 1 C) 2 D) 32.设i、j 为int型变量名,a 为int型数组名,以下选项中,正确的赋值语句是( B )。
A) i = i + 2 B) a[0] = 7;C) i++ - --j; D) a(0) = 66;3.Java语言的类间的继承关系是( B )。
A) 多重的B) 单重的C) 线程的D) 不能继承4.设有定义int i = 6 ;,则执行以下语句后,i 的值为( C )。
i += i - 1;A) 10 B) 121 C) 11 D) 1005.下列选项中,用于在定义子类时声明父类名的关键字是( C )。
A)interface B) package C) extends D) class6.若已定义byte[ ] x= {11,22,33,-66} ;其中0≤k≤3,则对x数组元素错误的引用是( C )。
A) x[5-3] B) x[k] C) x[k+5] D) x[0]7.下列语句序列执行后,ch1 的值是( B )。
char ch1='A',ch2='W';if(ch1 + 2 < ch2 ) ++ch1;A) ‘A' B) ‘B' C) ‘C' D) B8.下列语句序列执行后,i 的值是( D )。
int i=8, j=16;if( i-1 > j ) i--; else j--;A) 15 B) 16 C) 7 D) 89.下列语句序列执行后,k 的值是( C )。
面向对象程序设计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面向对象程序设计期末考试题及答案一、选择题(每题2分,共20分)1. 在Java中,以下哪个关键字用于声明一个类?A. classB. interfaceC. structD. enum答案:A2. Java中的继承是?A. 单继承B. 多继承C. 无继承D. 混合继承答案:A3. 下列哪个是Java中的访问修饰符?A. privateB. protectedC. publicD. 以上都是答案:D4. Java中哪个关键字用于实现多态?A. abstractB. finalC. staticD. override答案:D5. Java中接口和抽象类的主要区别是?A. 接口可以有构造方法B. 抽象类可以有构造方法C. 接口不能有构造方法D. 抽象类不能有构造方法答案:C6. 在Java中,下列哪个是正确的方法重载?A. 方法名相同,参数列表不同B. 方法名不同,参数列表相同C. 方法名和参数列表都相同D. 方法名相同,返回类型不同答案:A7. 下列哪个不是Java的集合框架中的接口?A. ListB. SetC. MapD. Stream答案:D8. Java中,下列哪个是线程安全的单例模式实现?A. 懒汉式B. 饿汉式C. 双重检查锁定D. 以上都是答案:B9. Java中,下列哪个是正确的异常处理关键字?A. tryB. catchC. finallyD. 以上都是答案:D10. 在Java中,下列哪个是正确的泛型使用方式?A. List<String> list = new ArrayList<>();B. List list = new ArrayList<>();C. List<String> list = new ArrayList<Integer>();D. List list = new ArrayList<String>();答案:A二、填空题(每题2分,共20分)1. Java中,一个类可以继承______个父类。
《C++面向对象程序设计》考试试题✧本试卷满分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的私有成员。
(B)类A的友元类中的非静态成员函数可以访问类A的私有成员。
《面向对象分析与设计》考试试卷(第一套)课程号5808115040 考试时间100 分钟适用专业年级(方向):考试方式及要求:闭卷笔试一、单项选择(每题分,共45分,答案写在题前表格内)1.SDLC需求分析阶段结束时将产生哪个文档()。
A.可行性分析报告B.软件需求说明书C.软件需求统计D.系统需求统计2.面向对象将描述事物的数据与()封装在一起,作为一个相互依存,不可分割的整体来处理。
A.信息B.数据隐藏C.数据操作D.数据抽象3.()是从用户使用的角度描述系统功能的图形表示方法。
A.类图B.对象图C.序列图D.用例图4.()描述了一组交互对象间的动态协助关系,表示完成某项行为的对象和这些对象间传统消息的时间顺序。
A.对象图B.协作图C.序列图D.状态图A.瀑布模型B.原型模型C.增量模型D.螺旋模型6.()是用于把元素组织成组的通用机制A.包B.类C.接口D.组件7.对某企业的工作流程进行建模,()是最有效的。
A.交互图B.活动图C.状态图D.类图8.一个设计得好的OO系统具有()A.低内聚、低耦合的特征B.高内聚、低耦合的特征C.高内聚、高耦合的特征D.低内聚、高耦合的特征9.下面那个图符表示UML中的实现关系?()。
A. B.C. D.10.下图表示类图的()+op11()+op12()-attr11-attr12Class1+op21()+op22()-attr21-attr22Class2A.关联关系B.泛化关系C.实现关系D.依赖关系11.一个银行业务系统采用如图所示的配置图,则错误的是()。
A.与GUI有关的类应该部署在Branch Client上B.这个图表示一个三层的体系结构,不管Branch Client、Financial App Server、Database Server是运行在同一台机器上还是在不同机器上C.为了系统的可伸缩性(scalability),与业务逻辑有关的对象应该部署在12.用例图关于角色的说法中错误的是()。
吉林大学22春“计算机科学与技术”《面向对象程序设计》期末考试高频考点版(带答案)一.综合考核(共50题)1.设x=1,y=2,z=3,则表达式y+=z--/++x的值是()。
A.3B.3.5C.4D.5参考答案:A2.如果类中的成员变量可以被同一包访问,则使用如下哪个约束符?()A.privateB.publicC.protectedD.no modifier参考答案:D3.设有定义 int i=123; long j=456; 下面赋值不正确的语句是()A.j=i;B.j=(long)i;C.i=(int)j;D.i=j;参考答案:D4.下列构造方法的调用方式中,正确的是()。
A.按照一般方法调用B.由用户直接调用C.只能通过 new 自动调用D.被系统调用5.下列程序段执行后 b3 的结果是() boolean b1=true, b2, b3; b3= b1 ?b1 : b2;A.0B.1C.trueD.false参考答案:D6.关于被私有访问控制符private修饰的成员变量,以下说法正确的是()。
A.可以被三种类所引用:该类自身、与它在同一个包中的其他类、在其他包中的该类的子类B.可以被两种类访问和引用:该类本身、该类的所有子类C.只能被该类自身所访问和修改D.只能被同一个包中的类访问参考答案:C7.所有的异常类皆继承哪一个类?()A.java.io.Exceptionng.Throwableng.Exceptionng.Error参考答案:C8.在Jave中,用package语句说明一个包时,该包的层次结构必须是()。
A.与文件的结构相同B.与文件目录的层次相同C.与文件类型相同D.与文件大小相同参考答案:B下列正确的表达式()。
A.double a=1,0B.Double a=new Double(1,0)C.byte a=340D.Byte a=120参考答案:AB10.设 x、y为已定义的类名,下列声明x类的对象x1的语句中正确的是()A.static x x1;B.public x x1=new x(int 123);C.y x1;D.x x1=x();参考答案:B11.设x = 1, y = 2, z = 3,则表达式y+=z--/++x的值是()A.3B.3.5C.4D.5参考答案:A12.下面的代码段中,执行之后i和j的值是()。
《面向对象程序设计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中保护的数据成员和成员函数的个数是()。
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;,下列关于这个函数的叙述中,错误的是( )。
面向对象程序设计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类的对象。
《VFP》期末考试试题一、选择题:1。
以下所列各项属于命令按钮事件的是(d)A.Parent B.This C.ThisFormD.Click2.执行如下命令序列后,最后一条命令的显示结果是(c)DIMENSION M(2,2)M(1,1)=10M(1,2)=20M(2,1)=30M(2,2)=40? M(2)A.变量未定义的提示 B.10 C.20 D..F.3.在Visual FoxPro中,以下关于查询的描述正确的是(d)A.不能用自由表建立查询B.只能使用自由表建立查询C.不能用数据库表建立查询D.可以用数据库表和自由表建立查询4.假设职员表已在当前工作区打开,其当前记录的“姓名”字段值为“张三"(字符型,宽度为6).在命令窗口输入并执行如下命令:姓名=姓名—"您好"?姓名那么主窗口中将显示(b)A.张三B.张三您好--C.张三您好 D.出错5. 在Visual FoxPro中,假设表单上有一个选项组:O男 O女,初始时该选项组的Value属性值为1.若选项按钮“女”被选中,该选项组的Value属性值是(b)A.1 B.2 C.“女” D.“男" 6.假设某个表单中有一个命令按钮cmdClose,为了实现当用户单击此按钮时能够关闭该表单的功能,应在该按钮的Click事件中写入语句(c) A. ThisForm。
Close B. ThisForm。
Erase C. ThisForm.Release D. ThisForm.Return 7.有Visual FoxPro中,释放表单时会引发的事件是(a)A.UnLoad事件B.Init事件C.Load事件D.Release事件8.设置表单标题的属性是(d)A.Title B.Text C.Biaoti D.Caption9.让控件获得焦点,使其成为活动对象的方法是(c)A.SHOW B. RELEASE C.SETFOCUS D.G OTFOCUS10.在Visual FoxPro中字段的数据类型不可以指定为(b)A.日期型 B.时间型 C.通用型 D.备注型11. DBMS的含义是:( b )A.数据库系统 B.数据库管理系统C.数据库管理员 D.数据库12.对于“关系”的描述,正确的是:( d )A.同一个关系中允许有完全相同的元组B.同一个关系中元组必须按关键字升序存放C.在一个关系中必须将关键字作为该关系的第一个属性D.同一个关系中不能出现相同的属性名13.下列程序段的输出结果是 ( b )Clearstore 10 to astore 20 to bdo swap with a,(B)?a,bprocedure swapparameters x1,x2temp=X1x1=x2x2=tempendprocA.10 20 B.20 20 C.20 10 D.10 1014.在Visual Foxpro中,通常以窗口形式出现,用以创建和修改表、表单、数据库等应用程序组件的可视化工具称为(b)A.向导 B.设计器 C.生成器D.项目管理器15.有如下赋值语句,结果为“大家好"的表达式是(d)a=“你好”b=“大家”A.b+left (a,1) B. b+RIGHT(a,1) C.b+ LEFT(a,3,4) D. b+RIGHT(a,2)16.如果在运行表单时,要使表单的标题显示“登录窗口”,则可以在Form1的Load事件中加入语句( a )A.THISFORM。
《C++面向对象程序设计》考试试题本试卷满分 100 分; 请将答案写在答题纸上,写明题号,不必抄题,字迹工整、清晰; 请在答题纸和试题纸上都写上你的班级,学号和姓名,交卷时请将试题纸、答题纸和草纸 一并交上来。
一、单选题 (共 10 分,每题 1 分) 1. C++中解决命名冲突的机制是: D (A) 虚基类 (B) 虚函数 (C) 函数重载 2. 若类A 的一个对象所占的内存空间中包含虚函数表的入口地址 (A) 类 A 不能有静态数据成员 (C) 类 A 中至少有一个成员函数是虚的 3.任意一个类,析构函数的个数最多是: (A) 不限个数 (B) 1 (C) 4. 下列关于 this 指针的说法 ,哪个是正确的 (A) this 指针一定指向常量型数据 (C) 静态成员函数中也可以访问 (B) (D) (D) 名字空间 ,则: C 类 A 中公有的成员函数一定是虚的 类 A 的析构函数一定是虚的 (D) 3 5.在类定义中 , 为说明成员的访问权限 (A) 次数没有具体限定 (C) public 至少一次 面哪种定义方式是正确的,并且使得 (A) A * p = new A; (C) const A* p = new A;obj 是类 A 的一个对象,执行语句 (A) 类 A 的拷贝构造函数会被调用 (C) &aA 的值就是 &obj 6.7. (B) this 指向的数据不可更改 (D) this 指针本身可直接作为成员函数的返回值 A this 指针 , private, protected, public 可以出现次数为: (B) 每种至多一次 (D) 每种至少一次p 可以作为函数 void f( A* const pp); 的实参: A(B) A a; A* p = a; (D) A a; const A* p = a; const A& aA= obj; ,则下列说法正确的是: C (B) 类 A 的赋值函数会被调用(D) 语句 obj.f( ) ;等价于语句 aA.f( ) ; 面关于访问类 A 的私有数据成员的说法,错误的是: (A) (B) (C) (D) 9.类A 8. 类A 类A 类A 类A 的友元函数可以访问类 A 的私有成员。
系名____________班级____________姓名____________学号____________密封线内不答题《面向对象程序设计C++》期末考试试卷 第一套 一、 填空题(每空1分,共14分) 1、 观看以下程序: class point{ public: void show() {cout<<”point ”<<endl;} }; void main() { point p1; point *p; p=&p1; _______________//通过对象p1访问show 函数 ______________//通过指针p 访问show 函数 } 2、 在C++类中可以包含______________、______________和______________三种具有不同访问控制权的成员。
3、 定义类时,在类头中将使用关键字_____________来表示类定义的开始。
4、 如果一个类中至少有一个纯虚函数,则该类称为________________。
5、 C++类的组成包括数据成员和______________,友元_____(是、不是)该类的成员函数。
6、 友员函数是用关键字____________修饰的非成员函数。
7、 若有: int i; int &j=i; i=10;j=i+1;则i=__________,j=__________。
8、 new 的功能是____________________,delete 的功能是____________________。
二、选择题(每小题1.5分,共30分)1、下列特性中不是面向对象程序设计语言所特有的是()。
(A)数据封装(B)继承(C)多态性(D)模板2、()是给变量取一个别名,它引入了变量的同意词。
(A)指针(B)引用(C)枚举(D)结构3、类成员的访问权限中,()只能被本类的成员函数和其友元函数访问。
面向对象的分析与设计期末考试试卷(F卷)一、选择题(30分)
说明:每题2分,只有1个正确答案,请将正确答案填写在下面表格中。
1. 一个设计得好的面向对象系统具有()特征。
A 低内聚、低耦合
B 高内聚、低耦合
C 高内聚、高耦合
D 低内聚、高耦合2.构成对象的两个主要因素是()。
A 属性和服务
B 标识和内容
C 继承和多态
D 消息和封装
3. 下面描述中()不是使用软件模型的目的。
A 可以更好地理解问题
B 可以更早地发现错误或疏漏的地方
C 可以为最后代码的生成提供依据
D 在开发过程中使用面向对象方法
4. 下列事物中一般不是目标系统的外部参与者的是()。
A 人
B 外部设备
C 外部系统
D 数据存储
5. 下面()可以描述一个用例中多个对象之间的相互协作关系以及协作过程的行为次序。
A 交互图
B 状态图
C 对象图
D 用例图
6. 统一过程(或称RUP)所提出的迭代开发过程是()。
A 一种结构化开发方法,该方法给出了功能分解有具体步骤
B 一种管理软件开发的过程复杂性和对变更进行规划的技术
C 一种自顶向下的开发过程,且开发过程没有使用数据流图
D 是RUP中最重要的特点
7. 下列描述中正确的是()。
A 消息可以由被动对象发送到主动对象
B 状态图中,动作可以被中断而活动不能被中断
C 构件图中,一个构件和一个接口之间只能存在实现关系
D 状态图不适合于描述跨多个用例的单个对象的行为,而适合描述多个对象之间的行为协作
8. 根据下面的代码,可以确定类A与类B之间存在()关系。
public class A {
private B theB;
public void aMethod(){ theB.doSomthing(); }
}
A 关联
B 泛化
C 实现
D 包含
9. 面向对象的特点主要概括为()。
A 可分解性、可组合性、可分类性
B 继承性、封装性、多态性
C 抽象性、继承性、封装性、多态性
D 封装性、易维护性、可扩展性、可重用性
10.关于面向对象分析与设计的叙述中正确的是()。
A 因为我们要重用类,所以在分析设计过程中不能过早确定领域类
B 面向对象方法是针对功能的而不是针对组成部分的
C 用例分析是面向对象分析与设计的起点
D 通过用例分析和时序分析可以获得全部的问题领域类
11.在类设计过程中引入类不变式的目的是达到系统设计的()。
A 正确性
B 健壮性
C 灵活性
D 高效性
12.在数据库设计的()阶段开始考虑具体的数据库管理系统(DBMS)的特性
A 需求分析
B 概念设计
C 逻辑设计
D 物理设计
13.关于在建立软件系统模型过程中业务模型的作用描述中错误的是()。
A 帮助确定什么样的软件系统对机构中的业务过程是最合适的。
B 帮助定义功能性和非功能性的需求。
C 作为分析和设计目标软件系统的基础。
D 建立与软件模型之间的一一对应关系,实现模型转换。
14.下列关于面向对象方法中描述中错误的是()。
A 使用设计模式有助于在软件开发中应用面向对象技术
B 选择面向对象程序设计语言时需要考虑开发人员对其的熟悉程度
C UML作为一种可视化建模语言需要与RUP开发过程同时使用
D 目前在软件生命周期的分析、设计、实现和测试中均可以应用面向对象方法
15.下面()不是UML的基本构成元素。
A 控制语言
B 基本构造块
C 规则
D 公共机制
二、判断题(10分)
判断下列类之间的关系,把相应编号填写在下面表格中(A聚合B 继承C 关联D 都不是)
1.大学–学院 2.学生–课程 3.学生–大一新生 4.汽车–车门
5.货车–交通工具 6.公共汽车–车站 7.工具条–按钮 8.汽车发动机–汽车车体9.员工–公司 10.本科生–研究生
三、简答题(42分,每小题6分)
1. 画出能正确表示下面叙述的类图(括号内为类名)。
“一个雇员(Employee)最多由一个经理(Manager)管理,某些经理管理多个雇员,某些经理不管理任何雇员”。
2. 汽车可能处于“静止”和“行驶”状态,其中“行驶”状态可以在“前进”和“后退”状态之间转移,“行驶”状态又包括“高速”和“低速”状态之间的变化。
画出汽车的状态图。
3. 简要叙述“聚集”关系和“组合”关系的相同点和不同点。
4. 设计一个饮料自动售货机系统,其主要功能是向顾客出售饮料,同时供应商需要向其中放置饮料,收银员需要向其中放置零钱和收回营业收入。
画出该系统的用例图。
5. 请根据如下Java代码画出相应的顺序图。
class C1{
C2 c2 = new C2();
public void f1(){ c2.f2(); }
}
Class C2{
public void f2(){ f2(); }
6. 找出并说明下面类图中的错误。
7. 下面类图中,接口Service中定义了三个方法。
其中ClientA只使用methodA方法,ClientB只使用methodB方法,ClientC只使用methodC方法。
根据接口分离原则重新设计该类图。
四、设计题(18分)
仔细分析下面对某公司“会见顾客”业务流程的描述,画出带泳道的活动图。
(18分)(1)公司业务员打电话给客户,确定一个会面。
(2)如果会面地点在公司内,公司技术人员需要为会面准备一间会议室,同时,咨询顾问需要为准备一份陈述报告。
(3)如果会面地点在公司外,则只需咨询顾问需要为准备一份陈述报告。
(4)咨询顾问与顾客在约定的时间和地点见面。
(5)业务员随后为他们准备好会议用纸。
(6)如果会面得到了一个解决方案,则咨询顾问根据解决方案编写一个报告,并将报告发给顾客。
一、选择题(30分)
二、判断题(10分)
三、简答题(42分,每小题6分)
3. 简要叙述“聚集”关系和“组合”关系的相同点和不同点。
答:相同点:整体-部分关系
不同点:局部对象的生命周期是否由整体对象来管理
6. 答:(1)计算机与其部件之间不是继承关系,应是聚集关系
(2)人与用户、维修人员之间不是聚集关系,应是继承关系
(3)维修人员与计算机之间不是聚集关系,应是维修人员依赖计算机或单向关联7. 答:
四、设计题(18分)。