自学考试专题:14-04面向对象程序设计试卷D_第1页
自学考试专题:14-04面向对象程序设计试卷D_第2页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、面向对象程序设计试卷第一部分 选择题一、单项选择题在每小题列出的四个备选项中只有一个是符合题目要求的,请将其选出并将“答题卷”上的相应字母涂黑。错涂、多涂或未涂均无分。1C+是 A面向对象的程序设计语言 B面向过程的程序设计语言 C既支持面向对象的程序设计又支持面向过程的程序设计的混合型语言 D非结构化的程序设计语言2面向对象程序设计思想的主要特征中不包括A封装性 B多态性 C继承性 D 功能分解,逐步求精3若定义:string str; 当语句cin>>str; 执行时,从键盘输入:Microsoft Visual Studio 6.0!所得的结果是str=A Microsoft

2、 Visual Studio 6.0! BMicrosoftC Microsoft Visual DMicrosoft Visual Studio 6.04考虑下面的函数原型声明:void testDefaulParam(int a,int b=7,char z='*');下面函数调用中,不合法的是AtestDefaulParam(5); BestDefaulParam(5,8);CtestDefaulParam(5,'#'); DtestDefaulParam(0,0,'*');5下列语句中,将函数int sum(int x, int y)正确

3、重载的是Afloat sum(int x, int y); Bint sum(int a, int b);Cfloat sum(float x, float y); Ddouble sum(int y, int x);6下列表示引用的方法中,正确的是已知:int a=1000;Aint &x=a; Bchar &y; Cint &z=1000; Dfloat &t=&a;7在一个函数中,要求通过函数来实现一种不太复杂的功能,并且要求加快执行速度,选用A内联函数 B重载函数 C递归调用 D嵌套调用8下列有关C+类的说法中,不正确的是A类是一种用户自定义的数

4、据类型B只有类中的成员函数或类的友元函数才能存取类中的私有成员C在类中,如果不做特别说明,所有成员的访问权限均为私有的D在类中,如果不做特别说明,所有成员的访问权限均为公用的9已知X类,则当程序执行到语句:X array3;时,调用了次构造函数。A0 B1 C2 D310下面说法中,正确的是A一个类只能定义一个构造函数,但可以定义多个析构函数B一个类只能定义一个析构函数,但可以定义多个构造函数C构造函数与析构函数同名,只要名字前加了一个求反符号()D构造函数可以指定返回类型,而析构函数不能指定任何返回类型,即使是void类型也不可以11已知:print( )函数是一个类的常成员函数,它无返回值

5、,下列表示中,正确的是 Avoid print( ) const; Bconst void print( ); Cvoid const print( ); Dvoid print(const);12下面描述中,表达错误的是A公用继承时基类中的public成员在派生类中仍是public的B公用继承时基类中的private成员在派生类中仍是private的C公用继承时基类中的protected成员在派生类中仍是protected的D私有继承时基类中的public成员在派生类中是private的13设置虚基类的目的是A简化程序 B消除二义性 C提高运行效率 D减少目标代码14下面 的叙述不符合赋值兼

6、容规则。A派生类的对象可以赋值给基类的对象B基类的对象可以赋值给派生类的对象C派生类的对象可以初始化基类的对象D派生类的对象的地址可以赋值给指向基类的指针15关于虚函数的描述中,正确的是 A虚函数是一个static类型的成员函数 B虚函数是一个非成员函数 C基类中说明了虚函数后,派生类中与其对应的函数可不必说明为虚函数 D派生类的虚函数与基类的虚函数具有不同的参数个数和类型16下面关于友元的描述中,错误的是A友元函数可以访问该类的私有数据成员B一个类的友元类中的成员函数都是这个类的友元函数C友元可以提高程序的运行效率D类与类之间的友元关系可以继承17下列关于静态数据成员的说法,不正确的是A类中

