面向对象程序设计期末针对性训练.docx

上传人:b****6 文档编号:5840317 上传时间:2023-01-01 格式:DOCX 页数:35 大小:33.34KB
下载 相关 举报
面向对象程序设计期末针对性训练.docx_第1页
第1页 / 共35页
面向对象程序设计期末针对性训练.docx_第2页
第2页 / 共35页
面向对象程序设计期末针对性训练.docx_第3页
第3页 / 共35页
面向对象程序设计期末针对性训练.docx_第4页
第4页 / 共35页
面向对象程序设计期末针对性训练.docx_第5页
第5页 / 共35页
点击查看更多>>
下载资源
资源描述

面向对象程序设计期末针对性训练.docx

《面向对象程序设计期末针对性训练.docx》由会员分享,可在线阅读,更多相关《面向对象程序设计期末针对性训练.docx(35页珍藏版)》请在冰豆网上搜索。

面向对象程序设计期末针对性训练.docx

面向对象程序设计期末针对性训练

面向对象程序设计课程期末针对性训练

训练第一套

一、单项选取题(每小题2分,共20分)

1.设x和y均为bool量,则x||y为假条件是()。

A.它们均为真B.其中一种为真

C.它们均为假D.其中一种为假

2.假定一种二维数组定义语句为“inta[3][4]={{3,4},{2,8,6}};”,则元素a[1][2]值为()。

A.2B.4C.6D.8

3.假定p是具备int**类型指针变量,则给p赋值对的语句为()。

A.p=newint;B.p=newint*;C.p=newint**;D.p=newint[10];

4.软件产品在需求发生变化、运营环境发生变化或发现软件产品自身错误或局限性时进行相应软件更新难易限度叫做软件()。

A.可维护性B.可复用性C.兼容性D.对的性

5.若需要把一种类外定义成员函数指明为内联函数,则必要把核心字()放在函数原型或函数头前面。

A.inB.inlineC.inLineD.InLiner

6.在一种用数组实现队列类中,假定数组长度为MS,队首元素位置为first,队列长度为length,则队尾后一种位置为()。

A.length+1B.first+length

C.(first+length-1)%MSD.(first+length)%MS

7.假定一种类构造函数为“A(intaa,intbb){a=aa;b=aa*bb;}”,则执行“Ax(4,5);”语句后,x.a和x.b值分别为()。

A.4和5B.5和4C.4和20D.20和5

8.假定AB为一种类,则执行“AB*p=newAB(1,2);”语句时共调用该类构造函多次数为()。

A.0B.1C.2D.3

9.一种类成员函数也可以成为另一种类友元函数,这时友元声明()类域限定。

A.需加上B.不需加上C.可加可不加D.取消

10.队列具备()操作特性。

A.先进先出B.先进后出C.进出无序D.仅进不出

二、填空题(每小题2分,共20分)

1.多行注释开始标记符为__________。

2.假定x=5,y=6,则表达式x++*++y值为__________。

3.假定x是一种逻辑量,则x&&true值与x值__________。

4.含随机函数表达式rand()%20值在0至______整数区间内。

5.程序编译是以__________为单位进行。

6.一种数组________事实上是指向该数组第一种元素指针,并且在任何时候都不容许修改它。

7.指针变量pv和pc定义为“void*pv=”Hello,word!

”;char*pc;”,要将pv值赋给pc,则对的赋值语句是pc=(___________)pv。

8.一种类__________函数通惯用于实现释放该类对象中指针成员所指向动态存储空间任务。

9.假定顾客为类AB定义了一种构造函数“AB(intaa):

a(aa){}”,则__________是该类数据成员。

10.在多文献构造程序中,普通把具有main()函数文献称为该程序________。

三、程序填充题,依照题旨在横线上填写适当内容。

(每小题6分,共24分)

1.采用辗转相除法求出两个整数最大公约数。

#include

voidmain()

