面向对象的程序设计试题库

面向对象的程序设计试题库
面向对象的程序设计试题库

面向对象的程序设计

一、单项选择题

1、下面那种结构不是C++的控制结构()

A 顺序结构

B 选择结构

C 循环结构

D 判断结构

答: D

2、下列是C++语言中合法标识符的是()。

A.3three B.if

C._1one

D.while

答:C

3、下列是合法的C++语言语句的是()。

A.if(x>0) then x=x-1;else x=x+1;

B.if(x>0) x=x-1;else x=x+1;

C.if x>0 x=x-1;else x=x+1;

D.if x>0 x=x-1;

答:B

4、下面那一种不是计算机内部表示整数的方法()

A 二进制码B原码

C 补码D反码

答:A

5、在C++语言中,下列数为合法的实数的是()。

A.5E-3

B.5E-3.5

C. E5

D.-3.5E

答:A

6、C++语言中数据类型最大的是()

A long

B float

C int

D char

答:B

7、如果一个函数可以在定义中直接或间接的调用自己,这样的函数称为(

)。

A.函数声明

B.嵌套函数

C.定义函数

D.递归函数

答:D

8、表达式0x55^0xB4的结果为()。

A.0xF5

B.0x15

C.0xE1

D.0x1E

答:C

9、C++中,源代码文件后缀为()

A .cpp

B .obj

C .exe

D .c

答: A

10、0X5A&0XB7结果是()

A 0X13

B 0X12

C 0X14

D 0X15

答: B

二、填空题

1、程序的基本控制结构包括()、()和(

)。

答:顺序结构,选择结构,循环结构

2、用来解决问题的,与有限多个步骤组成的具体过程称为()。

答:算法

3、整数类型变量a和b被初始化为3和10,则循环语句while(a<=b) a=a+2;共执行()次,执行完语句后a的值为(),b的的值为()。

答:4,11,10

4、在程序编译阶段的错误主要分为两类()和(

)。

答:警告信息,致命错误

5、计算机中的数据可以分为()和()两大类。

答:数值型、字符型

6、字符型数据有两种编码方法:()和()

答:有美国国家标准局制定的ASCII码、IBM公司提出的EBCDIC码

7、通过C++ 语言中的()机制,可以从现存类中构建其子类。答:继承(或派生)

8、封装要求一个对象应具备明确的功能,并具有()以便和其它对象相互作用。

答:接口〈或界面、或公有成员〉

9、软件工程中认为影响一个程序质量的主要因素包括()、(

)、()、()和()等方面。而面向对象的程序设计特别强调软件质量的两个方面(

)和()。答:正确性,健壮性,可扩展性,可重用性,有效性,语法与语义的可靠性,结构方面的可扩展性与可重用性

10、15/3=(), 16/3=(), 15%3=(), 16%3=()答:5、5、0、1

11、0XB4<<2及10110100向左连移两次,结果为(),即0XD0,0XB4>>2即10110100向右连移动两次,逻辑右移的结果为(),即0X2D

答:11010000、00101101

12、一种语言主要由()和()两部分组成。

答:语法、语义

13、为了让编译程序了解数据所属的类型,同常程序设计语言都尊循“()”的原则。

答:先申明,后使用

14、C++语言中的数据可分为()和()两大类。

答:常量、变量

三、判断题

1、结构化程序设计方法的主要技术是自顶向下、逐步求精,采用单入口/单出口的控制结构。()

答:对

2、程序中以“//”开头直至该行行尾的内容成为注释,用于说明或者解释程序的功能。()

答:对

3、组成C++程序的最小单位是单词,C++程序有5种单词,保留字,标志符、常量、运算符和分界符。()

答:对

4、C++中,对基本数据类型的常量与变量进行加工的过程成为运算,表示各种不同运算的符号成为运算符,参与运算的数据成为操作数。()

答:对

5、表达式a ?b=0:b=1,的求值次序是(a ?(b=0):b)=1)()答:对

四、简答题

1、面向对象的程序设计有那些基本特征?

答:在面向对象程序中,将现实世界的实体抽象成为对象,不同对象之间的相互作用和相互通信构成了完整的客观世界。它的基本特征包括:(1)数据的封装,数据封装将一类数据和与这类数据有关的操作集合封装在一起,形成一个能动的

实体成为对象。用户不必知道对象行为的实现细节,只需根据对象提供的外部特性接口访问对象,这反映了数据抽象数据类型的思想。(2)继承,类支持层次的模型结构,低层次的类(子类)可以从他的高层次类(基类、父类)中继承所有的数据或操作,并扩充自己的特殊数据和操作。继承可以使不同的对象的共同性质只需定义一次,用户可以充分利用已有的类,符合软件重用的目标。(3)多态性,用户在使用函数或对象编程时,关心的是该函数或对象的功能和使用界面,并不需要了解该函数或对象的使用与哪一种实现方法匹配,在面向对象程序设计中,程序员可为同一函数或对象提供多种不同的实现,以适合不同的场合。

2、什么是内联函数?使用内联函数有什么好缺点?

答:(1)内联函数:在编译时将所调用的函数代码直接嵌入到调用函数的调用处,而不是将程序流程转出去,这种嵌入到调用函数中的函数就称为内联函数。(2)优点:避免小规模函数调用的开销(参数传递、上下文切换、空间开销),提高程序的执行效率;(3)缺点:如果内联函数的开销不是整个程序执行时间的主要部分,它的优点就不明显;内联函数加大了可执行程序,可能导致额外的内存交换而实际降低了执行速度。

3、什么是程序断言?在程序中使用断言主要有什么作用?

答:(1)程序断言:为在程序中反映程序编译运行的正确性与需求说明的一致性,而在程序中加入描述程序需求说明的表达式称为程序断言。(2)作用:保证程序的正确性与健壮性;断言可用于形成程序的文档;支持程序的动态调试;构成异常处理的基础。