7、定义的公用静态数据成员,可以通过类的对象来访问B类中定义的所有静态数据成员,都必须在类外初始化C静态数据成员不是所有对象所共用的D普通的成员函数可以直接访问类中的静态数据成员18如果表达式+i*k中的“+”和“*”都是重载的友元运算符,若采用运算符函数调用格式,则表达式还可以表示为Aoperator*(i.operator+(),k) Boperator*(operator+(i),k)Ci.operator+().operator*(k) D. k.operator*(operator+(i)19下面对模板的声明,正确的是Atemplate<T> Btemplate<cla

8、ss T1, T2>Ctemplate<class T1, class T2> Dtemplate<class T1; class T2>20下列的各类函数中,( )不是类的成员函数A构造函数 B析构函数 C友元函数 D复制构造函数第二部分 非选择题二、填空题21在类中必须声明成员函数的 ,成员函数的 部分可以写在类外。22如果需要在被调函数运行期间,改变主调函数中实参变量的值,则函数的形参应该是 类型或 类型。23 类只能作为基类使用,而不能声明它的对象。24进行函数重载时,被重载的同名函数如果都没有用const修饰,则它们的形参个数或 必须不同。25通过一个

9、对象只能调用它的常成员函数,不能调用其他成员函数。26函数的递归调用是指函数直接或间接地调用 。27拷贝构造函数的形参必须是 。28在字长为32位的机器中,sizeof(char) 字节,sizeof(unsigned int) 字节29C+语法规定,任何变量在使用前必须先 ;变量有两个值,一个是变量本身的值,另一个是变量的 。30静态数据成员是类的所有对象中 的成员,静态数据成员初始化与一般数据成员初始化 。三、完成程序题31请补充完成下面下划线的程序部分。#include <iostream>using namespace std;class Apublic:void f()c

10、out<<"Call A's function f()"<<endl;class Bpublic:void f() cout<<"Call B's function f()"<<endl;void g() cout<<"Call B's function g()"<<endl; ;class C: public:void g()cout<<"Call C's function g()"<<

11、endl;int main()C cc;cc.B:f(); cc.B:g();cc.g();32阅读下列程序,请完成划线部分语句。#include <iostream.h>void main() int a = 50 , b(0) ; ; cout<<a<<","<<b<<endl; ;cout<<a<<","<<b<<endl;33下面是一个用户口令检查程序,在横线处填上适当语句完成程序功能。include <iostream.h>i

12、nclude <string.h>_ ;/定义由PASS指针所指向的口令wolleh。void main() char user10;/用于存放输入的口令 cout<<please input your password:<<endl; _/输入口令 if(strcmp(user,PASS)=0) cout<<your password is correct<<endl; else cout<<your password is error<<endl;34以下程序输出结果为3和4,请填上划线上的语句。#incl

13、ude <iostream.h>void main() ; case 'a' :cout<<"1"<<endl ;case 'b' :cout<<"2"<<endl ; break;case 'c' : cout <<"3"<<endl ; default : cout <<"4"<<endl ; break; 35阅读下列程序,请将程序补充完整。#includ

14、e <iostream.h>class Apublic:A();A(int i,int j);A()cout<<"Donstructor.n"void print();:int a,b;A:A()a=b=10;cout<<"Default constructor.n"A:A(int i,int j); cout<<"Constructor.n"void A:print()cout<<"a="<<a<<",b="&

15、lt;<b<<endl;void main()A m,n(15,18);m.print();n.print();四、程序分析题36阅读下列程序写出它的输出结果。# include <iostream.h># include <string.h>void main()     char *a5="student","worker","cadre","soldier",

16、"peasant"    char *p1,*p2;    p1=p2=a0;    for (int i=0; i<5; i+)            if (strcmp(ai,p1)>0) p1=ai;    &

17、#160;      if (strcmp(ai,p2)<0) p2=ai;        cout <<p1<<' '<<p2<<endl;37请写出下面程序段的输出结果。# include <iostream.h>int a=5;void main()   

18、60; int a=10,b=20;    cout <<a<<' '<<b<<endl;       int a=0,b=0;        for (int i=1; i<6; i+)     &

19、#160;      a+=i; b+=a;               cout <<a<<' '<<b<<' '<<:a<<endl;        cout&#

20、160;<<a<<' '<<b<<endl;五、编程题38把从键盘上输入的一批整数(以-1作为终止输入的标志)保存到文本文件“a:xxk1.dat”中。39测试一个名为rectangle的矩形类,其属性为矩形的左下角与右上角两个点的坐标,能计算矩形的面积。面向对象程序设计试卷第一部分 选择题一、单项选择题在每小题列出的四个备选项中只有一个是符合题目要求的,请将其选出并将“答题卷”上的相应字母涂黑。错涂、多涂或未涂均无分。1C2D3B4C5C6A7A8D9D10B11A12B13B14B15C16D17C18B19C20C

21、第二部分 非选择题二、填空题(21原理;实现22引用;指针23抽象24 类型25常26自身27本类对象的引用28;29定义;地址值30共享;不同三、完成程序题31Public A ;public B32b=+a ;b=a+33Char*PASS=”wolleh” ; cin>>user34Char flag=c;switch(flag)35Private ;a=i b=j四、程序分析题36worker:cardre3710 20 15 35 5 10 20五、编程题38源程序如下:评分标准:见参考程序中的注释。# include <iostrea

22、m.h>   / 使用此命令得1分# include <fstream.h># include <stdlib.h>void main()         ofstream fout("a:xxk1.dat");  / 定义输出文件流并打开文件得2分        if

23、 (!fout)               cerr <<"文件没有打开!"<<endl;              exit(1);               / 可有可无       int x;       cin >>x;       while (x!=-1)          

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论