自学考试面向对象程序设计试题一
10月全国面向对象程序设计自考试题及答案解析
全国2019年10月高等教育自学考试面向对象程序设计试题课程代码:02328一、单项选择题(本大题共10小题,每小题2分,共20分)在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。
错选、多选或未选均无分。
1.下列特性中,C与C++共有的是( )A.继承B.封装C.多态性D.函数定义不能嵌套2.通常情况下,函数模板中的类型参数个数不能..是( )A.0B.2C.4D.33.在下列成对的表达式中,运算符“+”的意义不相同...的一对是( )A.5.0+2.0和5.0+2B.5.0+2.0和5+2.0C.5.0+2.0和5+2D.5+2.0和5.0+24.类的指针成员的初始化是通过函数完成的,这个函数通常是( )A.析构函数B.构造函数C.其它成员函数D.友元函数5.要禁止修改指针p本身,又要禁止修改p所指向的数据,这样的指针应定义为( )A.const char *p=“ABCD”;B.char const *p=“ABCD”;C.char *const p=“ABCD”;D.const char * const p=“ABCD”;6.静态成员函数没有..( )A.返回值B.this指针C.指针参数D.返回类型7.当一个类的某个函数被说明为virtual时,该函数在该类的所有派生类中( )A.都是虚函数B.只有被重新说明时才是虚函数C.只有被重新说明为virtual时才是虚函数D.都不是虚函数8.下面叙述不正确...的是( )A.派生类一般都用公有派生B.对基类成员的访问必须是无二义性的C.赋值兼容规则也适用于多重继承的组合D.基类的公有成员在派生类中仍然是公有的19.在C++中实现封装是借助于( )A.枚举B.类C.数组D.函数10.所有在函数中定义的变量,都是( )A.全局变量B.局部变量C.静态变量D.寄存器变量二、填空题(本大题共10小题,每小题2分,共20分)不写解答过程,将正确的答案写在每小题的空格内。
面向对象程序设计试卷及答案
面向对象程序设计试卷及答案.)答案考试试卷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人)×继承一个接口。
面向对象程序设计-试卷[附参考答案]
《面向对象程序设计》试卷第一学期“本科”期末考试计算机专业面向对象程序设计试题一、单项选择题(每小题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++显示输出屏幕上的光标从当前位置移动到下一行的开始位置。
面向对象程序设计考试模拟题含参考答案
面向对象程序设计考试模拟题含参考答案一、单选题(共50题,每题1分,共50分)1、下列数据结构中,哪一个是ArrayList类的底层实现()A、数组结构B、链表结构C、哈希表结构D、红黑树结构正确答案:A答案解析:ArrayList的底层是数组实现的。
2、Java属于以下哪种语言()A、机器语言B、汇编语言C、高级语言D、以上都不对正确答案:C答案解析:Java是一门高级编程语言。
3、下面关于path和classpath的说法中,错误的是()A、path用来指定java虚拟机(JVM)所在的目录B、classpath用来指定我们自己所写的或要用到的类文件(.jar文件)所在的目录C、在dos命令行中,classpath和path环境变量的查看与配置的方式不相同D、只要设置了classpath这个环境变量系统就不会再在当前目录下查询某个类正确答案:C答案解析:classpath和path环境变量的查看与配置的方式完全相同,都是通过 set关键字实现的。
4、若double val = Math.ceil(-11.9);,则val的值是()A、11.9B、-11.0C、-11.5D、-12.0正确答案:B答案解析:ceil是天花板的意思,表示向上取值,永远是得到大于参数的最小整数。
5、下列集合中,不属于Collection接口的子类的是()A、ArrayListB、LinkedListC、TreeSetD、Properties正确答案:D答案解析:Properties集合属于Map集合的子类。
6、下列关于类与对象的说法中,错误的是()A、类是对某一类事物的抽象描述,而对象则是该类事物的个体。
B、对象是类的实例化。
C、类用于描述多个对象的共同特征,它是对象的模板。
D、类与对象没有什么实际关系。
正确答案:D答案解析:对象是通过类来创建的。
7、下列关于List接口的描述中,错误的是()A、List接口继承自Collection接口,是单列集合。
面向对象程序设计试题及答案
面向对象程序设计试题及答案一、试题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. 继承是面向对象程序设计中的一个重要概念,它通过建立类与类之间的继承关系,实现代码的重用和扩展。
(完整版)面向对象程序设计试卷及答案
考试试卷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.聚合表示部分和整体的生命周期可以不同
C.组合是一种强关系
D.聚合是一种弱关系
14.以下哪些操作符可以用于对象的比较?()
A. ==
B. !=
C. equals()
D. compareTo()
15.以下哪些说法关于静态变量和静态方法是正确的?()
A.静态变量属于类,所有实例共享
1.以下哪些是面向对象程序设计的基本原则?()
A.抽象
B.封装
C.继承
D.多态
2.在面向对象程序设计中,类和对象的关系是()
A.类是对象的抽象
B.对象是类的实例
C.类和对象是同一概念
D.类和对象没有关系
3.以下哪些是类的成员?()
A.属性
B.方法
C.构造函数
D.运算符
4.关于继承,以下哪些说法是正确的?()
11.关于抽象类,以下哪些说法是正确的?()
A.抽象类不能被实例化
B.抽象类可以包含抽象方法
C.抽象类可以包含具体实现的方法
D.抽象类只能被继承
12.以下哪些是Java中的访问控制符?()
A. public
B. private
C. protected
D. default
13.以下哪些说法关于组合和聚合是正确的?()
D. super
8.以下哪个方法可以用来隐藏父类的同名方法?()
A. overload
B. override
C. inherit
D. hide
9.以下哪个关键字用于调用父类的构造方法?()
A. this
B. super
C. new
D. extends
自学考试面向对象程序设计试题以及答案
一、选择题1、程序设计中,首先在问题域中识别出若干个()A.函数B.类C.文件D.过程2、定义类模板用关键字()A.constB.newC.deleteD.template3、运算结果类型相同的()A. 9.0/2.0 9.0/2B. 9/2.0 9/2C. 9.0/2 9/2D. 9/2 9.0/2.04、已知f1 f2同一类两个成员函数,但f1不能调用f2,说明()a.f1 f2都是静态函数b.f1是静态,f2不是c.f1不是,f2是静态d.f1 f2都不是静态函数5、调用一成员函数时,使用动态联编的情况是()A.通过对象调用一虚函数B.通过指针或引用调用一虚函数C.通过对象调用静态函数D.通过指针或引用调用一静态函数6、假定一个类构造函数为:“A(int aa=1,int bb=0){a=aa;b=bb;}则执行"A x(4)"后,x.a和x.b值分别是:()A.1,0B.1,4C.4,0D.4,17、在派生类中能直接访问基类的()A.公有成员,私有成员B.保护成员,私有成员C.不可访问成员,私有成员D.公有成员,保护成员8、不具访问权限属性的是:( )A.非类成员B.类成员C.数据成员D.函数成员9、类定义中private,protected,public 出现次数为()A.任意多次B.至多一次C.public 至少一次D.至少一次10、C++鼓励程序员将()A.数据操作分别封装B.不同类型数据封装C.数据操作封装在一起D.不同作用操作封装在一起二、填空1、C++中,最好用()代替malloc2、函数模板中template之后尖括号的类型参数冠以保留字()3、在IOS类中定义的用于格式控制的枚举变量中十、八、十六进制是dec,oct,( )4、如果重载了运算符+,则相应运算函数名是()5、由static修饰的数据成员为该类的所有对象()6、为了实现多态性,派生类需要重新定义基类中的()7、编译时多态性通过()函数实现。
面向对象程序设计考核试卷
D. A和B
19.在面向对象程序设计中,下面哪个概念指隐藏一个类的内部细节,仅对外暴露需要公开的方法和属性?()
A.封装
B.抽象
C.继承
D.多态
20.关于异常处理,下面哪个说法是正确的?()
A.异常处理机制允许程序在出现错误时维持运行状态
A. equals()
B. ==
C. compareTo()
D. hashCo于访问对象的成员变量?()
A. ->
B. .
C. ::
D. new
18.关于拷贝构造函数,下面哪个说法是正确的?()
A.拷贝构造函数用于创建新对象时复制已有对象的数据
B.拷贝构造函数的参数是同类对象的引用
A.多态是对象在不同时间表现出来的不同形态
B.多态是在运行时而非编译时确定对象的实际类型
C.多态性是通过继承和接口实现的
D. A和B
11.在面向对象程序设计中,下面哪个概念指不同类的对象对同一消息做出响应的能力?()
A.封装
B.继承
C.多态
D.抽象
12.以下哪个说法关于构造函数是正确的?()
A.构造函数可以有返回类型
D.实现多态性
2.下列哪个概念属于面向对象方法的核心?()
A.模块化
B.抽象
C.过程控制
D.数据结构
3.在面向对象程序设计中,下面哪个术语表示对象具有的共同特征和行为的抽象?()
A.类
B.继承
C.封装
D.多态
4.以下哪个操作符用于调用类的构造函数?()
A. ->
B. ::
C. new
面向对象程序设计习题及答案
面向对象程序设计一、选择填空1.关于C++与C语言的关系描述中,(D)是错误的。
(A)C语言是C++的一个子集(B)C语言与C++是兼容的(C)C++对C语言进行了一些改进(D)C++和C语言都是面向对象的2.下面关于对象概念的描述中,(B)是错误的。
(A)对象就是C语言的结构变量(B)对象代表着正在创建的系统中的一个实体(C)对象是一个状态的操作(或方法)的封装体(D)对象之间的信息传递是通过消息进行的3.下面关于类概念的描述中,(D)是错误的。
(A)类是抽象数据类型的实现(B)类是具有共同行为的若干对象的统一描述体(C)类是创建对象的样板(D)类就是C语言的结构类型4.按照标识符的要求,(A)符号不能组成标识符。
(A)连接符(B)下划线(C)大小写字母(D)数字字符5.下列符号中,(C)不可作为分隔符。
(A), (B):(C)?(D);6.在16位机中,int型字宽为(A)字节。
(A)2 (B)4 (C)6 (D)87.类型修饰符unsigned修饰(D)类型是错误的。
(A)char (B)int (C)long int (D)float8.对于int *pa[5];的描述,(D)是正确的。
(A)pa是一个指向数组的指针,所指向的数组是5个int型元素(B)pa是一个指向某数组中第5个元素的指针,该元素是int变量(C)pa[5]表示某个数组的第5个元素(D)pa是一个具有5个元素的指针数组,每个元素是一个int型指针。
9.下列关于指针的运算中,(D)是非法的。
(A)两个指针在一定条件下,可以进行相等或不等的运算。
(B)可以有一个空指针赋值给某个指针。
(C)一个指针可以加上一个整数。
(D)两个指针在一定条件下,可以相加。
10.指针可以用来表示数组元素,下列表示中(A)是错误的。
已知:int a[3][7];(A)*(a+1)[5] (B)*(*a+3) (C)*(*(a+1)) (D)*(&a[0][0]+2) 11.下列表示引用的方法中,(A)是正确的。
10月全国自考面向对象程序设计试题及答案解析
全国2018年10月高等教育自学考试面向对象程序设计试题课程代码:02328一、单项选择题(本大题共12小题,每小题2分,共24分)在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。
错选、多选或未选均无分。
1. 所谓多态性是指( )A. 不同的对象调用不同名称的函数B. 不同的对象调用相同名称的函数C. 一个对象调用不同名称的函数D. 一个对象调用不同名称的对象2. 有如下程序段:int *p,a[6]={-1,0,1,2,3,4}; p=a+3;执行该程序段后,*p的值为( )A. 4B. 2C. 1D. NULL3.类MyA的拷贝初始化构造函数是( )A. MyA()B. MyA(MyA*)C. MyA(MyA&)D. MyA(MyA)4.一个函数功能不太复杂,但要求被频繁调用,则应把它定义为( )A. 内联函数B. 重载函数C. 递归函数D. 嵌套函数5.以下有关继承的叙述正确的是( )A. 构造函数和析构函数都能被继承B. 派生类是基类的组合C. 派生类对象除了能访问自己的成员以外,不能访问基类中的所有成员D. 基类的公有成员一定能被派生类的对象访问6. 解决二义性问题的方法有( )A. 只能使用作用域分辨操作符B. 使用作用域分辨操作符或赋值兼容规则C. 使用作用域分辨操作符或虚基类D. 使用虚基类或赋值兼容规则7. 假设类X以类Y作为它的一个基类,并且X类的名字func()支配Y类的名字func(),obj 为类X的对象,则obj.func()语句实现的功能为( )A. 先执行类X的func(),再执行访问类Y的func()B. 先执行类Y的func(),再执行访问类X的func()C. 执行类X的func()D. 执行类Y的func()18.以下叙述正确的是( )A. 构造函数调用虚函数采用动态联编B. 构造函数可以说明为虚函数C. 当基类的析构函数是虚函数时,它的派生类的析构函数也是虚函数D. 析构函数调用虚函数采用动态联编9.以下关于抽象类的描述正确的是( )A. 不能说明指向抽象类对象的指针或引用B. 可以说明抽象类对象C. 抽象类的纯虚函数的实现可以由自身给出,也可以由派生类给出D. 抽象类的纯虚函数的实现由派生类给出10.在下面格式化命令的解释中,错误的...是( )A. ios::skipws 跳过输入中的空白字符B. ios::fill() 获得当前的填充字符C. ios::hex 转换基数为八进制形式D. ios::precision 返回当前的精度11.下面运算符中,不能被重载的运算符是( )A. <=B. -C. ?:D. []12.下列有关模板和继承的叙述正确的是( )A. 模板和继承都可以派生出一个类系B. 从类系的成员看,模板类系的成员比继承类系的成员较为稳定C. 从动态性能看,继承类系比模板类系具有更多的动态特性D. 相同类模板的不同实例一般没有联系,而派生类各种类之间有兄弟父子等关系二、填空题(本大题共8小题,每小题2分,共16分)请在每小题的空格中填上正确答案。
C++面向对象程序设计(试题与答案)
模拟试题(1)一、判断对错题(10%)(对√,错×)()1.自动变量用堆方式创建,它与块共存亡。
()2.运算符+=是右结合的。
()3.表达式cout<<99的类型为int。
()4.++i是左值,但i++不是左值。
()5.Y[I][J]与*(*Y+I)+J不等价。
()6.从外部看类的private 成员和protected成员有区别。
()7.运算符&不可以重载。
()8.基类的protected成员经过protected派生,在派生类中它变成了private成员。
()9.2.0/-3.0是一个正确的表达式。
()10.字符'\12'的ASCII为12。
二、填空题(20%)#include <iostream.h>typedef struct node{long data;node * next;};class stack{private:node * head;①__________stack();~stack();void push (②__________);③__________ pop();④__________ print();};stack::stack(){ head = new ⑤__________head->next = ⑥__________ }stack::~stack(){node * p;p = head;while (p){head = head->next;⑦__________p = head;}}void stack::push(long x){node * p = new node;p->data = x;p->next = head->next;⑧__________ = p;cout<<"Push" <<x<<" ok !"<<endl;}long stack::pop(){node *p = head->next;if(p!=NULL){long x = p->data;head->next = p->next;⑨__________cout<<"pop "<<x<<" ok !"<<endl;return x;}elsecout<<"Stack is empty !"<<endl;return 0;}void stack::print(){node * p = head->next;cout<<"Stack_Top"<<endl;while (p){cout<<p->data<<endl;⑩__________;}cout<<"Stack_bottom"<<endl;}三、简答题(20%)(按条列出论点)1.注解。
2019年04月自学考试02328《面向对象程序设计》试题
2019年4月高等教育自学考试《面向对象程序设计》试题课程代码:02328一、单项选择题1.C++语句中最常见的语句是在表达式后面加上分号“;”,这种语句称为A.表达式语句B.常量C.变量D.块语句2.类型转换函数A.不能带有参数B.只能带1个参数C.只能带2个参数D.只能带3个参数3.CoUt是某个类的标准对象的引用,此类是A.OStreamB.istreamC.stdoutD.stdin4.在C++程序设计语言中,容器是一种A.标准类B,标准对象 C.标准函数 D.标准类模板5.虚析构函数的作用是A.虚基类必须定义虚析构函数B.类对象作用域结束时释放资源C.de1ete动态对象时释放资源D.无意义6.函数中用花括号”{和“}”括在一起的区域称为A.对象B.块C.类D.作用域7.C++语言的编译系统对宏命令的处理是A.在程序运行时进行B.在程序连接时进行C.与C++程序的其它语句同时进行编译D.在对源程序中其它成分编译之前进行8.函数调用不可以A.出现在一个表达式中B.出现在执行语句中C.作为一个函数实参D.作为一个函数形参9.若定义了函数doub1e*function(),则函数function的返回值为A.实数型B.实数的地址C.指向函数的指针D.函数的地址10.下列关于多态性的描述,存在错误的选项是A.C++语言中的多态性分为编译时的多态性和运行时的多态性B.编译时的多态性可通过函数重载实现C.运行时的多态性可通过模板和虚函数实现D.实现运行时多态性的机制称为动态绑定11.如果类A被说明成类B的友元,那么A.类A的成员即类B的成员B.类B的成员即类A的成员C.类A的成员函数不得访问类B的成员D.类B不一定是类A的友元12.为了使类中的某个成员不能被类的对象通过成员操作符访问,则不能把该成员的访问权限定义为A.pub1icB.protectedC∙privateD.static13.继承机制的作用是A.信息隐藏B.数据封装C.定义新类D.数据抽象14.下列关于C++语言类的描述中错误的是A.类用于描述事物的属性和对事物的操作B.类与类之间通过封装而具有明确的独立性C.类与类之间必须是平等的关系,而不能组成层次结构D.类与类之间可以通过一些方法进行通信和联络15.有如下函数模板:temp1ateTsquare(Tx)(retumx*x;),其中T是A.函数形参B.函数实参C.模板形参D.模板实参16.C++语言的异常处理机制中不存在A.tryB.throwC.catchD.fina11y17.关于消息,下列说法中不正确的选项是A.发送消息的对象请求服务,接受消息的对象提供服务B.消息的发送者必须了解消息的接收者如何相应消息C.在C++中,消息的发送具体体现为对接收消息的对象的某个函数的调用D.每个对象只能接收某些特定格式的消息18.文件包含命令中被包含的文件的扩展名A.必须是.hB.不能是.hC.允许是.h或.cppD.必须是.cpp19.采用重载函数的目的是A.实现共享B.减少空间C.提高速度D.提高可读性20.C++语言提供了四种基本数据类型,即A.字符类型、整数类型、浮点类型、空值类型B.指针类型、整数类型、浮点类型、空值类型C.字符类型、引用类型、浮点类型、空值类型D.字符类型、整数类型、函数类型、空值类型21.以下关于C++对象特点叙述,错误的选项是A.对象可以进行四则运算B.对象可以用作数组的元素C.对象可以用作函数参数D.对象之间可以相互赋值22.重载函数在参数类型或参数数量上存在不同,相同的是A.对象名B.类名C.函数名D.构造函数名23.如果一个派生类有多个的基类,则这样的继承关系称为A.单继承B.多重继承C.重复继承D.复合继承24.下面关于“类”与“对象”的描述中,错误的选项是A.类就是C++语言中的结构体类型,对象就是C++语言中的结构体变量B.类和对象之间的关系是抽象和具体的关系C.对象是类的实例,一个对象必须属于一个已知的类D.类是具有共同行为的若干对象的统一描述体25.在C++类体系中,不能被派生类继承的是A.析构函数、构造函数B.构造函数、虚函数C.虚函数、静态成员函数D.静态成员函数、重载函数26.已知:inta=1000;下列表示引用的方法中,正确的方法是A.int&x=a;B.char&y:C.int&z=1000;D.f1oat&t=&a;27.下面对模板的声明,正确的选项是A.temp1ate<T>B.temp1ate<c1assT1,T2>C.temp1ate<c1assT1,c1assT2>D.temp1ate<c1assT1:c1assT2>28.关于成员函数特征,错误的描述选项是A.成员函数一定是内联函数B.成员函数可以重载C.成员函数可以设置参数的缺省值D.成员函数可以是静态的29.Ihis指针存在的目的是A.保证基类公有成员在子类中可以被访问B.保证每个对象拥有自己的数据成员,但共享处理这些数据成员的代码C.保证基类保护成员在子类中可以被访问D.保证基类私有成员在子类中可以被访问30.在构造函数DeriVed的下列定义中,正确选项是A.Derived::Derived(intt):b(t),j(t){}B.Derived::Derived(intt):b(t),Base(t),j(t){)C.Derived::Derived(intt):Base(t)J(t){}D.Derived::Derived(intt):i(t),b(t),j(t)(J二、填空题31.无论是哪种继承方式,派生类成员不能访问基类属性的成员。
全国2001年10月高等教育自学考试面向对象程序设计试题
面向对象程序设计试题课程代码:02328第一部分选择题(共20分)一、单项选择题(本大题共10小题,每小题2分,共20分)在每小题列出的四个选项中只有一个选项是符合题目要求的,请将其代码填在题后的括号内。
错选或未选均无分。
1.在C++中,函数原型不能标识( )A.函数的返回类型B.函数参数的个数C.函数参数类型D.函数的功能2.在C++程序中,对象之间的相互通信通过( )A.继承实现B.调用成员函数实现C.封装实现D.函数重载实现3.对于任意一个类,析构函数的个数最多为( )A.0B.1C.2D.34.下面函数模板定义中不正确的是()A.template<class Q>B.template<class Q>QF(Qx){ QF(Qx){return Q+x; return x+x;} }C.template<class T>D.template<class T>TF(Tx){ TF(Tx){return x*x; return x>1;} }5.友元关系不能( )A.继承B.是类与类的关系C.是一个类的成员函数与另一个类的关系D.提高程序的运行效率6.语句ofstream f(″SALARY.DAT″,ios::app|ios::binary);的功能是建立流对象f,试图打开文件SALARY.DAT并与之连接,并且( )A.若文件存在,将文件写指针定位于文件尾;若文件不存在,建立一个新文件B.若文件存在,将其置为空文件;若文件不存在,打开失败C.若文件存在,将文件写指针定位于文件首;若文件不存在,建立一个新文件D.若文件存在,打开失败;若文件不存在,建立一个新文件7.下面说法正确的是( )A.内联函数在运行时是将该函数的目标代码插入每个调用该函数的地方B.内联函数在编译时是将该函数的目标代码插入每个调用该函数的地方C.类的内联函数必须在类体内定义D.类的内联函数必须在类体外通过加关键字inline定义8.可以用p.a的形式访问派生类对象p的基类成员a,其中a是( )A.私有继承的公有成员B.公有继承的私有成员C.公有继承的保护成员D.公有继承的公有成员9.在公有派生情况下,有关派生类对象和基类对象的关系,不正确的叙述是( )A.派生类的对象可以赋给基类的对象B.派生类的对象可以初始化基类的引用C.派生类的对象可以直接访问基类中的成员D.派生类的对象的地址可以赋给指向基类的指针10.对于类定义class A{public:virtual void func1( ){ }void func2( ){ }};class B:public A{public:void func1( ){cout<<″class B func 1″<<end1;}virtual void func2( ){cout<<″class B func 2″<<end1;} };下面正确的叙述是( )A. A::func2( )和B::func1( )都是虚函数B. A::func2( )和B::func1( )都不是虚函数C. B::func1( )是虚函数,而A::func2( )不是虚函数D. B::func1( )不是虚函数,而A::func2( )是虚函数第二部分非选择题(共80分)二、填空题(本大题共10小题,每小题2分,共20分)不写解答过程,将正确的答案写在每小题的横线处。
《面向对象程序设计技术》往届试卷1.doc
《面向对象程序设计技术》试卷1一、单项选择题(每小题1分,共20分)1、假定MyClass为一个类,则执行“” MyClass a[3],*p[2];”语句时,自动调用该类构造函数的次数为( B )A、2B、3C、4D、52、对于类中定义的成员,其隐含访问权限为(B )A、protectedB、privateC、publicD、static3、一个类的友元函数或友元类能够通过成员操作符访问该类的(B )A、私有成员B、所有成员C、公用成员D、保护成员4、下面说法正确的是(A )A、构造函数可以重载,析构函数不能重载。
B、构造函数不能重载,析构函数可以重载。
C、构造函数可以重载,析构函数也可以重载。
D、构造函数和析构函数都不可以重载。
5、下列语句的运行结果为(D )#include <iostream.h>srtuct COMPLEX{int x;int y;} cNum[2]={1,3,2,7};void main(){cout<< cNum[0] .y*cNum[1] . x<<endl;}A、3B、2C、21D、66、类AB的缺省构造函数和析构函数是(A )A、AB( )和~AB( )B、AB(int)和~AB( )C、AB( )和~AB(delete )D、AB( )和int~AB( )7、在C++中,若对函数未加说明,则函数的隐含类型是(A )A、intB、doubleC、voidD、char8、已知类A是类B的友元,类B是类C的友元,则( D )A、类A一定是类C的友元B、类C一定是类A的友元C、类C的成员函数可以访问类B的对象的任何成员D、类A的成员函数可以访问类B的对象的任何成员9、下列说法中正确的是( B )A、类定义中只能说明函数成员的函数头,不能定义函数体B、类中的函数成员可以在类体中定义,也可以在类体之外定义C、类中的函数成员在类体之外定义时必须要与类声明在同一文件中D、在类体之外定义的函数成员不能操作该类的私有数据成员10、以下不属于成员函数的是( B )A、静态成员函数B、友元函数C、构造函数D、析构函数11、对于消息队列的描述正确的是( D )A、在Windows中只有一个消息系统,即系统消息队列。
200010高等教育面向对象程序设计C++自考
全国2000年10月高等教育自学考试面向对象试题面向对象程序设计试题一、单项选择题(2×10):1. 假定一个类的构造函数为A ( int aa, int bb) { a = aa; b = bb; },则执行A x(4,5);语法后,x.a 和x.b的值分别为()A.4和5 B.5和4 C.4和20 D.20和52. 假定AB为一个类,则执行AB x;语句时将自动调用该类的()A.有参构造函数B.无参构造函数C.拷贝构造函数D.赋值重载函数3. C++语言建立类族是通过()A.类的嵌套B.类的继承C.虚函数D.抽象类4. 执行语句序列ofstream outf("SALARY.DAT");if (…) cout<<"成功!"; else cout<<"失败!"; 后,如果文件打开成功,显示"成功!",否则显示"失败!"。
由此可知,上面if语句的……处的表达式是()A.!outf或者outf.fail() B.!outf或者outf.good()C.outf或者outf.good() D.outf或者ouf.fail()5. 静态成员函数不能说明为()A.整型函数B.浮点函数C.虚函数D.字符型函数6. 在C++中,数据封装要解决的问题是()A.数据规范化排列B.数据高速转换C.避免数据丢失D.切断了不同模块之间的数据的非法使用7. 在C++中有下列4条语句:int hot = 100;int &rsd = hot;hot = hot + 100;cout<<rsd<<endl;执行这4条语句后输出为()A.0 B.100 C.200 D.3008. 如果class类中的所有成员在定义时都没有使用关键字public、private或protected,则所有成员缺省定义为()A.public B.protected C.private D.static9. 设置虚基类的目的是()A.消除两义性B.简化程序C.提高运行效率D.减少目标代码10. 实现运行时的多态性用()A.重载函数B.构造函数C.析构函数D.虚函数二、填空题(2×10):11、面向对象程序设计的____________机制提供了重复利用程序资源的一种途径。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
全国2005年1月高等教育自学考试面向对象程序设计试题课程代码:02328一、单项选择题(在每小题的四个备选答案中,选出一个正确答案,并将正确答案的序号填在题干的括号内。
每小题2分,共38分)1.下面对于指针的描述不正确的是( )。
A.指针是地址变量B.指针不能用除0以外的常量赋值C.两个指针变量的加减法无意义D.指针指向不同基类型的变量长度不同2.下面对于析构函数的描述中不正确的是( )。
A.析构函数是内置函数B.析构函数与类名相同C.析构函数不能有参数D.析函数在对象撤销时自动执行3.下列指针用法中错误的是( )。
A. int i;int*ptr=&i;B. int i;int *ptr;i=*ptr;C. int *ptr;ptr=0;D. int i=5;int *ptr;*ptr=i;4.派生类的对象对它的基类成员中什么是可访问的( )?A.公有继承的公有成员B.公有继承的私有成员C.公有继承的保护成员D.私有继承的公有成员5.在( )情况下适宜采用inline定义内联函数。
A.函数体含有循环语句B.函数体含有递归语句C.需要加快程序的执行速度D.函数代码多、不常调用6.在类中说明的成员可以使用关键字( )进行修饰。
A. publicB. externC. cpuD. register7.如果类A被说明成类B的友元,则( )。
A.类A的成员即类B的成员B.类B的成员即类A的成员C.类A的成员函数不得访问类B的成员D.类B不一定是类A的友元8.定义析构函数时,应该注意( )。
A.其名与类名完全相同B.返回类型是void类型C.无形参,也不可重载D.函数体中必须有delete语句9.在类中声明转换函数时不能指定( )。
A.参数B.访问权限C.操作D.标识符10.在派生类中重新定义虚函数时必须在( )方面与基类保持一致。
A.参数类型B.参数名字C.操作内容D.赋值11.设int a=3,b=4,c=5;表达式(a+b)>c&&b==c的值是( )。
A. 2B. -1C. 0D. 112.下列标识符中,不合法的用户标识符为( )。
A. a#bB. _intC. a_10D. PAd13.while(!x)中的(!x)与下面条件( )等价。
A. x==1B. x!=1C. x!=0D. x==014.每个类( )构造函数。
A.只能有一个B.只可有公有的C.可以有多个D.只可有缺省的15.在一个类中可以对一个操作符进行( )重载。
A. 1种B. 12种以下C. 32种以下D. 多种16.重载赋值操作符时,应声明为( )函数。
A.友元B.虚C.成员D.多态17.在私有继承的情况下,基类成员在派生类中的访问权限( )。
A.受限制B.保持不变C.受保护D.不受保护18.通过( )调用虚函数时,采用动态束定。
A.对象指针B.对象名C.成员名限定D.派生类名19.在类中声明转换函数时不能指定( )。
A.参数个数B.访问权限C.标识符D.操作二、填空题(每空2分,共22分)1.派生类的主要用途是可以定义其基类中_______。
2.当建立_______,程序自动调用该类的构造函数。
3.定义重载函数函数时,应在_______上有所不同。
4.类是用户定义的类型,具有类类型的变量称作_______。
5.当一个成员函数被调用时,该成员函数的_______指向调用它的对象。
6.拷贝函数通过_______使用引用来初始化创建中的对象。
7.在一个类中至少可以对一个_______进行2种重载。
8.在C++中有二种_______方式即值传递和_______传递。
9.函数的_______性通过虚函数来实现的。
10.使用空的虚函数可以保证_______建立起一条存取路径,使派生类通过虚函数机制正确存取虚函数。
三、完成程序题(每小题5分,共20分)1.在下面程序的底画线处填上适当的字句,使该程序执行结果为60。
-第1 页共3 页-# include <iostream.h>class base{int X;public∶void int (int initX){X=initX; }int Getnum() {return X+7; }void main(){______________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);_______;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;public∶friend_int same_color(line a,box b);_______;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{_______(int i){cout<<i<<endl;}void g(){cout<<”g\n”;}};closs B∶A{public∶void h(){cout<<”h\n”;}_______;};void main(){ B d1;d1.f(6);d1.h();}4.在下列程序的空格处填上适当的字句,使输出为:0,8,5。
# include <iostream.h># include <math.h>class Magic{double x;public∶Magic(double d=0.00)∶x(fabs(d)){}Magic _______{return Magic(sqrt(x*x+c.x*c.x));}_______<<(ostream & os,Magic c){return os<<c.x;}};void main(){Magic ma;cout<<ma<<’,’<<Magic(-8)<<’,’<<ma+Magic(-3)+Magic(-4); }四、综合应用题(共20分)1.分析下列程序可能的输出结果。
(8分)# include “iostream.h”class test{private∶int num;float fl;public∶test( );int getint( ){return num;}float getfloat( ){return fl;}~test( );};test∶∶test( );{cout<<″lnitalizing default″<<endl;num=0;fl=0.0;}test∶∶~test( ){cout<<″Desdtructor is active″<<endl;}int main( ){test array[2];cout<<array[1].get int ( )<<″″<<array[1].getfloat()<<endl;}-第2 页共3 页-2.下列shape类是一个表示形状的抽象类,length()为求图形周长的函数,total()则是一个通用的用以求不同形状的图形周长总和的函数。
请从shape类派生三角形类(triangle)、矩形类(rectangle),并给出具体的求周长函数。
给出shape,total的定义如下所示。
(12分)class shape{public∶virtual float length( )=0};float total(shape *s[],int n){float sum=0.0;for(int i=0;i<n;i++)sum+=s[i]->length( );return sum;}-第3 页共3 页-。