(0166)《面向对象技术》复习思考题

合集下载

(0166)《面向对象技术》复习思考题

(0166)《面向对象技术》复习思考题

(0166)《面向对象技术》复习思考题一、选择题1、以下说法中正确的是( )A.C++程序总是从第一个定义的函数开始执行B.C++程序总是从main函数开始执行C.C++函数必须有返回值,否则不能使用函数D.C++程序中有调用关系的所有函数必须放在同一个程序文件中2、一个函数功能不太复杂,但要求被频繁调用,选用()A.内联函数 B.重载函数C.递归函数 D.嵌套函数3、构造函数不具备的特征是 ( )A.构造函数的函数名与类名相同B.构造函数可以重载C.构造函数可以设置默认参数D.构造函数必须指定类型说明4、下列不是描述类的成员函数的是()A. 友元函数 B.析构函数C.构造函数 D.拷贝构造函数5、int Func(int,int);不可与下列哪个函数构成重载()A.int Func(int,int,int); B.double Func(int,int);C.double Func(double,double);D.double Func(int,double);6、一个类可包含析构函数的个数是()A.0个 B.1个C.至少一个D.0个或多个7、在编译指令中,宏定义使用哪个指令()A.#include B.#defineC.#if D.#else8、在关键字public后面定义的成员为类的( )A.私有成员B. 保护成员C. 公有成员D.任何成员9、下列关于指针的运算中,( )是非法的。

A.两个指针在一定条件下,可以进行相等或不等的运算;B.可以用一个空指针赋值给某个指针;C.一个指针可以加上两个整数之差;D.两个指针在一定条件下,可以相加。

10、在C++中,关于下列设置缺省参数值的描述中,正确的是( )。

A. 不允许设置缺省参数值;B. 在指定了缺省值的参数右边,不能出现没有指定缺省值的参数;C. 只能在函数的定义中指定参数的缺省值;D. 设置缺省参数值时,必须全部都设置。

11、预处理命令在程序中是以( )开头的。

面向对象程序设计考前复习题及答案

面向对象程序设计考前复习题及答案

简答题1、传统的结构化程序设计的优点和缺点是什么?优点:(1)这种程序设计方法力求算法描述准确。

(2)对每一子过程模块容易进行程序正确性证明。

缺点:(1)这种程序设计方法本质上是面向“过程”的,而“过程”和“操作”又是不稳定和多变的,因此不能直接反映人类求解问题的思路。

(2)程序代码可重用性差。

程序中除少数标准库函数外,每设计一个程序时,程序员几乎从零做起。

即使重用代码,通常也是通过拷贝或编辑重新生成一份。

(3)维护程序的一致性困难。

该种方法将数据与对数据进行处理的程序代码分离。

2、什么是对象?每个对象都具有属性(Attribute)和方法(Method)这两方面的特征。

对象的属性描述了对象的状态和特征,对象的方法说明了对象的行为和功能,并且对象的属性值只应由这个对象的方法来读取和修改,两者结合在一起就构成了对象的完整描述。

3、什么是消息?在面向对象的程序设计中,由于对象描述了客观实体,它们之间的联系通过对象间的联系来反映。

当一个对象需要另外一个对象提供服务时,它向对方发出一个服务请求,而收到请求的对象会响应这个请求并完成指定的服务。

这种向对象发出的服务请求就称为消息。

4、什么是多态性? 所谓多态性是指当程序中的其他部分发出同样的消息时,按照接收消息对象的不同能够自动执行类中相应的方法。

其好处是,用户不必知道某个对象所属的类就可以执行多态行为,从而为程序设计带来更大方便。

5、什么是面向对象的程序设计方法?这种方法将设计目标从模拟现实世界的行为转向了模拟现实世界中存在的对象及其各自的行为。

 在OOP中,将“对象”作为系统中最基本的运行实体,整个程序即由各种不同类型的对象组成,各对象既是一个独立的实体,又可通过消息相互作用,对象中的方法决定要向哪个对象发消息、发什么消息以及收到消息时如何进行处理等。

6、面向对象方法的特点是什么?(1)OOP以“对象”或“数据”为中心。

由于对象自然地反映了应用领域的模块性,因此具有相对稳定性,可以被用作一个组件去构成更复杂的应用,又由于对象一般封装的是某一实际需求的各种成分,因此,某一对象的改变对整个系统几乎没有影响。

面向对象技术期末复习资料

面向对象技术期末复习资料

面向对象技术期末复习资料(总2页)--本页仅作为文档封面,使用时请直接删除即可----内页可以根据需求调整合适字体及大小--《面向对象技术》期末复习资料试卷题型说明:填空题(10分)、选择题(20道题40分)、判断题(10分)、简答题(2道)、写出程序运行结果(4道)、程序填空题(2道)、编程题(1道)。

一~三、基础题(各章的编程实例不考)1、第一章主要重点在节,节,其中节最为重要。

2、第二章主要重点为:(1)指针的定义与使用(特殊指针类型不做为重点)(2)引用的定义与使用注意事项(3)类型转换有所涉及,但分值不是很大(4)重点中的重点是节函数部分,尤其是函数重载。

(5)内联函数与预处理器了解一下。

(6)作用域和生命期理解掌握,特点是变量类型与初始化。

3、第三章:(1)静态成员、this指针、友元涉及的内容不太多,分值在4分左右(2)其他节都很重要,尤其是构造函数与析构函数,以及节~节。

4、第四章:都作为重点5、第五章:除节节以外都很重要。

6、还有一些C++小知识点:(1)a++与++a的用法及区别;(2)字符与字符串长度计算(3)数组的定义及数值表示范围(4)结构化程序设计三种基本结构为顺序结构、选择结构、循环结构。

它们用到的主要语句的用法。

