《c程序设计方案实验八 .docx》由会员分享,可在线阅读,更多相关《c程序设计方案实验八 .docx(8页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、精品名师归纳总结1. 试验目的试验八可编辑资料 - - - 欢迎下载精品名师归纳总结( 1)初步学会指针数组的定义与使用方法。( 2)明白指向一维数组的指针变量的概念,能用指向一维数组的指针变量按行处理二维数组的问题。( 3)懂得返回指针值函数的概念、定义格式,学会用返回指针值函数处理字符串问题。( 4)懂得函数指针与函数指针变量的概念,学会用函数指针变量处理不同函数数学计算问题。2. 试验要求( 1)编写试验程序( 2)在 VC+ 运行环境中,输入源程序。( 3)编译运行源程序。( 4)输入测试数据进行程序测试。( 5)写出试验输入数据与运行结果。3. 试验内容( 1)定义一个二维字符数组s
2、380 及指针数组 p3 ,用 cin.getlinesi,80输入 3 个字符串到二维数组3 行中,然后用指针数组p 对字符串进行降序排列(要求用擂台法),最终用指针数组 p 输出排序后的结果,用字符数组s 输出排序前的三个字符串。试验数据: Visual C+ , Visual Basic, Delphi( 2)输入一个二维数组a33 ,设计一个函数,用指向一维数组的指针变量和二维数组的行数作为函数的参数,求出平均值、最大值和最小值,并输出。试验数据: 10, 25,90, 80, 70, 35, 65, 40, 55( 3)设计程序,用函数指针变量完成两个操作数的加、减、乘、除、取余运算
3、。试验数据: 10 + 2010 - 510 * 1510 / 210 % 3( 4)设计一个用梯形法求定积分的通用函数,被积函数的指针、积分的上限、积分的下限和积分的区间等分数作为函数的参数。分别求出以下定积分的值。可编辑资料 - - - 欢迎下载精品名师归纳总结2s111ln xx 3dx可编辑资料 - - - 欢迎下载精品名师归纳总结可编辑资料 - - - 欢迎下载精品名师归纳总结4s21 131dx x2xex可编辑资料 - - - 欢迎下载精品名师归纳总结s31 1sinxx 2 dx可编辑资料 - - - 欢迎下载精品名师归纳总结4. 解答参考1#include 可编辑资料 - -
4、 - 欢迎下载精品名师归纳总结# include void mainvoid char s380 。char *p3=s0,s1,s2。char *pc 。int i,j,k 。coutInput 3 String:endl。for i=0 。ipi 。for i=0 。i2 。i+ k=i 。for j=i+1 。j3 。j+ if strcmp pi,pj0k=j 。if k.=i pc=pi 。pi=pk 。pk=pc 。for i=0 。i3 。i+ coutpiendl。for i=0 。 i3 。i+ coutsiendl。程序运行结果 : Input 3 String: Visu
5、al Basic Visual C+ DelphiVisual C+ Visual Basic Delphi Visual Basic Visual C+Delphi 3解:# include int addint x,int y return x+y 。 int subint x,int y return x-y 。 int mulint x,int y return x*y 。 int divint x,int y return x/y 。 int resint x,int y可编辑资料 - - - 欢迎下载精品名师归纳总结 return x%y 。 void mainvoid int x
6、,y 。char operate。int *fint,int。coutinput three 0 endendl 。coutInput x operate y= xoperatey。switch operatecase +: f=add。 break。case -: f=sub。 break。case *: f=mul 。 break。case /: f=div 。 break。case %: f=res。 break。default: return 。coutxoperatey=*fx,yendl。程序运行结果 :input three 0 end Input x operate y= 10
7、 + 2010+20=3010 - 510-5=510 * 1510*15=15010 / 210/2=510 % 310%3=10 0 03方法一:用指向一维数组的指针变量和二维数组的行数作为函数的参数#include float avefloat *p3,float *max,float *min float sum=0 。int i,j 。fori=0 。i3 。 i+ forj=0 。 j3 。j+可编辑资料 - - - 欢迎下载精品名师归纳总结sum+=*pj 。if *max*pj *min=*pj。p+。return sum/9。void mainvoid float a33,m
8、ax,min,average。int i,j 。coutInput Data: 。for i=0 。i3 。i+for j=0 。jaij 。max=min=a00 。average=avea+0,&max,&min 。coutave=averagen 。coutmax=maxn。coutmin=minn。方法二:用数组名为函数参数,在函数内用指向一维数组的指针变量,求出平均值、最大值和最小值,并输出。解:#include void funfloat a33 float max,min,sum=0,*p3。int i,j 。max=min=a00 。fori=0 。i3 。 i+ p=a+i
9、。forj=0 。j3 。j+ sum+=*pj。if max*pj min=*pj。coutave=sum/9nmax=maxnmin=minendl。void mainvoid float b33。int i,j 。coutInput Data: 。for i=0 。i3 。i+可编辑资料 - - - 欢迎下载精品名师归纳总结for j=0 。jbij。funb 。程序运行结果 :Input Data:10 25 90 80 70 35 65 40 55 ave=52.2222max=90min=10 4可编辑资料 - - - 欢迎下载精品名师归纳总结分析:由高等数学可知,bf x dx
10、的定积分值等于由曲线y=fx 、直线 x=a 、x=b 、a可编辑资料 - - - 欢迎下载精品名师归纳总结y=0 所围曲边梯形的面积s,如下图所示。现将曲边梯形划分成n 个小曲边梯形 s0、 s1、 s2、 sn-1。每个曲边梯形的高均为h=b a/n,用矩形近似曲边梯形后各曲边梯形的面积近似为:可编辑资料 - - - 欢迎下载精品名师归纳总结s0=y0*hs1=y1*hs2=y2*hyy=f xy n-1y 2yny1y0 s0 s1 s2 sn-1x=ax=b可编辑资料 - - - 欢迎下载精品名师归纳总结可编辑资料 - - - 欢迎下载精品名师归纳总结sn-1= yn-1*hs = s
11、0+ s1+ s2+ + sn-1=y0+y1+y2+yn-1*h=f x 0+f x 1+f x 2+f x n-1*hx0=a ,xn=b, xi =a+i*hx0x1x2x3xn-1xnx0ahb图 用梯形法求定积分面积可编辑资料 - - - 欢迎下载精品名师归纳总结可编辑资料 - - - 欢迎下载精品名师归纳总结用梯形法求定积分面积的公式为:i n 1sf ai 0ih h可编辑资料 - - - 欢迎下载精品名师归纳总结其中: a、b 分别为积分的下、上限,n 为积分区间的分隔数,h=b a/n, h 为积分步长。 fx 为被积函数。程序编写如下:# include # include
12、 float f1float x return 1+logx+x*x*x。可编辑资料 - - - 欢迎下载精品名师归纳总结float f2float x return 1/1+x*x。 float f3float x return x+expx/1+sinx+x*x。float integralfloat *ffloat,float a,float b,int nfloat y,h 。int i 。y=0 。h=b-a/n 。for i=0 。in 。 i+ y+=fa+i*h。return y*h 。void main void couts1=integralf1,1,2,1000endl。couts2=integralf2,-1,4,1000endl。couts3=integralf3,1,3,1000endl。程序运行结果 : s1=5.13245 s2=2.11232 s3=3.31222可编辑资料 - - - 欢迎下载