4、简述实体、对象和类的概念以及他们之间的关系。

答:(1)概念:实体,现实世界中的物理实体;对象:具有类类型的变量称为对象,也就是现实世界中某个具体的物理实体在计算机逻辑中的映射和体现。类:对一组具有相同属性、表现相同行为的对象的描述。(2)关系:实体与对象,是现实与计算机的逻辑映射;对象与类,类是具有一定共性的对象的抽象,类的某一个实例就是对象。

5、什么是变量的作用域和生存期?什么是局部变量和全局变量?

答:(1)作用域:在变量被创建之后,变量的名字能被引用的地方。(2)生存期:

在程序的执行过程中变量实际占用内存或寄存器的时间。变量的生存期是由声明变量时选择的存储类别决定的。(3)局部变量:在函数内(块作用域中)声明的变量。只有在定义他们的函数(块语句中)才可见并允许修改,如果不使用特殊的访问方式,任何其他函数都不能访问或修改变量。(4)全局变量:在文件作用域中声明的变量。在函数定义外声明,从不属于任何函数,从被定义开始,在整个文件范围内有效,可以被不同的函数使用。

五、应用题

1、讲用户输入的24小时制时间转换为12小时制时间,写出其算法

解答:#include

V oid mian( )

{

Int hour;

Char noo=`A`;

Cout<<”enter the hour please:”;

Cin>>hour;

If (hour>12){

Hour=hour-12;

Noon=`P`;

}

Cout<<”the hour is “<< hour <

}

2、设a=1,b=0,c=1,试计算下列逻辑表达式的值。(8分)

(1)!a&&!b

答:0

(2)a&&b||c

答:1

3、给出数学、英语、语文这样的菜单供用户选择,依据用户选择的序号显示其结果,写出其算法

解答:#include

V oid mian( )