四、简答题:1、什么是函数重载函数重载有何作用书中P522、类定义中的公有成员、保护成员和私有成员各有何差别?答:public为类的外部接口,它定义了类的公有成员,可以被程序中任何代码访问;在类外,对类的任何访问都需要通过该接口进行。

private声明了类的私有成员,凡需要实现信息隐藏的成员可设置为private访问属性,这种类型的成员只能被本类成员函数及友元访问,其他函数无法访问,成为一个外部无法访问的黑盒子。

设置为protected的成员称为保护成员,只能被本类成员函数、派生类成员函数和友元访问,其他函数无法访问。

保护成员与私有成员的访问属性类似,惟一差别在于该类在派生新类时,保护成员可以继续继承,而私有成员则不可以。

oop技术:面向对象技术复习思考题.doc

oop技术:面向对象技术复习思考题.doc
11.用typedef可以增加新类型。
12.宏替换不占用运行时间。
13.在include命令行中,用双引号和用尖括号将被包含的文件名括起来没有区别。
14.C++编译中的编译预处理可以看作一行C++语句。
15.头文件必须由系统提供。
16.创建派生类对象时,先调用基类的构造函数,再调用派生类的构造函数,当销毁这个对 象时顺序正好相反,先调用派生类的析构函数,再调用基类的析构函数。
cin » c;
if(c == 'c')
(
cout« "you chose 'c'" « endl;
continue; //返回主菜单
}
if(c == d)
(
cout« "you chose'd'" « endl;
continue; //返回主菜单
}
else
(
cout« "you didn't choose c or d!"« endl;
11.在定义拷贝构造函数时,为什么通常还要定义一个重载的赋值运算符?
12.拷贝构造函数在哪几种情况下调用?
%1.判断题
1.C++语言程序中,要调用的函数必须在main。函数中定义。
2.C++语言程序中,main。函数必须放在程序开始的部分。
3.C++语言程序中,urn语句必须放在函数的最后。
4.C++程序中有调用关系的所有函数必须放在同一源程序文件中。
int k;
for(k=0;k<=l 00;k+=50)

(完整)c++面向对象复习题答案版要点

(完整)c++面向对象复习题答案版要点

一、填空题1.C++中有两种数据类型:( char )和( int long )可以使用signed修饰符。

在C++中,用数组、指针、和(引用 )作为函数参数,能够将参数值带回.2.为了降低函数调用的时间开销,建议将小的调用频繁的函数定义为(内联函数),方法是在函数类型前加上(inline)关键字。

3.面向对象的程序设计有四大特征,它们是抽象、封装、( 继承 )、(多态).4。

拷贝构造函数是在用一个对象初始化另一个对象时被调用,系统缺省的拷贝构造函数的工作方法是(把对象的每个数据成员的值都复制到新建立的对象中)。

5。

用new申请某一个类的动态对象数组时,在该类中必须能够匹配到(该类的)构造函数,否则应用程序会产生一个编译错误。

6.静态数据成员必须在类外进行初始化,且静态数据成员的一个拷贝被类的所有对象(共享).7。

在C++中,定义重载函数时,应至少使重载函数的参数个数或参数类型( 不同 )。

8。

在C++中,虽然友元提供了类之间数据进行访问的一种方式,但它破坏了面向对象程序设计的( 封装)特性。

9.预编译指令由三种,它们是:文件包含、( 宏定义 )和( 条件编译).10。

静态的成员函数没有隐含的( this ),所以,它们只能直接访问类的静态的数据成员。

11.在C++中,函数的参数有两种传递方式,它们是值传递和( 地址 )。

12.当非静态成员函数被调用时,该成员函数的( this)指向调用它的对象。

13。

拷贝构造函数使用( 引用)作为参数初始化创建中的对象。

14。

在公有继承的情况下,基类数据成员在派生类中的访问权限(不变 ).15.在C++中,构造派生类对象时,总是先从(基类 )的初始化开始的。

16。

当需要统计程序中某个类创建对象的个数时,需要给该类定义(静态数据)成员。

17。

在多个类之间有重复继承时,为避免被重复继承的基类数据成员在内存中有多个拷贝,应将该基类定义为( 虚基类)。

18.在C++类中,有一种不能定义对象的类,这样的类只能被继承,称之为(抽象类),定义该类至少具有一个( 纯虚函数 )。

OOP技术:面向对象技术复习思考题

OOP技术:面向对象技术复习思考题

OOP技术:《面向对象技术》复习思考题一.填空题1.在C++中,函数的参数有两种传递方式,它们是值传递和员函数被调用时,该成员函数的2.拷贝构造函数使用3.在公有继承的情况下,基类数据成员在派生类中的访问权限4.用new申请某一个类的动态对象数组时,在该类中必须能够匹配到造函数,否则应用程序会产生一个编译错误。

5.静态数据成员在类外进行初始化,且静态数据成员的一个拷贝被类的所有对象6.设"int a=3,b=4,c=5;",表达式"(a+b)>c&&b!=c"的值是7.在C++中,定义重载函数时,应至少使重载函数的参数个数或参数类型8.动态联编要满足两个条件,它们是9.在C++类中,有一种不能定义对象的类,这样的类只能被继承,称之为10.举出C++中两种用户自定义的数据类型:11.C++中没有字符串类型,字符串是通过都有一个结尾字符12.在C++中,虽然友元提供了类之间数据进行访问的一种方式,但它破坏了面向对象程序设计的13.在C++中,构造派生类对象时,总是先从14.类是用户定义的类型,具有类类型的变量称作15.在5个运算符"*(乘号) 、&&、<=、!、!= "中,优先级由高到低的顺序是16.在C++中,类定义一般用class关键字,不过用struct关键字也可以定义类,它们定义类的区别在于17.静态的成员函数没有隐含的所以,它们只能访问静态的数据成员。

18.与"(!a==0)"等价的C++表达式是19.若a=6,b=4,c=2,则表达式"!(a-b)+c-1&&b+c/2"的值是20.在面向对象的程序设计中,通过现数据隐藏;通过21.在类的定义中,说明为protected的数据成员称为保护成员。

保护数据成员具有双重作用:对于其派生类而言,22.C++signed修饰符。

C++面向对象技术复习题汇总(含答案)演示教学

C++面向对象技术复习题汇总(含答案)演示教学

面向对象程序设计C++复习资料与答案第一、二、六、七章习题一、选择题1、系统约定C++源程序文件名的缺省的扩展名为()A、bccB、c++C、cppD、vcc2、面向对象的程序设计将数据与()放在一起,作为一个相互依存、不可分割的整体来处理。

A、对数据的操作B、信息C、数据隐藏D、数据抽象3、当一个函数无返回值时,函数的类型应定义为()A、voidB、任意C、intD、无4、对于C++的函数,正确的叙述是:A、函数的定义不能嵌套,但函数的调用可以嵌套B、函数的定义不能嵌套,但函数的调用不能嵌套C、函数的定义和调用都不能嵌套D、函数的定义和调用都可以嵌套5、下列语句中错误的是()A、int *p=new int(10);B、int *p=new int[10]C、int *p=new int;D、int *p=new int[40](0);6、假设已经有定义:const char *const name=”chen”;,下面的语句中正确的是:()A、name[3]=’a’; B、name=”lin”;C、name=new char[5]; D、cout<<name[3];7、假设已经定义:char *const name=”chen”;, 下面的语句中正确的是:()A、name[3]=’q’; B、name=”lin”;C、name=new char[5]; D、name=new char(‘q’);8、假设已经定义:const char *name=”chen”;, 下面的语句中错误的是:()A、name[3]=’q’; B、name=”lin”;C、name=new char[5]; D、name=new char(‘q’);9、下面的类型声明中正确的是:( )A、int &a[4];B、int &*p;C、int &&qD、int i,*p=&i;10、假设定义了函数模板()template <class T>T max(T x,T y){ return(x>y)?x:y;}并定义了int i;char c;错误的调用语句是:()A、max(i,i)B、max(c,c)C、max((int)c,i);D、max(i,c)11、模板的使用是为了()A、提高代码的可重用性B、提高代码的运行效率C、加强类的封装性D、实现多态性12、设有二个语句:int x[‘a’];cin>>x;则编译器认为()A、说明语句int x[‘a’]错B、二个语句都错C、语句cin>>x 错D、二个语句正确,没有语法错13、设有语句:void f(int a[10],int &x);int y[10],*py=y,n;则对函数f的正确调用语句是( )A、f(py[10],n);B、f(py,n)C、f(*py,&n)D、f(py,&n)14、在C++中实现封装是借助于()A、枚举B、类C、数组D、函数15、对于下面几个函数:(1) void f(int x,float y) {…… }(2) int f(int a,float b){…… }(3) int f(int i,int j){…… }(4) float k(int x){…… }是重载函数。

《面向对象分析与设计》练习题及参考答案.doc

《面向对象分析与设计》练习题及参考答案.doc

《面向对象分析与设计》练习题及参考答案一、思考题:1 ・ How many phases are in eluded in system developme nt? (brief description)2. Describe a system and the comp on ents of a system model.3. What two key comp orients distinguish an in formati on system from an automated information system?4. What is systems analysis and design?5. Who are the six stakeholder groups in information systems?6. What are a system designers and system builder's roles in information systems developme nt?7. What is the system analyst role in systems development as it related to the other stakeholders?8. List the six steps of the general problem-solving approach.9. List two types of quality certification applicable to information systems.10. What are legacy systems? Name two types of problems encountered in legacy systems.11 ・ What is ERP? What is electronic commerce?12. Differentiate between management information systems and decision support systems.13. What role dose a data warehouse play in a decision support system?14. List three focuses for an information systems・15. What is the role of the network in information systems?16. 而向过程的系统分析与设计存在的问题是什么?通过什么00技术来解决?仃•请湎图说明而向对象系统的基本构造。

面向对象程序设计复习总结题(含部分答案)

面向对象程序设计复习总结题(含部分答案)

《面向对象程序设计》复习要点及复习题(一)复习要点1.标识符、基本数据类型(字节数)、构造数据类型、运算符的种类、运算符的优先级和结合性、控制台输入和输出2.三种基本控制结构、if…else语句、switch语句、for语句、while语句、do…while语句、跳转语句;函数参数传递、函数重载、内联函数;标识符的作用域和生存期。

3.类的定义和使用、this指针、构造函数和析构函数、组合技术、静态成员、友元、运算符重载4.指针与数组、二级指针、动态内存的分配与释放、深复制与浅复制、递归。

5.派生类的构造与析构、派生类与基类的赋值兼容、多重继承与虚基类。

6.虚函数与动态绑定、纯虚函数与抽象类(二) 复习题一、单项选择题。

1.在switch语句中,为了结束分支,一般应在每个分支的结尾处加上语句(C)。

A. continueB. gotoC. breakD. default2.说明友元函数的关键字是(D)。

A. inlineB. virtualC. staticD. friend3.下面对指向常量的指针描述正确的是(C)。

A. 只能指向常量B. 指向的数据可以被修改C. 可以指向普通变量D. 必须进行初始化4.友元函数没有(A)。

A. this指针B. 返回类型C. 函数名D. 参数5.关于重载,(A)不正确。

A. 类名可以重载B. 函数名可以重载C. 运算符可以重载D. 缺省参数是重载的一种方式6.用new分配n维数组空间,首地址赋予指针p,则p应为指向(C)维数组的指针。

A. 0B. 1C. n-1D. n7.为类X重载前缀自增运算,则函数返回类型应为(C)。

A. XB. X*C. X&D. int8.以下(A)未调用构造函数(X为类名)。

A. X*p;B. X obj;C. X obj(1);D. X obj=2;9.若在类外有函数调用X::func();则函数func是类X的(C)函数。

面向对象程序设计复习题及参考答案

面向对象程序设计复习题及参考答案

网络數谋程考试复习题及参考答案面向对象程序设计一、填空题:1.创建类的对象时,使用运算符 ___________ 给对象分配内存空间。

2.Java通过 ______________________________________________ 来区分重载函数。

3.在子类中使用保留字 _____________ 可调用被子类覆盖的父类中的方法。

4•使用保留字_____________ 可以从一个构造方法中调用同一个类的另一个构造方法。

5.抽象类用修饰符 ________________ 定义。

6.类的数摒成员的访问权限修饰符一般为 ____________________7.访问权限修饰符按照访问权限的大小从大到小分别为______________________ . _&定义类的构造方法不能有_________________ ,其需称与 _______________ 名相同。

9.______________________________________________________________________ 抽象方法是的特征是「10.Java中的所有异常都是从_____________________ 继承来的。

11.对象引用中存储的内容是_________________________________ -12 •下列程序段执行后,String strl = new String Java");String str2 = new String(^Java^);if (strl・ equals(str2)) {System・ out. println(z/They are equal");} else {System ・ out. print In ("They are not equal?/);}输出结果为:____________________________________________13.下而循环执行后的sun值为int count =0, sum = 0;whi.le ( count <10 ) {sum += count;count ++;}14.Java语言中关键字______________________ ^表示双精度类型。

《面向对象技术》期末复习资料.docx

《面向对象技术》期末复习资料.docx

《面向对象技术》期末复习资料试卷题型说明:、填空题(10分)选择题(20道题40分)、判断题(10分)、简 答题(3道16分)、写出程序运行结果(4道16分)、程序填空题(1道4分) 编程题(1道4分)。

一〜二、基础题(各章的编程实例不考)1、第一章主要重点在1・2节,1・5节,其中1・6节最为重要。

1- 2:面向对彖程序语言的特征:抽彖、封装、继承和多态。

1- 5:数值型数据的输入:读取时省略数据前的空白,如果遇到正负号或数字,就开始 读数,包括浮点型数据的小数点,并在遇到空口符或其他非数字字符时停止。

1- 5-4:输出格式控制符:Setprecision (n ) n 代表输出的有效数位,包括整数的数位和小数的数位。

Setw (n ) n 代表输出的数据占有的列宽(域宽)SetiosflagsO / Resetiosflags ()用于设置或取消输入或输出的各种格式包括改变数制基数、设置浮点数的精度、转换字母的大小写、设置对齐方式等。

Ios::left/ios::right 左右对齐函数用法:Setiosflagsflos::left / ios::right ) / Resetiosflags (Ios::left / ios::right )1- 5-5: h ex十六进制 输入时在具前加Ox oct八进制 输入时在其丽加0dec 十进制 2、第二章主要重点为:(1) 指针的定义与使用(特殊指针类型不做为重点)(2) 引用的定义与使用注意事项(3) 类型转换有所涉及,但分值不是很大(4) 重点中的重点是2.7节函数部分,尤其是函数重载。

(5) 内联函数与预处理器了解一下。

(6) 作用域和生命期理解掌握,特点是变量类型与初始化。

2- 3:指针用于存放一个对象在内存中的地址,同个指针能操作这个对彖。

具有两个属 与类型无关;长度则与指针类型和关 pi 是指向int 的指针pc 是指向指针的指针 pa 是指向指针的数组f 是指向具有两个参数的函数的指针 f 是一个函数,返回一个指向int 的指针2-3-3:堆内存也成动态内存。

(0166)《面向对象技术》网上作业题答案

(0166)《面向对象技术》网上作业题答案

[0166]《面向对象技术》网上作业题答案2009上半年第一次[判断题]定义对象指针时,系统会自动调用构造函数。

参考答案:错误[判断题]判断字符串s1和s2是否相等的表达式为s1==s2。

参考答案:错误[判断题]使用赋值运算符可以对字符数组整体赋值。

参考答案:错误[单选题]使用重载函数编程序的目的是A:使用相同的函数名调用功能相似的函数B:共享程序代码C:提高程序的运行速度D:节省存储空间参考答案:A[多选题]在C++中,若定义一个函数的返回类型为void,以下叙述正确的是A:用语句调用函数B:用表达式调用函数C:没有返回值D:通过return语句可以返回指定值参考答案:AC[单选题]用C++语言编制的源程序要变为目标程序必须经过A:解释B:汇编C:编辑D:编译参考答案:D[单选题]在一个C++程序中,main函数的位置A:必须在程序的开头B:必须在程序的最后C:可以在程序的任何地方D:必须在其他函数中间参考答案:C[单选题]最早提出了对象概念的高级语言是:A:A1gol 60B:Simula 67C:SmalltalkD:C++参考答案:B[单选题]已知有函数原型void fun(int&),正确的调用是:A:int x=2; fun(&x);B:int a=15; fun(3*a);C:int b=4.15; fun(b);D:fun(356);参考答案:C[单选题]不能重载的函数是:A:成员函数B:非成员函数C:构造函数D:析构函数参考答案:D[判断题]在C++中,Sum和sum将被视作两个不同的变量。

参考答案:正确[判断题]运算符重载可改变其操作数的个数。

参考答案:正确2009上半年第二次[判断题]在基类定义的public成员在公有继承的派生类中是可见的。

参考答案:正确[判断题]两个数组名的比较是数组首元素大小的比较。

参考答案:错误[判断题]gets和puts函数可以输入/输出包含空格的字符串参考答案:正确[单选题]以下正确的函数原型为A:f(int x;int y);B:void f(x,y);C:void f(int x,y);D:void f(int,int);参考答案:D[单选题]执行语句:int i=10;*p=&i;之后,下面描述错误的是A:p的值为10B:p指向整型变量iC:*p表示变量i的值D:p的值是变量i的地址参考答案:A[单选题]预处理命令在程序中是以( )开头的。

面向对象复习题.docx

面向对象复习题.docx
的那些类的实例。
5.继承性是自动共享父类属性和的机制。
6.对象具有封装性,实现了的组合。
7.在面向对象方法中,信息隐藏通过对象的来实现。类结构分离了
和,从而支持了信息隐藏。
8.抽象是指强调实体的、,忽略一些无关紧要的属性。类实现了对象
的和的抽象,它是对象的共性的抽象。
9.子类只继承的属性和操作,称为单重继承。
A.服务B.参数
C.属性D.调用
20. 通过执行对象的操作改变该对象的属性,但它必须通过(
A.接口B.消息
C.信息
21.()模型表示了对象的相互行为。
A.对象
在确定类时,所有()是候选的类。
A.对象C.功能
按照传统的生命周期方法开发软件, 我们一般用()模型来模拟。
A.螺线模型C.瀑布模型RUmbangh等人提出的对象模型技术
第一部分面向对象方法概述
一、填空题
1.对象的抽象是,类的实例是。
2.动态模型描述了系统的结构。
3.软件系统中存在两种控制流,外部控制流是系统中对象之间外部事件的事件流,
有、和三种外部事件控制流。控制流是一个处理内
部的控制,均可结构化。
4.在C++和C中有一个函数,可以使用这个过程来说明构成系统主要对象
A•开发过程基于功能分析和功能分解
B•强调需求分析的重要性
C.把对象划分成类,每个对象类都定义一组数据和方法
D•对既存类进行调整
3.每个对象可用它自己的一组属性和它可以执行的一组()来表现。
A•行为B•功能
C.修饰性名词词组D.词组
11. 在开发废弃型类时,在软件生存期中最花费时间的部分应当是软件的(
10.对象的抽象是,类的具体化就是,也可以说类的实例

【精品】(0166)《面向对象技术》复习思考题.doc

【精品】(0166)《面向对象技术》复习思考题.doc

(0166)《面向对象技术》复习思考题一、选择题1、以下说法中正确的是()A.C++程序总是从第一个定义的函数开始执行B.C++程序总是从main函数开始执行C.C++函数必须有返冋值,否则不能使用函数D.C++程序中有调用关系的所有函数必须放在同一个程序文件中2、一•个函数功能不太复杂,但要求被频繁调用,选用()A.内联函数B.重载函数C.递归函数D.嵌套函数3、构造函数不具备的特征是()A.构造函数的函数幺与类名相同B.构造函数可以重载C.构造函数可以设置默认参数D.构造函数必须指定类型说明4、下列不是描述类的成员函数的是()A.友元函数B.析构函数C.构造函数D.拷贝构造函数int Func(int, int, int);double Func(int, int);5、int Func (int, int):不可与下列哪个函数构成重载()double Func(double, double); D. double Func (int, double):6、一•个类可包含析构函数的个数是()A.0个B. 1个C.至少一个D. 0个或多个7、在编译指令中,宏定义使用哪个指令()A.tfincludeB. #defineC. #ifD. ftelse8、在关键字public后面定义的成员为类的()A.私有成员B.保护成员C.公有成员D.任何成员9、下列关于指针的运算中,()是非法的。

A.两个指针在一定条件下,可以进行相等或不等的运算;B.可以用一个空指针赋值给某个指针;C.一•个指针可以加上两个整数之差;D.两个指针在一定条件下,可以相加。

10、在C++中,关于下列设置缺省参数值的描述中,止确的是()。

A.不允许设置缺省参数值;B.在指定了缺省值的参数右边,不能出现没有指定缺省值的参数;C.只能在函数的定义中指定参数的缺省值;0.设置缺省参数值时,必须全部都设置。

11、预处理命令在程序中是以()开头的。

计算机科学与技术面向对象程序设计复习提纲(含答案)

计算机科学与技术面向对象程序设计复习提纲(含答案)

计算机科学与技术面向对象程序设计复习提纲(含答案)面向对象程序设计复习提纲1. 下列叙述中正确的是()A) Java是不区分英文字母大小写的,源文件名与程序类名不允许相同B) Java语言以方法为程序的基本单位C) Applet是Java的一类特殊应用程序,它嵌入HTML中,随主页发布到互联网D) 以//符开始的为多行注释语句2. Java语言的许多特点中,下列()特点是C++语言所不具备的A) 高性能B) 跨平台C) 面向对象D) 有类库3. Java源文件中最多只能有一个()类,其他类的个数不限A)abstract B) public C) final D) interface4. Java语言中,()是所有类的根类A) Object B) Root C) Thread D) Applet5. Java语言中,字符变量以char类型表示,它在内存中占()位bitA) 8 B) 16 C) 32 D) 26. 下列叙述中,()是正确的A) 类是变量和方法的集合体B) 数组是无序数据的集合C) 抽象类可以实例化D) 类成员数据必须是公有的7. 下列关于方法形参的叙述中,()是正确的A) 必须有多个B) 至少有一个C) 可以没有D) 只能是简单变量8. 构造方法在()时候被调用A) 类定义时B) 创建对象时C) 调用对象方法时D) 使用对象的变量时9.下列关于继承的叙述中,()是正确的A) 子类能继承父类的所有方法和状态B) 子类能继承父类的非私有方法和状态C) 子类只能继承父类的public方法和状态D) 子类只能继承父类的方法,而不继承状态10. 下列关于接口的叙述中,()是正确的A) 接口与抽象类是相同的概念B) 接口之间不能有继承关系C) 一个类只能实现一个接口D) 接口中只含有抽象方法和常量二、判断题()1、Java的各种数据类型占用固定长度,与具体的软硬件平台环境无关。

