当前位置:文档之家› 面向对象程序设计(附答案)

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

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

《面向对象程序设计》试卷 第1页 共9页 东莞理工学院(本科)试卷(B 卷) 2012 --2013学年第二学期 没有参考答案,答案纯手打,错了勿喷 《面向对象程序设计》试卷 开课单位: 计算机学院,考试形式:闭卷,允许带 入场 题序 一 二 三 四 五 六 总 分 得分 评卷人 一.单项选择题 (15小题,每小题2分,共30分,请将正确答案填写在以下对应的答题表格中) 题号 1 2 3 4 5 6 7 8 9 10 答案 题号 11 12 13 14 15 答案 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.0 B.1 C.2 D.3

7、有关析构函数的说法,不正确的是()。

A.析构函数有且仅有一个

B.析构函数和构造函数一样可以有形参

C.析构函数的功能是在系统释放对象之前作一些内存清理工作

D.析构函数无任何函数类型

8、类定义的内容允许被其对象无限制地存取的是()。

A.private 部分B.protected 部分C.public 部分D.以上都不对

9、关于常数据成员的说法,不正确的是()。

A.常数据成员的定义形式与一般常变量的定义形式相同,只不过常数据成员的定义必须出现在类体中

B.常数据成员必须进行初始化,并且不能被更新

C.常数据成员通过构造函数的成员初始化列表进行初始化

D.常数据成员可以在定义时直接初始化

10、运用运算符delete删除一个动态对象时()。

A.系统首先为该动态对象调用构造函数,再释放其占用的内存

B.系统首先释放该动态对象占用的内存,再为其调用构造函数

C.系统首先为该动态对象调用析构函数,再释放其占用的内存

D.系统首先释放动态对象占用的内存,再为其调用析构函数

11、可以在类外用p.a的形式访问派生类对象p的基类成员a,其中a是()。

A.私有继承的公用成员B.公用继承的私有成员

C.公用继承的保护成员D.公用继承的公用成员

12、在公用继承方式下,有关派生类对象和基类对象的关系,不正确的叙述是()。A.派生类的对象可以赋给基类的对象

B.派生类的对象可以初始化基类的引用

《面向对象程序设计》试卷第2页共9页

《面向对象程序设计》试卷 第3页 共9页 C .派生类的对象可以直接访问基类中的成员 D .派生类的对象的地址可以赋给指向基类的指针 13、设置虚基类的目的是( )。 A .简化程序 B .消除二义性 C .提高运行效率 D .减少目标代码 14、在C++中,用于实现动态多态性的是( )。 A .内联函数 B .重载函数 C .模板函数 D .虚函数 15、下列运算符中,( )运算符在C++中不能被重载。 A .&& B .[] C .:: D .new 二.填空题(每题2分,共20分) 1、对象的核心概念就是通常所说的 继承 、封装和多态性 。 2、在C++中,三种继承方式的说明符号为public 、private 和protected ,如果不加说明,则默认的继承方式为 private 。 3、如果只想保留公共基类的一个复制,就必须使用关键字 virtual 把这个公共基类声明为虚基类。 4、若要把void fun()定义为类A 的友元函数,则应在类A 的定义中加入语句 friend void fun(); 。 5、类的静态成员分为静态数据成员和 静态成员函数 。 6、运算符重载要求保持其原来的操作数个数、结合性、 优先级 和语法结构。 7、列出C++中的两种代码复用方式: 继承 和组合或模板。 8、列出C++中两种用户自定义的数据类型: 类 、结构体。 9、构造函数的作用是 创建对象时初始化对象的数据成员

。 10、后置自增运算符“++”重载为类的成员函数(设类名为A )的形式为 A operator++(int); 。 三.判断题,对的打T 错的打F 。(5小题,每小题2分,共10分) 1.在public 继承方式下,基类中被说明为protected 和private 的成员只能被其派生类的成员函数访问,不能被其它的函数访问。(×)友元函数 姓名:

学号:

系别:

年级专业:

……

线

…………………………………

2. 一个类中的成员函数重载(overload)可以用const修饰符、函数原型的参数个数、对应位置的参数的类型和返回值类型为依据。(×)

3. 在任何形式的继承方式(public、protected和private)下,基类类型的指针都可以指向其派生类对象。(×)只有public继承

