2008级面向对象程序设计考卷
计08面向对象程序设计 考试参考答案(A卷)
《面向对象程序设计》课程试题参考答案及评分标准(中文试卷)( A卷)适用专业年级:计算机科学与技术08级考试时间: 100分钟命题人:彭召意一、判断题(每小题1分,共计10分)(评分标准:每对一个得1分)1 2 3 4 5 6 7 8 9 10××√√×××√√×二、简答题(每小题8分,共24分)(评分标准:以答对关键词来给分,用自己的语言理解回答,可适当得分)1.(评分标准:前两个知识点各2分,后一个知识点4分)答:类:是指具有相同的属性和操作方法,并遵守相同规则的对象的集合。
对象:是包含现实世界物体特征的抽象实体,每个对象有内部的属性和操作方法。
主要区别:面向对象的程序设计:它的整个程序由一系列相互作用的对象构成,对象之间的交互通过发送消息来实现,对象通过响应消息来实现程序的功能。
编程时可以不知道对象的内部实现细节。
面向过程的程序设计:程序由一系列的函数构成,程序的实现通过函数的顺序执行来实现。
编程时需要清楚程序实现的每一步细节。
2.(评分标准:前两个知识点各4分)答:在一个类中,用friend声明的非本类函数就是友元函数。
友元函数的作用:可以直接访问本类的私有成员,提高编程的灵活性和程序执行效率。
3.(评分标准:前两个知识点各4分)答:函数重载主要作用是:用同一个函数名可以去调用不同参数或功能的函数,即用同一个函数实现不同的操作。
函数重载时参数个数不同时,不能有缺省参数。
因为:有缺省参数时,就会发生二义性,编译出错。
三、填空题(评分标准:每空2分,共10分,等价写法给满分)(1) Value[Len-i-1](2) i++(3) return 1(4) *pstr++(5) new MyString(5,"12345")四、阅读下面的程序,写出程序运行的结果。
(共26分)1.程序1答:(评分标准:a和c正确分别得3分)5 5 1110 10 212. 程序2(10分,评分标准:前4行每行2分,后2行每行1分)答:程序运行结果为:Win BeginWin BeginWinOpenWinButOpenWin3. 程序3(10分,评分标准:每对一个得1分)答:程序运行结果为:create bed:3create chair:2create bed:3create chair.create recliner.delete recliner.delete chair.delete bed.delete chair.delete bed.五、理解问答题(10分)1.解答:(1):(评分标准:指出错误得1分,改错2分(程序功能上等价也行))标记行5错误,因为在类外不能直接访问对象的受保护的成员。
2007—2008学年第2学期闽江学院面向对象程序设计(C++)考试试卷(A)答案
2007—2008学年第2学期闽江学院考试试卷(A )答案 适用年级专业:2007级电子信息与科学(专升本) 考试形式:笔试 考试课程: 面向对象程序设计 一、选择题 20% (每题1分)1、D2、C3、D4、B5、D6、C7、C8、B9、B 10、C 11、C 12、D 13、C 14、D 15、A 16、B 17、A 18、C二、填空题 20% 1)函数、类 (2%) 2)抽象类 (1%) 3)修改 (1%) 4)传地址 (1%) 5)Student —>Teacher —>Assistance (2%) 6)9 (2%) 7)ptr->SetNum(50); (2%) 8)FileView,ResourceView,ClassView (3%) 9)x+y (2%)10)this->x (2%)11)iostream.h (1%)12)保护(三、看程序回答问题 40% 1) 36 (4%)2) 4 (4%)3)9TU9V (4%,有一个数字与字母就得1分)4)virtual ~Fruit() (2%)strcpy(color,col) (1%)delete []color (1%)Fruit(w, col) (2%)strcpy(variety, var) (1%)delete variety (1%)5)template<typename T> (2%)template<typename T> (1%)template<typename T> (1%) 注:前三项如果只写对1次,就给2分)temp=head; (2%)6)889 (4%,写对第一次值:2%,以后依次1%,1%) 7)2022020 0 (4%,写对第一次值:2%,以后依次1%,1%)8)执行A 的构造函数! (2%)执行B 的构造函数! (1%) 执行B::Func ! (2%)执行A的析构函数!(1%)四、编程题20%1、(10%)(%5)class triangle : public shape{private :float a, b ,c ,s;public:triangle( float s1=0, float s2=0 , float s3=0 ){a=s1;b=s2;c=s3;}float area(){s=(a+b+c)/2;return sqrt(s*(s-a)*(s-b)*(s-c));}};(%5)class rectangle : public shape{private:float w,h;public:rectangle( float width=0, float height=0){w=width;h=height;}float area(){return w*h;}};2、// String的析构函数String::~String(void) //此函数2分{delete [] m_data; // 由于m_data是内部数据类型,也可以写成delete m_data;}// String的普通构造函数String::String(const char *str) //此函数3分{if(str==NULL) //此判断不写也不扣分{m_data = new char[1]; // 若能加NULL 判断则更好*m_data = ‘\0’;}else{int length = strlen(str);m_data = new char[length+1]; // 若能加NULL 判断则更好strcpy(m_data, str);}}// 拷贝构造函数String::String(const String &other) //此函数2分{int length = strlen(other.m_data);m_data = new char[length+1]; // 若能加NULL 判断则更好strcpy(m_data, other.m_data);}// 赋值函数String & String::operate =(const String &other) //此函数3分{if(this == &other) //此判断不写也不扣分return *this;delete [] m_data;int length = strlen(other.m_data);m_data = new char[length+1]; // 若能加NULL 判断则更好strcpy(m_data, other.m_data);return *this;}(评分原则:只有有写对相应的语句,就给分。
(完整版)面向对象程序设计试卷及答案
考试试卷A(答案)面向对象程序设计注意事项:1。
请考生按要求在试卷装订线内填写姓名、学号和年级专业。
2. 请仔细阅读各种题目的回答要求,在规定的位置填写答案。
3。
不要在试卷上乱写乱画,不要在装订线内填写无关的内容.4。
满分100分,考试时间为120分钟。
一。
单项选择(本大题共10小题,每小题3分,共30分)1. C#中每个int类型的变量占用( B )个字节的内存。
(A)8 (B)4 (C)2 (D)12。
面向对象的特点是( A )(A)封装、继承、多态(B)抽象、封装、多态(C)抽象、继承、封装(D)抽象、多态、重载3。
C#控制台程序的主入口点是( C )(A) Page_Load函数(B)Run函数(C)Main函数(D)Form_Load函数4。
引用类型存储在( B )中。
(A)堆栈(B)堆内存(C)队列(D)列表5. 在C#中,表示一个字符串的变量应使用以下哪条语句定义( B )(A)CString str (B)string str(C)Dim str as string (D)char *str6。
在中,用来与数据源建立连接的对象是( A )。
(A)Connection对象(B)Command对象(C)DataAdapter对象(D)DataSet对象7. 在类的定义中,类的( B )描述了该类的对象的行为特征.(A)类名(B)方法(C)所属的名字空间(D)私有域8. 如果未显式赋值,则将整型值( B )赋给枚举中的第一个元素。
(A)1 (B)0 (C)2 (D)39. float类型的值可以隐式转换成( C )类型的值而保持值不被改变。
(A)char (B)long (C)double (D)int10。
在C#中,假设Class1是一个类,而IExample是一个接口,下面的( A )类声明是正确的。
(A)class Employee: Class1, IExample(B )class Employee : IExample , Class1(C )class Employee- Class1, IExample(D )class Employee: Class1/IExample二.判断题(本大题共5小题,每小题3分,共15分)1. C#中子类可以继承多个基类,也可以继承一个接口。
2008级C 面向对象程序设计试题A 计算机学院2009年冬天
指针型变量。 5. 若有语句 A*const p=new A; 那么通过指针 p 只能访问类 A 的常成员函数或静态成员函数。 6. 在基类的成员函数都是虚函数的情况下,该基类也称虚基类。 7. 将一个能够正常执行的程序中所有形如 void f(A&)的函数都改成 void f(const A&)形式,那
7. 下列关于单继承的说法,不正确的是:
(A) 基类的析构函数是虚的,那么派生类的析构函数也一定是虚的
(B) 实例化派生类对象,总会调用到基类的某个构造函数
(C) 无论采用何种继承方式,创建派生类对象时,总是先初始化基类数据成员,再初始化
派生类数据成员
(D) 若要在 main 函数中创建派生类对象,那么派生类的析构函数必须是公有的,基类析构
(A) a
(B) 类 A 中定义的类型为 A 的静态数据成员
(C) *this
(D) 函数 f 中用语句 A& b=a; 定义的量 b
5. 下列关于 C++动态内存管理的说法,正确的是:
(A) 用 new 分配的内存,系统可以自动回收
(B) 用 new 分配内存时,系统不可能产生异常
(C) 语句块 int n=10; char array[n]; 含有语法错误,但语句块 int n=10; char * array=new
1. class A{
2. class A{
5. class A {
int m_ival=0;
const A m_val;
public: A(int n) {}
C++面向对象程序设计清考试卷A
说明:1.试题须用碳素墨水钢笔集中填在方格内,答题纸另附并装订于后,字迹须工整清晰;2.试题须经教研室或系(部)领导认真审核并签署本人代号;3.学生只须在第一页试题纸上填写姓名等
说明:1.试题须用碳素墨水钢笔集中填在方格内,答题纸另附并装订于后,字迹须工整清晰;2.试题须经教研室或系(部)领导认真审核并签署本人代号;3.学生只须在第一页试题纸上填写姓名等
说明:1.试题须用碳素墨水钢笔集中填在方格内,答题纸另附并装订于后,字迹须工整清晰;2.试题须经教研室或系(部)领导认真审核并签署本人代号;3.学生只须在第一页试题纸上填写姓名等
说明:1.试题须用碳素墨水钢笔集中填在方格内,答题纸另附并装订于后,字迹须工整清晰;2.试题须经教研室或系(部)领导认真审核并签署本人代号;3.学生只须在第一页试题纸上填写姓名等。
2008年C++期末试卷-A卷试题及答案
院(系):专业:年级:学生姓名:学号:-------------------------------------------------密----------------------------------封-----------------------------线---------------------------------------------------------第 1 页(共 3 页)------------------------------------------------- 密 ---------------------------------- 封 ----------------------------- 线 ---------------------------------------------------------第 2 页共 3 页------------------------------------------------- 密 ---------------------------------- 封 ----------------------------- 线 ---------------------------------------------------------第 3 页(共 3 页)2007–2008学年第二学期期末考试试卷(A卷)课程名称: 面向对象程序设计课程编号:任课教师:一、单项选择题:(共20题,每小题2分,共40分)1. B 2. C 3. C 4. A 5. A 6. B 7. B 8. C 9. B 10. D 11. C 12. D 13. D 14. B 15. C 16. D 17. B 18. A 19. A 20. A二、填空题:(共10题,每小题1分,共10分)21.true ,false 1 ,0 22.内联函数,编译,执行时间23.this 24.new25.继承26.私有,私有,不可访问27.虚函数28.基类指针或引用三、程序改错题:(共2题,每题5分,共10分)29.【答】【答】错误处标号如下:①///************************************************* 程序文件名: p1_2.cpp **************************************************/#include <iostream>;④using std::endl;⑤void main( )⑥float num1, num2, num3; //定义三个数cin ⑦<< num1 << num2<<num3;cout >> ⑧“The average is:”⑨>> setw(30) ⑩>>(num1+num2+num3)/3>> endl;}①行注释符号//将块注释的头/*注释掉了,使得块注释的尾*/没有相应的头与之匹配;②关键字Using中包含了大写字母,应改为using;③using namespace std不是预处理指令,要以分号结尾;④#include <iostream> 是预处理指令,不能以分号结尾,而且要作为程序的开头行⑤使用了using namespace std,就不必单独使用std::endl;⑥void main() 后少了{;⑦cin应与提取操作符>>连用;⑧cout应与插入操作符<<连用;⑨“The average is:”为全角引号,应改为英文;⑩使用setw(30) 应包含头文件iomanip30.【答】①int a(0),b(0); //错误,数据成员的初始化必须通过构造函数实现改正:int a,b;②A x(2,3), y(4); //错误,对象y的初始化与已定义的构造函数参数表不匹配,可重载一个构造函数对对象y进行初始化。
面向对象程序设计试卷
面向对象程序设计试卷一、选择题(每题2分,共20分)1. 面向对象程序设计中的三大特征是:A. 封装、继承、多态B. 抽象、封装、继承C. 封装、继承、封装D. 继承、多态、封装2. 下列哪个不是面向对象程序设计的优点?A. 代码重用B. 易于维护C. 程序复杂度低D. 可扩展性好3. 在Java中,哪个关键字用于定义类?A. classB. structC. interfaceD. type4. 以下哪个是Java中不允许的类名?A. MyClassB. 2MyClassC. MyClass2D. MyClass_5. 在面向对象程序设计中,以下哪个概念不是用于实现封装?A. 私有成员B. 公有方法C. 访问控制D. 继承6. 下列哪个不是Java的访问控制修饰符?A. publicB. privateC. protectedD. global7. 以下哪个是Java中不允许的方法名?A. myMethodB. _myMethodC. my_methodD. myMethod_8. 在Java中,哪个关键字用于实现继承?A. extendsB. inheritC. deriveD. base9. 以下哪个不是Java的多态性实现方式?A. 接口B. 抽象类C. 重载D. 重写10. 在Java中,哪个关键字用于定义接口?A. interfaceB. protocolC. abstractD. type二、简答题(每题10分,共30分)1. 简述面向对象程序设计中封装的概念,并给出一个封装的简单示例。
2. 解释什么是多态性,并说明多态性在面向对象程序设计中的重要性。
3. 描述继承在面向对象程序设计中的作用,并举例说明如何使用继承来提高代码的复用性。
三、编程题(每题25分,共50分)1. 定义一个名为`Student`的类,包含以下属性:- 姓名(String类型)- 学号(String类型)- 年龄(int类型)并为该类实现以下方法:- 一个构造函数,用于初始化姓名、学号和年龄。
2008-2018(2)面向对象程序设计试卷B
2008-2018(2)面向对象程序设计试卷B杭州电子科技大学学生考试卷()卷注意:答案直接写在答题纸上,答在试卷上无效,考试后答题纸和试卷一同上交一、判断题(对的打“√”,错的打“×”)(每题1分,共计10分)1.编译C++源程序时,出现了警告错(Warning)也可以生成可执行文件。
2.标识符规定大小写字母没有区别。
3.数组中所有元素的类型都是相同的。
4.创建引用时要用一个同类型的变量进行初始化。
5.静态数据成员必须在构造函数的成员初始化列表中进行初始化。
6.常数据成员在常成员函数中的值是不允许改变的,而在非常成员函数中是允许改变的。
7.成员函数与一般函数一样可以重载和设置参数的默认值,但不能设置为内联函数。
8定义对象指针时也要调用构造函数。
9派生类只继承基类中的公有成员和保护成员,而不继承私有成员。
10.静态联编和动态联编都是在编译时进行的,二者的区别仅是前者对非虚函数,后者对虚函数。
二、单项选择题(每题2分,总计20分)1.下列关于类的描述中,错误的是()。
A.类就是C语言中的结构类型B.类是创建对象的模板C.类是抽象数据类型的实现D.类是具有共同行为的若干对象的统一描述体2.下列关于构造函数的描述中,错误的是()。
A.构造函数可以重载B.构造函数名同类名C.带参数的构造函数都具有类型转换作用D.构造函数是系统自动调用的3.下列关于析构函数的描述中,错误的是()。
A.析构函数的函数体都为空B.析构函数是用来释放对象的C.析构函数是系统自动调用的D.析构函数是不能重载的4.下列关于静态成员的描述中,错误的是()。
A.静态成员都是使用static来说明的B.静态成员是属于类的,不是属于某个对象的C.静态成员只可以用类名加作用域运算符来引用,不可用对象引用D.静态数据成员的初始化是在类体外进行的5.下列关于友元函数的描述中,错误的是()。
考试课程面向对象程序设计考试日期年月日成绩课程号教师号任课教师姓名考生姓名学号(8位)年级专业座位号A.友元函数不是成员函数B.友元函数只可访问类的私有成员C.友元函数的调用方法同一般函数D.友元函数可以是另一类中的成员函数6.void Set(A &a);是类A中一个成员函数的说明,其中A &a的含义是()。
计08面向对象程序设计 考试试卷(B卷)
六、编程题(20分)
定义一个教师类teacher,它的私有数据成员有Num(教工号,为int型)、Name(姓名,为string型)、Age(年龄,为int型)、Sex(性别,为char型)。公用成员函数有:GetNum( ),它返回教工号;Display( ),它输出教师的上述基本信息(注意:Display( )函数在类外定义)。教师类的构造函数原型为:teacher(int Num0=1001, string Name0="彭老师", int Age0=30,char Sex0='1')。
10.在VC6.0开发环境中,可以同时开发几个工程。()
二、简答题(每小题8分,共24分)
1.简要说明面向对象的程序设计的四个主要特征。
2.类和结构有什么异同?
3.多态性是指什么?C++中多态性是如何实现的?
三、填空题(每空2分,共10分)
1.根据程序说明和程序中的注释,填充程序中不完整的部分。
类Number的成员函数Factorial是递归函数,功能是求n!(即n的阶乘,假设n>0)。
};
class American : public Person
{
public:
virtual void Speak()
{ cout<<"Speak English."<<endl; }
};
void main()
{
Person*p1, obj;
Chinese c1;
American a1;
p1 = &c1;
面向对象程序设计试题及答案
面向对象程序设计试题及答案一、试题1. 请简要解释面向对象(Object-Oriented)程序设计的概念。
2. 列举面向对象程序设计中的四个基本特征,并分别进行简要描述。
3. 请说明封装(Encapsulation)在面向对象程序设计中的作用和优势。
4. 解释继承(Inheritance)在面向对象程序设计中的概念和用途。
5. 什么是多态(Polymorphism)?请解释多态的概念以及其在面向对象程序设计中的重要性。
6. 简要介绍抽象类(Abstract Class)和接口(Interface)的概念,并说明它们之间的区别。
7. 请解释类(Class)与对象(Object)之间的关系。
8. 在面向对象程序设计中,什么是构造函数(Constructor)?请说明构造函数的作用和使用方法。
9. 请示范一个使用面向对象程序设计的简单实例,并说明你所设计的类的结构和功能。
二、答案1. 面向对象程序设计是一种以对象为中心的编程方法,通过定义表示对象属性和行为的类来组织程序结构,以实现代码的重用性、灵活性和可维护性。
2. (1)封装:将数据和对数据的操作封装在一个类中,通过访问权限控制,保护数据的安全性和完整性。
(2)继承:通过建立类之间的继承关系,实现代码的重用,具有层次性和扩展性。
(3)多态:允许不同类的对象对同一消息作出不同的响应,实现代码的灵活性和扩展性。
(4)抽象:通过抽象类和接口的定义,隐藏对象的具体实现细节,提供统一的接口和规范。
3. 封装的作用是将数据和对数据的操作封装在一个类中,外部无法直接访问类的内部实现细节,只能通过类提供的接口访问和操作数据。
封装的优势包括:(1)提高代码的可维护性和可读性,减少代码的重复。
(2)保护数据的安全性和完整性,防止外部直接对数据进行非法操作。
(3)降低模块之间的耦合度,提高代码的灵活性。
4. 继承是面向对象程序设计中的一个重要概念,它通过建立类与类之间的继承关系,实现代码的重用和扩展。
2008年B试卷
考试课程名称:面向对象程序设计学时: 28+20考试方式:闭卷,笔试------08------B考试内容:一、名词解释(共20分)1.对象2. 重载3. 消息4.析构函数5.浅拷贝二、单选题(共20分)1.下列那一项不是面向对象系统所包含的要素( )。
A重载 B对象 C类 D继承2.在int a=3,*p=&a;中,*p的值是( )。
A变量a的地址值 B无意义 C变量p的地址值 D变量a的值3.下面对模板声明正确的是():A template<T>B template<class T1,T2>C template<class T1,class T2>D template<class T1;class T2>4.以下关于This指针的描述中,错误的是( ):A this指针是指向对象的指针B This指针是在使用对象引用成员函数时系统自动生成的C This指针是指向成员函数的指针D This指针可以在程序中显示使用5.下面有关析构函数的描述正确是( )A.析构函数可以带参数B.析构函数可以有多个C.析构函数在对象被撤消(销毁)之前执行D.析构函数可以为虚函数6.在()情况下适宜采用inline定义内联函数。
A、函数体含有循环语句B、函数代码少、频繁调用C、函数代码多、不常调用D、函数体含有递归语句7.若有int k=7,x=12;则其值为3的表达式为( )A x%=(k%=5)B x%=(k-k%5)C x%=k-k%5D (x%=k)-(k%=5)8.下面引用的定义中,错误的是( )A. int I; int&j; j = I;B. int I=6; int&j = I;C.char d; char &k=d;D.float I; const float &j=I;9.有关类的友元描述错误的是( )A.友元函数可以访问该类的所有成员。
《面向对象程序设计——java》期末考试试题2008A卷
武汉大学计算机学院2008—2009学年度第一学期期末考试《J AVA程序设计》试卷 A专业:___________ 学号:____________ 姓名:_________ 总分:_________一、单项选择题(10小题20分)1、编译和运行下列代码后结果是:( )public class Test {static int total = 10;public static void main (String args [ ] ) {new Test();}public Test () {System.out.println("In test");System.out.println(this);int temp = this.total;if (temp > 5) System.out.println(temp);}}A. 编译器报第2行有错B. 编译器报第9行有错C. 在标准输出上打印的内容中有数字10D. 通过编译,但是产生运行时错误2、下列类分别在不同的文件中定义:( )class Vehicle {public void drive() {System.out.println("Vehicle: drive");}}class Car extends Vehicle {public void drive() {System.out.println("Car: drive");}}public class Test {public static void main (String args []) {Vehicle v; Car c;v = new Vehicle(); c = new Car();v.drive(); c.drive();v = c; v.drive();}}编译和执行类Test后,结果是:()。
A. 在语句v= c;处产生编译时错误B. 在语句v= c;处产生运行时错误C. 输出:Vehicle: driveD. 输出:Vehicle: driveCar: drive Car: driveCar: drive Vehicle: drive3、下列代码中的public void add(int a)方法在add(5)形式调用下产生什么输出?()public class Test {public void add(int a) {loop: for (int i = 1; i < 3; i++) {for (int j = 1; j < 3; j++) {if (a == 5) break loop;System.out.println(i * j);}}}}A. 运行时错误B. 抛出ArrayIndexOutOfBoundsException异常C. 输出:1, 2, 2, 4D. 没有输出4、在JAVA中,类Animal中的方法printA( )定义如下:public void printA( ){int a=10; int result=10%3;System.out.println(result);}在类Dog中方法printA( )定义如下:public void printA( ){int a=10;Systme.out.println(a/3);}Dog类的定义如下:Class Dog extends Animal{…}若有语句:Animal animal=new Dog( );animal.printA( );则这段代码输出为()。
2009年_2008级_面向对象程序设计_考试试题_A
2009-2010学年第1学期期末考试试题(A )卷课程名称 面向对象程序设计 任课教师签名 张俊 吕品 出题教师签名 吕涛 审题教师签名 王邯 考试方式(闭)卷 适用专业 08计算、08计科、08网工 考试时间 ( 120 )分钟注:一、二题答案写在各题前面的表格中,三、四题答案标明题号写在答题纸上。
一.判断题(共10分,每题1分)1. 根据定义int n = 1, &r = n;,则表达式++r, n--的值为1。
2. 在构造类A 的数组A* a[2]时会调用构造函数2次。
3. 执行程序段T a; T b = a;时,需要调用类T 的赋值运算符函数。
4. 析构函数可以声明为类的const 成员函数。
5. 在输出T 类的对象t 时cout << t ,需要把运算符<<定义为类T 的成员函数。
6. 计算函数对象表达式greater<char>()('a', 'b')后,结果为false 。
7. 类B 从类A 公有继承,则程序段A a; B &b = a;会引发编译错误。
8. 类A 中定义有纯虚函数,则函数原型void f(A a);是错误的。
9. 仅设置字宽为4,填充字符为'#',则表达式cout<<-10的输出结果为-#10。
10. istream 类成员函数get 既可以输入单个字符,也可以输入整行字符串。
二.单选题(共30分,每题2分)1. 有函数f 定义如下:int f(int a = 1, int b = 2, int c = 3) { return a + b + c; }下列说法中错误的是()。
A .函数调用f()的结果为6。
B .函数调用f(f(f()))的结果为16。
C .函数调用f(f(), f())的结果为15D .函数调用f(f(), f(f()))的结果为21。
08学年第2学期面向对象分析与设计试卷(B)_答案
华南农业大学期末考试试卷(B卷)2008学年第2学期考试科目:面向对象分析与设计考试类型:(闭卷)考试时间:120 分钟学号姓名年级专业一、单项选择题(每题2分,共30分。
将正确答案填入下表)1.下面关于面向对象方法中消息的叙述,不正确的是()。
BA.键盘、鼠标、通信端口、网络等设备一有变化,就会产生消息。
B.操作系统不断向应用程序发送消息,但应用程序不能向操作系统发送消息。
C.应用程序之间可以相互发送消息。
D.发送与接收消息的通信机制与传统的子程序调用机制不同。
2.面向对象技术中,对象是类的实例。
对象有三种成分:()、属性和方法(或操作)。
AA.标识B.规则C.封装D.消息3~5:在UML提供的图中,可以采用(3)对逻辑数据库模型建模;(4)用于接口、类和协作的行为建模,并强调对象行为的事件顺序;(5)用于系统的功能建模,并强调对象间的控制流。
D、B、CA.用例图B.构件图C.活动图D.类图A.协作图B.状态图C.序列图D.对象图A.状态图B.用例图C.活动图D.类图6.采用面向对象技术开发的应用系统的特点是()。
AA.重用性更强B.运行数度更快C.占用存储量小D.维护更复杂7.继承反映了类间的一种层次关系,而()反映了一种整体与部分的关系。
BA.继承B.组合C.封装D.多态8.下列叙述中正确的是()。
CA.面向对象程序设计语言都不支持过程化的程序设计B.面向对象系统只可采用面向对象设计语言实现C.某些过程化程序设计语言也可实现面向对象系统D.面向对象程序设计语言不支持对成员变量的直接访问9.面向对象的特点主要概括为()。
CA.可分解性、可组合性、可分类性B.继承性、封装性、多态性C.抽象性、继承性、封装性、多态性D.封装性、易维护性、可扩展性、可重用性10.下列关于面向对象方法中描述中错误的是()。
CA.使用设计模式有助于在软件开发中应用面向对象技术B.选择面向对象程序设计语言时需要考虑开发人员对其的熟悉程度C.UML作为一种可视化建模语言需要与RUP开发过程同时使用D.目前在软件生命周期的分析、设计、实现和测试中均可以应用面向对象方法11.在类图中,那个类图中的类Order所生成的代码具有public class Order {public Customer recipient;}的形式?()AA. B.C D.12.关于用例与类的对比中()是错误的。
2008年1月全国自学考试试题面向对象程序设计试卷
全国2008年1月高等教育自学考试面向对象程序设计试题课程代码:02328一、单项选择题(本大题共10小题,每小题2分,共20分)在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。
错选、多选或未选均无分。
1.编写C++程序一般需经过的几个步骤依次是( )A. 编译、编辑、连接、调试B. 编辑、编译、连接、调试C. 编译、调试、编辑、连接D. 编辑、调试、编译、连接2.函数调用func((exp1,exp2),(exp3,exp4,exp5))中所含实参的个数为( )A.1B.2C.4D.53.假定AB为一个类,则执行“AB a(2), b[3], *p[4];”语句时共调用该类构造函数的次数为( )A. 3B. 4C. 5D. 94.假定AB为一个类,px为指向该类的一个含有n个对象的动态数组的指针,则执行“delete []px;”语句时共调用该类析构函数的次数为( )A. 0B. 1C. nD. n+15.如果表达式++a中的“++”是作为成员函数重载的运算符,若采用运算符函数调用格式,则可表示为( )A. a.operator++(1)B. operator++(a)C. operator++(a,1)D. a.operator++()6. 继承机制的作用是( )A. 信息隐藏B. 数据封装C. 定义新类D. 数据抽象7.以下哪个基类中的成员函数表示纯虚函数?( )A. virtual void vf(int)B. void vf(int) = 0C. virtual void vf()=0D. virtual void yf(int){}18.假定一个类的构造函数为“A(int aa, int bb) {a=aa; b=aa*bb;}”,则执行“Ax(4,5);”语句后,x.a和x.b的值分别为( )A. 4和5B. 5和4C. 4和20D. 20和59.一个类的静态数据成员所表示属性( )A. 是类或对象的属性B. 只是对象的属性C. 只是类的属性D. 是类和友元的属性10.一个C++源程序文件的扩展名为( )A. .hB. .cC. .cppD. .cp二、填空题(本大题共10小题,每小题2分,共20分)请在每小题的空格中填上正确答案。
计08面向对象程序设计方案考试参考答案(B卷)
六、编程题(20分,评分标准:写出类和成员函数得12分,编出main()函数得8分,注意:程序的所有等价写法同样给分)
#include <iostream>
#include <fstream>
using namespace std。
class teacher
{
Num = Num0。
Name = Name0。
Age = Байду номын сангаасge0。
Sex = Sex0。
}
void display()。
}。
void teacher::display()
{
cout<<"Num="<<Num<<" Name="<<Name.c_str()<<" Age=" <<Age<<" Sex="<<Sex<<endl。
2.(评分标准:两个知识点各4分)
答:结构是类的一种特例,在结构体中也可以定义成员函数、构造函数和析构函数,成员也可使用private、protected、public。结构和类的区别是:在缺省情况下,结构中的所有成员都是公有的,而在类中是私有的
3.(评分标准:两个知识点各4分)
答:多态性是指:向不同的对象发送同一个消息,不同的对象在接收时会产生不同的行为(即方法)。
答:运行结果为:(评分标准:每对一个得3分)
a=8 c=22
2.程序2(10分,评分标准:每对一个给2分)
答:程序运行结果为:
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
合肥工业大学数学学院信息与计算科学专业2008级《面向对象程序设计B》期终试卷一选择题(30分)每题3.分
1 有关类的说法不正确的是。
A)类是一种用户自定义的数据类型
B)只有类中的成员函数才能存取类中的私有数据
C)在类中,如果不作特别说明,所有的数据均为私有数据
D)在类中,如果不作特别说明,所有的成员函数均为公有类型
2 在c++中,关于下列设置默认参数值的描述中,是正确的。
A)不允许设置默认参数值
B)在指定了默认值的参数右边,不能出现没有指定默认值的参数。
C)只能在函数的定义性声明中指定参数的默认值
D)设置默认参数值时,必须全部都设置。
3 C++中的类有两种用法:一种是类的实例化,即生成类的对象,并参与系统的运行;另一种是通过,派生出新的类。
A)复用B)继承 C )单继承D)多继承
4派生类的对象对它的基类成员中是可以访问的。
A)公有继承的公有成员B)公有继承的私有成员
C)公有继承的保护成员D)私有继承的公有成员
5设置虚基类的目的是。
A)简化程序B)消除二义性
C)提高运行效率D)减少目标代码
6 构造函数是在时被执行的。
A)程序编译B)创建对象C)创建类D)程序装入内存
7 有关运算符重载正确的描述是。
A)c++语言允许在重载运算符时改变运算符的操作数个数
B)c++语言允许在重载运算符时改变运算符的优先级
C)c++语言允许在重载运算符时改变运算符的结合性
D)c++语言允许在重载运算符时改变运算符原来的功能
8 c++能对下列运算符重载的是。
A)+ B) . C) :: D) sizeof
9 在多继承中,公有派生和私有派生对于基类成员在派生中的可访问性和单继承的规则。
A)完全相同B)完全不同C)部分相同,部分不同D)以上都不对
10 下列说明中
const char *ptr;
ptr应该是。
A)指向字符常量的指针B)指向字符的常量指针
C)指向字符串常量的指针D)指向字符串的常量指针
二填空题(10分)每空2分
1 c++中默认main函数的返回类型是,所以在定义main函数时可以不写返回值类型。
2任何类中允许有三种类型的数据成员和成员函数:,,。
3 结构型中的数据成员和成员函数默认类型是,类中的数据成员和成员函数默认类型是。
4 一个类有个析构函数。
5 定义在类内部的函数为类默认状态,在类外部每次调用该函数时,定义的函数代码会在调用函数位置展开。
三阅读程序,写出运行结果(30分)
1) #include "iostream.h"
class csample
{ private:
int i; static int k;
public:
csample( );
void display( ); };
csample::csample( )
{ i=0; k++; }
void csample::display( )
{ cout<<"i="<<i<<",k="<<k<<end; } int csample::k=0;
void main()
{ csample a,b;
a.display( ); b,display( ) ; }
2.) #include <iostream>
using namespace std;
class length
{ int mater;
public:
length(int m)
{mater=m;}
operator double( )
{return(1.0*meter/1000);
}
};
int main()
{ length a(1500);
double m=float(a);
cout<<"m="<<m<<"千米“<<endl; return 0
}
3) #include <iostream>
using namespace std;
class A{
private:
int a;
public:
A( )
{a=0;}
A(int i )
{a=i;}
void print( )
{cout<<a<<",";
}
};
class B:publicA
{
privtae:
int b1,b2;
public:
B( )
{b1=0;b2=0;}
B(int i)
{b1=i;b2=0;}
B(int i,int j,int k):A( i ),b1( j ),b2( k ) {}
void print( )
{A::print();
cout<<b1<<","<<b2<<endl;
}
};
int main()
{ B ob1,ob2(1),ob3(3,6,9);
ob1.print();
ob2.print();
ob3.print();
retrun 0;
}
四编写c++风格的程序(30分)
1 编写一个程序,采用一个类求n!,并输出5!的值。
2 建立类cylinder,cylinder的构造函数被转递了两个double值,分别表示圆柱体的半径和高度。
用类cylingder计算圆柱体的体积,并存储在一个double变量中,在类cylinder中包含一个成员函数vol,用来显示每个cylinder对象的体积。
3 编写一个程序输入3个学生的英语和计算机成绩,并按总分从高到低排序,要求设计一个学生类student,其定义如下:
class student
{ int english,computer,total;
public:
void getscore();//获取一个学生的成绩
void display();//显示一个学生的成绩
void sort (student *);//将若干个学生按总分从高到低排序
}。