()2、用“+”可以实现字符串的拼接,用“-”可以从一个字符串中去除一个字符子串。

面向对象技术 复习题答案.jsp

面向对象技术  复习题答案.jsp

面向对象技术复习题2参考答案一、填空题:1、new2、地址数值3、unicode4、方法5、初始化6、public private protected friendly7、类8、>>>9、interface implement10、相同的方法名不同的参数不同的定义11、 612、false true13、类14、解释15、区分16、new17、018、new19、初始化20、定义调用21、 4 .class22、单重23、cout cin cerror二、选择题:1-5 D B B D C6-10 D C A B C11-15 C C D A A16-20 D A C D C21-25 A A B C D26-28 C C D B (注25题有两个,第二个改26,后依次编号)三、略四、读程序,给出正确结果:1、y=16y=02、a=60b=20c=303、Array c1 2 3 4 5 6 7 8 9Array sum:45.04、Value is two.Value is three.5、Message four五、综合题:(1)this(2)Super错误更正结果:public abstract int getSum();变量i的值:5运行结果:-32六、1、(1)Array a7 8 94 5 61 2 3Array b7 4 18 5 29 6 3(2)public class Abc5_1{static void abcout (int e[][]){ int i,j;for(i=0;i<e.length;i++){for(j=0;j<e[i].length;j++)System.out.print(e[i][j]+" ");System.out.println();}}static void abcturn(int c[][],int d[][]){ int i,j;for(i=0;i<c.length;i++)for(j=0;j<c[i].length;j++)d[j][i]=c[i][j];}public static void main(String args[] ){ int a[][]={{7,8,9},{4,5,6},{1,2,3}};int b[][]= new int[3][3];System.out.println("Array a");abcout (a);abcturn(a,b);System.out.println("Array b");abcout (b);}}(3)package bag1;public class Abcout{int i,j;int e[][]=new int[3][3];public Abcout(int f[][]){e=f;}public void show(){for(i=0;i<e.length;i++){for(j=0;j<e[i].length;j++)System.out.print(e[i][j]+" ");System.out.println();}}}package bag1;public class Abcturn {int i,j;int c[][]=new int[3][3];int d[][]=new int[3][3];public Abcturn(int a[][],int b[][]){c=a;d=b;}public void swap(){for(i=0;i<c.length;i++)for(j=0;j<c[i].length;j++)d[j][i]=c[i][j];}}import bag1.Abcout;import bag1.Abcturn;public class Abc5_2{public static void main(String args[]) {int a[][]={{7,8,9},{4,5,6},{1,2,3}};int b[][]={{0,0,0},{0,0,0},{0,0,0}};Abcout aa=new Abcout(a);Abcturn bb=new Abcturn(a,b);System.out.println("Array a");aa.show();bb.swap();Abcout cc=new Abcout(b);System.out.println("Array b");cc.show();}}操作步骤Javac –d d:\java Abcout.javaJavac –d d:/java Abcturn.javaJavac Abc5_2.javaJava Abc5_22、源文件Change.java:(1) package bag ;public class Change{int celsius(int f){int c;c=(int) (5.0/9.0*(F-32));return c;}int fahrenheit(int c){int c;f=(int) (9.0/5.0*c)+32;return f;}}int Change::源文件Test.java:(2)import bag.Change ;import javax.swing.JOptionPane;public class Test{public void main(String args[]){String str;double c,f;int i;Change obj=new Change();System.out.println(“请选择:”);System.out.println(“0:华氏温度转换为摄氏温度”); System.out.println(“1:摄氏温度转换为华氏温度”);if(i==0){str=JOptionPane.showInputDialog("请输入华氏温度");f=Integer.parseInt(str);c=obj. celsius(f);System.out.println(“对应的摄氏温度是”+c);}if(i==1){str=JOptionPane.showInputDialog("请输入摄氏温度");c= Integer.parseInt(str);f=obj.fahrenheit (c);System.out.println(“对应的华氏温度是”+f);}}}。