{

inta,b;

cout<<"请输入两个正整数:

";

cin>>a>>b;

while(a<=0||b<=0){cout<<"重新输入:

";cin>>a>>b;}

while(b){

intr;

r=a%b;

______________;______________;//分别修改a和b值

}

cout<

}

2.用插入排序办法对table指针数组中size个指针所指向字符串进行按升序排序算法。

voidsort(char*table[],intsize){

for(inti=1;i

char*p=table[i];

for(intj=i-1;j>=0;j--)

if(strcmp(p,table[j])<0)table[j+1]=___________;

elsebreak;

table[j+1]=__________;

}

}

3.类A定义

classA{

char*a;

public:

A(){a=NULL;}//定义无参构造函数,使a为空指针

A(char*aa){

a=__________char[strlen(aa)+1];

strcpy(a,aa);//用aa所指字符串初始化a所指向动态存储空间

}

__________________//定义析构函数,删除a所指向动态存储空间

};

 

4.类Goods定义

class

{

private:

charName[20];//商品名称

intWeight;//商品重量

staticinttotalWeight;//同类商品总重量

public:

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

strcpy(Name,str);

Weight=w;

totalWeight+=Weight;

}

~Goods(){totalWeight-=Weight;}

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

intGetW(){returnweight;}

staticintGetTotalWeight(){//定义静态成员函数返回总重量

____________________;

}

}

四、理解问答题,分别写出前2小题程序运营成果和指出后2小题程序或函数功能。

(每小题6分,共24分)

1.#include

constintT=6;

voidmain()

{

inti,j,k=0;

for(i=1;i<=T;i+=2){

for(j=2;j<=T;j+=2)k++;

}

cout<<”k=”<

}

运营成果:

2.#include

classCE{

private:

inta,b;

intgetmax(){return(a>b?

a:

b);}

public:

intc;

voidSetValue(intx1,intx2,intx3){

a=x1;b=x2;c=x3;

}

intGetMax();

};

intCE:

:

GetMax(){

intd=getmax();

return(d>c?

d:

c);

}

voidmain()

{

intx=5,y=12,z=8;

CEex;

ex.SetValue(x,y,z);

cout<

}

运营成果:

3.#include

voidmain()

{

inti,p=1;

intN;

cout<<"输入一种正整数:

";

cin>>N;

for(i=1;i<=N;i++)p*=i;

cout<<”N!

=”<

}

程序功能:

4.intf(char*s)

{

inti=0;

while(*s++)i++;

returni;

};

函数功能:

五、编程题(每小题6分,共12分)

1.编写一种函数,分别求出由指针a所指向字符串中包括每种十进制数字浮现次数,把记录成果保存在数组b相应元素中,该函数原型声明如下:

voidfun(char*a,intb[]);

2.依照下面类中CompareBig函数成员原型和注释写出它类外定义。

