《面向对象程序设计》模拟试题及答案0_第1页
《面向对象程序设计》模拟试题及答案0_第2页
《面向对象程序设计》模拟试题及答案0_第3页
《面向对象程序设计》模拟试题及答案0_第4页
《面向对象程序设计》模拟试题及答案0_第5页
已阅读5页,还剩13页未读 继续免费阅读

付费下载

下载本文档

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

文档简介

第第页《面向对象程序设计》模拟试题及答案0《面对对象程序设计》模拟试题及答案0

《面对对象程序设计》模拟试题及答案

一、单项选择题〔每题2分,共20分〕

1.C++程序的基本功能模块为〔〕。

A.表达式B.标识符C.语句D.函数

2.当处理特定问题的循环次数已知时,通常采纳〔〕来解决。

A.for循环B.while循环C.do循环D.switch语句

3.下面函数原型语句正确的选项是〔〕。

A.intFunction(voida);B.voidFunction(int);

C.intFunction(a);D.int(doublea);

4.假定变量m定义为“intm=7;”,那么定义变量p的正确语句为〔〕。

A.intp=m;B.int*p=m;C.intp=*m;D.int*p=m;

5.假定变量a和pa定义为“doublea[10],*pa=a;”,要将12.35赋值给数组a中的下标为5的元素,不正确的语句是〔〕。

A.pa[5]=12.35;B.a[5]=12.35;

C.*(pa+5)=12.35;D.*(a[0]+5)=12.35;

6.假定AA为一个类,a为该类私有的数据成员,GetValue()为该类公有函数成员,它返回a的值,*为该类的一个对象,那么访问*对象中数据成员a的格式为〔〕。

A.*.aB.*.a()C.*-GetValue()D.*.GetValue()

7.类的构造函数是在定义该类的一个()时被自动调用执行的。

A.成员函数B.数据成员C.对象D.友元函数

8.假定AB为一个类,那么执行“AB*;”语句时将自动调用该类的()。

A.带参构造函数B.无参构造函数C.拷贝构造函数D.赋值重载函数

9.假定一个类AB只含有一个整型数据成员a,当用户不定义任何构造函数时,系统为该类定义的无参构造函数为()。

A.AB(){a=0;}B.AB(intaa=0):a(aa){}

C.AB(intaa):a(aa){}D.AB(){}

10.假如表达式a++中的“++”是作为一般函数重载的运算符,假设采纳运算符函数调用格式,那么可表示为〔〕。

A.a.operator++()B.operator++(a)

C.operator++(a,1)D.operator++(1,a)

二、填空题〔每题2分,共20分〕

1.存储字符’a’和字符串”a”分别需要占用________和________个字节。

2.重载一个函数的条件是:该函数需要在参数的________或参数对应的__________上与其它同名函数不相同。

3.假定p是一个指向整数对象的指针,那么用________表示该整数对象,用________表示指针变量p的地址。

4.元素a[i]和b[i][j]的指针访问方式分别为__________和__________。

5.已知有定义“int*,a[]={5,7,9},*pa=a;”,在执行“*=++*pa;”语句后,*的值是________,*(pa+1)的值为________。

6.在一个用数组实现的队列类中,假定数组长度为MS,队首元素位置为first,队列长度为length,那么队列为空和队列为满的条件分别为__________和__________。

7.对类中________和________成员的初始化只能通过在构造函数中给出的初始化表项来实现的。

《面对对象程序设计》模拟试题及答案0

8.假定AB为一个类,该类中含有一个指向动态数组空间的指针成员pa,那么在该类的析构函数中应当包含有一条______________语句。

9.假定派生类及其基类中都定义有同名函数成员,假设要在派生类中调用基类的同名函数成员时,就需要在其函数名前加上______和__________。

10.派生类的成员函数能够径直访问所含基类的__________成员函数和___________成员函数。

三、程序填充题,对程序、函数或类中划有横线的位置,依据题意按标号把合适的内容填写到程序后面的标号处。〔每题5分,共20分〕

1.统计字符串中英文字母个数的程序。

#includeiostream.h

intcount(charstr[]);