面向对象方法复习提纲

面向对象方法复习提纲

面向对象方法复习题过程化的方法与面向对象方法的差别:在过程化的方法中,系统是围绕着过程来组织的,系统的运行通过过程间的数据传送来实现的,在该方法中过程和数据清楚地分开,因此重点分别集中在数据结构、算法和顺序步骤上,因此过程非常难以重用。

过程化方法还缺乏强有力的可视化建模技术。

该方法在分析和实现不同阶段的概念的差别很大,因此需要进行概念上的转换,因此造成了分析、设计和实现间的范畴移位。

设计模型离实现还有很长的一步。

而面向对象的方法中系统是围绕着对象组织的,系统的运行是通过对象间的消息传递而运行的,相关的数据和行为捆绑在对象中。

将问题域建模为对象使得在实现时非常自然地反应现实问题。

可视化的模型表达能力非常强使得人们易于理解。

支持强有力的概念例如抽象、封装、继承、多态等。

可视化的问题模型可以演变为问题解决模型。

设计模型距离实现只有很小的一步。

面向对象方法的益处:(一)从需求分析方面看结构化技术的过程分析和数据分析之间的边界从未解决。

数据流图的过程世界与实体关系图的数据世界难以共存。

过程和数据分析在某些场合可以满足要求,而在某些场合就会发生冲突。