4. 在静态成员函数的实现代码体内不能使用this指针,在非静态的成员函数实现代码体内可以使用this指针。(√)

5. 构造函数的初始化列表中的内容,不会影响构造对象中成员数据的初始化顺序。(√)。

四.程序填空(每题6分,共18分)

根据程序的功能描述,将程序下划线空白处内容补充完整(每空白3分)

1、将程序下划线空白处内容补充完整,使类定义完整(每空白3分)

class line;

class box{

private:

int color;

int upx,upy;

int lowx,lowy;

public:

friend int same_color(line l,box b);

void set_color(int c){color =c;}

void define_box(int x1,int y1,int x2,int y2)

{upx=x1;upy=y1;lowx=x2;lowy=y2;}

};

class line{

private:

int color;

int startx,starty;

int endx,endy;

public:

friend int same_color(line l,box b);

void set_color(int C){color=c;}

void define_line(int x1,int y1,int x2,int y2)

{startx=x1;starty=y1;endx=x2;endy=y2;}

};

《面向对象程序设计》试卷第4页共9页

《面向对象程序设计》试卷 第5页 共9页 int same_color(line l,box b){ if (l.color==b.color) return l; return 0; } 2、A 为抽象类,输出为: this is class B printing this is class C printing 根据程序的功能描述,将程序下划线空白处内容补充完整。(每空白3分) #include class A{ public : virtual void printMe(){cout<<"this is class A printing"<

……………………………………………密………………………………………………封………………………………………线……………………………………………………………………

derived(derived&b):base(b) {d=b.d;}

};

五、程序执行(每题5分,共10分)

阅读下面的程序,并分别写出程序执行的完整输出结果。

1.#include

using namespace std;

class Date

{public:

Date(int,int,int);

Date(int,int);

Date(int);

Date();

void display();

private:

int month, day, year;

};

Date::Date(int m,int d,int y):month(m),day(d),year(y) { }

Date::Date(int m,int d):month(m),day(d) {year=2009;}

Date::Date(int m):month(m){day=1; year=2010; }

Date::Date() {month=1; day=1; year=2010; }

