浙江省2003年1月高等教育自学考试。
面向对象程序设计试题。
课程**:02328
一、单项选择题(在每小题的四个备选答案中,选出一个正确答案,并将正确答案的序号填在题干的括号内。每小题2分,共40分)
1.在公有继承的情况下,基类成员在派生类中的访问权限( )
a.受限制b.保持不变。
c.受保护d.不受保护。
2.通过( )调用虚函数时,采用动态束定。
a.对象指针b.对象名。
c.成员名限定d.派生类名。
3.在int a=3,*p=&a;中,*p的值是( )
a.变量a的地址值b.无意义。
c.变量p的地址值d. 3
类体系中,不能被派生类继承的有( )
a.转换函数b.构造函数。
c.虚函数d.静态成员函数。
5.假定一个类的构造函数为a(int aa,int bb),则执行ax(4,5);语句后,和的值分别为( )
a. 4和5b. 5和4
c. 4和20d. 20和5
对c语言作了很多改进,即从面向过程变成为面向对象的主要原因是( )
a.增加了一些新的运算符。
b.允许函数重载,并允许设置缺省参数。
c.规定函数说明符必须用原型。
d.引进了类和对象的概念。
7.下列符号不能组成标识符的是( )
a.连接符b.下划线。
c.大小写字母d.数字字符。
8.类型修饰符unsigned不能修饰( )
a. virtualb. int
c. long intd. float
9.一个函数功能不太复杂,但要求被频繁调用,选用( )
a.内联函数b.重载函数。
c.递归函数d.嵌套函数。
10.下列不是描述类的成员函数的是( )
a.构造函数b.析构函数。
c.友元函数d.拷贝构造函数。
语言中所有在函数中定义的变量,连同形式参数,都属于( )
a.全局变量b.局部变量。
c.静态变量d.函数。
12.定义新类是通过( )实现的。
a.信息隐藏b.数据封装。
c.继承机制d.数据抽象。
13.下面有关类说法不正确的是( )
a.一个类可以有多个构造函数。
b.一个类只有一个析构函数。
c.析构函数需要指定参数。
d.在一个类中可以说明具有类类型的数据成员。
14.派生类的对象只能对它的( )是可访问的。
a.公有继承的公有成员b.公有继承的私有成员。
c.公有继承的保护成员d.私有继承的保护成员。
15.下列不能作为类的成员的是( )
a.自身类对象的指针b.自身类对象。
c.自身类对象的引用d.另一个类的对象。
16.在类中声明转换函数时不能指定( )
a.参数b.访问权限。
c.操作d.标识符。
17.在派生类中重新定义虚函数时必须在( )方面与基类保持一致。
a.参数类型b.参数名字。
c.操作内容d.赋值。
18.在私有继承的情况下,基类成员在派生类中的访问权限( )
a.受限制b.保持不变。
c.受保护d.不受保护。
19.下面对于指针的描述不正确的是( )
a.指针是地址变量。
b.指针不能用除0以外的常量赋值。
c.两个指针变量的加减法无意义。
d.指针指向不同基类型的变量长度不同。
20.在派生类中定义友元函数时必须在( )方面与基类保持一致。
a.参数类型b.参数名字。
c.操作内容d.赋值。
二、填空题(每空2分,共20分)
1.在一个类中可以对一个操作符进行___重载。
2.在c++中有二种参数传递方式。
3.模板对处理数据的类型的要求不同可以分为两种类型:__
4.静态联编是在程序___时进行的。
5.在函数体之前加___关键字可以防止覆盖函数改变数据成员的值。
6.一个const对象只能访问___成员函数。
7.派生类的主要用途是可以定义其基类中___
8.当建立___程序自动调用该类的构造函数。
9.使用指向对象的指针来标识类的成员,则必须使用的运算符是___
10.拷贝初始化构造函数使用___来初始化创建中的对象。
三、完成程序题(每小题5分,共20分)
1.下面程序的运行结果如下所示完成填空。
#include “
class test
float getfloat()
test();
test∶∶test()
cout<<″initializing default″<
test∶∶~test()
int getyear()
int getmonth()
in getday()
iostream & s,classdate &a)
int y,m,d;
cout<<″请输入日期:(yyyy-mm-dd)″;
s>>y>>m>>d;
while(y>9999‖m>-1‖m<-12‖d>-1‖d<-31)
cout<<″输入格式有错,请重新输入日期:(yyyy-mm-dd)″;
s>>y>>m>>d;
return s;
输出重定义。
∥输出日期。
s<<″现在的日期是:″;
s<<<
s<< 3.在下面程序的底画线处填上适当的字句,完成程序。 #include <> class a classpublic∶void h()a∶∶f; void main() b d1; h();4.根据运行结果,完成下面递归程序的填空。 #include <> int f(int *x) if(!(x)) cout<<*x<<" 递归调用;main() int a[]= int *y; y=a;引用f; 运行结果是:3,2,1 四、综合应用题(共20分) 1.分析下列程序可能的输出结果。(满分8分) #include “ int main() 2.写出模板函数实现找出三个数值中按最小值到最大值排序程序。(满分12分) 浙江省2002年1月高等教育自学考试。面向对象程序设计试题。课程 02328 一 单项选择题 在每小题的四个备选答案中,选出一个正确答案,并将正确答案的序号填在题干的括号内。每小题2分,共40分 对c语言作了很多改进,即从面向过程变成为面向对象的主要原因是 a.增加了一些新的运算符。b.允许函数重载... 常指针类型结构体构造析构类的实现静态成员 看说明 注意 函数重载动态申请内存引用练习编程定义两个类实现两个类的对象的相加减。说明 1 在程序中,要求一个函数的原型出现在该函数的调用语句之前。但当一个函数的定义在前,而对它的调用在后时,则不必给出原型。2 函数原型的参数表中可不包含参数的名字,而只包含... 湖南石化职院2014年下学期期末试卷。电气 班 程序设计基础 试题。b卷,闭卷,考试时间 100分钟 1 以下叙述正确的是 a 花括号 只能作为函数体的定界符。b c语言中的每条可执行语句最终都将被转换成二进制的机器指令。c c语言程序的基本单位是语句 d c语言程序的所有函数名都可以由用户命名。2...面向对像程序设计试卷
面向对象程序设计牢记知识点
程序设计基础试卷 B卷