这种冲突在实时系统模型中尤为突出,如控制过程与数据模型的对应关系经常变得不清晰。

面向对象方法在生命周期的早期就将过程和数据融合在一起。

尽管不能明确地称为“过程和数据分析”,但是在谈论面向对象时称“动态和静态分析”更为妥当,使用面向对象概念将这两方面的分析很好地协调起来。

(二)从系统设计方面看在系统设计时,面向对象的方法既有优势,又有不足。

面向对象的优势是使设计者将软件中棘手的问题利用封装特性隐藏起来,这些问题包括难以理解的数据结构、复杂的组合逻辑、详细的过程和数据间的关系、高深的算法及关键的设备驱动程序等。

面向对象方法的缺点是应用封装和继承性是结构本身变得复杂。

缺点与优点相比,缺点反而并不是太突出了。

由于需求分析采用了面向对象的方法,因此系统设计采用面向对象的方法非常自然,这样结合面向对象的开发工具,就可以实现整个软件生命周期的可追踪性。

面向对象方法的思考题

面向对象方法的思考题

思考题1.在下面的描述中,标识出参与者和用例,并画一个用例图在医生的办公室里接待员,护士和医生使用病人记录和计划安排系统.当病人第一次来这里看病时,接待员使用系统来输入病人信息.他们安排所有的预约.护士使用系统来跟踪病人每次看病的结果并输入护理病人的信息,如医疗和诊断.护士也访问这些信息以打印病人报表或病人看病历史.医生主要用这个系统来查看病人的病史,有时医生偶尔也输入病人医疗信息,但通常他让护士输入这些信息2.在下面的描述中,标识出可能的两个场景并为每一个场景开发一个事件流.QBS有两种客户:合同客户和普通客户.对待上面两种不同客户,销售的方式有所不同.当一个合同客户买材料时,办事员把他们带到合同签订桌上.办事员扫描一下要购买的条目.系统根据条目创建一个电子发票.系统把总数量与合同当前的信用指标比较,如果接受,则一次交易结束.合同当前的信用指标根据交易的数量而减少.一个月一次,系统发一张发票给合同客户,如果支付款进来了,则信用指标又回到原值.电子发票仍然保留在系统中并在60天内的任何时候可以打印出来(通常在交易的时候).其他人则对打印与否不感兴趣.与普通客户的交易则仅仅需要在登记处输入现金并且打印出一张票据作为条目标识,这样就可以了.客户可以支付现金,支票和信用卡.办事员必须输入支付类型以保证在交易结束时现金登记处的财务保持平衡.如果是信用卡,系统打印一张信用卡凭据让客户签字.3.为练习2种的每一个场景画一个顺序图4.在下面的描述中,为借出账户开发一个状态图.图书馆系统必须跟踪书本,借书人和书的借出情况.当一个借书人拿了书到借书台时,图书管理员看一下借书人的图书证并创建一个新的借出账户.然后借出账户就准备记录借书人要借的书.每一次办事员扫描书的条形码,系统就操作借出书条目和借出账户.一旦所有的书扫描完毕,系统认为这次借出处于激活状态,且如果借书人需要,就打印出借书的一个清单.当借出账户处于激活状态时,书就可以还回来.借出人不需要一次还清所有的书.借出账户会一直处于激活状态直到所有的书还回来.一旦所有的书还回来了,借出账户变为非激活状态.。

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

