秋季《C++程序设计语言》复习语音答疑Word下载.docx
- 文档编号:20185077
- 上传时间:2023-01-17
- 格式:DOCX
- 页数:18
- 大小:24.64KB
秋季《C++程序设计语言》复习语音答疑Word下载.docx
《秋季《C++程序设计语言》复习语音答疑Word下载.docx》由会员分享,可在线阅读,更多相关《秋季《C++程序设计语言》复习语音答疑Word下载.docx(18页珍藏版)》请在冰豆网上搜索。
for(inti=1;
③;
i++)//i<
=100
{t=t*x;
s=s+④;
//-sign*i/(t+sign*i)
sign=-sign;
⑤;
//returns
3.以下方阵类CSquare完成查找n行n列的二维int数组中两对角线上最大元素的值。
请你填空完成此功能。
classCSquare
{int*arr;
//arr为矩阵首地址
intnum;
//表示行数与列数
public:
CSquare(int*p,intn)
{①//arr=p;
num=n;
}
②//intFindMax()const;
};
intCSquare:
:
FindMax()const
{intmax;
inti=0;
intr,c,tmp;
max=arr[0];
for(;
i<
num;
i++)
{r=arr[i*num+i];
//(提示:
r为第i行对角线上的一个元素值)
③//c=arr[i*num+(num-1-i)];
if(r>
c)//(提示:
c为第i行另一个对角线上的一个元素值)
tmp=r;
else
tmp=c;
if(max<
tmp)
max=tmp;
returnmax;
voidmain()
{inta[5][5]={{20,-5,21,18,156},{3,-6,-8,26,-3},
{10,7,74,200,0},{11,94,3,239,11},{-7,23,88,28,83}};
CSquares((int*)a,5);
intmax=s.FindMax();
cout<
<
"
max="
max<
endl;
//(提示:
应输出:
max=239)
4.以下是类CSort的定义,完成对其成员p所指向的整数数组进行从小到大排序,该数组的元素个数由num表示,请填空完善该类定义。
classCSort
{int*p;
public:
voidOrder();
CSort(int*,int);
voidDisp();
CSort:
CSort(int*arry,intn):
p(arry),num(n)
{}
voidCSort:
Order()
{intm,tmp;
for(inti=0;
num-1;
{m=i;
for(④;
j<
j++)//intj=i+1
{if(p[j]<
p[m])
m=j;
}
if(m!
=i)
{tmp=p[i];
p[i]=p[m];
p[m]=tmp;
Disp()
{for(inti=0;
cout<
p[i]<
"
;
⑤;
//cout<
三、阅读程序题
1.写出下面程序的运行结果。
{longfib(intg);
longk;
13
k=fib(7);
cout<
k<
longfib(intg)
{switch(g)
{case0:
return0;
case1:
case2:
return1;
returnfib(g-1)+fib(g-2);
1abcdefg
2abcdefg
3abcdefg
4abcdefg
5abcdefg
2.写出下面程序的运行结果。
#defineN5
{typedefcharstr[80];
typedefstrstring[N];
strings1={"
1abcdefg"
2abcdefg"
3abcdefg"
4abcdefg"
5abcdefg"
for(inti=0;
N;
*(s1+i)<
3.写出下面程序执行的结果。
classT
97,a
98,b
99,c
{inti;
charc;
T(intx,charch)
{i=x;
c=ch;
voidshow()
{cout<
c<
{Tt[]={T(97,’a’),T(98,’b’),T(99,’c’)};
for(intj=0;
3;
j++)
t[j].show();
4.写出下面程序执行的结果。
classA
{inta;
classB
A3
B10
{intb;
public:
B(inti)
{b=i;
}
voidshow()
{cout<
B:
"
b<
};
A(intk)
{a=k;
A:
a<
{Aa1(3);
a1.show();
A:
Bb(10);
b.show();
5.阅读下面程序,写出程序运行结果。
math.h>
template<
classT>
classTadd
{Tx,y;
TAdd(Ta,Tb)
sum1=30
sum2=30.3
{x=a;
y=b;
Tadd()
{returnx+y;
{TAdd<
int>
ob1(10,20);
TAdd<
double>
ob2(10.1,20.2);
”sum1=”<
ob1.add()<
”sum2=”<
ob2.add()<
6.写出下面程序的运行结果。
{longfun(longnum);
120
longn=12345;
fun(n)<
longfun(longnum)
{longk=1;
if(num<
0)
num*=-1;
do
{k*=num%10;
num/=10;
}while(num);
returnk;
7.写出下面程序的运行结果。
{structST1
{charc[4];
char*s;
a,d
abc,def
ghi,mno
hi,no
}s1={"
abc"
def"
structST2
{char*cp;
ST1ss1;
}s2={"
ghi"
{"
jkl"
mno"
}};
s1.c[0]<
*s1.s<
s1.c<
s1.s<
s2.cp<
s2.ss1.s<
++s2.cp<
++s2.ss1.s<
8.写出下面程序的运行结果。
unionT
{unsignedintx;
aA
unsignedcharc[2];
voidset(intm)
{x=m;
voidshow()
{cout.setf(ios:
hex);
x<
{Tt;
t.set(0x4142);
t.c[0]=’a’;
t.show();
9.写出下面程序执行的结果
#include<
constructingnomally
constructingwithanumber:
20
displayanumber:
destructing
classSample
{public:
Sample();
Sample(int);
~Sample();
voiddisplay();
protected:
intx;
Sample:
Sample()
{x=0;
constructingnormally\n"
Sample(intm)
{x=m;
voidSample:
display()
{cout<
~Sample()
destructing\n"
{Sampleobj1;
Sampleobj2(20);
obj1.display();
obj2.display();
10.写出下面程序的运行结果。
doublex;
doubley;
T(doublei,doublej)
{x=i;
y=j;
100,200
150,250
{intT:
*a[]={&
T:
x,&
y};
Tt(100,200);
Tt2(150,250);
2;
t.*a[i]<
for(i=0;
t2.*a[i]<
四、编写程序题
1.编写一个应用程序,其功能是利用虚函数计算三角形、正方形和圆形三种图形的面积。
[[[参考答案:
classbase
{protected:
intx,y;
base(inti,intj)
virtualvoiddisp()=0;
classtriangle:
publicbase
triangle(intx,inty):
base(x,y)
{}
voiddisp()
AreaofTrangleis:
x*y*0.5<
classsquare:
square(intx):
base(x,x)
AreaofSquareis:
x*x<
classcircle:
circle(intx):
AreaofCircleis:
x*x*3.1415926<
{base*p;
trianglet(20,20);
squares(20);
circlec(20);
p=&
t;
p->
disp();
s;
c;
]]]
2.设计类模板用于实现对一个有序数组采用二分法查找指定元素的下标(位置),并分别使用字符型数组和整型数组对其进行测试。
#defineM100
classSearch
{Tarr[M];
intn;
Search()
Search(Tv[],inti)
{n=i;
for(intj=0;
n;
arr[j]=v[j];
intseek(Tc)
{intlow=0,hight=n-1,mid;
while(low<
=hight)
{mid=(low+hight)/2;
if(arr[mid]==c)
returnmid;
elseif(arr[mid]<
c)
low=mid+1;
else
hight=mid-1;
return-1;
{for(inti=0;
cout<
arr[i]<
{chara[]="
cdefbkjolw"
intb[]={1,3,9,10,23,27,29,56,77,89};
Search<
char>
ob1(a,10);
int>
ob2(b,10);
char:
ob1.disp();
positionofelement'
k'
is:
ob1.seek('
)<
int:
ob2.disp();
positionofelement56is:
ob2.seek(56)<
3.编写一个应用程序,其功能是利用虚函数计算正方体、球体和圆柱体三种图形的体积。
doubler;
base(doublerd)
{r=rd;
virtualdoublevolume()=0;
classcube:
cube(doublerd):
base(rd)
doublevolume()
{returnr*r*r;
classsphere:
sphere(doublerd):
{return3.1415926*r*r*r*4/3;
classcylinder:
{doubleh;
cylinder(doubleht,doublerd):
{h=ht;
{return3.1415926*r*r*h;
cubec(5);
spheres(5);
cylindercy(3,5);
Volumeofcubeis:
p->
volume()<
Volumeofsphereis:
cy;
Volumeofcylinderis:
4.设计类模板用于实现栈功能,要求其有成员函数push(元素入栈)、pop(元素出栈)和isempty(测试是否空栈),并分别用整数栈和字符栈对其进行测试。
stdlib.h>
constintMax=20;
classStack
{Tst[Max];
inttop;
Stack()
{top=0;
voidpush(constT&
item)
{if(top>
=Max)
{cout<
Stackoverflow!
exit
(1);
st[top++]=item;
Tpop()
{if(top<
=0)
Stackempty!
returnst[--top];
intisempty()
{returntop==0;
{Stack<
st1;
Stack<
st2;
intarr[]={1,2,3,4};
charstr[]="
abcd"
4;
st1.push(arr[i]);
st2.push(str[i]);
int:
while(!
st1.isempty())
st1.pop()<
st2.isempty())
st2.pop()<
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C+程序设计语言 秋季 C+ 程序设计语言 复习 语音 答疑