国家工信部网站备案实名:湖北自考网 为考生提供湖北自考信息服务,仅供学习交流使用,官方信息以湖北教育考试院为准。

湖北自考网

网站首页 自考专业 自考培训 考场查询 成绩查询 网上报名 考生平台
专题:
自考报名时间 考试时间 自考单科网课 模拟考试 教材大纲 免考办理 转考办理 实践考核 毕业申请 学位英语培训 学位申请 专升本 成人高考 中专
湖北自考在线 湖北学位英语培训班 湖北成人高考报名 湖北自考视频免费领取
当前位置:湖北自考网 > 自考面向对象程序设计试题_全国2008年1月自考试卷

自考面向对象程序设计试题_全国2008年1月自考试卷

湖北自考网 来源: 时间:2009-10-31 00:00:00

全国2008年1月高等教育自学考试面向对象程序设计试题

湖北自考网10月31日整理
课程代码:02328
一、单项选择题(本大题共10小题,每小题2分,共20分)
在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。错选、多选或未选均无分。
1.编写C++程序一般需经过的几个步骤依次是(      )
A. 编译、编辑、连接、调试 B. 编辑、编译、连接、调试
C. 编译、调试、编辑、连接 D. 编辑、调试、编译、连接
2.函数调用func((exp1,exp2),(exp3,exp4,exp5))中所含实参的个数为(      )
A.1  B.2   
C.4  D.5
3.假定AB为一个类,则执行 “AB a(2), b[3], *p[4];”语句时共调用该类构造函数的次数为(      )
A. 3 B. 4 
C. 5 D. 9
4.假定AB为一个类,px为指向该类的一个含有n个对象的动态数组的指针,则执行“delete []px;”语句时共调用该类析构函数的次数为(      )
A. 0  B. 1 
C. n D. n+1
5.如果表达式++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) = 0
C. virtual void vf()=0 D. virtual void yf(int){}
8.假定一个类的构造函数为 “A(int aa, int bb) {a=aa; b=aa*bb;}”,则执行 “Ax(4,5);”语句后,x.a和x.b的值分别为(      )
A. 4和5  B. 5和4 
C. 4和20  D. 20和5
9.一个类的静态数据成员所表示属性(      )
A. 是类或对象的属性 B. 只是对象的属性
C. 只是类的属性 D. 是类和友元的属性
10.一个C++源程序文件的扩展名为(      )
A. .h  B. .c 
C. .cpp D. .cp
二、填空题(本大题共10小题,每小题2分,共20分)
 请在每小题的空格中填上正确答案。错填、不填均无分。
11.重载“<<”操作符时,应声明为 ____________ 函数。
12.在C++中,编译指令都是以____________(符号)开始。
13.假定要把aa定义为AB类中的一个引用整数型数据成员,则定义语句为____________。
14.C++支持两种多态性,编译时的多态性和____________时的多态性。
15.假定用户为类AB定义了一个构造函数“AB(int aa=0):a(aa){}”,则定义该类的对象时,可以有____________种不同的定义格式。
16.若p指向x,则____________与x的表示是等价的。
17.C++的流库预定义了4个流,它们是cin、cout、cerr和____________。
18.当函数参数表用____________保留字表示时,则表示该参数表为空。
19.每个对象都是所属类的一个____________。
20.作为类的成员函数重载一个运算符时,参数表中只有一个参数,说明该运算符有____________个操作数。
三、改错题(本大题共2小题,每小题6分,共12分)
21.假定要求下面程序输出结果为“d=800,f=60”,在第5-20行中存在着三条语句错误,请指出错误语句的行号并改正。
#include<iostream.h>
class A {          //1行
int a[10]; int n;       //2行
public:          //3行
A(int aa[], int nn): n(nn) {     //4行
 for(int i=0; i<n; i++) aa[i]=a[i];   //5行
}           //6行
int Get(int i) {return a[i];}     //7行
int SumA(int n);       //8行
};           //9行
int A::SumA(int n) {       //10行
int s=0;        //11行
for(int j=0; j<n; j++) s+=a[j];    //12行
return s;         //13行
}            //14行
void main() {         //15行
 int a[]={2,5,8,10,15,20};     //16行
 A x(a,6);         //17行
 int d=1;        //18行
 for(int i=0; i<4; i++) d*=x.a[i];    //19行
 int f=SumA(6);       //20行
 cout<<"d="<<d<<’,’;     //21行
 cout<<"f="<<f<<endl;     //22行
}            //23行
错误行的行号为____________、____________和____________。
分别改正为____________、____________和____________。
22.下面程序段第4到7行中存在着三条语句的语法错误,请指出错误语句的行号并改正。
class A {           //1行
 int a,b;           //2行
 const int c;          //3行
 public            //4行
 A():c(0);a(0);b(0) {}       //5行
 A(int aa, int bb) c(aa+bb); {a=aa; b=bb;}   //6行
 };             //7行
 A a,b(1,2);         //8行
 A *x=&a, &y=b;         //9行
 A *z=new A, w[10];       //10行
