面向对像程序设计2004年01月试卷
2004上半年软件设计师考试真题及答案-上午卷
2004上半年软件设计师考试真题及答案-上午卷试题1在面向对象技术中,类属是一种(1) 机制。
一个类属类是关于一组类的一个特性抽象,它强调的是这些类的成员特征中与(2) 的那些局部,而用变元来表示与(3) 的那些局部。
1、A.包含多态B.参数多态C.过载多态D.强制多态2、A.具体对象无关B.具体类型无关C.具体对象相关D.具体类型相关3、A.具体对象无关B.具体类型无关C.具体对象相关D.具体类型相关试题2______的特点是数据构造中元素的存储地址与其关键字之间存在某种映射关系。
4、A.树形存储构造B.链式存储构造C.索引存储构造D.散列存储构造试题3假设循环队列以数组Q[0...m-1]作为其存储构造,变量rear表示循环队列中队尾元素的实际位置,其移动按rear=(rear+1)mod m进展,变量length表示当前循环队列中的元素个数,那么循环队列的队首元素的实际位置是______。
5、A.rear-length B.(rear-length+m)mod mC.(1+rear+m-length)mod m D.m-length试题4一个含有n个顶点和e条边的简单无向图,在其邻接矩阵存储构造中共有______个零元素。
6、A.e B.2e C.n2-e D.n2-2e试题5假设一棵哈夫曼(Huffman)树共有9个顶点,那么其叶子结点的个数为______。
7、A.4 B.5 C.6 D.7试题6假设采用邻接矩阵来存储简单有向图,那么其某一个顶点i的入度等于该矩阵______。
8、A.第i行中值为1的元素个数 B.所有值为1的元素总数C.第i行及第i列中值为1的元素总个数 D.第i列中值为1的元素个数试题7在一棵度为3的树中,假设有2个度为3的结点,有1个度为2的结点,那么有______个度为0的结点。
9、A.4 B.5 C.6 D.7试题8设结点x和y是二叉树中任意的2个结点,在该二叉树的先根遍历序列中,x在y之前,而在其后根遍历序列中,x在y之后,那么x和y的关系是______。
计算机4级 面向对象程序设计 考试试卷(a卷)和 参考答卷
答:(评分标准:每个知识点各2分,不完全正确,适当扣分,等价写法给满分)
构造函数的作用:用于新建对象的初始化工作。
析构函数的作用:需要添加初始化代码时,则需要定义自己的构造函数;
1
2
3
4
5
6
7
8
9
10
C
C
B
D
A
D
C或D
D
A
B
1.下列关于iostream的描述中,错误的是()。
A.它是标准的C++头文件B.它与iostream.h是两个不同文件
C.iostream与iostream.h文件形式不同,但其内容实现是一样的
D.C++标准不再支持iostream.h文件
2.如果Student是学生类,则语句“Student *p,s1, s2[2];”会执行Stuent的构造函数次数是()。
C.virtual voidfun(int)D. virtual void fun(int){}
10.关于const型数据的描述,正确的是()。
A.常对象中不能定义常数据成员B.常成员函数只能引用本类的数据成员
C.指向对象的常指针的值可以重新赋值D.常对象的数据成员不一定是常数据成员
第1页共3页
三、简答题(每小题8分,共24分)
一、判断题,正确的打√,错误的打×(每小题1分,共10分)
(答案填在下表中)
1
2
3
4
5
6
7
8
9
10
√
×
×
√
×
√
×
(完整版)面向对象程序设计试卷及答案
考试试卷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#中子类可以继承多个基类,也可以继承一个接口。
计面向对象程序设计 考试试卷(B卷)参考解答
{public:
五、理解问答题(10 分)
说明:读懂如下程序,回答题后的问题。
#include "iostream.h"
//0 行
class CE {
private:
int a,b。
int getmin() {return (a<b?a:b)。}
public int c。
void SetValue(int x1,int x2,int x3) {
//13 行 //14 行 //15 行 //16 行 //17 行 //18 行 //19 行 //20 行
六、编程题(20 分)
定义一个博士类 doctor,它的私有数据成员有 Num(编号,为 int 型)、Name (姓名,为 string 型)、Age(年龄,为 int 型)、Sex(性别,为 char 型)。公用 成员函数有:GetNum( ),它返回博士编号;Display( ),它输出博士的上述基本信息 (注意:Display( )函数在类外定义)。 博士类的构造函数原型为: doctor(int Num0=1001, string Name0="彭博士", int Age0=30,char Sex0='1')。
{ CE c1, c2。
//21 行
c1.SetValue(1,2,3)。
//22 行
c2.SetValue(3,2,1)。
//23 行
if (c1>c2)
//24 行
cout<<” c1>c2”<<endl。
//25 行
else
//26 行
cout<<” c1<c2”<<endl。 return 0。}
《面向对象程序设计》模拟试卷1
《⾯向对象程序设计》模拟试卷1浙江警官职业学院2013—2014学年第⼀学期期末考试《⾯向对象程序设计》模拟试卷⼀、判断题。
(共10分,每题1分,对的打“√”,错的打“メ”)1、C#程序必须包含⼀个Main⽅法作为程序的⼊⼝点。
(√)2、String类型是引⽤类型。
(√)3、只有Get访问器的属性称为只写属性。
(メ)4、构造函数可以被重载。
(√)5、属性占⽤存储空间。
(メ)6、类中的静态构造函数不能带参数,不能具有可访问性修饰符。
(√)7、⼀个类可以有多个不同名的构造函数。
(メ)8、⼦类将继承⽗类所有的成员。
(√)9、变量在可以作为ref引⽤参数传递之前,可以不赋值。
(メ)10、⼀个类可以实现多个接⼝。
(√)⼆、选择题。
(共20分,每题1分)1、以下C#注释代码,不正确的是( D )。
A、//C#注释代码B、//C#注释代码1//C#注释代码2C、////C#注释代码D、/*C#注释代码*/2、下⾯属于合法的字符串常量的是( B )。
A、@XYZB、"XYZ"C、’XYZ’D、XYZ3、在窗体中,改变label标签的显⽰结果,需修改的属性是(A )。
A、TextB、NameC、TitleD、Index4、当没有定义访问修饰符时,类的成员的默认访问修饰符为( D )。
A、privateB、publicC、protectedD、internal5、执⾏下列语句将产⽣的结果是( B )。
int i=1;if ( i ) Console.WriteLine(true);else Console.WriteLine(false);A、输出1B、输出trueC、输出falseD、编译错误6、以下关于静态⽅法的说法,不正确的是(D )。
A、静态⽅法不对特定实例进⾏操作B、静态⽅法只能直接访问静态成员C、在静态⽅法中引⽤this会导致编译时错误D、静态⽅法通过类的实例来访问7、定义⼀个数组string[] role={“赵灵⼉”,“李逍遥”,“林⽉如”,“杨过”,“⼩龙⼥”},数据中的role[5]指的是( D )。
计科网络专业面向对象程序设计试题
计科网络专业面向对象程序设计试题2004年1月一、单项选择(每小题1分,共13分)1.字符串“a+b=12\n”的长度为( b )。
A.6 B.7C.8 D.92.假定一个二维数组的定义语句为"int a[3][4]={{3,4},{2,8,6}};”,则元素a[2][1]的值为( a )。
A.0 B.4C . 8 D.63.以下正确的描述是( b )。
A.函数的定义可以嵌套,函数的调用不可以嵌套B.函数的定义不可以嵌套,函数的调用可以嵌套C函数的定义和函数的调用均可以嵌套D.函数的定义和函数的调用均不可以嵌套4.设有定义"double array[10];”,则表达式sizeof(array)/sizeof(array[0])的结果为( b )。
A.array数组首地址B.array数组中元素个数C .array数组中每个元素所占的字节数 D. array数组占的总字节数5.要使p指向动态空间中的包含30个整数单元的数组使用的定义语句为( a )。
A.int*p=new int[30] B.int*p=new int(30);C. int*p=new[30];D.*p=new int[30];6.软件产品与其他软件产品组合成一个整体的难易程度叫做软件的( c )。
A.可维护性B.可复用性C. 兼容性D. 正确性7.在多文件结构的程序中,通常把类的定义单独存放于( d )中。
A.主文件B.实现文件C.库文件D.头文件8.在一个用数组实现的队列类中,假定数组长度为MS,队首元素位置为first,队列长度为length,则队首的后一个位置为( b )。
A.first+l B.(first+1)%MSC.(first-1)%MS D,(first+length)%MS9.假定一个类的构造函数为“A(int aa=1,int bb=0){a=aa;b=bb;}”,则执行“A x(4);”语句后,x.a和x.b的值分别为( d )。
2003级C++面向对象程序设计试题B-计算机学院2004年冬天
一、[25分,每小题5分] 指明下列各程序中存在的不符合C++语言规范之处(每三、[20分,每题4分] 判断下列的论述是否正确(回答:正确或错误),对于你认为错误的论述,说明你判断的理由(可以举反例)。
1.假设类D以public继承方式继承了类B,f是子类D中定义的一个非静态成员函数,在包括B在内的任何一个D的祖先类中没有关于f的定义。
那么,无论f如何实现,对于在main函数中用子类D说明产生的对象d来说,它在执行f时,永远不会直接或间接地访问到(它所拥有的)在类B中以private 形式说明的数据成员。
2.类A有一个非静态的成员函数f,其函数原型是:void A::f( ) const,则该函数被调用时,一定是通过类A或类A的某后裔类的一个用const修饰符说明的常量对象调用的。
3.类A有一个非静态的成员函数f,若其函数原型是:void A::f(const int& anInt),那么,该函数被调用时,形式参数anInt是实际参数的引用,不需要为它分配空间,并且在执行过程中,不会改变实际参数的数值。
若把f的函数原型改变为:void A::f(int anInt),则形式参数anInt是实际参数的一个拷贝,该函数被调用时,需要为anInt分配空间,并用实际参数为它初始化。
如果不考虑是否需要为参数anInt分配空间,并且,在f的函数体内没有对参数anInt 进行任何数值改变的语句,则用这两种方式定义的函数f的作用是一样的。
4.若类A的所有构造函数、析构函数、赋值运算用protected访问权限进行修饰,并且,类A中没有任何用static修饰的成员函数,那么,类A不能产生任何对象,进而可以得出结论:定义并实现类A对编写一个需要产生对象的程序来说,没有任何用处,定义并实现类A的代码是冗余代码。
5.对一个类来说,赋值运算是一个很基本,也很重要的操作,因此,定义一个类时,即使程序员不为它定义并实现赋值运算,编译器也会为该类自动产生一个。
2004级C++面向对象程序设计试题A参考答案
{ hitpoint-=harm; if(hitpoint<0) hitpoint=0; } int GetHP() const {return hitpoint;} int GetDemage() const {return demage;} int GetDefense() const {return defense;} protected: int hitpoint; int demage; int defense; }; bool Monster::fight(Monster & other) { while(true) { attack(other); if(other.GetHP()<=0) return true; other.attack(*this); if(hitpoint<=0) return false; } }
一、单选题(共 10 分,每题 1 分) 1. 已知 f1 和 f2 是同一类中的两个成员函数,若 f1 的实现代码体内不能调用 f2,则最可能 的情况是: (本题有点问题,D 的情况也可能出现,如 f1 是常成员函数,而 f2 不是) (A) f1 和 f2 都是静态函数 (B) f1 是静态的,f2 不是 (C) f1 不是静态的,f2 是静态的 (D) f1 和 f2 都不是静态函数 2. 一个对象所占的内存空间中可以保存下面哪类数据? (A) 静态数据成员 (B) 内联函数代码 (C) 所有成员函数的入口地址 (D) 虚函数表的入口地址 3.下面关于 new 和 delete 操作符的说法,哪个是不正确的: (A) 使用 new 操作符,可以动态分配全局堆中的内存资源。 (B) 用 new 申请的数组,必须用 delete[] 释放。 (C) 用 new 申请的空间,即使不调用 delete 释放掉,当程序结束时也会自动释放掉。 (D) 执行语句 A * p=new A[100];时,类 A 的构造函数会被调用 100 次。 4. 下列哪种函数可以是虚函数: (A) 自定义的构造函数 (B) 拷贝构造函数 (C) 静态成员函数 (D) 析构函数 5.C++的最小编译单位是: (A) 工程中每个.cpp 和.h 文件 (B) 工程中每个.cpp 文件 (C) 工程中每个.h 文件 (D) 工程中所有文件 6.下面表达式中不可能作为左值(赋值运算符左侧)的是: (A) a=b (B) *p (C) f(a,b) (D) &a 7.在实现函数 A& f(A & obj) 时,下面的哪一个表达式可以出现在 return 语句中? (A) new A( ) (B) obj (C) &obj (D) new A(obj) 8.判断类 A 的两个对象 a1 与 a2 是否是同一个对象的方法是: (A) 利用调试器,查看 a1 与 a2 各成员数据的值是否相等 (B) 重载 == 运算符,用它来判断各成员数据的值是否相等。 (C) 判断这两个对象的地址值是否相等。 (D) 比较创建时使用的构造函数的实参是否相同。 9.已知 obj 是一个对象,下面哪一个表达式是不可能出现的? (A) obj.100 (B) !obj (C) obj++ (D) obj,100
面向对象程序设计试卷及答案
面向对象程序设计试卷及答案.)答案考试试卷A(面向对象程序设计注意事项:请考生按要求在试卷装订线内填写姓名、学号1.和年级专业。
请仔细阅读各种题目的回答要求,在规定的位2.置填写答案。
不要在试卷上乱写乱画,不要在装订线内填写3.无关的内容。
分钟。
100分,考试时间为1204. 满统分得单项选择一.分分,共小题,每小题3(本大题共10 评分) 30分人) B 中每个int类型的变量占用(1. C# 个字节的内存。
)C (( B)4 8 (A)1 )(D 2) A 2. 面向对象的特点是(态装封、继承、多(A)(B)抽象、封装、多态封继承、(C )抽装象、)抽象、多态、重载(D 3. C#控制台程序的主入口点是() C)C Run Page_Load(A)函数(B)函数( Main函数函数)(DForm_Load引用类型存储在()中。
B 4.))(堆内存B 堆栈)(A () 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)23)(D)类型类型的值可以隐式转换成(9. float C的值而保持值不被改变。
double )C( long )B( char )A(int )D(是IExample而,是一个类Class1假设,中在C#10.A 下面的(,一个接口)类声明是正确的。
class Employee: Class1, IExample )A(.class Employee: IExample, Class1 B)(class Employee- Class1, IExample )(Cclass Employee: Class1/IExample )(D得.判断题二分15共每小题小题,3分,(本大题共5 评)分分中子类可以继承多个基类,也可以1. C人)×继承一个接口。
历年考试题-2003级C++面向对象程序设计试题A-计算机学院2004年冬天
《C++面向对象程序设计》试题(A卷)(满分:100分时间:150分钟日期:2005.1.10)一、(共20分,每题2分)单项选择1.已定义了一个类A并有语句A* pa=new A(5); 那么以下说法正确的是:A. 该语句会创建A类的一个对象,并将此对象的地址赋给指针pa;B. 该语句会创建A类的5个对象,且它们的地址是连续的;C. 当指针变量pa超出其作用域时,pa和为对象分配的空间都将被自动释放;D. 类A中一定有一个显式定义的构造函数和一个显式定义的虚析构函数;2.定义类A的非静态成员函数A& f(A& one)时,需有语句return exp;则exp不能是:A.类A中类型为A的静态数据成员B. f中用语句A a = one; 定义的量aC. oneD. *this3.在一个类中,下列哪些成员可以是多个?A. 无参构造函数B. 析构函数C. 原型相同的非静态成员函数D. 静态成员函数4.对类T中的下列成员,若不考虑代码优化,一般来说它们中的哪个执行起来最慢?A. 缺省的无参构造函数B. 缺省的拷贝构造函数C. T f( ) { T t; return t; }D. 不能判定A、B、C哪个最慢5.对函数原型为int& min(int& a, int& b);的全局函数,下列语句块哪个是错误的:A. int x=10,y=5; min(x,y)=100;B. int x=10,y=5, z; z=min(x,y+=x);C. int x=10,y=5; min(x,10)=y;D. int x=10,y=5; x=min(x,y);6.关于拷贝构造函数错误的说法有:A. 拷贝构造函数是一种特殊的构造函数,且不能在类中进行函数重载。
B. 若自定义派生类的拷贝构造函数,那么也必须自定义基类的拷贝构造函数。
C. 拷贝构造函数只能有一个参数,且为常量引用或非常量引用。
03~04面向对象程序设计期末试卷B
6
得分
评卷人
三、
综合题(共 40 分)
装
订
1.在下面的程序中带标号的空白处填写正确的标识符或表达式,以便满足 main() 中的调用需要。 (本题共 7 分,每空 1 分) #include <iostream.h> class Complex { private: double real, imag; public: Complex(double r = 0, double i = 0); Complex operator+(const Complex &c) ② ①; ③);
答
题
3
是错误的。 6.下列引用的定义中, A. int i; B. int i; C. float i; int &j=i; int &j; int j=i;
D. char d; float &j=i;
char &k=d;
是错误的。 7.下列关于重载函数在调用时选择的依据中, A. 参数个数 B. 参数类型 C. 函数名字 D. 函数类型 8. 要求通过函数来实现一种不太复杂的功能, 并且要求加快执行速度, 选用 A. 内联函数 B. 重载函数 C. 递归函数 D. 嵌套调用 9. A. B. C. D. 不是构造函数的特性。 构造函数的函数名与类名相同 构造函数可以重载 构造函数可以设置默认参数 构造函数可以指定类型说明 。
。 。
的另一种特殊形式,在 在一个派生类中重新定义基类的虚函数是 派生类中重新定义此虚函数时,要求 、 、 、 和 都必须与基类中原型完全相同。 。这两种派生的区别在于产生派生类 是否已经被 。
13 类模板可以派生 和 时,作为基类的类模板的 14
计面向对象程序设计考试试卷(A卷)参考解答
姓名
2. 程序 2(10 分) #include <iostream.h> //Toy-car class CToy { public: CToy( ) { cout<<"Create CToy."<<endl;} CToy(char color) {cout<<"Create CToy:"<<color<<endl;} ~CToy( ) {cout<<"delete CToy."<<endl; } }; class CCar { public: CCar(int Tire=4) {cout<<"create CCar:"<<Tire<<endl;} ~CCar( ){cout<<"delete CCar."<<endl; } }; class CToy_Car:public CToy,public CCar { public: CToy_Car(int p ):member(), CCar(p ),CToy() {cout<<"create CToy_Car."<<endl;} ~CToy_Car( ){cout<<"delete CToy_Car."<<endl; private: CToy member; }; void main( ) { CToy_Car toyc(4); }
6.在定义二维数组时,语句“int Sum[][2]={{1,2},{3},{}}; ”是正确地.(
9. 在编程中,有了面向对象地程序设计方法后,就不要用面向过程地程序设计方法了. ( 10. 类中地静态成员数据为该类地所有成员所共享,在初始化后,它地值不能被修改.(
2004年上半年软考程序员考试上午真题
(每题1分,共75题)回答 1~3 题:面向对象程序设计以__(1)__为基本的逻辑构件,用__(2)__来描述具有共同特征的一组对象;以__(3)__为共享机制,共享类中的方法和数据。
第1题:(1)A.模块B.对象C.结构D.类【正确答案】:B第2题:(2)A.类型B.抽象C.类D.数组【正确答案】:D第3题:(3)A.引用B.数据成员C.成员函数D.继承【正确答案】:A第4题:链表不具备的特点是__(4)__。
A.可随机访问任何一个元素B.插入、删除操作不需要移动元素C.无需事先估计存储空间大小D.所需存储空间与线性表长度成正比【正确答案】:D第5题:对矩阵压缩存储的主要目的是__(5)__。
A.方便运算B.节省存储空间C.降低计算复杂度D.提高运算速度【正确答案】:A第6题:判断“链式队列为空”的条件是__(6)__(front为头指针,rear为尾指针)。
A.front==NULLB.rear==NULLC.front==rearD.front!=rear【正确答案】:C第7题:以下关于字符串的判定语句中正确的是__(7)__。
A.字符串是一种特殊的线性表B.串的长度必须大于零C.字符串不属于线性表的一种D.空格字符组成的串就是空串【正确答案】:B第8题:在具有100个结点的树中,其边的数目为__(8)__。
A.101B.100C.99D.98【正确答案】:C第9题:程序设计语言的定义一般应包 __(9)__几个方面。
A.语法、语义和语句B.语法、语义和语用C.语义、语句和语用D.语法、语用和语句【正确答案】:A第10题:在C语言中,若函数调用时实参是数组名,则传递给对应形参的是__(10)__。
A.数组空间的首地址B.数组的第一个元素值C.数组中元素的个数D.数组中所有的元素【正确答案】:B回答 11~12 题:在下面的程序中,若实参a与形参x以引用调用(callbyreference)的方式传递信息,则输出结果为__(11)__;若实参a与形参x以值调用(callbyvalue)的方式传递信息,那么输出结果为__(12)__。
面向对象程序设计-试卷[附参考答案]
《面向对象程序设计》试卷第一学期“本科”期末考试计算机专业面向对象程序设计试题一、单项选择题(每小题1分,共20分)1.由C++源程序文件编译而成的目标文件的默认扩展名为(C)。
A.cppB.exeC.objD.lik2.设x和y均为bool量,则x&&y为真的条件是(A)。
A. 它们均为真B.其中一个为真C. 它们均为假D. 其中一个为假3.在下面的二维数组定义中,正确的语句是(C)。
A.int a[5][];B.int a[][5];C.int a[][3]={{1,3,5},{2}};D.int a[][10];4.在文件包含命令中,被包含文件的扩展名(C)。
A.必须是 .h;B.不能是 .h;C.可以是 .h或 .cpp;D.必须是 .cpp;5.要使语句“p=new int[10][20]”正确,p应事先定义为(D)。
A.int *p;B.int **p;C.int *p[20];D.int (*p)[20];6.在关键字public后定义的成员为该类的(B)成员。
A.私有B. 公有C.保护D.任何7.假定AA为一个类,a为该类私有的数据成员,若要在该类的一个成员函数中访问它,则书写格式最好为(B)。
A.aB.AA::aC.a( )D. AA::a( )8.队列具有(A)的操作特性。
A.先进先出B.先进后出C.进出无序D.仅进不出9.假定AB为一个类,则执行“AB a,b(3),*p”语句时共调用该类构造函数的次数为(D)。
A. 5B. 4C. 3D. 210.在重载一个运算符时,其参数表中没有任何参数,这表明该运算符是(B)。
A. 作为友元函数重载的1元运算符B. 作为成员函数重载的1元运算符C. 作为友元函数重载的2元运算符D. 作为成员函数重载的2元运算符二、填空题(每空2分,共20分)1.当执行cout语句输出endl数据项时,将使C++显示输出屏幕上的光标从当前位置移动到下一行的开始位置。
面向对象程序设计-试卷-A(附答案)
面向对象程序设计-试卷-A(附答案)本页仅作为文档页封面,使用时可以删除This document is for reference only-rar21year.March2012 --2013学年第二学期《面向对象程序设计》试卷开课单位:计算机学院,考试形式:闭卷,允许带入场对应的答题表格中)1、在类定义的外部,可以被访问的成员有()A、所有类成员B、private的类成员C、public或private的类成员D、public的类成员2、下列关于C++语言类的描述中错误的是( ) 。
A 、类用于描述事物的属性和对事物的操作B、类与类之间通过封装而具有明确的独立性C、类与类之间必须是平等的关系,而不能组成层次结构D、类与类之间可以通过一些方法进行通信和联络3、下列数组定义中,不正确的是()。
A、 int x[1][3];B、 int x[2][2]={1,2,3};C、 int x[2][]={1,2,3,4 };D、 int x[][2]={1,2,3,4 }4、定义析构函数时,应该注意:()A、其名与类名完全相同B、返回类型是void类型C、无形参,也不可重载D、函数体中必须有delete语句5、下列函数中,正确的递归函数是()。
A 、int Fun(int n){ if(n<1) return 1; else return n*Fun(n+1); }B 、int Fun(int n){ if (abs(n)<1) return 1; else return n*Fun(n/2); }C 、int Fun(int n){ if(n>1) return 1; else return n*Fun(n*2); }D、 int Fun(int n){ if(n>1) return 1; else return n*Fun(n-1); }6、在C++中编译器所生成的文件的扩展名为()[答案修改过]A、 .cppB、 .objC、 .libD、 .exe7、派生类的对象对它的基类成员中的()是可以访问A、公有继承的公有成员B、公有继承的私有成员C、公有继承的保护成员D、私有继承的公有成员8. C++设置虚基类的目的是( )A、消除二义性B、简化程序C、提高运行效率D、减少目标代码9. 以下关于this指针的叙述中正确的是:()A、任何与类相关的函数都有this指针;B、类的成员函数都有this指针;C、类的友员函数都有this指针;D、类的非静态成员函数才有this指针;10实现运行时的多态性采用( )A、重载函数B、构造函数C、析构函数D、虚函数11、若有int a[10]={0,1,2,3,4,5,6,7,8,9},*p=&a[5];则( ) 不是对a数组元素的正确引用(其中0≤i<10)A、p[i]B、 *(*(p+i) )C、a[p-a]D、* (&a[i])12、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);13、局部变量可以隐藏全局变量,那么在有同名全局变量和局部变量的情形时,可以用()提供对全局变量的访问。
面向对象程序设计(附答案)(DOC)
《面向对象程序设计》试卷 第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];时,调用了()次构造函数。
计算机水平考试初级程序员2004年上半年上午真题
计算机水平考试初级程序员2004年上半年上午真题(总分:75.00,做题时间:150分钟)面向对象程序设计以(1)为基本的逻辑构件,用(2)来描述具有共同特征的一组对象;以(3)为共享机制,共享类中的方法和数据。
(分数:3.00)A.模块B.对象√C.结构D.类解析:面向对象的程序设计是通过为对象(数据和代码)建立分块的内存区域,以便提供对程序进行模块化设计的一种程序设计方法。
它是通过类来描述一组具有相同属性和相同操作的对象集合,并以继承作为类的层次,关联不同的类共享属性和操作的一种机制。
A.类型B.抽象C.类√D.数组解析:A.引用B.数据成员C.成员函数D.继承√解析:1.链表不具备的特点是()。
(分数:1.00)A.可随机访问任何一个元素√B.插入、删除操作不需要移动元素C.无需事先估计存储空间大小D.所需存储空间与线性表长度成正比解析:链接方式存储的线性表简称链表(linked list)。
链表的具体存储表示为: (1)用一组任意的存储单元来存放线性表的结点(这组存储单元既可以是连续的,也可以是不连续的)。
(2)链表中结点的逻辑次序和物理次序不一定相同。
为了能正确表示结点间的逻辑关系,在存储每个结点值的同时,还必须存储指示其后继结点的地址(或位置)信息(称为指针(pointer)或链(link))。
与顺序存储结构相比,链表的缺点主要有2个: (1)每个元素增加了一个后继指针成分,要占用更多的存储空间。
(2)不便于随机地直接访问线性表的任一结点。
2.对矩阵压缩存储的主要目的是()。
(分数:1.00)A.方便运算B.节省存储空间√C.降低计算复杂度D.提高运算速度解析:所谓矩阵的压缩存储,就是为多个相同的非零元素只分配一个存储空间,对零元素不分配存储空间的矩阵元素存储方法。
这样可以节省大量的内存空间。
3.判断“链式队列为空”的条件是()(front 为头指针,rear 为尾指针)。
(分数:1.00)A.front==NULLB.rear==NULLC.front==rear √D.front!=rear解析:用链表作为队列的存储结构时称为链式队列(链表)。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
浙江省2004年1月高等教育自学考试面向对象程序设计试题课程代码:02328一、单项选择题(在每小题的四个备选答案中,选出一个正确答案,并将正确答案的序号填在题干的括号内。
每小题2分,共40分)1.在( )情况下适宜采用inline定义内联函数。
A.函数体含有循环语句B.函数体含有递归语句C.函数代码少、频繁调用D.函数代码多、不常调用2.在类中说明的成员可以使用关键字( )进行修饰。
A. privateB. externC. autoD. register3.如果类A被说明成类B的友元,则( )。
A.类A的成员即类B的成员B.类B的成员即类A的成员C.类A的成员函数不得访问类B的成员D.类B不一定是类A的友元4.定义析构函数时,应该注意( )。
A.其名与类名完全相同B.返回类型是void类型C.无形参,也不可重载D.函数体中必须有delete语句5.在类中声明转换函数时不能指定( )。
A.参数B.访问权限C.操作D.标识符6.在派生类中重新定义虚函数时必须在( )方面与基类保持一致。
A.参数类型B.参数名字C.操作内容D.赋值7.在公有继承的情况下,基类成员在派生类中的访问权限( )。
A.受限制B.保持不变C.受保护D.不受保护8.通过( )调用虚函数时,采用动态束定。
A.对象指针B.对象名C.成员名限定D.派生类名9.在int a=3,*p=&a;中,*p的值是( )。
A.变量a的地址值B.无意义C.变量p的地址值D. 310.C++类体系中,不能被派生类继承的有( )。
A.转换函数B.构造函数02328# 面向对象程序设计试题第1 页共6页C.虚函数D.静态成员函数11.假定一个类的构造函数为A(int aa,int bb){a=aa++;b=a*bb++;},则执行Ax(4,5);语句后,x.a 和x.b的值分别为( )。
A. 4和5B. 5和4C. 4和20D. 20和512.假定AB为一个类,则执行AB x;语句时将自动调用该类的( )。
A.有参构造函数B.无参构造函数C.拷贝构造函数D.赋值构造函数13.C++语言建立类族是通过( )。
A.类的嵌套B.类的继承C.虚函数D.抽象类14.执行语句序列ofstream outf(“SALARY.DA T”);if(...)cout<<“成功”;else cout<<“失败”;后,如文件打开成功,显示”成功”,否则显示”失败”.由此可知,上面if语句的条件表达式是( )。
A. !outf或者outf.fail()B.!outf或者outf.good()C. outf或者outf.fail()D. outf或者outf.good()15.静态成员函数不能说明为( )。
A.整型函数B.浮点函数C.虚函数D.字符型函数16.在C++中,数据封装要解决的问题是( )。
A.数据规范化排列B.数据高速转换C.避免数据丢失D.保证数据完整性17.在C++中有以下4条语句:static int hot=200;int &rad=hot;hot=hot+100;cout<<rad<<endl;执行这4条语句后输出为:( )。
A. 0B. 100C. 300D. 20018.如果class类中的所有成员在定义时都没有使用关键字pubilc,private,protected,则所有成员缺省定义为:( )。
A. publicB. protectedC. privateD. static19.C++设置虚基类的目的是( )。
A.消除二义性B.简化程序C.提高运行效率D.减少目标代码20.实现运行时的多态性用( )。
A.重载函数B.构造函数C.析构函数D.虚函数02328# 面向对象程序设计试题第2 页共6页二、填空题(每空2分,共20分)1.派生类可以定义其________中不具备的数据和操作。
2.当建立一个新对象时,程序自动调用________。
3.定义________函数时,应在参数个数或参数类型上有所不同。
4.类是用户定义的类型,具有________称作对象。
5.使用指向对象的指针来标识类的成员,则必须使用的运算符是________。
6.拷贝初始化构造函数使用________来初始化创建中的对象。
7.在一个类中可以对一个操作符进行________重载。
8.在C++中有二种参数传递方式:________。
9.多态性通过________来实现的。
10.使用空的虚函数可以保证基类到派生类建立起一条________,使派生类通过虚函数机制正确存取虚函数。
三、完成程序题(每小题5分,共20分)1.在下面程序的底画线处填上适当的字句,使该程序执行结果为10。
#include <iostream.h>class base{int X;public:________∥为X置值________∥取X值};void main(){ base test;test.init(3);cout<<test.Getnum();}2.在下列程序的底画线处填上适当的字句,完成类中成员函数的定义。
#include <iostream.h>class box{ private∶int color;int upx,upy;int lowx,lowy;public:friend int same-color(line a,box b);________ set-color(int c){color=c;}void define-box(int x1,int y1,int x2,int y2){upx=x1;upy=y1;}};class line{ private:int color;int startx,starty;int len;02328# 面向对象程序设计试题第3 页共6页public:friend-int same-color(line a,box b);________set-color(int c){color=c;}void define-line(int x,int y){startx=x;}};int same-color(line a,box b){if(a.color= =b.color)return 1;return 0;}3.在下面程序的底画线处填上适当的字句,完成程序。
#include <iostream.h>class A{public∶void f(int i){cout<<i<<endl;}void g(){cout<<”\n”;}};class ________{public∶void h(){cout<<”h\n”;}A∶∶f;};void main(){ B d1;d1.f(6);________.h();}4.在下列程序的空格处填上适当的字句,使输出为:0,7,5。
#include <iostream.h>#include <math.h>class Magic{double x;02328# 面向对象程序设计试题第4 页共6页public∶________(double d=0.00)∶x(fabs(d)){}Magic operator+(Magic c){return Magic(sqrt(x*x+c.x*c.x));}friend ostream & operator<<(ostream & os,Magic c){return os<<c.x;} };void main(){________;cout<<ma<<’,’<<Magic(-7)<<’,’<<ma+Magic(3)+Magic(4);}四、综合应用题(共20分)1.分析下列程序可能的输出结果。
(满分8分)#include <iostream.h>class base{public∶virtual int func() {return 10;}};class derived∶public base{public∶int func() {return 200;}};void main(){derived d;base & b=d;cout<<b.func()<<endl;cout<<base∶∶func()<<endl;}02328# 面向对象程序设计试题第5 页共6页2.下列shape类是一个表示形状的抽象类,area()为求图形面积的函数,total()则是一个通用的用以求不同形状的图形面积总和的函数。
请从shape类派生三角形类(triangle)、矩形类(rectangle),并给出具体的求面积函数。
给出shape,total的定义如下所示。
(满分12分) class shape{public∶virtual float area()=0};float total(shape *s[],int n){float sum=0.0;for(int i=0;i<n;i++)sum+=s[i]->area();return sum;}02328# 面向对象程序设计试题第6 页共6页。