实验参考答案Word文件下载.docx
《实验参考答案Word文件下载.docx》由会员分享,可在线阅读,更多相关《实验参考答案Word文件下载.docx(17页珍藏版)》请在冰豆网上搜索。
”第10次反弹高度为:
(0.5*h)<
3.#include<
doublepi=1.0,t;
for(intn=1;
n<
=1000;
n++){
t=(2.0*n)/(2*n-1)*(2.0*n)/(2*n+1);
pi*=t;
pi*=2;
”pi的近似值:
pi<
实验五函数
(1)
intprime(int);
inta=0,k,n=0;
floatav;
for(intk=2;
k<
1000;
k++)
if(prime(k)){a+=k;
n++;
av=a/n;
”av=”<
av<
intprime(intn){
inti,y=1;
for(i=2;
n;
i++)
if(n%i==0){y=0;
break;
returny;
boolisNarcissus(int);
intn=0;
for(intm=999;
m>
=100;
m--)
if(isNarcissus(m)){
n++;
if(n==2){
”水仙花数中的次大值为:
m<
break;
boolisNarcissus(intm){
inti,j,k;
i=m/100;
j=(m-i*100)/10;
k=m%10;
if(m==i*i*i+j*j*j+k*k*k)returntrue;
elsereturnfalse;
intk,n=0;
i=2;
”请输入一个整数:
k;
’=’;
while(k!
=1){
if(k%i==0){
if(n>
1)cout<
’*’;
i;
k/=i;
elsei=(i==2)?
3:
i+2;
4.#include<
intfun(int);
intm;
”请输入一个4位自然数:
m;
”各位数字组成的最大数:
fun(m)<
intfun(intm){
inti,j,k,n,t;
i=m/1000;
j=(m-i*1000)/100;
k=m%100/10;
n=m%10;
if(i<
j){t=i;
i=j;
j=t;
k){t=i;
i=k;
k=t;
n){t=i;
i=n;
n=t;
if(j<
k){t=j;
j=k;
n){t=j;
j=n;
if(k<
n){t=k;
k=n;
returni*1000+j*100+k*10+n;
实验六函数
(2)
#defineA(x,i,j)pow(1-x,i)/(j*i)
intf(intn){
if(n==1)return1;
elseif(n==2)return2;
elsereturnf(n-1)+f(n-2);
inti,j,n=1;
doublea,s,x;
”输入一个绝对值小于1的数:
x;
}while(fabs(x)>
1);
s=1-x;
i=f(n);
j=f(n-1);
a=A(x,i,j);
s+=a;
}while(fabs(a)>
1e-5);
”s=”<
s<
2.#include<
voidfun1(int*,int,int&
int&
);
intgcd(int,int);
voidmain(){
inta[10];
for(inti=0;
cin>
a[i];
intsubMax,subMin;
fun1(a,10,subMax,subMin);
"
次大值为:
subMax<
endl
<
次小值为:
subMin<
intg=gcd(subMax,subMin);
次大值与次小值的最大公约数为:
g<
(subMax*subMin/g)<
voidfun1(inta[],intN,int&
subMax,int&
subMin){
intmax,min;
if(a[0]>
a[1]){max=a[0];
subMax=a[1];
min=a[1];
subMin=a[0];
else{max=a[1];
subMax=a[0];
min=a[0];
subMin=a[1];
for(inti=3;
N;
if(a[i]>
max){subMax=max;
max=a[i];
elseif(a[i]<
max&
&
a[i]>
subMax)subMax=a[i];
min){subMin=min;
min=a[i];
elseif(a[i]>
min&
a[i]<
subMin)subMin=a[i];
intgcd(inta,intb){
inttemp;
while(b!
=0){
temp=a%b;
a=b;
b=temp;
returna;
3.#include<
doublef(intx,intn){
if(n==1)returnsqrt(x);
elsereturnsqrt(x+f(x,n-1));
intn=5,x=100;
f(x,n)<
4.参考p28例题14
实验七数组
inti,a[10],sum=0;
for(i=0;
sum+=a[i];
if((i+1)%3==0)cout<
’\n’;
;
(sum/10.0)<
inta[11],k,t;
//以下进行排序
for(i=0;
9;
k=i;
for(intj=i+1;
j<
j++)
if(a[j]>
a[k])k=j;
if(k!
=i){t=a[i];
a[i]=a[k];
a[k]=t;
'
\t'
//以下插入一个数
intb;
b;
for(i=9;
i>
=0;
i--)
if(a[i]<
b)a[i+1]=a[i];
else{a[i+1]=b;
for(i=0;
11;
实验八字符串处理
string.h>
chara[100],b[100];
intc,d,k;
a="
'
b="
b<
\n'
c=strlen(a);
d=strlen(b);
charch;
if(c>
d)
for(k=0;
c+1;
{ch=a[k];
a[k]=b[k];
b[k]=ch;
chara[20];
输入含有空格的字符串:
cin.getline(a,20);
intk,len;
输入删除位置:
len=strlen(a);
for(inti=k-1;
len;
a[i]=a[i+1];
4.#include<
charS1[80],S2[80];
输入两个字符串:
S1>
S2;
S1="
S1<
S2="
S2<
intk;
intlen;
len=strlen(S2);
chart[80];
strcpy(t,S1+k-1);
strcpy(S1+k-1,S2);
strcpy(S1+k-1+len,t);
实验九结构体
structstudent{
charname[10];
intno;
floatenglish,math,ave;
};
voidinput(student*,int);
voidaverage(student*,int);
voidsort(student*,int);
voidoutput(student*,int);
students[30];
input(s,5);
average(s,5);
sort(s,5);
output(s,5);
voidinput(students[],intn){
s[i].name>
s[i].no>
s[i].english>
s[i].math;
voidaverage(students[],intn){
s[i].ave=(s[i].english+s[i].math)/2;
voidsort(students[],intn){
studentt;
n-1;
if(s[i].ave>
s[j].ave){t=s[i];
s[i]=s[j];
s[j]=t;
voidoutput(students[],intn){
s[i].name<
'
s[i].no<
<
s[i].english<
s[i].math<
s[i].ave<
#include<
structThreeD{
floatx,y,z;
ThreeDt1,t2;
t1.x>
t1.y>
t1.z;
t2.x>
t2.y>
t2.z;
floatdx,dy,dz,dis;
dx=t1.x-t2.x;
dy=t1.y-t2.y;
dz=t1.z-t2.z;
dis=sqrt(dx*dx+dy*dy+dz*dz);
dis<
实验十指针
(1)
voidinput(int*,int=12);
voidoutput(int*,int);
inta[12],*p=a;
input(p);
p=a;
output(p,12);
voidinput(int*a,intn){
*a++;
voidoutput(inta[],intn){
if((i+1)%4==0)cout<
int*p[10],*temp;
p[i]=&
intminIndex=i;
if(*p[minIndex]>
*p[j])
minIndex=j;
if(minIndex!
=i){
temp=p[i];
p[i]=p[minIndex];
p[minIndex]=temp;
}
cout<
*p[i]<
intstrcomp(char*,char*);
chara[10],b[10],c[10],d[10];
a>
b>
c>
d;
char*p=a;
if(strcomp(p,b)==1)p=b;
if(strcomp(p,c)==1)p=c;
if(strcomp(p,d)==1)p=d;
p<
intstrcomp(char*s,char*t){
while(*s&
*t&
(*s==*t)){s++;
t++;
if(*s<
*t)return-1;
elseif(*s>
*t)return1;
elsereturn0;
实验十一指针
(2)
intsum(inta,intb);
voidswap(int&
a,int&
b);
inta,b,c,(*p1)(int,int);
void(*p2)(int&
p1=sum;
c=p1(a,b);
p2=swap;
p2(a,b);
sum="
c<
b="
intsum(inta,intb){
returna+b;
b){
intt;
t=a;
a=b;
b=t;
voidinput(char**p,intn);
voidsort(char**p,intn);
char*p[10];
input(p,10);
sort(p,10);
i++)cout<
p[i]<
i++)deletep[i];
voidinput(char**p,intn){
chars[80];
s;
p[i]=newchar[strlen(s)+1];
strcpy(p[i],s);
voidsort(char**p,intn){
char*temp;
for(intj=i+1;
if(strcmp(p[k],p[j])>
0)k=j;
if(k!
=i){temp=p[i];
p[i]=p[k];
p[k]=temp;
inta[100],*p[100],N;
请输入整数个数:
请输入这些整数:
i++)cin>
i++)p[i]=&
N-1;
int*temp=p[i];
//以下进行编号
intm=1;
intb[100];
b[p[0]-a]=m;
for(i=1;
if(a[p[i]-a]!
=a[p[i-1]-a])m++;
b[p[i]-a]=m;
b[i]<
实验十二单向链表
1.参见p190
2.
实验十三类和对象