错误行的行号为____________、____________和____________。
分别改正为____________、____________和____________。
四、程序填空题(本大题共3小题,每小题6分,共18分)
请按提示要求完成以下程序段的填空。
23.在下面一段类定义中, Derived类公有继承了基类Base。需要填充的函数由注释内容给出了功能。
class Base
{
   private:
 int mem1,mem2; //基类的数据成员
   public:
 Base(int m1,int m2) {
   mem1=m1; mem2=m2;
}
   void output(){cout<<mem1<<’ ’<<mem2<<’ ’;}
   //...
};

class Derived: public Base
{
   private:
     int mem3; //派生类本身的数据成员
 public:
   //构造函数,由m1和m2分别初始化mem1和mem2,由m3初始化mem3
   Derived(int m1,int m2, int m3);
   //输出mem1,mem2和mem3数据成员的值
   void output(){
    (1) ; cout<<mem3<<endl;
   }
  //...
};
Derived::Derived(int m1,int m2, int m3):  (2)  { (3)  ;}

(1)           (2)          (3)          
24.class A {
 int a,b;
 public:
  (4)  //定义构造函数,使参数aa和bb的默认值为0,
 {a=aa;b=bb;}//在函数体中用aa初始化a,用bb初始化b
 };
 main() {
 A *p1, *p2;
  (5)  ;//调用无参构造函数生成由p1指向的动态对象
  (6)  ;//调用带参构造函数生成由p2指向的动态对象,
 //使a和b成员分别被初始化为4和5
 }
(4)            (5)           (6)
25.已知一个类的定义如下:(假设类的成员函数已实现)
#include<iostream.h>
class AA {
 int a[10];
 int n;
public:
 void SetA(int aa[], int nn); //用数组aa初始化数据成员a,
  //用nn初始化数据成员n
 int MaxA();//从数组a中前n个元素中查找最大值
 void SortA(); //采用选择排序的方法对数组a中前n个元素
    //进行从小到大排序
 void InsertA(); //采用插入排序的方法对数组a中前n个元素进行从小到大排序
 void PrintA(); //依次输出数组a中的前n个元素
  //最后输出一个换行
};
使用该类的主函数如下:
void main()
{
int a[10]={23,78,46,55,62,76,90,25,38,42};
AA x;

结束
本文标签
特别声明:1.凡本网注明稿件来源为“湖北自考网”的,转载必须注明“稿件来源:湖北自考网(www.hbzkw.com)”,违者将依法追究责任;
2.部分稿件来源于网络,如有不实或侵权,请联系我们沟通解决。最新官方信息请以湖北省教育考试院及各教育官网为准!
限时,免费获取学历提升方案

已帮助10w万+意向学历提升用户成功上岸

  • 毛泽东思想概论

    毛泽东思想概论

    培训优势:课时考点精讲+刷题+冲刺,熟练应对考试题型。全程督促学习,安排好学习计划。 毛泽东思想概论...自考培训
  • 英语二

    英语二

    本课程既是一门语言实践课程,也是拓宽知识、了解世界文化的重要素质课程,它以培养学习者的综合语言应用能力为目标,使他们在学习、工作和社会交往中能够使用英语进行有效的交流。 英语二...自考培训
  • 马克思主义基本原理概论

    马克思主义基本原理概论

    本书包括两个部分:自学考试大纲和基本原理。主要内容有,马克思主义是关于工人阶级和人类解放的科学,物质世界及其发展规律,认识的本质及其规律,人类社会及其发展规律,资本主义的形成及其发展,资本主义发展的历史进程,社会主义社会及其进程,共产主义社会及其进程等。 马克思主义基本原理概论...自考培训
  • 思想道德修养与法律基础

    思想道德修养与法律基础

    《思想道德修养与法律基础》课具有鲜明的政治性、思想性、理论性、针对性、科学性、知识性以及实践性和修养性。它包罗政治、思想、道德、心理本质、学习成才和法律本质等内容,指导和回答大学生在人生、抱负、信念等方面遍及关心和迫切需要解决的问题。 思想道德修养与法律基础...自考培训
  • 中国近代史纲要

    中国近代史纲要

    “中国近现代史纲要”全国高等教育自学考试指定教材,依据中央审定的普通高等学校“中国近现代史纲要”编写大纲以及马克思主义理论研究和建设工程重点教材《中国近现代史纲要》,结合自学考试的特点设计了十章,集中讲述1840年鸦片战争爆发一直到2007年中国共产党第十七次全国代表大会召开的160多年的中国近现代历史。 中国近代史纲要...自考培训
微信公众号 考试交流群
湖北自考网微信公众号

扫一扫关注微信公众号

随时获取湖北省自考政策、通知、公告以及各类学习资料、学习方法、课程。