void Date::display(){cout<

int main()

{ Date d1(12,31,2009);

Date d2(12,31);

Date d3(1);

Date d4;

d1.display();

d2.display();

d3.display();

《面向对象程序设计》试卷第6页共9页

《面向对象程序设计》试卷

第7页 共9页

d4.display();

return 0; }

输出结果:

12/31/2009

12/31/2009

1/1/2010

1/1/2010

2. #include

using namespace std;

class A

{ public:

A(){cout<<"constructing A "<

~A(){cout<<"destructing A "<

class B: public A

{ public:

B(){cout<<"constructing B "<

~B(){cout<<"destructing B "<

class C : public B

{ public:

C(){cout<<"constructing C "<

int main()

{ C c1;

return 0;

}

输出结果: constructing A

constructing B

constructing C 姓名:

学号:

系别:

年级专业:

……………………………………

……

……

…密

……

………

……

……

……

……

……

……

…封

……

……

……

………

……

……

……

线…

……

………

……

……

……

……

………

……

……

《面向对象程序设计》试卷 第8页 共9页 destructing C

destructing B

destructing A

六、程序设计(12分)

已知复数类Complex 的声明如下:

class Complex

{public:

Complex(); //无参构造函数

Complex(double ); //转换构造函数

Complex(double, double);//有两个形参的构造函数

friend Complex operator+(Complex&, Complex&); //对“+”运算符进行重载 friend ostream& operator<<(ostream&, Complex&); //对“<<”运算符进行重载 friend istream& operator>>(istream&, Complex&); //对“>>”运算符进行重载 private:

double real,imag;

};

要求:(1)写出该类的所有构造函数的类外定义代码。

(2)写出对运算符“+”、“<<”、“>>”进行重载的运算符重载函数的定义。 解:

(1) 该类的所有构造函数的类外定义代码如下:

Complex::Complex()

{

real=0; imag=0; } Complex::Complex(double i) { real=i; 专业:

………线……………………………………

imag=i;

}

Complex::Complex(double i, double j)

{

real=i;

imag=j;

}

(2)运算符“+”、“<<”、“>>”进行重载的运算符重载函数的定义如下:Complex operator +(Complex &a, Complex & b)

{

return Complex(a.real+b.real,a.imag+b.imag);

}

ostream &operator<< (ostream &out ,Complex &a )//修改过

{

out << a.real<< a.imag;

return out;

}

istream &operator>>( istream &in ,Complex &a )//修改过

{

in >> a.real >> a.imag;

return in;

}

《面向对象程序设计》试卷第9页共9页

c++面向对象程序设计大作业

《面向对象程序设计》 大作业 题目学生成绩管理系统 学院 专业 班级 姓名 指导教师 2015 年11 月11 日

目录 一大作业的目的 (1) 二大作业的内容............................ . .. (2) 三大作业的要求与数据............... ...... . (3) 四大作业应完成的工作.................. . (4) 五总体设计(包含几大功能模块)........... . (5) 六详细设计(各功能模块的具体实现算法——流程图) (6) 七调试分析(包含各模块的测试用例,及测试结果) (7) 八总结 (8) 十参考资料 (9)

一大作业的目的 《面向对象程序设计》是一门实践性很强的课程,通过大作业不仅可以全方位检验学生知识掌握程度和综合能力,而且还可以进一步加深、巩固所学课程的基本理论知识,理论联系实际,进一步培养自己综合分析问题和解决问题的能力。更好地掌握运用C++语言独立地编写、调试应用程序和进行其它相关设计的技能。 二大作业的内容 对学生信息(包括学号、语文、数学、英语、平均分)进行管理,包括学生成绩的信息输入、输出、查询、删除、排序、统计、退出.将学生的成绩信息进行记录,信息内容包含:(1)学生的学号(2)学生的姓名(3)学生的成绩。假设,现收集到了一个班学生的所有成绩信息,要求用C语言编写一个简单的成绩管理系统,可进行录入、查询、修改和浏览等功能。学习相关开发工具和应用软件,熟悉系统建设过程。 三大作业的要求与数据 1、用C++语言实现系统; 2、对学生信息(包括学号、姓名、语文、数学、英语、平均分)进行管理,包括学生成绩的信息输入、输出、查询、删除、排序、统计、退出. 3、学生信息包括:其内容较多,为了简化讨论,要求设计的管理系统能够完成以下功能: (1) 每一条记录包括一个学生的学号、姓名、3门课成绩 (2)、成绩信息录入功能:(成绩信息用文件保存,可以一次完成若干条记录 的输入。) (3)、成绩信息显示浏览功能:完成全部学生记录的显示。 (4)、查询功能:完成按姓名查找学生记录,并显示。 (5)成绩信息的删除:按学号进行删除某学生的成绩. (6)、排序功能:按学生平均成绩进行排序。 (7)、应提供一个界面来调用各个功能,调用界面和各个功能的操作界面应尽可能清晰美观!

什么是面向对象程序设计

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

第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(){

面向对象程序设计 C 复习题

一选择题(共 45题) 1.对类的构造函数和析构函数描述正确的是()。 A.构造函数可以重载,析构函数不能重载√ B.构造函数不能重载,析构函数可以重载 C.构造函数可以重载,析构函数也可以重载 D.构造函数不能重载,析构函数也不能重载 2.继承具有(),即当基类本身也是某一个类派生类时,底层的派生类也会自动继承间接基类的成员。 A)规律性 B.传递性√ C.重复性 D.多样性 3.假设OneClass为一个类,则该类的复制初始化构造函数的声明语句为()。 (OneClass p); B. OneClass& (OneClass p ); C. OneClass(OneClass & p);√ D. OneClass (OneClass * p); 4.对于结构中定义的成员,其默认的访问权限为()。 B. protected D. static 5.下面对静态数据成员的描述中,不正确的是()。 A.静态数据成员可以在类体内进行初始化√ B.静态数据成员不可以在类体内进行初始化 C.静态数据成员能受private控制符的作用 D.静态数据成员调用前必须初始 6. C++中的类有两种用法:一种是类的实例化,即生成类对象,并参与系统的运行;另一种是通过()派生了新的类。 A.复用 B.继承√ C.封装 D.引用 7. 假定AA为一个类,a为该类公有的数据成员,x为该类的一个对象,则访问x对象中数据成员a 的格式为()。 A. x(a) B. x[a] C. x->a D. √ 9. 对于一个类的构造函数,其函数名与类名( )。 A. 完全相同√ B. 基本相同 C. 不相同 D. 无关系 10. 一个类的构造函数通常被定义为该类的( )成员。 A. 公有√ B. 保护 C. 私有 D. 友元 11. 一个类的析构函数通常被定义为该类的( )成员。 A. 私有 B. 保护 C. 公有√ D. 友元 12. 一个类的静态数据成员所表示属性 ( )。 A. 是类的或对象的属性 B. 只是对象的属性 C. 只是类的属性√ D. 类和友元的属性 13.类的析构函数的作用是()。 A.一般成员函数 B.类的初始化 C.对象初始化D.删除对象之前的善后工作√ 14.下列对基类和派生类关系的描述中,错误的是()。 A.派生类是基类的具体化B.派生类是基类的子集√ C.派生类是基类定义的延续 D.派生类是基类的组合 15.下列对派生类的描述中,错误的是()。 A.一个派生类可以作为另一个派生类的基类 B.派生类至少有一个基类 C.派生类的缺省继承方式是private D.派生类只继承了基类的公有成员和保护成员√ 16.下列对继承的描述中,错误的是()。 A.析构函数不能被继承

2016年电大面向对象程序设计技术-作业题

2015秋季学期计算机科学与技术本科 《面向对象程序设计技术》作业题 (在电大在线该课程讨论区跟帖提交,注明姓名和学号以记录成绩)选择题 1.可以在本类及派生类的成员函数中进行访问的访问控制修饰符是(B) A.private B.protected C.public 2.在IDE中将编程项目采用多文件结构下,类的定义一般放在(A) A.头文件 B.程序文件 C.主程序文件 3.内联成员函数在类外定义时要将其和类定义一起放在(A) A.头文件 B.程序文件 C.主程序文件 4.下面哪个内存区域是C++中的运行时动态内存分配区域?( D ) A.代码区 B.栈区 C.数据区 D.堆区 5.对象作为函数参数使用时,一般使用(A)形式 A.引用 B.指针 C.对象拷贝

6.同类的多个不同对象的数据成员值各有不同,但不同对象可以共享类的成员函数代码, 实际调用成员函数时,是通过(B )来区分不同对象的。 A.显式给出不同对象不同地址 B.隐含的this指针 C.引用 7.下面哪一种情况不会自动调用拷贝构造函数。(E) A.用一个对象初始化另一个对象时 B.当一个对象作为值传递给一个函数时 C.当一个对象作为值从一个函数返回之前,该对象被拷贝到栈区 D.函数调用结束后,栈区中的返回对象拷贝给主调程序的对象 E.建立指向对象的指针并初始化指针值时 8.下列哪些对象的数据成员类型可以不用初始化表的方式进行初始化(D) A.常量数据成员 B.引用数据成员 C.类中对象成员 D.一般数据成员 9.下列哪一种类设计一般无需在类中设计静态数据成员以使建立的多个对象共享静态数 据数据成员。( D ) A.一个链表类的头指针和尾指针 B.一个学生类中用于保存建立了多少个学生对象的计数器 C.银行帐号类中的年利率 D.一般只用于建立一个对象的类 10.一个类中的公有(public)性质的静态数据成员,以下哪一种访问方式是错误的(D) A.对象名.静态数据成员名 B.指向对象的指针—>静态数据成员名 C.类名::静态数据成员名 D.类名.静态数据成员名 11.下列哪一个运算符不能够被类所重载(E) A.“.”成员访问运算符 B.“*”成员指针访问运算符 C.“::”域运算符 D.“?:”条件运算符 E.“=”赋值运算符

《面向对象程序设计》答案

实验一熟悉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:"<

面向对象程序设计的基本思想

课题:面向对象程序设计的基本思想 (一)教学设计思想与理论依据: 《算法与程序设计》模块的教学强调通过该模块的学习,学生应该体验客 观世界的计算机对象化表征和算法思维,掌握几种基本算法;能运用面向对 象的方法,设计解决简单问题的算法,并能初步使用一种面向对象的程序设 计语言,编制程序实现算法解决该问题。 (二)教学内容分析 教材以广东教育出版社出版的信息技术(选修一)《算法与程序设计》第五章第一节内容为结构框架,本节主要介绍面向对象思想产生的必然性和面向对象思想的机制,以及通过对同一个问题采取面向过程和面向对象两种不同思想解决的区别,让学生感受到面向对象程序设计的优越性。 (三)学生情况分析: 学生已学完教材前四章内容,基本掌握了传统的面向过程结构化程序设计方法,有一定的程序设计基础。 (四)教学策略与模式: 采用讲解、任务驱动、实践和学生自主学习相结合的教学方式 (五)教学资源: 硬件:多媒体电脑教室,投影仪,广播系统 软件:学生机安装vb6.0 (六)教学目标: 知识与技能 1.了解面向对象程序设计的基本思想和面向对象思想的由来,并能够举例说 明现实世界与面向对象系统之间的对应关系。 2.了解面向对象程序设计的优越性并初步理解其实现的机制。 过程与方法 经历分析、调试解决同一问题的两种不同实现思想的程序,初步理解面向对象程序设计的优势及面向过程程序设计的缺陷。 情感态度和价值观 (1)关注传统结构化程序设计存在的问题。 (2)产生学习面向对象程序设计技术的愿望。 (3)关注面向对象技术是当前程序设计的重要发展方向。 (七)重点难点 教学重点 (1)传统结构化程序设计存在的问题 (2)面向对象程序设计所具有的优点。 教学难点 (1)面向对象思想的产生。 (2)传统结构化程序设计与面向对象程序设计的基本点比较。 (3)实现面向对象程序设计的基本机制。 教学过程:

面向对象编程练习题库-test

面向对象编程练习题 专题1 初识Java 一、填空题 1.自从Sun推出Java以来,按应用范围可分为三个版本,分别是()、()、()。 2.环境变量的设置,若JDK安装在“D:\JDK”,则应设置Path为()、classpath为()。3.Java源文件的扩展名为(),用Javac编译Java源文件,得到的字节码文件的扩展名为()。4.如果Java源文件中有多个类,那么只能有一个类是()类。 二、选择题 1.作为Java应用程序入口的main方法,其声明格式是() A.public static int main(String args[]) B.public static void main(String args[]) C.public void main(String args[]) D.public int main(String args[]) 2.下面命令正确的是() A.java AppFirst.java B.java AppFirst C.java appfirst.class D.javac AppFirst 3.设有一个Java小程序,源程序名为FirstApplet.java,其HTML文件为FirstApplet.html,则运行该小程序的命令为() A.java FirstApplet B.javac FirstApplet.java C.appletviewer FirstApplet.java D.appletviewer FirstApplet.html 4.JDK安装完成后,主要的命令如javac、java等,都存放在根目录的()文件夹下。 A.bin B.jre C.include D.doc 5.Java语言是一种语言。 A.机器B.汇编C.面向过程的D.面向对象的 6、Java程序的最基本组成单位是( )。 A.函数B.过程C.变量D.类 7. main()方法的返回值类型是()。 A.boolean B.int C. void D.static 8. 下面哪个单词是Java语言的关键字()A.False B.FOR C.For D.for 9. 、线程是Java的()机制。 A.检查B.解释执行C.并行D.并发

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

学号:姓名: 第三章面向对象程序设计作业 一、判断题 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;}

面向对象程序设计试题

《面向对象程序设计》试题(补考) (闭卷考试) 班级:学号:姓名: 1. 单项选择题(每小题3分,共60分) 1)C++语言对C语言做了很多改进。C++语言相对于C语言的最根本的变化是 ( )。 A.增加了一些新的运算符 B.允许函数重载,并允许设置缺省参数 C.规定函数说明符必须用原型 D.引进了类和对象的概念 2)下列描述中,不属于面向对象思想主要特征的是( )。 A.封装性B.跨平台性 C.继承性D.多态性 3)每个C++程序中都必须有且仅有一个( )。 A. 类 B. 预处理命令 C. 主函数 D. 语句 4)sizeof(float)是( )。 A. 一个双精度型表达式 B. 一个整型表达式 C. 一种函数调用 D. 一个不合法的表达式 5)设有int x=11;,则表达式(x++*2/3)的值是( )。 A. 7 B. 8 C. 11 D. 12 6)在下面的二维数组定义中,正确的是( )。 A. int a[5][]; B. int a[][5]; C. int a[][3]={{1,3,5},{2}}; D. int a[](10);

7)设有程序代码: int k=10; while(k=0) k=k-1; 则下面描述中正确的是( )。 A. 循环执行10次 B. 无限循环 C. 循环体语句一次也不执行 D. 循环体语句执行一次 8)对表达式for(表达式1; ; 表达式3)可理解为( )。 A. for(表达式1; 0; 表达式3) B. for(表达式1; 1; 表达式3) C. for(表达式1 ; 表达式3;) D. for( ; ; 表达式3) 9)下面的哪个选项不能作为函数的返回类型? ( )。 A.void B.int C.new D.long 10)有如下说明: int a[ ]= {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}, *p=a; 则下面哪一个表达式的值为9 ( )。 A. *p+9 B. *(p+8) C. (*p += 9) D. p+8 11)有如下函数定义: void func(int a, int &b) {a++; b++;} 若执行代码段: int x=0, y=1; func(x, y); 则变量x和y值分别是( )。 A.0和1 B.1和1 C.0和2 D.1和2 12)下列写法正确的是( )。 A. int *p = 15; B. const int a; a=15; C. int& b; D. int b = 15; int* a = &b; 13)下列选项中,与实现运行时多态性无关的是( )。 A.重载函数B.虚函数C.指针D.引用 14)拷贝构造函数的参数一般是( )。 A. 某对象名 B. 某对象成员名 C. 某对象的引用名 D. 指向对象的指针名 15)对类的构造函数和析构函数描述正确的是( )。 A.构造函数可以重载,析构函数不能重载