{

Cout<<”1.数学\n”;

Cout<<”1.英语\n”;

Cout<<”1.语文\n”;

Cout<<”enter your choice (1-3):”;

Cin>>choice;

Switch (choise){

Case 1

cout<<”you choice is 数学.\n”;

Break;

Case 2

cout<<”you choice is 英语.\n”;

Break;

Case 3

cout<<”you choice is 语文.\n”;

Break;

Default:

cout<<”you did not make choice.\n”;

Break;

}

4、指出下列程序的输出结果(8分)

#include

void main( )

{

float a=2.5;

int b=7;

cout<<”a*b is:”<

cout<<”(int)a*b is:”<<(int)a*b<<”\n”;

cout<<”a*(float)b is:”<

}

答:

a*b is:17.5

(int)a*b is:14

a*(float)b is:17.5

5、给出下程序的输出结果(9分)

#include

int global_value=5;

void display(void)

{

int local_value=5;

static int static_value=5;

cout<<”The global value is:”<

cout<<”The local value is:”<

cout<<”The static value is:”<

global_value = global_value+2;

local_value= local_value+2;

static_value= static_value+2;

return;

}

int main( )

{

while(global_value<8) display( );

return 0;

}

答:

The global value is:5

The local value is:5

The static value is:5

The global value is:7

The local value is:5

The static value is:5

The global value is:9

The local value is:5

The static value is:5

6、求1到100之间的数字平方相加之和的原始算法。解答:#include

V oid mian( )

{

Const int min=1;

Const int max=100;

Int sum;

Int cnt;

Sum=0;

For (cnt=min:cnt<=max;cnt=cnt+1) sum=sum+cnt*cnt;

Cout<<“the sunmming result is ”<>”\n”;

}

7、编写一个程序,判断用户输入的年份是否为闰年。(提示:闰年年份要么能被4整除且不能被100整除,要么能被400整除,除此之外都不是闰年)(10分)答:(答案不唯一,主要是if的判断条件和输入语句对即可)

#include

void main( )

{

int year;

cout<<”Please put into a year:”;

cin>>year;

if(year%400==0 || (year % 4==0 && year % 100!=0))

cout<<”The year”<

else

cout<<”The year”<

}

8、输入三个数,求三数中最小的数,写出其算法

解答:#include

V oid mian( )

{

Float I,j,k;

Float min;

Cout <<”enter 3 float number please :”;

Cin>>i>>j>>k;

Min=I;

If (j

If(k

Cout <<”minimum is ”<

}

9、给定正整数n,求平方不超过n的最大整数,写出其算法

解答:#include

V oid mian( )

{

Int n ;

Int max;

Cout<<“enter a number:”

Cin>>n;

If (n<=0) cout<<“input error! \n”;

Else

{

Max=1;

While (max*max<=n) max=max+1;

Cout<<“the maximu interger is:”<

}

}

10、用100元钱,买100只鸡,其中母鸡每只5元,公鸡每只3元,而1元钱可以买3只小鸡,文可以买多少只母鸡、多少只公鸡、多少只小鸡?试写出其算法。解答:#include

V oid mian( )

{

Int hen ,cock,chicken;

For (hen=0;hen<=20;hen++)

For (cock=0;cock<=33;cock++)

{

Chicken=100-hen-cock;

If ((chicken%3==0)&&

((5*hen+3*cock+chicken/3)==100)

Cout<<”hen=”<

“then=”<

“tchicken=”<

}

}

第3章 面向对象程序设计基础

第3章面向对象程序设计基础

第3章面向对象程序设计基础 【1】什么是Java程序使用的类?什么是类库? 答:类是将一类事物的特性描述出来,然后如果用这个类来定义对象,则该对象就拥有了这个类所描述的所有特性。 在Java系统中,系统定义好的类根据实现的功能不同,可以划分成不同的集合,每个集合称为一个包,所有包合称为类库。 【2】如何定义方法?在面向对象程序设计中方法有什么作用? 答:方法的定义由两部分组成:方法声明和方法体。 方法的声明如下: 返回值类型方法名(参数类型形式参数1,参数类型形式参数2…){ 程序代码; 返回值; } 在面向对象程序设计中,方法的作用是完成对类和对象属性操作。 【3】简述构造方法的功能和特点。下面的程序片段是某学生为student类编写的构造方法,请指出其中的错误。 void Student(int no,String name) {

studentNo=no; studentName=name; return no; } 答:构造方法的功能是:构造方法是一个特殊的方法,主要用于初始化新创建的对象; 特点:构造方法的方法名要求与类名相同,用户不能直接调用,只能通过new运算符调用,而且构造方法是不返回任何数据类型,甚至也不返回void数据类型,即不能在构造方法前加void。 错误之处:(1)构造方法Student()前不能加void,(2)不能用return语句,(3)类名Student 首字母S改成小写s. 【4】定义一个表示学生的student类,包括的域有学号、姓名、性别、年龄,包括的方法有获得学号、姓名、性别、年龄及修改年龄。编写Java程序创建student类的对象及测试其方法的功能。 class Student { String id; String name; String sex; int age; void talk(){

什么是面向对象程序设计

1 什么是面向对象程序设计,它与传统的结构式程序有什么不同。 面向对象程序设计是一种适用于设计、开发各类软件的范型。它是将软件看成是一个由对象组成的社会:这些对象具有足够的智能,能理解从其他对象接受的信息,并以适当的行为作出响应;允许低层对象从高层对象继承属性和行为。通过这样的设计思想和方法,将所模拟的现实世界中的事物直接映射到软件系统的解空间。 与传统的结构式程序设计相比,面向对象程序设计吸取了结构式程序设计的一切优点(自顶向下、逐步求精的设计原则)。而二者之间的最大差别表现在: ·面向对象程序采用数据抽象和信息隐藏技术使组成类的数据和操作是不可分割的,避免了结构式程序由于数据和过程分离引起的弊病。 · 面向对象程序是由类定义、对象(类实例)和对象之间的动态联系组成的。而结构式程序是由结构化的数据、过程的定义以及调用过程处理相应的数据组成的 2 用面向对象方法建立模型的思维过程是怎样的。 用面向对象方法建立拟建系统的模型的过程就是从被模拟现实世界的感性具体中抽象要解决的问题概念的过程。这种抽象过程分为知性思维和具体思维两个阶段,其中:·知性思维是从感性材料中分解对象,抽象出一般规定,形成了对对象的普遍认识。·具体思维是从知性思维得到出的一般规定中揭示的事物的深刻本质和规律,其目的是把握具体对象的多样性的统一和不同规定的综合。 3 解释以下概念: ①对象:在现实世界中,对象就是可以感觉到的实体。每个对象具有一个特定的名字以 区别于其他对象;具有一组状态用来描述它的某些特性;具有一组操作,每一个操作决定对象的一种功能或行为(为自身服务的操作和为其他对象提供服务的操作)。而在面向对象系统中,对象是可以标识的存储区域。每个对象的状态被保存在此区域中,而实现一类对象行为的操作(代码)被保存在另外相关的存储器区域中。 ②消息:消息是要求某个对象执行其某种功能操作(方法)的规格说明。因此,消息是 由消息的接收者、消息要求提供的操作(消息名)和必要的参数组成的。 ③类:在现实世界中,类是对一组具有共同特性(属性和行为)的客观对象的抽象。而 在面向对象系统中,类是由程序员自定义的具有特定结构和功能的类型,是一种代码共享的手段。 ④实例:任何一个对象都是该对象所属类的一个具体实例。 ⑤公有消息:是由对象外向对象发送的消息,用于激活该对象的某种方法。 ⑥私有消息:是由对象向自身发送的消息,用于内部操作;该类消息不能从对象外向该 对象发送。 ⑦消息序列:在面向对象系统中一个事件的发生总会有多个对象的多次相互作用才能完 成,使得这些对象能够相互作用的消息组成的序列被称为消息序列。 4 类与实例的关系如何? 类是创建对象的模板,而对象是实现类的实例。属于同一类的不同实例必须具有: ·相同的操作集合; ·相同的静态属性集合; ·不同的对象名和属性动态值。

《面向对象程序设计C++》期末考试试卷(B)

《面向对象程序设计C++》期末考试试卷(B) 一、单项选择题(每小题2分,共40分) 1、关于C++与C语言关系的描述中,()是错误的。 A.C语言是C++语言的一个子集B.C语言与C++语言是兼容的C.C++语言对C语言进行了一些改进D.C++语言和C语言都是面向对象的 2、已知:int m=10;下列表示引用的方法中,()是正确的。A.int&x=m;B.int&y=10;C.int&z;D.float&t=&m; 3、考虑下面的函数原型声明:void testDefaulParam(int a,int b=7,char z='*'); 下面函数调用中,不合法的是()。 A.testDefaulParam(5);B.testDefaulParam(5,8); C.testDefaulParam(5,'#');D.testDefaulParam(0,0,'*'); 4、系统在调用重载函数时往往根据一些条件确定哪个重载函数被调用,在下列选项中,不能作为依据的是()。 A.函数的返回值类型B.参数的类型C.函数名称D.参数个数 5、下列有关C++类的说法中,不正确的是()。 A.类是一种用户自定义的数据类型 B.只有类中的成员函数或类的友元函数才能存取类中的私有成员 C.在类中,如果不做特别说明,所有成员的访问权限均为私有

的 D.在类中,如果不做特别说明,所有成员的访问权限均为公用的 6、已知X类,则当程序执行到语句X array[3];时,调用了()次构造函数。 A.0B.1C.2D.3 7、有关析构函数的说法,不正确的是()。 A.析构函数有且仅有一个 B.析构函数和构造函数一样可以有形参 C.析构函数的功能是在系统释放对象之前作一些存清理工作D.析构函数无任何函数类型 8、类定义的容允许被其对象无限制地存取的是()。A.private部分B.protected部分C.public部分D.以上都不对 9、关于常数据成员的说法,不正确的是()。 A.常数据成员的定义形式与一般常变量的定义形式相同,只不过常数据成员的定义必须出现在类体中 B.常数据成员必须进行初始化,并且不能被更新 C.常数据成员通过构造函数的成员初始化列表进行初始化D.常数据成员可以在定义时直接初始化 10、运用运算符delete删除一个动态对象时()。 A.系统首先为该动态对象调用构造函数,再释放其占用的存

面向对象程序设计实验指导书讲解

面向对象程序设计实验指导书 实验一、C++开发环境应用入门(2学时)(选做) 1、实验目的 (1)了解C++开发工具的特点 (2)熟悉C++开发环境 (3)学习用C++编写标准的C++程序 2、实验任务 使用C++来建立一个非图形化的标准C++程序,编译、运行下例程序: #include void main(void) { cout<<”Hello!\n”; cout<<”Welcome to C++!\n”; } 3、实验步骤 (1)启动Visual C++或C++Builder开发环境 (2)创建一个项目 A)单击File菜单中的New选项,显示示新建对话框 B)选择Console Wizard(C++Builder) 或Win32 Console Application(VC++)。 C)选择项目所在路径及输入项目的名称 D)依次按‘下一步’直至完成为止。 (3)至此,C++Builder已经建立好工程相关的文件(请不要随意更改其自动生成的文件),在生成的main函数中写入必要的内容即可。 (4)对于VC,请继续下面的步骤: A)建立C++源程序文件 a)选选菜单命令Project|Add to Project|New,弹出New对话框 b)在New对话框的Files选项卡中选择C++ Source File,并填入文件名称,单击OK按钮,完成 新建C++源程序文件 B)编辑C++源程序文件 a)在文件编辑窗口中输入代码 b)完成后,选择菜单File|Save保存这个文件 C)建立并运行可执行程序 a)选择菜单命令Build,建立可执行程序 如果你正确输入了源程序,此时便成功地生成了可执行程序。 如果程序有语法错误,则屏幕下方的状态窗口中会显示错误信息,根据这些错误信息对源 程序进行修改后,重新选择菜单命令Build建立可执行程序。 b)选择菜单命令Run,运行程序,观察屏幕显示内容。 D)关闭工作空间 选择菜单命令File|Colse WorkSpace关闭工作空间。

(完整版)《面向对象程序设计》答案

实验一熟悉VC++IDE开发环境 一、实验目的 1、熟悉VC++6.0集成开发环境,熟练掌握VC++6.0项目工作区、各种编辑器、菜单栏和工具栏的使用。 2、掌握如何编辑、编译、连接和运行一个C++程序。 3、通过运行简单的C++程序,初步了解C++源程序的结构和特点。 二、实验要求 1、分析下列程序运行的结果。 程序一: #include int add(int x,int y=8); void main() { int x=4; cout< void main() { int *p,i; i=5; p=&i; i=*p+10; cout<<"i="< void main(void) { int i=10; int &r=i; r++; cout<<"i="< void func(); int n=1; void main() { static int a; int b= -9; cout <<"a:"<

面向对象程序设计考试题库

面向对象程序设计期末综合练习一(单选题) 单选题 1. C++源程序文件的缺省扩展名为( )。 A. cpp B. exe C. obj D. lik 2. 由C++源程序文件编译而成的目标文件的缺省扩展名为( )。 A. cpp B. exe C. obj D. lik 3. 由C++目标文件连接而成的可执行文件的缺省扩展名为( )。 A. cpp B. exe C. obj D. lik 4. 编写C++程序一般需经过的几个步骤依次是( )。 A. 编译、编辑、连接、调试 B. 编辑、编译、连接、调试 C. 编译、调试、编辑、连接 D. 编辑、调试、编辑、连接 5. 以下标识符中不全是保留字的是( )。 A. case for int B. default then while C. bool class long D. goto return char 6. 能作为C++程序的基本单位是( )。 A. 字符 B. 语句 C. 函数 D. 源程序文件 7. 程序中主函数的名字为( )。 A. main B. MAIN C. Main D. 任意标识符 8. C++程序的基本模块为( )。 A. 表达式 B. 标识符 C. 语句 D. 函数 9. 可用作C++语言用户标识符的一组标识符是( )。 A. void define +WORD B. a3_b3 _123 YN C. for -abc Case D. 2a DO sizeof 10. 存储以下数据,占用存储字节最多的是( )。 A. 0 B. …0? C. “0” D. 0.0 11. 程序运行中需要从键盘上输入多于一个数据时,各数据之间应使用( )符号作为分隔符。 A. 空格或逗号 B. 逗号或回车 C. 逗号或分号 D. 空格或回车 12. 设”int a=12;”,则执行完语句”a+=a*a;”后,a 的值是( )。 A. 12 B. 144 C. 156 D. 288 13. 假设在程序中 a 、b 、c 均被定义成整型,所赋的值都大于1,则下列能正确表示代数式abc 1的表达式是( )。 A. 1.0/a*b*c B. 1/(a*b*c) C. 1/a/b/(float)c D. 1.0/a/b/c 14. 设”int a=15,b=26;”,则”cout<<(a,b);”的输出结果是( )。 A. 15 B. 26,15 C. 15,26 D. 26

《面向对象程序设计》实验指导书

《面向对象程序设计》课程实验指导书

实验一 Java开发环境的安装与配置 一、实验目的: 1. 掌握JDK、Eclipse的安装步骤。 2. 理解环境变量PATH, CLASSPATH的作用,以及Eclipse的配置。 3. 熟悉Eclipse的编辑、编译与调试环境,编写简单的Application程序 编译执行并完成调试。 二、实验内容: 熟悉JDK的安装和配置,学习如何编写并运行简单的Application程序 (能输出一条简单的问候信息); 三、实验要求: 1. 能正确地安装JDK 2. 熟悉环境变量PATH, CLASSPATH设置方法,熟悉编辑环境 3. 调试程序、编译,运行后得到正确的结果 四、实验步骤: 1.从https://www.360docs.net/doc/bb2677043.html,/technetwork/java/index.html上下载最新版本的JDK,并安装。 2.设置环境变量PATH, CLASSPATH, 使得Java程序能正确编译和执行。 3.在Eclipse环境下编写一个HelloWorld.java程序, (1)在主方法static public void main(String[ ] args)中调用System. out.println()方法,使程序输出一条问候信息; (2) 编译运行程序,观察运行情况和输出结果。(使用JDK环境,调用 javac.exe和java.exe编译和执行程序)

实验二 Java语言基础 一、实验目的: 熟悉Java基本语法,基本数据类型,各种运算符及表达式的使用,掌握运算符优先级,熟悉使用Java的选择语句,循环语句。 二、实验内容: 1.编写Java Application程序,输出1900年到2000年之间的所有润年。 (闰年的判断条件:能被4整除且不能被100整除,或能被400整除); 2.金字塔:Pyramid.java 在屏幕上显示一个由星型符号“*”组成的金字塔图案,示例如下: * *** ***** ******* 要求:金字塔高度h,可以由用户设置。 三、实验要求: 1. 正确使用Java语言的选择语句,循环语句; 2. 调试程序、编译,运行后得到正确的结果 3.写出实验报告。要求记录编译和执行Java程序当中的系统错误信息提成 示,并给出解决办法。 四、实验步骤: 1.编写主类; 2.在static public void main(String[ ] args)方法中加入实现要求功能 的代码,主要步骤如下: (第一题)从1900到2000循环,按照闰年的判断条件是则输出1900年到2000年之间的所有润年。 (第二题)允许用户设置金字塔高度。 4. 编译运行程序,观察输出结果是否正确。

面向对象程序设计(答案)

学号:姓名: 第三章面向对象程序设计作业 一、判断题 1、一个Java源程序可有多个类,但只仅有一个public类,而且程序名与public类名相同。对 2、如果类A和类B在同一个包中,则除了私有成员外,类A可以访问类B中所有的成员。对 3、接口中的成员变量全部为常量,方法为抽象方法。对 4、抽象类可以有构造方法,可以直接实例化。错 5、对static方法的调用可以不需要类实例。对 6、包含抽象方法的类一定是抽象类。对 7、方法中的形参可以和方法所属类的属性同名。对 8、接口无构造器,不能有实例,也不能定义常量。错 9、类的实例对象的生命周括实例对象的创建、使用、废弃、垃圾的回收。对 10、Java应用程序的入口main方法只有一种定义法。对 二、选择题 1、下列答案正确的是(A ) A) 在同一个Java源文件中可以包含多个类,只能有一个被声明为public B) 在同一个Java源文件中只能包含一个类,并被声明为public C) 在同一个Java源文件中可以包含多个类,都可以被声明为public D) 在同一个Java源文件中可以包含多个类,只能有一个被声明为default 2、Java实现动态多态性是通过( B )实现的。 A) 重载B) 覆盖 C) 接口D) 抽象类 3、下列哪一个是正确的方法重载描述( A ) A) 重载方法的参数类型必须不同 B) 重载方法的参数名称必须不同 C) 返回值类型必须不同 D) 修饰词必须不同 4、final关键字不可以用来修饰( D ) A) 类B) 成员方法 C) 域D) 接口 5、接口的所有成员方法都具有( B )属性 A) private, final B) public, abstract C) static, protected D) static 6、Java的封装性是通过(A )实现的 A) 访问控制B) 设计内部类 C) 静态域和静态方法D) 包 7、下列接口或类不属于.*包的是( D ) A) Collection B)Vector C) Map D) Integer 8、下述哪一组方法,是一个类中方法重载的正确写法( A ) A) int addValue( int a, int b ){return a+b;}