voidmain(){

chars1[80];

cout”Enteraline:”;

cins1;

cout”count=”count(s1)endl;

}

intcount(charstr[]){

intnum=0;//给统计变量赋初值

for(inti=0;str[i];i++)

if(str[i]=’a’str[i]=’z’||___(1)___)___(2)___;___(3)___;

}

(1)(2)(3)

2.对数组a[n]中的n个元素按升序进行的选择排序算法。

voidSelectSort(inta[],___(1)___)

{

inti,j,k;

for(i=1;in;i++){//进行n-1次选择和交换

k=i-1;

for(j=i;jn;j++)

if(a[j]a[k])___(2)___;

int*=a[i-1];a[i-1]=a[k];___(3)___;

}

}

(1)(2)(3)

3.下面是一维数组类ARRAY的定义,ARRAY与一般一维数组的区分是:(a)用()而不是

[]进行下标访问,(b)下标从1而不是从0开始,(c)要对下标是否越界进行检查。classARRAY{

int*v;//指向存放数组数据的空间

ints;//数组大小

public:

ARRAY(inta[],intn);

~ARRAY(){delete[]v;}

《面对对象程序设计》模拟试题及答案0

intsize(){returns;}

intoperator()(intn);

};

___(1)___operator()(intn)//()的运算符成员函数定义

{

if(___(2)___){cerr下标越界!;e*it(1);}

return___(3)___;

}

(1)(2)(3)

4.一种类定义如下:

classGoods

{

private:

chargd_name[20];//商品名称

intweight;//商品重量

staticinttotalweight;//同类商品总重量

public:

Goods(char*str,intw){//构造函数

strcpy(gd_name,str);

weight=w;

totalweight+=weight;

}

~Goods(){totalweight-=weight;}

char*GetN(){___(1)___;}//返回商品名称

intGetW(){returnweight;}

___(2)___GetTotal_Weight(){//定义静态成员函数返回总重量___(3)___;

}

}

(1)(2)(3)

四、理解问答题,写出前三小题的程序运行结果和指出后两小题的程序〔或函数〕所能实现的功能。〔每题6分,共30分〕

1.#includeiomanip.h

constintN=3;

voidmain()

{

inta[N][N]={{7,-5,3},{2,8,-6},{1,-4,-2}};

intb[N][N]={{3,6,-9},{2,-8,3},{5,-2,-7}};

inti,j,c[N][N];

for(i=0;iN;i++)//计算矩阵C

for(j=0;jN;j++)

c[i][j]=a[i][j]+b[i][j];

for(i=0;iN;i++){//输出矩阵C

for(j=0;jN;j++)

《面对对象程序设计》模拟试题及答案0

coutsetw(5)c[i][j];

coutendl;

}

}

运行结果:

2.#includeiostream.h

#includestring.h

classA{

char*a;

public:

A(char*s){

a=newchar[strlen(s)+1];

strcpy(a,s);

coutaendl;

}

~A(){delete[]a;}

};

voidmain(){

A*(*u*iaokai);

A*y=newA(weirong);

deletey;

}

运行结果:

3.#includeiostream.h

classA{

inta,b;

public:

A(){a=b=0;}

A(intaa,intbb){a=aa;b=bb;}

intSum(){returna+b;}

int*Mult(){

int*p=newint(a*b);

returnp;

}

};

voidmain(){

A*(2,3),*p;

p=newA(4,5);

cout*.Sum()’’*(*.Mult())endl;

coutp-Sum()’’*(p-Mult())endl;

}

运行结果:

4.voidfun5(char*a,constchar*b)

{

《面对对象程序设计》模拟试题及答案0

while(*b)*a++=*b++;

*a=0;

}

函数功能:

5.templateclassT

boolfun8(Ta[],intn,Tkey)

{

for(inti=0;in;i++)

if(a[i]==key)returntrue;

returnfalse;

}

函数功能:

五、编程题〔每题5分,共10分〕

1.根据下面函数原型语句编写一个递归函数求出并返回数组a中n个元素的平方和。intf(inta[],intn);

2.依据下面类中拷贝构造函数的原型写出它的类外定义。

