您现在的位置:  网站首页工学类面向对象程序设计

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


 
试题类型:WORD文档 试题时间:2008年1月
所属省份 试卷资费免费下载
网上书店卓越网上搜索看看 试卷收藏加入收藏夹
试卷评级

        分享到:

 


     下载列表
 
          
       
          2008年1月全国自学考试试题面向对象程序设计试卷
       
 
     试卷内容预览
 
  

全国2008年1月高等教育自学考试
面向对象程序设计试题
课程代码: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;
(7) ;
int m= (8) ;
(9) ;
cout<<m<<endl;
}
该程序运行结果为:
23 78 46 55 62 76
78
(7)            (8)            (9)
五、程序分析题(本大题共6小题,每小题5分,共30分)
阅读以下程序,写出其运行结果。
26.当从键盘上输入9.98时,写出下面程序的执行结果。
#include<iostream.h>
void main()
{
int a,b;
char ch;
cin>>a>>ch>>b;// 从键盘上输入 9.98
cout<<a<<endl<<b<<endl;
}

27.#include <iostream.h>
class aa {
public:
virtual int func () { return 0; }
};
class test: public aa {
public:
int func() { return 58; }
};
void main() {
test d;
aa& b `= d;
cout << b.func() << endl;
cout << b.aa::func() << endl;
}

28.#include<iostream.h>
class myclass {
public:
int number;
void set(int i);
};
int number=8;
void myclass::set (int i)
{
number=i;
}
void main()
{
myclass my1;
int number=20;
my1.set(6);
cout<<my1.number<<endl;
my1.set(number);
cout<<my1.number<<endl;
my1.set(::number);
cout<<my1.number<<endl;
}

29.#include<iostream.h>
class a
{
public:
virtual void print(){cout<< " this is class a printing. " << endl; };
};
class b: public a
{
public:
void print(){ } ;
};
class c: public b
{
public:
void print(){cout<< " this is class c printing. " <<endl;}
};
void show(a &aa)
{
aa.print();
}
void main()
{
a a;
b b;
c c;
show(a);
show(b);
show(c);
}

30.#include <iostream.h>
class Date
{
int Year,Month,Day;
public:
Date(int y=2001,int m=1,int d=1){Year=y; Month=m; Day=d;}
void PrintDate(){ cout<<Year<<"/"<<Month<<"/"<<Day<<endl;}
};
class Time
{
int Houre, Minutes, Seconds;
public:
Time(int h=5,int m=30,int s=0){Houre=h; Minutes=m; Seconds=s;}
void PrintTime(){ cout<<Houre<<":"<<Minutes<<":"<<Seconds<<endl;}

};
class Date_Time: public Date, public Time
{
public:
Date _ Time(){};
Date _ Time(int y,int mo,int d,int h=0,int mi=0,int s=0):
Date(y,mo,d), Time(h,mi,s){}
void PrintDate_Time(){PrintDate();PrintTime();}
};

void main()
{
Date _ Time a, b(2002,10,1,6,20,0), c(2003,3,8,6,7);
a.PrintDate _ Time();
b.PrintDate _ Time();
c.PrintDate _ Time();
}
31. #include<iostream.h>
void f2(int& x, int& y)
{
int z=x; x=y; y=z;
}
void main()
{
int x=10,y=26;
cout<<"x,y="<<x<<", "<<y<<endl;
f2(x,y);
cout<<"x,y="<<x<<", "<<y<<endl;
x++; y--;
f2(y,x);
cout<<"x,y="<<x<<", "<<y<<endl;
}

......
......
 
    更多其他年份试题
    2010年10月全国自考面向对象程序设计参考答案  (WORD)
    2010年10月全国自考面向对象程序设计试卷  (WORD)
    2009年10月全国自考面向对象程序设计试卷参考答案  (WORD)
    2009年10月全国自考面向对象程序设计试题  (WORD)
    2008年1月全国自学考试试题面向对象程序设计试卷  (WORD)
    2007年10月自考试题面向对象程序设计全国试卷  (WORD)
    全国2007年1月高等教育自学考试面向对象程序设计试题历年试卷  (WORD)
    全国2006年10月高等教育自学考试面向对象程序设计试题历年试卷  (WORD)
 
     相关课程
        马克思主义基本原理概论       马克思主义原理
        马克思主义政治经济学原理       马克思主义哲学原理
        漫画与插图       茅盾研究
        毛泽东思想邓小平理论和三个代表重要思想概论       毛泽东思想概论
        酶工程
 
     本站声明
自己也曾经是自考生,当初考的是计算机专业的专科,花了我四年半年时间。许多朋友跟我说自考太难了,他们快要坚持不下去了。我自己的经验是,其实自考不难,难的是坚持。 我不相信人天生下来会有谁比谁更聪明的脑袋瓜,只相信谁比谁更努力。努力看书,多做题,多花时间在学习上面,一定能够成功。加油吧!

考一场试下来,需要花费很多精力,也需要花去不少钱。在此我向大家保证,我的网站一定会奉行免费的政策,无论如何,我都不会使网站变成收费模式。

如果本站收集的内容侵犯了你的权利,也请告诉我,我会进行核实后并立即予以删除。

如果认为此网站还可以,告诉你的朋友们吧,我会一如继往,努力拼命的,哈哈!