《面向对象程序设计》高起专习题三答案

《面向对象程序设计》高起专习题三答案 一、单项选择题(本大题共25小题,每小题2分,共50分) 1、用“>>”运算符从键盘输入多于一个数据时,各数据之间应使用( D )符号作为分隔符。 A、空格或逗号 B、逗号或回车 C、逗号或分号 D、空格或回车 2、C++中声明常量的关键字是( A )。 A、const B、extern C、public D、enum 3、以下叙述中正确的是( B ) A、使用#define可以为常量定义一个名字,该名字在程序中可以再赋另外的值 B、使用const定义的常量名有类型之分,其值在程序运行时是不可改变的 C、在程序中使用内置函数使程序的可读性变差 D、在定义函数时可以在形参表的任何位置给出缺省形参值 4、下列的符号常变量定义中,错误的定义是( C )。 A、const M=10; B、const int M=20; C、const char ch; D、const bool mark=true; 5、函数原型语句正确的是( B )。 A、int Function(void a) B、void Function (int); C、int Function(a); D、void int(double a); 6、在关键字private后面定义的成员为类的( A )成员。 A、私有 B、公用 C、保护 D、任何 7、在一个类的定义中,包含有( C )成员的定义。 A、数据 B、函数 C、数据和函数 D、数据或函数 8、在类作用域中能够通过直接使用该类的( D )成员名进行访问。 A、私有 B、公用 C、保护 D、任何 9、在关键字public后面定义的成员为类的( B )成员。 A、私有 B、公用 C、保护 D、任何 10、类中定义的成员默认为( B )访问属性。 A、public B、private C、protected D、friend 11、每个类( C )构造函数。

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

