面向对象程序设计期末针对性训练Word文档格式.docx
- 文档编号:18827361
- 上传时间:2023-01-01
- 格式:DOCX
- 页数:35
- 大小:33.34KB
面向对象程序设计期末针对性训练Word文档格式.docx
《面向对象程序设计期末针对性训练Word文档格式.docx》由会员分享,可在线阅读,更多相关《面向对象程序设计期末针对性训练Word文档格式.docx(35页珍藏版)》请在冰豆网上搜索。
”,要将pv值赋给pc,则对的赋值语句是pc=(___________)pv。
8.一种类__________函数通惯用于实现释放该类对象中指针成员所指向动态存储空间任务。
9.假定顾客为类AB定义了一种构造函数“AB(intaa):
a(aa){}”,则__________是该类数据成员。
10.在多文献构造程序中,普通把具有main()函数文献称为该程序________。
三、程序填充题,依照题旨在横线上填写适当内容。
(每小题6分,共24分)
1.采用辗转相除法求出两个整数最大公约数。
#include<
iostream.h>
voidmain()
{
inta,b;
cout<
<
"
请输入两个正整数:
;
cin>
>
a>
b;
while(a<
=0||b<
=0){cout<
重新输入:
;
cin>
}
while(b){
intr;
r=a%b;
______________;
______________;
//分别修改a和b值
}
a<
endl;
//输出最大公约数
2.用插入排序办法对table指针数组中size个指针所指向字符串进行按升序排序算法。
voidsort(char*table[],intsize){
for(inti=1;
i<
size;
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小题程序或函数功能。
1.#include<
constintT=6;
inti,j,k=0;
for(i=1;
=T;
i+=2){
for(j=2;
j<
j+=2)k++;
”k=”<
k<
endl;
运营成果:
2.#include<
classCE{
intgetmax(){return(a>
b?
a:
b);
intc;
voidSetValue(intx1,intx2,intx3){
a=x1;
b=x2;
c=x3;
intGetMax();
};
intCE:
:
GetMax(){
intd=getmax();
return(d>
c?
d:
c);
intx=5,y=12,z=8;
CEex;
ex.SetValue(x,y,z);
ex.GetMax()<
3.#include<
inti,p=1;
intN;
输入一种正整数:
N;
for(i=1;
=N;
i++)p*=i;
”N!
=”<
p<
程序功能:
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;
voidInitAA(intaa[],intnn,intms){
if(nn>
ms){cout<
Error!
exit
(1);
MS=ms;
n=nn;
a=newint[MS];
for(inti=0;
n;
i++)a[i]=aa[i];
intCompareBig(AA&
b);
//比较*this与b大小,从前向后按两数组
//中相应元素比较,若*this中元素值大则返回1,若b中
//元素值大则返回-1,若相等则继续比较下一种元素,直到
//一种数组中无元素比较,此时若两者n值相似则返回0,
//否则若*this中n值大则返回1,若b中n值大则返回-1。
答案供参照
1.C2.C3.B4.A5.B
6.D7.C8.B9.A10.A
1./*2.353.相似4.195.文献
6.数组名7.char*8.析构9.a10.主文献
评分原则:
每空3分
1.a=b、b=r
2.table[j]、p
3.new、~A(){delete[]a;
4.returnName、returntotalWeight
1.k=9
2.12
3.计算并输出N阶乘值,其中N值由键盘输入。
4.求出并返回字符指针参数s所指向字符串长度。
按编程完整限度酌情给分。
1.voidfun(char*a,intb[])
inti;
for(i=0;
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分
k;
i++)
if(a[i]>
b.a[i])return1;
elseif(a[i]<
b.a[i])return-1;
//3分
if(k==n&
k==b.n)return0;
//4分
elseif(k<
n)return1;
elsereturn-1;
//6分
训练第二套
1.字符串”a+b=12\n”长度为()。
A.6B.7C.8D.9
”,则元素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.软件产品与其她软件产品组合成一种整体难易限度叫做软件()。
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);
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;
}"
,则定义该类对象时,其实参表中至多带有_________个实参。
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)
for(i=0;
n/2;
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){//带参构造函数
MaxLen=MM;
if(n>
MaxLen)exit
(1);
a=newint[MaxLen];
i++)____________;
//运用数组aa给数组a赋值
~A(){______________;
}//释放动态存储空间
intGetValue(inti){returna[i];
}//函数体返回a[i]值
constintB=2;
intp=1,s=1;
while(s<
50){
p*=B;
s+=p;
cout<
s="
s<
intgetmin(){return(a<
intGetMin();
GetMin(){
intd=getmin();
return(d<
CE*ep=newCE;
ep->
SetValue(x+y,y-z,10);
ep->
GetMin()<
3.intff(intx,inty,charop){
intz;
switch(op){
case'
+'
x<
'
y<
='
z;
if(x+y==z)return1;
elsereturn0;
break;
-'
if(x-y==z)return1;
*'
if(x*y==z)return1;
/'
if(x/y==z)return1;
default:
cout<
运算符错,退出!
4.char*f(char*s){
intn=strlen(s);
char*r=newchar[n+1];
for(inti=0;
if(s[i]>
a'
&
s[i]<
z'
)r[i]=s[i]-'
A'
elser[i]=s[i];
r[n]=’\0’;
returnr;
五、编程题(每小题6分,共12分)
1.按照下面函数原型语句编写一种递归函数求出并返回数组a中n个元素平方和。
intf(inta[],intn);
2.依照下面类中拷贝构造函数原型写出它类外定义。
classArray{
int*a;
//指向动态分派整型数组空间
intn;
//记录数组长度
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
1.cout2.253.true(或1)4.文献包括5.*(a+i)
6.double*pv=&
v;
7.类名8.*this9.~AB(){}10.2
每空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
第3、4小题依照论述完整限度酌情给分。
1.s=63
2.4
3.以参数x和y作为运算对象,以参数op所存字符作为运算符,规定从键盘上输入运算成果,若对的则返回1否则返回0。
4.依照参数s所指向字符串,生成一种由r所指向新字符串并返回,该字符串使s字符串中小写字母均变为大写。
1.intf(inta[],intn)
if(n==0)return0;
elsereturna[n-1]*a[n-1]+f(a,n-1);
2.Array:
Array(Array&
aa){
n=aa.n;
a=newint[n];
i++)a[i]=aa.a[i];
训练第三套
一、单项选取题(每小题2分,共20分)
1.C++程序基
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 面向 对象 程序设计 期末 针对性 训练