(0166)《面向对象技术》复习思考题一、选择题1、下列关键字中,( )不是类定义中使用的关键字。

关键字中,( )不是类定义中使用的关键字。

的关键字。

A. classB. publicC. switchD. private. public C. switch D. privatetch D. private2、在new运算符的下列描述中,( )是错误的。

A. 它可以动态创建对象和对象数组;B. 用它创建对象数组时必须指定初始值;C. 用它创建对象时要调用构造函数;D. 用它创建的对象应使用运算符delete来释放。

3、主函数可以访问派生类的对象中它的哪一类基类成员?( )A. 公有继承的基类的公有成员B. 公有继承的基类的保护成员C. 公有继承的基类的私有成员D. 保护继承的基类的公有成员4、定义重载函数的下列条件中,( )是错误的。

A. 要求参数个数不同;B. 要求参数类型不同;C. 要求函数返回值类型不同;D. 要求在参数个数相同时,参数类型的顺序不同。

5、下列函数中,( )不能重载。

A. 成员函数B. 非成员函数C. 构造函数D. 析构函数6、下列有关运算符重载的描述中,( )是正确的。

A. 运算符重载可改变其优先级;B. 运算符重载不改变其语法结构;C. 运算符重载可改变其结合性;D. 运算符重载可改变其操作数的个数。