面向对象程序设计及C++ 期末试卷B

南京邮电大学 学年第 二 学期 《面向对象程序设计及C++》期末试卷2 院(系) 班级 学号 姓名 (★温馨提醒: ① 这是试题纸,教师不批改,请将所有最终答案写在答题纸上 ② 请在试题纸和答题纸上均完整填写班级、学号、姓名信息 ③ 考试结束时请将答题纸、试题纸及草稿纸一并交来 谢谢合作!祝同学们取得好成绩!) 一、填空题(共10分,每空1分) 1、面向对象程序设计思想中的几个主要特征是:抽象和 ① 、 ② 、 ③ 。 2、C++为类的成员函数提供了一个名字为 ④ 的指针,当创建一个对象时,系统将这种指针初始化为指向该对象。 3、假设AB 为一个类,则该类的拷贝构造函数的原型是 ⑤ 。 4、C++中有三种继承方式,如果基类的公有成员到派生类中仍是公有成员,则应使用 ⑥ 继承方式;如果基类的保护成员到派生类中变成私有成员,则应使用 ⑦ 继承方式。 5、cout 是C++中的标准输出流对象,它在标准头文件 ⑧ 里定义。 6、通过在虚函数参数表后加 ⑨ ,可以定义为纯虚函数。含有纯虚函数的类称为 ⑩ 。 二、单选题(共20分,每题2分) 1、系统在调用重载函数时往往根据一些条件确定哪个重载函数被调用,在下列选项中,不能作为依据的是 。 A 、参数的个数 B 、参数的类型 C 、参数的顺序 D 、函数的返回类型 2、下列定义引用类型变量时, 是正确的。 已知:int k=1000; A 、int &x=k; B 、char &y; C 、int &z=1000; D 、float &t=&k; 装 订 线 内 不 要 答 题 自 觉 遵 守 考 试 规 则,诚 信 考 试,绝 不 作 弊

