c++实验答案

和积分的区间等分数作为函数的参数。分别求出下列定积分的值。 4.解答参考 (1)

#include # include void main(void) { char s[3][80];

char *p[3]={s[0],s[1],s[2]}; char *pc; int i,j,k;

cout<<\ for (i=0;i<3;i++) cin>>p[i]; for (i=0;i<2;i++) { k=i;

for (j=i+1;j<3;j++)

if (strcmp (p[i],p[j])<0) k=j; if (k!=i)

{ pc=p[i];p[i]=p[k];p[k]=pc; } }

for ( i=0;i<3;i++) cout<

程序运行结果: Input 3 String: Visual Basic Visual C++ Delphi Visual C++ Visual Basic Delphi

Visual Basic Visual C++ Delphi (3) 解:

# include int add(int x,int y) { return x+y;} int sub(int x,int y)

{ return x-y;} int mul(int x,int y) { return x*y;} int div(int x,int y) { return x/y;} int res(int x,int y) { return x%y;} void main(void) { int x,y;

char operate; int (*f)(int,int);

cout<<\ cout<<\ while(1) {

cin>>x>>operate>>y ; switch (operate) {

case '+': f=add; break;

case '-': f=sub; break; case '*': f=mul; break; case '/': f=div; break; case '%': f=res; break; default: return; }

cout<

程序运行结果: input three 0 end Input x operate y= 10 + 20 10+20=30 10 - 5 10-5=5 10 * 15 10*15=150 10 / 2 10/2=5 10 % 3 10%3=1 0 0 0 (3)

方法一:用指向一维数组的指针变量和二维数组的行数作为函数的参数 #include

float ave(float (*p)[3],float *max,float *min) { float sum=0; int i,j;

for(i=0;i<3;i++)

{ for(j=0;j<3;j++)

{ sum+=(*p)[j];

if (*max<(*p)[j]) *max=(*p)[j]; if (*min>(*p)[j]) *min=(*p)[j]; } p++; }

return sum/9; }

void main(void)

{ float a[3][3],max,min,average; int i,j;

cout<<\ for (i=0;i<3;i++)

for (j=0;j<3;j++) cin>>a[i][j]; max=min=a[0][0];

average=ave(a+0,&max,&min); cout<<\ cout<<\ cout<<\}

方法二:用数组名为函数参数,在函数内用指向一维数组的指针变量,求出平均值、最大值和最小值,并输出。 解:

#include void fun(float a[3][3])

{ float max,min,sum=0,(*p)[3]; int i,j;

max=min=a[0][0]; for(i=0;i<3;i++) { p=a+i;

for(j=0;j<3;j++)

{ sum+=(*p)[j];

if (max<(*p)[j]) max=(*p)[j]; if (min>(*p)[j]) min=(*p)[j]; }

}

cout<<\}

void main(void) { float b[3][3]; int i,j;

cout<<\ for (i=0;i<3;i++)

for (j=0;j<3;j++) cin>>b[i][j]; fun(b); }

程序运行结果:

Input Data:10 25 90 80 70 35 65 40 55 ave=52.2222 max=90 min=10 (4)

图 用梯形法求定积分面积

y y=f (x) yn-1

y2 yn y1 y0

△s0 △s1 △s2 ? △sn-1

x=a x=b

x0 x1 x2 x3 xn-1 xn x 0 a h b

分析:由高等数学可知, 的定积分值等于由曲线y=f(x)、直线x=a 、x=b、

y=0所围曲边梯形的面积s,如下图所示。现将曲边梯形划分成n个小曲边梯形△s0、△s1、△s2、?、△sn-1。每个曲边梯形的高均为h=(b-a)/n,用矩形近似曲边梯形后各曲边梯形的面积近似为:

△s0=y0*h △s1=y1*h △s2 =y2*h ?

△sn-1=yn-1*h

s =△s0+△s1+△s2+?+△sn-1=(y0+y1+y2+?+yn-1)*h =((f (x0)+(f (x1)+f (x2)+…+f (xn-1))*h ∵x0=a ,xn=b,xi=a+i*h

∴用梯形法求定积分面积的公式为: 其中:a、b分别为积分的下、上限,n为积分区间的分隔数,h=(b-a)/n,h为积分步长;f(x)为被积函数。 程序编写如下: # include # include float f1(float x)

{ return (1+log(x)+x*x*x);} float f2(float x)

{ return (1/(1+x*x));} float f3(float x)

{ return (x+exp(x))/(1+sin(x)+x*x);}

float integral(float (*f)(float),float a,float b,int n) {

float y,h; int i; y=0;

h=(b-a)/n;

for (i=0;i

void main (void ) {

cout<<\ cout<<\ cout<<\}

程序运行结果: s1=5.13245 s2=2.11232 s3=3.31222

实验九

1.实验目的

(1)初步学会用枚举类型变量处理有限元素组成的集合问题。 (2)掌握结构体类型、结构体变量、结构体数组的定义格式。

(3)学会使用结构体变量与结构体数组处理如职工档案、职工工资等问题。 2.实验要求

(1)编写实验程序;

(2)在VC++运行环境中,输入源程序; (3)编译运行源程序;

(4)输入测试数据进行程序测试; (5)写出运行结果。 3.实验内容

(1)从A、B、C、D四个字母中任取3个不同的字母,共有多少种取法?编写程序,输出

联系客服:779662525#qq.com(#替换为@) 苏ICP备20003344号-4