7、下列构造函数的特点中,( )是错误的。

错误的。

A. 构造函数具有一般成员函数的特点;有一般成员函数的特点;B. 构造函数的名称与其类名相同;C. 构造函数必须指明其类型;D. 一个类中可定义1个或多个构造函数。

与其类名相同;C. 构造函数必须指明其类型;D. 一个类中可定义1个或多个构造函数。

8、C++语言的基本数据类型包括( )。

A. 整型、实型、逻辑型、空型B. 整型、实型、字符型、空型C. 整型、字符型、逻辑型、空型D. 整型、实型、指针型、字符型9、下列关于指针的运算中,( )是非法的。

A.两个指针在一定条件下,可以进行相等或不等的运算;B.可以用一个空指针赋值给某个指针;C.一个指针可以加上两个整数之差;D.两个指针在一定条件下,可以相加。

10、在C++中,关于下列设置缺省参数值的描述中,正确的是( )。

A. 不允许设置缺省参数值;B. 在指定了缺省值的参数右边,不能出现没有指定缺省值的参数;C. 只能在函数的定义中指定参数的缺省值;D. 设置缺省参数值时,必须全部都设置。

11、预处理命令在程序中是以( )开头的。

A. *B. #C.:D./12、按照标识符的要求,( )符号不能组成标识符。

A. -B. _C. 大小写字母D. 数字字符13、假定a为一个数组名, 则下面的哪一种表示有错误。

( )A. a[i]B. *(a+1)C. *aD. *a++14、关于delete运算符的下列描述中,错误的是( )。

A. 它必须用于new返回的指针;B. 使用它删除对象时要调用析构函数;C. 对一个指针可以使用多次该运算符;D. 指针名前只有一对方括号符号,不管所删除数组的维数。

15、下列对派生类的描述中,( )是错误的。

A. 一个派生类可以作为另一个派生类的基类;B. 派生类至少应有一个基类;C. 基类中成员的访问权限被派生类继承后都不改变;D. 派生类的成员除了自己定义的成员外,还包含了它的基类成员。