C++面向对象程序设计实验报告

C++面向对象程序设计实验报告 学院:信息科学与技术学院 班级:卓越电子1201 姓名:刘强 学号:120910115 实验二 C++面向过程程序设计 实验目的 掌握函数声明、定义和使用的方法 掌握函数递归调用的方法 实验内容 1、编写一个函数,求数列运算中从n个不同的数中取r个数的所有选择的个数,要求如下:主程序中设计一个循环,不断从输入接收n和r的值,计算结果并输出,当用户输入0 0时,程序结束; 能检查输入数据的合法性,要求n>=1并且n>=r; 能得到正确结果。 输入:5 3输出:10 输入:10 20;输出:Input Invalid !; 输入:-1 4;输出:Input Invalid!; 步骤: 利用一个函数fn(int n)计算n!, 利用另一个函数Cnr(int n, int r)计算Cnr,在该函数中调用fn(), 程序代码: #include int fn(int n) { int s=1; for(int i=1;i<=n;i++) { s=s*i; } cout<<"n!="<

int Cnr(int n,int r) { cout<<"Please input two numbers:"<>n>>r; if(n==0&&r==0) { cout<<"Programme shutdown."<=1&&n>=r) { int a; int b; int c; int d; a=fn(n); b=fn(r); c=fn(n-r); d=a/(b*c); cout<

面向对象程序设计教程答案

面向对象程序设计教程(C++语言描述)题解与课程设计指导 第1章 面向对象程序设计概论 一、名词解释 抽象封装消息 【问题解答】 面向对象方法中的抽象是指对具体问题(对象)进行概括,抽出一类对象的公共性质并加以描述的过程。 面向对象方法中的封装就是把抽象出来的对象的属性和行为结合成一个独立的单位,并尽可能隐蔽对象的内部细节。 消息是面向对象程序设计用来描述对象之间通信的机制。一个消息就是一个对象要求另一个对象实施某种操作的一个请求。 二、填空题 (1)目前有面向过程的结构化程序设计方法和面向对象的程序设计方法两种重要的程序设计方法。 (2)结构化程序设计方法中的模块由顺序、选择和循环3种基本结构组成。(3)在结构化程序设计方法中,程序可表示为程序=数据结构+算法;而面向对象的程序设计方法,程序可表示为程序=对象+消息。

(4)结构化程序设计方法中的基本模块是过程;而面向对象程序设计方法中的基本模块是类。 (5)面向对象程序设计方法具有抽象性、封装性、继承性和多态性等特点。 三、选择题(至少选一个,可以多选) (1)面向对象程序设计着重于( B )的设计。 A. 对象 B. 类 C. 算法 D. 数据 (2)面向对象程序设计中,把对象的属性和行为组织在同一个模块内的机制叫做(C )。 A. 抽象 B. 继承 C. 封装 D. 多态 (3)在面向对象程序设计中,类通过( D )与外界发生关系。 A. 对象 B. 类 C. 消息 D. 接口 (4)面向对象程序设计中,对象与对象之间的通信机制是(C )。 A. 对象 B. 类 C. 消息 D. 接口 (5)关于C++与C语言的关系的描述中,(D )是错误的。 A. C语言是C++的一个子集 B. C语言与C++是兼容的 C. C++对C语言进行了一些改进 D. C++和C语言都是面向对象的 【结果分析】 C语言是面向过程的。C++语言是一种经过改进的更为优化的C语言,是一种混合型语言,既面向过程也面向对象。 (6)面向对象的程序设计将数据结构与( A )放在一起,作为一个相互依存、不可分割的整体来处理。

面向对象程序设计课后答案(完整版)

第二章2-4 #include using namespace std; Add(int a,int b); int main() { int x,y,sum; cout<<"please input x and y:"; cin>>x>>y; sum = add(x,y); cout < using namespace std; int main() {

int *p,*init; int countp=0; int countn=0; p = new int[20]; init = p; for(int i=0;i<20;i++) { cin>>*p; p++; } p = p-20; for( i=0;i<20;i++) { if(*p>0) countp++; if(*p<0) countn++; cout<<*p<<" "; p++; } cout<<"正数有:"< //#include using namespace std; void checkagescore(string name,int age) { if (name == "exit") throw name; if(age<0||age>50) throw age;

面向对象程序设计实验报告完整版

资料内容仅供您学习参考,如有不当或者侵权,请联系改正或者删除。 综合实验报告 面向对象程序设计 专业名称: 物联网工程 ___班级: _____ 级2班__ ___________姓名: 你哥哥 学号: 02051928 信息科学与工程学院 二零一三年七月

第一题: (1) 1.1题目概述 (1) 1.2设计思路 (2) 1.3设计说明与调试分析 (2) 1.4编码实现 (2) 1.5程序运行结果 (5) 1.6设计心得 (5) 第二题: (6) 2.1题目概述 (6) 2.2设计思路 (7) 2.3设计说明与调试分析 (7) 2.4编码实现 (7) 2.5程序运行结果 (11) 2.6设计心得 (11)

第一题: 1.1题目概述 用抽象类设计计算二维平面图形图形面积的程序, 在基类TDshape中设计纯虚函数area()和printName(), area()用于计算几何图形的面积, printName()用于打印输出几何图形的类名, 如Triangle类的对象就打印输出”Triangle”。每个具体形状的类则从抽象类TDshape派生, 各自需要定义其它独有的数据成员和成员函数, 而且定义area()和printName()的具体实现代码, 如图所示。 要求编写以TDshape为接口的函数, 借以访问具体类如

Triangle和Rectangle类的成员函数area(), printName ()。1.2设计思路 由简到繁, 逐步实现。 1.3设计说明与调试分析 编写基类TDshape->编写虚函数->编写继承类Triangle ->实例化TDshape和Triangle ->调用基类虚函数实现调用继承类相应函数->同样的方式处理继承类Rectangle. 1.4编码实现 #include using namespace std; class TDshape{ public: virtual void area()=0; virtual void printName()=0; }; class Triangle:public TDshape{ private: double width,height;

面向对象程序设计教程答案

面向对象程序设计教程(C++吾言描述)题解与课程设计指导 面向对象程序设计概论 一、 名词解释 抽象封装消息 【问题解答】 面向对象方法中的抽象是指对具体问题(对象)进行概括,抽出一类对象的公 共性质并加以描述的过程。 面向对象方法中的封装就是把抽象出来的对象的属性和行为结合成一个独立的 单位,并尽可能隐蔽对象的内部细节。 消息是面向对象程序设计用来描述对象之间通信的机制。一个消息就是一个对 象要求另一个对象实施某种操作的一个请求。 二、 填空题 ( 1) 目前有面向过程的结构化程序设计方法和面向对象的程序设计方法两种 重要的程序设计方法。 (2) 结构化程序设计方法中的模块由顺序、选择和循环 3 种基本结构组成。 ( 3) 在结构化程序设计方法中,程序可表示为程序 =数据结构 +算法; 而面向 对象的程序设计方法,程序可表示为程序 =对象 +消息。 ( 4) 结构化程序设计方法中的基本模块是过程; 而面向对象程序设计方法 中的基本模块是类。 ( 5) 面向对象程序设计方法具有抽象性、封装性、继承性和多态性等特点。 三、 选择题(至少选一个,可以多选) ( 1) 面向对象程序设计着重于( B )的设计。 A. 对象 B. 类 C. 算法 D. 数据 ( 2) 面向对象程序设计中,把对象的属性和行为组织在同一个模块内的机制 叫做( C )。 A. 抽象 B. 继承 C. 封装 D. 多态 ( 3) 在面向对象程序设计中,类通过( D )与外界发生关系。 A. 对象 B. 类 C. 消息 D. 接口 ( 4) 面向对象程序设计中,对象与对象之间的通信机制是( C )。 A. 对象 B. 类 C. 消息 D. 接口 (5)关于C++与 C 语言的关系的描述中,(D )是错误的。 A. C 语言是C++勺一个子集 B. C 语言与C++是兼容的 C. C++对C 语言进行了一些改进 D. C++和C 语言都是面向对象的 【结果分析】 C 语言是面向过程的。C++吾言是一种经过改进的更为优化的 C 语言,是一种混 合型语言,既面向过程也面向对象。 ( 6) 面向对象的程序设计将数据结构与( A )放在一起,作为一个相互依 存、不可分割的整体来处理。 A. 算法 B. 信息 C. 数据隐藏 D. 数据抽象 第1

面向对象程序设计完整版

Object- Orien ted Programmi ng C++ 主讲成长生 东华大学计算机科学与技术学院

第一章概述 § 1.1 面向对象程序设计的基本思想 C++是基于C语言发展的,又冲破C语言局限的面向对象的程序设计语言。它与Java 语言都作为当前计算机科学的主流语言, 越来越受到用户的欢迎。 要弄清楚什么是面向对象的程序设计, 首先了解和回顾传统的 ( Pascal(或C))结构化程序设计方法及其设计思想、程序结构及特点。SP(Structure Programming)是60 年代诞生的针对当时爆发的所谓”软件危机” , 为此发展形成了现代软件工程学的基础。 SP的总的设计思想是: . 自顶向下、层次化 . 逐步求精、精细化 程序结构是按功能划分基本模块的树型结构, 使模块间的关系尽可能简单独立。因此SP的程序的基本特点是: . 按层次组织模块(战略上划分战役) . 每一模块只有一个入口, 一个出口 ?代码和数据分离(程序=数据结构+算法) 归纳得到: SP 把数据和过程(代码、函数)分离为相互独立的实体, 用数据代表问题空间中的客体借以表示实际问题中的信 息; 程序代码则用来处理加工这些数据。程序员在编程时 必须时刻考虑所要处理的数据结构和类型。对不同的数据格式即使要作同样

的处理计算, 或者要对相同的数据格式作不同的处理都必须编写不同的程序(如两个整型数和两个浮点数相加)。这样的编程方法,即传统的SP方法设计出来的程序或系统其可重用的成分很少。其次把数据和代码作为不同的分离实体时, 总存在着用错误的数据调用正确的程序模块, 或用正确的数据调用错误的程序模块的危险, 从而使数据与程序始终保持兼容, 已成为程序员 的一个沉重的负担。在开发一个大型软件课题中, 当工程进入到 后期若用户改变了方案要求, 很容易使技术人员的前期工作受到摧毁性的打击,使其前功尽弃。为克服以上的弊端或者该SP方法难以控制处理的矛盾而产生了面向对象程序设计方法, 即Object —Oriented Programming ----------- OOP从二十世纪六十年代提出对象 的雏形, 到七十年代美国国防部的专用语言Ada 语言, 直到当前国际上流行的高品味的Java 和C++(Tc++,Balandc++ 及Vc++), , 应该讲OOP方法与技术吸取了SP的一切优点,同时又正视和顺应现实世界由物质和意识二部分组成。映射到面向对象的解空间就是: 具体事物—对象; 抽象概念—类。 OOP的基本原理是用问题领域的模型来模拟大千世界,从而设计出尽可能直接、自然地表示问题求解方法的软件, 这样的软件由对象组成, 而对象则是完整反映客观世界事物具有不可分割的静态属性(”数据结构” )与动态行为(”方法” )的。而且它们是既有联系又

面向对象程序设计笔记

undeclared identifier “未声明的标识符” (1) 十进制整数:在一个整型常量后面加一个字母 l 或 L,则认为是 long int 型常量? (2) 八进制整数?在常数的开头加一个数字 0,就表示这是以八进制数形 式表示的常数? (3)十六进制整数?在常数的开头加一个数字0和一个英文字母X(或x), 就表示这是以十六进制数形式表示的常数? 2. 浮点数的表示方法 如果在实数的数字之后加字母 F 或f,表示此数为单精度浮点数,如1234F,-43f,占 4 个字节?如果加字母 L 或 l,表示此数为长双精度数(long double), 在Visual C++ 6.0 中占 8 个字节. (2) 指数形式(即浮点形式):用字母 e 表示其后的数是以 10 为底的幂,如 e12 表示 1012? 1.普通的字符常量:用单撇号括起来的一个字符就是字符型常量如′a′,′ #′,′%′,′D′都是合法的字符常量,在内存中占一个字节?“cout<<′\n′; ”将输出一个换行,其作用与“cout<

面向对象程序设计试卷(D)

公 安 海 警 学 院 《 面向对象程序设计 》考试(查)卷( D 卷) (2012—2013学年第一学期) 考核类型: ;考核年级: ; 考试时间: 分钟 考试须知 公安海警学院学员参加学院组织的各类考试必须严格遵守考场纪律。有考试违纪作弊行为者,严格按照学院有关规定进行处理。 各考场排定的监考教员,必须认真履行监考职责,确保考场正常秩序。 阅卷教员要依照批阅试卷程序与规定,公平公正地完成好阅卷工作。 一、填空题(共10分,每空1分) 1.面向对象程序设计将数据及对数据的 操作 放在一起,作为一个相互依存,不可分割的整体来处理,即对象。 2.为了使类中的成员不能被类外的函数访问,则应把该成员的访问权限定义为 私有的或受保护的 属性。 3.在C++中,声明布尔类型变量所用的关键字是__ bool __。 4.C++中定义常量的关键字是 const 。 5.C++中进行输入、输出操作时,将数据对象从输入流提取出来的运算符是“>>”,插入到输出流的运算符是__ << __。 6.类的继承是指子类继承基类的_ 数据成员 __和成员函数。 7.不同对象可以调用相同名称的函数,但可导致完全不同的行为的现象称为__ 多态性 __。 8.设类A 有成员函数void Fun(void);若要定义一个指向类成员函数的指针变量pafn 来指向Fun ,该指针变量的声明语句是:__ void (A ::*pafn )(viod ) ; __。 9.在保护派生中,基类权限为Private 的成员在派生类中__ 不可访问 __。 10.将指向对象的指针作为函数参数,形参是对象指针,实参是对象的__ 首地址 _。 二、选择题(共30分,每题2分) 1.C++对C 语言作了很多改进,下列描述中( D )使得C 语言发生了质变,即从面向过程变成了面向对象。 A .增加了一些新的运算符 B .允许函数重载,并允许设置默认参数 C .规定了函数说明必须用原型 D .引进了类和对象的概念 2.在C++中使用流进行输入输出,其中用于屏幕输出的对象是( C ) A .cerr B .cin C .cout D .cfile 3.对使用关键字new 所开辟的动态存储空间,释放时必须使用( C ) A .free B .create C .delete D .realse 4.用C++中定义一个类,当没有明确指定成员的访问权限时,则系统约定该成员为( C ) A .public B .protected C .private D .friend 5.C++的继承性允许派生类继承基类的( A ) A .部分特性,并允许增加新的特性或重定义基类的特性 B .部分特性,但不允许增加新的特性或重定义基类的特性 C .所有特性,并允许增加新的特性或重定义基类的特性 D .所有特性,但不允许增加新的特性或重定义基类的特性 6.类的私有成员可在何处访问( D ) A .通过子类的对象访问 B .本类及子类的成员函数中 C .通过该类对象访问 D .本类的成员函数中 7.一个类可包含析构函数的个数是( B ) A .0个 B .1个 C .至少一个 D .0个或多个 8.this 指针存在的目的是( B ) A .保证基类公有成员在子类中可以被访问 B .保证每个对象拥有自己的数据成员,但共享处理这些数据成员的代码 C .保证基类保护成员在子类中可以被访问 D .保证基类私有成员在子类中可以被访问 9.下列关于类的权限的描述错误的是( A ) A .类本身的成员函数只能访问自身的私有成员 B .类的对象只能访问该类的公有成员 C .普通函数不能直接访问类的公有成员,必须通过对象访问 D .一个类可以将另一个类的对象作为成员 10.关于虚函数,下列说法正确的是( A ) A. 虚函数在基类中说明后,不用再在派生类中重新说明 B. 包含有虚函数的基类称为抽象基类 C. 每个派生类必须对从基类继承的虚函数进行重新重定义 D. 包含虚函数的类不能够生成实例对象 11.设类A 将其它类对象作为成员,则建立A 类对象时,下列描述正确的是( B ) A .A 类构造函数先执行 B .成员构造函数先执行 C .两者并行执行 D .不能确定 12.下列描述错误的是( A ) A .在创建对象前,静态成员不存在 B .静态成员是类的成员 C .静态成员不能是虚函数 D .静态成员函数不能直接访问非静态成员 13.对于友元描述正确的是( B ) A .友元是本类的成员函数 B .友元不是本类的成员函数 C .友元不是函数 D .友元不能访问本类私有成员 14.可以在派生类的成员函数中访问基类的非私有成员,并能通过派生类的对象直接访问基类公有成员的派生方式是( A ) A .public B .protected C .private D .friend 15.如果没有为一个类定义任何构造函数的情况下,下列描述正确的是( A ) A .编译器总是自动创建一个不带参数的构造函数 B .这个类没有构造函数 C .这个类不需要构造函数 D .该类不能通过编译 三、判断题(共10分,每题1分) 密 封 线

相关文档
最新文档