全国高等教育自学考试面向对象程序设计试题.docx
- 文档编号:5907282
- 上传时间:2023-01-02
- 格式:DOCX
- 页数:10
- 大小:18.42KB
全国高等教育自学考试面向对象程序设计试题.docx
《全国高等教育自学考试面向对象程序设计试题.docx》由会员分享,可在线阅读,更多相关《全国高等教育自学考试面向对象程序设计试题.docx(10页珍藏版)》请在冰豆网上搜索。
全国高等教育自学考试面向对象程序设计试题
全国2007年1月高等教育自学考试面向对象程序设计试题
课程代码:
02328
一、单项选择题(本大题共10小题,每小题2分,共20分)
在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。
错选、多选或未选均无分。
1.一个函数功能不太复杂,但要求被频繁调用,选用()
A.内联函数B.重载函数
C.递归函数D.嵌套函数
2.C++的继承性允许派生类继承基类的()
A.部分特性,并允许增加新的特性或重定义基类的特性
B.部分特性,但不允许增加新的特性或重定义基类的特性
C.所有特性,并允许增加新的特性或重定义基类的特性
D.所有特性,但不允许增加新的特性或重定义基类的特性
3.在C++中,封装是借助什么达到的?
()
A.结构B.类
C.数组D.函数
4.建立包含有类对象成员的派生类对象时,自动调用构造函数的执行顺序依次为()
A.自己所属类、对象成员所属类、基类的构造函数
B.对象成员所属类、基类、自己所属类的构造函数
C.基类、对象成员所属类、自己所属类的构造函数
D.基类、自己所属类、对象成员所属类的构造函数
5.类的析构函数是对一个对象进行以下哪种操作时自动调用的?
()
A.建立B.撤消
C.赋值D.引用
6.下列不是描述类的成员函数的是()
A.构造函数B.析构函数
C.友元函数D.拷贝构造函数
7.所有在函数中定义的变量,连同形式参数,都属于()
A.全局变量B.局部变量
C.静态变量D.寄存器变量
8.假定AB为一个类,则执行ABx;语句时将自动调用该类的()
A.有参构造函数B.无参构造函数
C.拷贝构造函数D.赋值构造函数
9.假定AA为一个类,a()为该类公有的函数成员,x为该类的一个对象,则访问x对象中函数成员a()的格式为()
A.x.aB.x.a()
C.x->aD.x->a()
10.对于任一个类,用户所能定义的构造函数的个数至多为()
A.0B.1
C.2D.任意个
二、填空题(本大题共10小题,每小题2分,共20分)
请在每小题的空格中填上正确答案。
错填、不填均无分。
11.对象的四大基本特性是多态性、继承性、______和封装性。
12.为了使类中的成员不能被类外的函数通过成员操作符访问,则应把该成员的访问权限定义为____。
13.C++程序的源文件扩展名为____。
14.所有模版都是以_____关键字和一个形参表开头的。
15.在#include命令中所包含的头文件,可以是系统定义的头文件,也可以是___定义的头文件。
16.一个const对象只能访问___成员函数。
17.C++是通过引用运算符____来定义一个引用的。
18.若y是x的引用,则对y的操作就是对____的操作。
19.执行_____操作将释放由p所指向的动态分配的数据空间。
20.C++的流库预定义了4个流,它们是cin、cout、_____和clog。
三、改错题(本大题共2小题,每小题6分,共12分)
21.假定下面程序将分数a和b相加,其和赋值给c并输出,要求输出结果为“13/18”,其主函数5到8行之间存在着三行语句错误,请指出错误行的行号并改正。
#include
classFranction{//定义分数类
intnume;//定义分子
intdeno;//定义分母
public:
//把*this化简为最简分数,具体定义在另外文件中实现
voidFranSimp();
//返回两个分数*this和x之和,具体定义在另外文件中实现
FranctionFranAdd(constFranction&x);
//置分数的分子和分母分别0和1
voidInitFranction(){nume=0;deno=1;}
//置分数的分子和分母分别n和d
voidInitFranction(intn,intd){nume=n;deno=d;}
//输出一个分数
voidFranOutput(){cout< }; voidmain()//1行 {//2行 Franctiona,b,c;//3行 a.InitFranction(7,18);//4行 b.InitFranction (1);//5行 c.InitFranction();//6行 c=FranAdd(a,b);//7行 cout< }//9行 错误行的行号为______、______和______。 分别改正为______、______和______。 22.下面是一个类的定义,在5到12行之间有3行存在语法错误,请指出错误行的行号并改正。 classCE{//1行 private: //2行 inta,b;//3行 intgetmin(){return(a a: b);}//4行 public//5行 intc;//6行 voidSetValue(intx1,intx2,intx3){//7行 a=x1;b=x2;c=x3;//8行 };//9行 intGetMin();//10行 };//11行 intGetMin(){//12行 intd=getmin();//13行 return(d d: c);//14行 }//15行 错误行的行号为______、______和______。 分别改正为______、______和______。 四、程序填空题(本大题共3小题,每小题6分,共18分) 请按提示要求完成以下程序段的填空。 23.classA{ inta,b; public: ___A(intaa=0,intbb=0) {a=aa;b=bb;}____//定义构造函数,使参数aa和bb的默认值为0, //在函数体中用aa初始化a,用bb初始化b }; main(){ A*p1,*p2; ___p1=newA;___;//调用无参构造函数生成由p1指向的动态对象 ___p2=newA(4,5);___;//调用带参构造函数生成由p2指向的动态对象, //使a和b成员分别被初始化为4和5 } (1) (2)(3) 24.一种类定义如下: #include #include classBooks { private: charbk_name[20];//书的名称 intprice;//书的价格 staticinttotalprice;//同类书总价格 public: Books(char*str,intp){//构造函数 strcpy(bk_name,str);//strcpy函数将str字符串的内容拷贝到bk_name price=p; totalprice+=price; } ~Books(){totalprice-=price;} char*GetN(){____(4)____;}//返回书名称 intGetP(){returnprice;} ____(5)____GetTotal_Price(){//定义静态成员函数 ____(6)____;//返回总价格 } }; 25.已知一个类的定义如下: #include classAA{ inta[10]; intn; public: voidSetA(intaa[],intnn);//用数组aa初始化数据成员a, //用nn初始化数据成员n intMaxA();//从数组a中前n个元素中查找最大值 voidSortA();//采用选择排序的方法对数组a中前n个元素 //进行从小到大排序 voidInsertA();//采用插入排序的方法对数组a中前n个元素进行从小到大排序 voidPrintA();//依次输出数组a中的前n个元素 }; voidAA: : SortA() { inti,j; for(i=0;____(7)____;i++){ intx=a[i],k=i; for(j=i+1;j if(a[j] x=a[j]; k=____(8)____; } a[k]=a[i]; a[i]=____(9)____; } } 五、程序分析题(本大题共6小题,每小题5分,共30分) 阅读以下程序,写出其运行结果。 26.#include constintN=6; voidfun(); voidmain() { for(inti=1;i fun(); } voidfun() { staticinta=2; cout<<(a+=3)<<′′; } 27.#include #include classfun{ friendostream&operator<<(ostream&,fun); }ff; ostream&operator<<(ostream&os,funf){ os.setf(ios: : left); returnos; } voidmain() { cout< cout< } 28.#include classa { public: virtualvoidfunc(){cout<<"funcinclassa"< }; classb { public: virtualvoidfunc(){cout<<"funcinclassb"< }; classc: publica,publicb { public: voidfunc(){cout<<"funcinclassc"< }; voidmain() { cc; a&pa=c; b&pb=c; pa.func(); pb.func(); } 29.#include classtesta{ public: testa(){a1=0;} testa(inti){a1=i;} voidprintout(){cout< private: inta1; }; classtestb: publictesta{ public: testb(){b1=0;}; testb(inti,intj,intk); voidprintout(); private: intb1; testaaa; }; testb: : testb(inti,intj,intk): testa(i),aa(j){b1=k;} voidtestb: : printout(){ testa: : printout(); cout< } voidmain(){ testbtt[2]; tt[0]=testb(9,3,5); tt[1]=testb(8,4,7); for(inti=0;i<2;i++) tt[i].printout(); } 30.#include voidmain() {for(inti=-1;i<4;i++) cout<<(i? ′0′: ′*′); } 31.#include classDate {intYear,Month,Day; public: voidSetDate(inty,intm,intd){Year=y;Month=m;Day=d;} voidPrintDate(){cout< Date(){SetDate(2000,1,1);} Date(inty,intm,intd){SetDate(y,m,d);} }; classTime { intHoure,Minutes,Seconds; public: voidSetTime(inth,intm,ints){Houre=h;Minutes=m;Seconds=s;} voidPrintTime(){cout< "< "< Time(){SetTime(0,0,0);} Time(inth,intm,ints){SetTime(h,m,s);} }; classDate_Time: publicDate,publicTime { public: Date_Time(): Date(),Time(){}; Date_Time(inty,intmo,intd,inth,intmi,ints): Date(y,mo,d),Time(h,mi,s){} voidPrintDate_Time(){PrintDate();PrintTime();} }; voidmain() {Date_Timedt_a,dt_b(2002,10,1,6,0,0); dt_a.PrintDate_Time(); dt_b.SetTime(23,59,59); dt_b.PrintDate_Time(); dt_a.SetDate(2002,12,31); dt_a.PrintDate_Time(); }
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 全国 高等教育 自学考试 面向 对象 程序设计 试题