16、main函数在源程序中的位置()。

A. 必须在最开始处B. 必须在子函数的后面C. 可以任意D. 必须在最后17、在c++语言中,要求参加运算的数必须是整数的运算符是()。

A. /B.!C. %D. = =18、对两个基本类型相同的指针变量,不能进行的运算是()。

A. +B. -C. =D. = =19、下列各种高级语言中,( )最早提出了对象的概念。

A.A1gol 60 B.Simula 67 C.Smalltalk D.C++20、执行C++程序时出现的“溢出”属于( )错误。

A.运行 B.链接 C.编译 D.逻辑21、下列关于引用的说法错误的是( )。

A.不能声明一个指针的引用;B.引用必须在定义的同时进行初始化;C.返回引用的函数,可以作为左值被调用;D.使用引用参数,可以实现将实参的地址传递给行参。

22、为表示关系x≤y≤z,正确的C++表达式是( )。

A.(x<=y)&&(y<=z) B.(x<=y)AND(y<=z)C.(x<=y<=z) D.(x<=y)&(y<=z)23、若要求在if后一对圆括号中表示a不等于0的关系,则能正确表示这一关系的表达式为( )。

A.a< >0 B.!a C.a=0 D.a24、int * const p说明不能修改( )。

A.p指针;B.p指针指向的变量;C.p指针指向的数据类型;D.上述A、B、C三者。

25、下面的函数声明中, ( )是” void BC(int a, int b);”的重载函数?A.int BC(int a, int b) B.void BC(int a, char b)C.float BC(int a, int b, int c=0) D.void BC(int a, int b=0)26、下列静态数据成员的特性中,错误的是( )。

A.说明静态数据成员时前边要加修饰符static;B.引用静态数据成员时,必须用类名和作用域运算符引导;C.静态数据成员是所有对象所共用的;D.静态数据成员要在类的定义之外进行初始化。

27、判断字符串s1和s2是否相等的表达式为()。

A.s1=s2 B.s1= =s2C.strcpy(s1,s2)= =0 D.strcmp(s1,s2)= =028、若用数组名作为调用函数的实际参数,则传递给形式参数的是()。

A.数组存储首地址;B.数组的第一个元素值;C.数组中全部元素的值;D.数组元素的个数。

二、填空题1、假定一个二维数组的定义为int a[4][5],则该数组所含元素的个数为___ ___。

2、预处理命令在程序中都是以_____ ___开头的。

3、执行cout<< char('E'+2)<<endl;语句后得到的输出结果是___________。

4、在32位机器中,若有定义:int k=5; char *p=“Beijing”;int arr1[5]; float *arr2=new float[k];则 sizeof(k)=________, sizeof(p)=_________,sizeof(arr1)=___________, sizeof(arr2)=__________。

5、面向对象系统最突出的特征是________性、________性和多态性。

6、C++源程序经过________和________后生成可执行程序。

7、任何一条C++语句都应该以________或________结束。

8、使用标准的输入流cin时,两个输入项之间用________分隔。

9、使用标准的输出流cout时,两个输出项之间用________分隔。

10、定义内联函数的关键字是________。

三、判断题1、类的成员函数都应是公有的,而数据成员都应是私有的。

2、用class定义的类中,默认的访问权限是公有的。

s定义的类中,默认的访问权限是公有的。

义的类中,默认的访问权限是公有的。

3、运算符new可以创建变量或对象,也可以创建数组。

4、派生类不能再派生新的类。

5、在公有继承中,派生类对象的成员函数可以访问基类中的私有成员。

6、运算符重载可以改变其结合性。

7、函数参数个数和类型都相同,只是返回值类型不同,这不是重载函数。

8、C++中的模板分为函数模板和类模板两种。

9、const int *p说明不能修改p指针。

10、一个类的所有公共成员信息构成了它对外界的接口。

11、在C++中,China和china将被视作两个不同的变量。

12、定义对象引用时,系统会自动调用对应类的构造函数。

13、static关键字可以延长局部变量的生存期。

14、static关键字可以扩大全局变量的作用域。

15、C++允许使用友元,但是友元会破坏封装性。

16、友元函数可以通过使用this指针直接访问类的私有成员。

17、类的成员可以全部为私有的,也可以全部为公共的,或者一部分为私有、一部分为公共的。

18、定义一个对象时,系统只存储其数据成员而不用存储成员函数。

19、字符串”hello,world”在内存中存放时,共占用11个字节的空间。

20、参数的缺省值只能在函数的定义性声明中指定。

21、break语句和continue语句都只能用在循环语句中。

22、多态的实现需要迟后联编机制的支持。

四、简答题1、 #define SQ(x) x*x#include <iostream.h>void main(){int a = 2, b = 3;cout << SQ(a+b) << endl;}该程序运行的结果是什么?2、#include(iostream.h)void main(){int i,count=0,sum=0;float average;int a[]={1,2,3,4,5,6,7,8,9,10};for(i=0;i<10;i++){if(a[i]%2==0)continue;sum+=a[i];count++;}average=sum/count;cout<<”count=”<<count<<’\t’<<”average=”<<average<<endl;}该程序运行的结果是什么?3、#include<iostream.h>void f(int *m,int n){ int temp;temp=*m;*m=n;n=temp;}void main(){ int a=5,b=10;f(&a,b);cout<<a<<”“<<b<<endl;}该程序运行的结果是什么?4、指出#include <filename.h>和#include“filename.h”的区别。

5、简述你对类的封装性的理解。

6、简述关键字const的作用(至少两条)。

7、简述关键字static的作用(至少两条)。

8、简述操作符sizeof的作用(至少两条)。

9、什么是this指针?它的主要作用是什么?10、使用内置函数的优点和限制分别是什么?五、程序编写题1、编程计算1+11+111+ (111111111)2、编程将输入的正整数按反序输出,例如:输入123,则输出321。

相关文档
最新文档