classAA{

int*a;

intn;

intMS;

public:

voidInitAA(intaa[],intnn,intms){

if(nn>ms){cout<<"Error!

"<

(1);}

MS=ms;

n=nn;

a=newint[MS];

for(inti=0;i

}

intCompareBig(AA&b);//比较*this与b大小,从前向后按两数组

//中相应元素比较,若*this中元素值大则返回1,若b中

//元素值大则返回-1,若相等则继续比较下一种元素,直到

//一种数组中无元素比较,此时若两者n值相似则返回0,

//否则若*this中n值大则返回1,若b中n值大则返回-1。

};

答案供参照

一、单项选取题(每小题2分,共20分)

1.C2.C3.B4.A5.B

6.D7.C8.B9.A10.A

二、填空题(每小题2分,共20分)

1./*2.353.相似4.195.文献

6.数组名7.char*8.析构9.a10.主文献

三、程序填充题,依照题旨在横线上填写适当内容。

(每小题6分,共24分)

评分原则:

每空3分

1.a=b、b=r

2.table[j]、p

3.new、~A(){delete[]a;}

4.returnName、returntotalWeight

四、理解问答题,分别写出前2小题程序运营成果和指出后2小题程序或函数功能。

(每小题6分,共24分)

1.k=9

2.12

3.计算并输出N阶乘值,其中N值由键盘输入。

4.求出并返回字符指针参数s所指向字符串长度。

五、编程题(每小题6分,共12分)

评分原则:

按编程完整限度酌情给分。

1.voidfun(char*a,intb[])

{

inti;

for(i=0;i<10;i++)b[i]=0;//2分

while(*a){

intj=*a-’0’;

if(j>=0&&j<=9)b[j]++;

a++;

}//6分

}

2.intAA:

:

CompareBig(AA&b)

{

intk;

if(n>b.n)k=b.n;elsek=n;//1分

for(inti=0;i

if(a[i]>b.a[i])return1;

elseif(a[i]

if(k==n&&k==b.n)return0;//4分

elseif(k

elsereturn-1;//6分

}

训练第二套

 

一、单项选取题(每小题2分,共20分)

1.字符串”a+b=12\n”长度为()。

A.6B.7C.8D.9

2.假定一种二维数组定义语句为“inta[3][4]={{3,4},{2,8,6}};”,则元素a[2][1]值为()。

A.0B.4C.8D.6

3.如下对的描述是()。

A.函数定义可以嵌套,函数调用不可以嵌套

B.函数定义不可以嵌套,函数调用可以嵌套

C.函数定义和函数调用均可以嵌套

D.函数定义和函数调用均不可以嵌套

4.设有定义“doublearray[10];”,则表达式sizeof(array)/sizeof(array[0])成果为array数组()。

A.首地址B.元素个数

C.每个元素所占字节数D.总字节数

5.若使p指向包括30个整型元素动态数组空间,则使用定义语句为()。

A.int*p=newint[30];B.int*p=newint(30);

C.int*p=new[30];D.*p=newint[30];

6.软件产品与其她软件产品组合成一种整体难易限度叫做软件()。

A.可维护性B.可复用性C.兼容性D.对的性

7.在多文献构造程序中,普通把类声明单独存储于()中。

A.主文献B.实现文献C.库文献D.头文献

8.在一种用数组实现队列类中,假定数组长度为MS,队首元素位置为first,队列长度为length,则队首后一种位置为()。

A.first+1B.(first+1)%MS

C.(first-1)%MSD.(first+length)%MS

9.假定一种类构造函数为“A(intaa=1,intbb=0){a=aa;b=bb;}”,则执行“Ax(4);”语句后,x.a和x.b值分别为()。

A.1和0B.1和4C.4和1D.4和0

10.假定AB为一种类,则执行“ABa

(2),b[3],*p[4];”语句时共调用该类构造函多次数为()。

A.3B.4C.5D.9

二、填空题(每小题2分,共20分)

1.用于输出表达式值原则输出流对象是____________。

2.假定x=5,y=6,则表达式x--*--y值为__________。

3.假定x是一种逻辑量,则x||true值为__________。

4.C++提供预解决命令有宏定义命令,条件编译命令和____________命令。

5.假定a是一种一维数组,则a[i]指针访问方式为________。

6.变量v定义为“doublev=23.4;”,要使指针pv指向v,则定义pv语句为______________。

7.若在类定义体中只给出了一种成员函数原型,则在类外给出完整定义时,其函数名前必要加上________和两个冒号分隔符。

8.若采用x.abc(y)表达式调用一种成员函数,在成员函数中使用________就代表了类外x对象。

9.假定顾客没有给一种名为AB类定义析构函数,则系统为其定义析构函数为__________。

10.假定顾客只为类AB定义了一种构造函数"AB(intaa,intbb=0){a=aa;b=bb;}",则定义该类对象时,其实参表中至多带有_________个实参。

三、程序填充题,依照题旨在横线上填写适当内容。

(每小题6分,共24分)

1.下面函数是求两个整型参数a和b最小公倍数。

intf2(inta,intb)

{

inti=2,p=1;

do{

while(a%i==0&&____________){

p*=i;a/=i;b/=i;

}

i++;

}while(a>=i&&____________);

returnp*a*b;

}

2.对数组a中元素按相反顺序重新排列。

voidPV(inta[],intn)

{

inti;

for(i=0;i

intx=a[i];

____________________;

____________________;

}

}

3.假定有定义为“structNODE{intdata;NODE*next;};”,下面算法是把以L为表头指针链表中各结点依次按相反顺序链接并返回新链表表头指针。

NODE*f8(NODE*L)

{

if(L==NULL)returnNULL;

NODE*p=NULL,*q=L,*t;//p为新链表表头指针,初始值为空

while(q!

=NULL){

t=q;

q=q->next;

t->next=__________;

p=__________;

}

returnp;

}

4.类A定义

classA{

int*a;intn;intMaxLen;

public:

A():

a(0),n(0),MaxLen(0){}//无参构造函数

A(int*aa,intnn,intMM){//带参构造函数

n=nn;

MaxLen=MM;

if(n>MaxLen)exit

(1);

a=newint[MaxLen];

for(inti=0;i

}

~A(){______________;}//释放动态存储空间

intGetValue(inti){returna[i];}//函数体返回a[i]值

};

四、理解问答题,分别写出前2小题程序运营成果和指出后2小题程序或函数功能。

(每小题6分,共24分)

1.#include

constintB=2;

voidmain()

{

intp=1,s=1;

while(s<50){

p*=B;

s+=p;

}

cout<<"s="<

}

运营成果:

2.#include

classCE{

private:

inta,b;

intgetmin(){return(a

a:

b);}

public:

intc;

voidSetValue(intx1,intx2,intx3){

a=x1;b=x2;c=x3;

}

intGetMin();

};

intCE:

:

GetMin(){

intd=getmin();

return(d

d:

c);

}

voidmain()

{

intx=5,y=12,z=8;

CE*ep=newCE;

ep->SetValue(x+y,y-z,10);

cout<GetMin()<

}

运营成果:

3.intff(intx,inty,charop){

intz;

switch(op){

case'+':

cout<>z;

if(x+y==z)return1;elsereturn0;

break;

case'-':

cout<>z;

if(x-y==z)return1;elsereturn0;

break;

case'*':

cout<>z;

if(x*y==z)return1;elsereturn0;

break;

case'/':

cout<

elser[i]=s[i];

r[n]=’\0’;

returnr;

}

函数功能:

五、编程题(每小题6分,共12分)

1.按照下面函数原型语句编写一种递归函数求出并返回数组a中n个元素平方和。

intf(inta[],intn);

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

classArray{

int*a;//指向动态分派整型数组空间

intn;//记录数组长度

public:

Array(intaa[],intnn);//构造函数,运用aa数组长度nn初始化n,

//运用aa数组初始化a所指向数组空间

Array(Array&aa);//拷贝构造函数

};

答案供参照

一、单项选取题每小题2分,共20分)

1.B2.A3.B4.B5.A

6.C7.D8.B9.D10.B

二、填空题(每小题2分,共20分)

1.cout2.253.true(或1)4.文献包括5.*(a+i)

6.double*pv=&v;7.类名8.*this9.~AB(){}10.2

三、程序填充题,依照题旨在横线上填写适当内容。

(每小题6分,共24分)

评分原则:

每空3分。

1.b%i==0、b>=i

2.a[i]=a[n-i-1]、a[n-i-1]=x

3.p、t

4.a[i]=aa[i]、delete[]a

四、理解问答题,分别写出前2小题程序运营成果和指出后2小题程序或函数功能。

(每小题6分,共24分)

评分原则:

第3、4小题依照论述完整限度酌情给分。

1.s=63

2.4

3.以参数x和y作为运算对象,以参数op所存字符作为运算符,规定从键盘上输入运算成果,若对的则返回1否则返回0。

4.依照参数s所指向字符串,生成一种由r所指向新字符串并返回,该字符串使s字符串中小写字母均变为大写。

五、编程题(每小题6分,共12分)

评分原则:

按编程完整限度酌情给分。

1.intf(inta[],intn)

{

if(n==0)return0;//1分

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

}

2.Array:

:

Array(Array&aa){

n=aa.n;//1分

a=newint[n];//3分

for(inti=0;i

}

训练第三套

一、单项选取题(每小题2分,共20分)

1.C++程序基

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 经管营销

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1