第二章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;

面向对象程序设计习题

面向对象程序设计习题

1.面向对象程序设计中的数据隐藏指的是参考答案为:D A.输入数据必须输入保密口令B.数据经过加密处理 C. 对象内部数据结构上建有防火墙D.对象内部数据结构的不可访问性[解析]输入数据必须输入保密口令和数据经过加密处理都不是面向对象程序设计的特征;对象内部数据结构上也不可能建有防火墙,所以它们都不是面向对象程序设计中所指的数据隐藏。面向对象程序设计系统中的封装单位是对象,对象之间只能通过接口进行信息交流,外部不能对对象中的数据随意地进行访问,这就造成了对象内部数据结构的不可访问性,也使得数据被隐藏在对象中。这就是面向对象程序设计中的数据隐藏所指。 2.下列各项中符合函数重载必须满足的条件的是参考答案为:D A.必须有不同的参数个数B.对应的参数类型必须不相同 C. A和B必须同时满足D.A和B只要满足一个即可 [解析]我们知道,在同一个作用域中,要实现函数重载必须满足的条件的是:① 有不同的参

数个数;或者② 对应的参数有不相同的数据类型,即①和②中只要有一个满足就可以了。当然两者都满足更好,但这不是必须的。3.下列带缺省值参数的函数说明中,正确的说明是参考答案为:A A.int Fun(int x,int y=2,int z=3); B.int Fun(int x=1,int y,int z=3); C. int Fun(int x,int y=2,int z); D.int Fun(int x=1,int y,int z=3); [解析]在带缺省值参数的函数说明中,正确的说明应该是无缺省值的参数依次排列在参数表的左边,排完无缺省值的参数后,再依次排列带缺省值的参数。从所给出的四个选项来看,只有“int Fun(int x,int y=2,int z=3)”符合这条规定,其它的都不符合。 4.有如下的对类“CSample”的说明,其中()是错误的。 class CSample { 参考答案为:A A.int a=23; B.CSample(); public: C.CSample(int val);

面向对象程序设计大作业(C++)

面向对象分析/设计课程大作业 银行业务处理系统 13级软件学院测试班 1367004029 曾丹 1.需求分析 随着社会经济的发展,信息化程度的不断深入,银行的传统业务己愈来愈不能满足银行客户的需要。 现今,人们的金融意识、科技意识己经有了很大的提高,在紧张忙碌的生活中,己越来越来不习惯每月奔忙于各银行营业柜台之问去排队缴各种各样的费用了;同时,各种经营单位如电信、移动、供电、煤气、自来水、证券等等一是为了提高服务质量、方便客户,二是为了减轻自己日趋繁重的工作量,纷纷委托银行为其开展代收代付业务:同时,随着我国加入世贸组织的日益临近,我国的银行业将面临更加激烈的同业竞争,如何提供更多的金融产品和更优质的服务,如

何吸引更多的客户,如何利用计算机技术加强银行帐户信息管理、进行银行业务再造,提高银行的工作效率和业务竟争能力是摆在各家银行面前的一个迫切需要解诀的问题。 近几年来,各商业银行加快了与社会各业的合作,利用自身的网点优势和业务特点,为其提供各种高效、快捷的代收代付业务,也就是中间代理业务,目前以与广大人民群众生活密切相关的各项缴费业务如水电费、电话费、手机费等代收业务为主,这些业务开展方式多种多样,但一般都离不开计算机的高效管理支持。 随着代理业务不断发展,业务品种越来越多,各项业务做法互有差异,这就对银行的电子化水平和相应的管理水平提出了更高的要求。如何利用电子化的手段构建一个高效统一的、通用灵活的系统来管理各种各样的业务,是每个商业银行所要研究的课题。支持决策系统的,需要在数据库的基础上,进行联机分析处理,每次处理的数据量大,响应时间长。 特别是银行每天要处理大量的存取款事件,做好存取款是银行工作重要的环节,然而要有效处理必须要有良好的程序和数据管理系统来建立一个良好的软件系统来实现快速、有效、准确、安全的处理银行事物。 主要用于银行的储蓄卡管理系统,它可以帮助我们有效、准确、并且高效实现的完成存取事件。此系统操作方便效率、安全性高,只要客户开户并设定好密码就可以轻松的实现存取款。 系统实现的主要有储蓄卡开户管理、存取款管理、用户查询历史数据显示、注销等功能。 储蓄卡开户管理模块:卡号、姓名、开户金额、身份证号、地址、电话、密码、确认密码和保存组成。(开户金额必须是数字,密码和确认密码必须一样是六位数字) *注销模块:一旦注销该卡号就不存在且余额提醒你取出。 通过该银行账户管理系统地运行,使办公人员可以轻松快捷的完成对账户管理的任务,提高账目管理效率,使银行的账目管理工作系统化、规范化、自动化。 该银行帐目管理信息系统,优点是设计过程思路清晰、模块划分简洁,设计各阶段分工明确。经过实践证明,该划分是合理的,极大得提高了本系统的实现。

面向对象程序设计笔记

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<

C面向对象程序设计知识点汇集

C#面向对象程序设计知识点汇集 第一章:C#入门 1.namespace关键字 namespace即命名空间,是定义命名空间的关键字,命名空间包含类,是类的组织方式。namespace 命名空间名 { …//类的定义 } 2.using关键字 using关键字用于导入命名空间 using命名空间名; 3.class关键字 class即类,是定义类的关键字。C#中必须用类来组织程序的变量和方法。 4.Main()方法 C#程序必须且只能包含一个Main()方法,它是程序的入口点。 static void Main(string[] args){} static void Main(){} static int Main(string[] args){} static int Main(){} 5.行输出方法 语句“Console.WriteLine("Hello .NET!");”的功能是向显示屏输出双引号之间的字符串。语句“Console.ReadLine();”的功能是输入一个字符串 6.C#程序结构 C#程序的组成要素如下: 1) 命名空间:命名空间包含一个或多个类。 2) 类。 3) 方法:方法必须包含在某一个类中,作为类的一个成员,每个程序有且仅有一个Main()方法。 4) 语句:语句是C#应用程序中执行操作的命令。C#中的语句必须用分号“;”结束。 5) 关键字:关键字也叫保留字,是对C#有特定意义的字符串。 6) 大括号:在C#中,括号“{”和“}”是一种范围标志,表示代码层次的一种方式。7.C#程序书写格式 1)缩进 2) 字母大小写 C#是大小写敏感的语言,它把同一字母的大小写当作两个不同的字符对待。 3) 程序注释 (1) 单行注释,以双斜线“//”开始,一直到本行尾部,均为注释内容。 (2) 多行注释,以“/*”开始,以“*/”结束,可以注释多行,也可以注释一行代码中间的一部分,比较灵活。 (3) 文档注释,使用“///”,若有多行文档注释,每一行都用“///”开头。 8.Console类 Console类是System命名空间中预定义的一个类,用于实现控制台的基本输入输出。

面向对象程序设计复习题

1《面向对象程序设计》复习题 一、单项选择题 1. ( )是面向对象系统包含的要素。 A、类 B、多态 C、友元 D、重载 答案:A 2. 下列对常量的定义中,错误的是()。 A、MyClass const obj(3,4); B、char * const p="hello"; C、int i=1; const int &ref=i; D、void show() const; 答案:C 常量的定义: 1常对象 Const 类名对象名【(实参列表)】 类名Const 对象名【(实参列表)】 2 常数据成员 Const 类型常数据成员 3 常成员函数类型成员函数名Const 4 指向对象的常指针类名* Const 指针变量名=对象地址 5 指向常变量的指针变量Const 类型名* 指针变量名 3. 若有如下函数声明:void Fun(int x);,则下列()能与该函数进行重载。 A、void Fun(int y); B、void Fun(int x,int y='1'); C、int Fun(int x); D、void Fun(int) const;

答案:D 4. 下列对构造函数和析构函数的描述中,错误的是()。 A、构造函数可以重载 B、析构函数名与类名相同 C、构造函数中可以设置参数的缺省值 D、类中只有一个析构函数 答案:B 5. 下列对友元的描述中,错误的是()。 A、友元破坏了类的封装性 B、友元提高了程序的运行效率 C、友元可以在类外声明和定义 D、友元能够访问类中的私有成员 答案:C 6. 下列对继承的描述中,正确的是()。 A、派生类对象能够访问基类的公有成员 B、派生类继承了基类的公有成员和保护成员 C、派生类对象不能访问基类的保护成员 D、派生类不改变基类成员的访问权限 答案:C 7. 程序中,编译时出错的语句是()。 class Base{ }; class Derived : public Base { }; Derived objD1; Base objB=objD1; //A Base *pb=&objD1; //B Base &refB=objD1; //C Derived objD2=objB; //D 答案:B 8. 下面对派生类的描述中,正确的是()。 A、派生类是对基类的具体化

面向对象程序设计作业参考答案

习题一 5、分析下面程序运行的结果。 # using namespace std; int main() { cout<<”This”<<”is”; cout<<”a”<<”C++”; cout<<”program.”< using namespace std; int main() { int a,b,c; a = 10; b = 23; c = a + b; cout<<'a + b ="; cout< using namespace std; int main() { int a, b; a = b = 0; int c = a + b; cout<<”a + b =”<

9、输入以下程序,进行编译,观察编译情况,如果有错误,请修改程序,在进行编译,直到没有错误,然后进行连接和运行,分析运行结果。 修改后的程序如下: #include using namespace std; int add(int x,int y); int main() { int a = 0, b = 0; int c = add(a,b); cout<<" a + b ="<

相关主题
文本预览
相关文档 最新文档