classArray{

int*a;//指向动态安排的整型数组空间

intn;//记录数组长度

public:

Array(intaa[],intnn);//构造函数,利用aa数组长度nn初始化n,//利用aa数组初始化a所指向的数组空间Array(Arrayaa);//拷贝构造函数

ArrayGive(Arrayaa);//实现aa赋值给*this的功能并返回*thisArrayUion(Arrayaa);//实现*this和aa中的数组合并的

//功能,把合并结果存入临时对象并返回intLenth(){returnn;}//返回数组长度

voidPrint(){//输出数组

for(inti=0;in;i++)

couta[i]’’;

coutendl;

}

};

答案供参考

一、单项选择题〔每题2分,共20分〕

1.D2.A3.B4.B5.D

6.D7.C8.B9.D10.C

二、填空题〔每题2分,共20分〕

评分标准:每题假设有两个空,那么每空1分;假设只有一个空,那么每空2分。

1.122.个数(或数目)类型

3.*pp4.*(a+i)*(*(b+i)+j)

5.676.length==0length==MS

《面对对象程序设计》模拟试题及答案0

7.对象基类常量引用〔四取二即可〕8.delete[]pa;

9.基类名类区分符10.公有爱护

三、程序填充题,对程序、函数或类中划有横线的位置,依据题意按标号把合适的内容填写到程序后面的标号处。〔每题5分,共20分〕

评分标准:对一空给2分,对两空给4分,对三空给5分。

1.(1)str[i]=’A’str[i]=’Z’

(2)num++

(3)returnnum

2.(1)intn

(2)k=j

(3)a[k]=*

3.(1)intARRAY::

(2)n1||ns

(3)v[n-1]

4.(1)returngd_name

(2)staticint

(3)returntotalweight

四、理解问答题,写出前三小题的程序运行结果和指出后两小题的程序〔或函数〕所能实现的功能。〔每题6分,共30分〕

1.101-6//2分

40-3//2分

6-6-9//2分

2.*u*iaokai//3分

weirong//3分

3.56//3分

920//3分

4.实现字符串系统函数strcpy的功能,把b所指的字符串拷贝到a所指的字符数组空间中。

5.函数模板,从一维数组a[n]中查找值为key的元素,假设查找胜利那么返回真否那么返回假。

第4、5小题评分标准:按表达完整程度酌情给分。

五、编程题〔每题5分,共10分〕

评分标准:按编程完整程度酌情给分。

1.intf(inta[],intn)

{

if(n==0)return0;

elsereturna[n-1]*a[n-1]+f(a,n-1);

}

2.Array::Array(Arrayaa){

n=aa.n;

a=newint[n];

for(inti=0;in;i++)a[i]=aa.a[i];

}

《面对对象程序设计》模拟试题及答案0

《面对对象程序设计》模拟试题及答案

一、单项选择题〔每题2分,共20分〕

1.C++程序的基本功能模块为〔〕。

A.表达式B.标识符C.语句D.函数

2.当处理特定问题的循环次数已知时,通常采纳〔〕来解决。

A.for循环B.while循环C.do循环D.switch语句

3.下面函数原型语句正确的选项是〔〕。

A.intFunction(voida);B.voidFunction(int);

C.intFunction(a);D.int(doublea);

4.假定变量m定义为“intm=7;”,那么定义变量p的正确语句为〔〕。

A.intp=m;B.int*p=m;C.intp=*m;D.int*p=m;

5.假定变量a和pa定义为“doublea[10],*pa=a;”,要将12.35赋值给数组a中的下标为5的元素,不正确的语句是〔〕。

A.pa[5]=12.35;B.a[5]=12.35;

C.*(pa+5)=12.35;D.*(a[0]+5)=12.35;

6.假定AA为一个类,a为该类私有的数据成员,GetValue()为该类公有函数成员,它返回a的值,*为该类的一个对象,那么访问*对象中数据成员a的格式为〔〕。

A.*.aB.*.a()C.*-GetValue()D.*.GetValue()

7.类的构造函数是在定义该类的一个()时被自动调用执行的。

A.成员函数B.数据成员C.对象D.友元函数

8.

温馨提示

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

评论

0/150

提交评论