ImageVerifierCode 换一换
格式:DOCX , 页数:15 ,大小:18.64KB ,
资源ID:5047091      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/5047091.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(计算机三级数据库简单数据运算问题9g.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

计算机三级数据库简单数据运算问题9g.docx

1、计算机三级数据库简单数据运算问题9g1.编写函数jsValue,它的功能是:求Fibonacci数列中大于t的最小的一个数,结果由函数返回。其中Fibonacci数列F(n)的定义为: F(0)=0,F(1)=1 F(n)=F(n-1)+F(n-2) 最后调用函数writeDat()读取50个数据t,分别得出结果且把结果输出到文件out.dat中。 例如:当t=1000时,函数值为:1597。 部分源程序存在文件prog1.c中。 请勿改动主函数main()和写函数writeDat()的内容。#include int jsValue(int t) int f0=0,f1=1,fn; fn=f0

2、+f1; while(fn=t) f0=f1; f1=fn; fn=f0+f1; return fn;main() int n; n=1000; printf(n=%d,f=%dn,n,jsValue(n); writeDat();writeDat() FILE *in,*out; int i,n,s; in=fopen(in.dat,r); out=fopen(out.dat,w); for(i=0;i50;i+) fscanf(in,%d,&n); s=jsValue(n); printf(%dn,s); fprintf(out,%dn,s); fclose(in); fclose(out

3、);*2.下列程序prog1.c的功能是:利用以下所示的简单迭代方法求方程:cos(x)-x=0的一个实根。 Xn+1=cos(Xn) 迭代步骤如下:(1)取X1初值为0.0;(2)X0=X1,把X1的值赋给X0;(3)X1=cos(X0),求出一个新的X1;(4)若X0-X1的绝对值小于0.000001,执行步骤(5),否则执行步骤(2);(5)所求X1就是方程cos(X)-X=0的一个实根,作为函数值返回。 请编写函数countValue()实现程序的要求,最后调用函数writeDat()把结果输出到文件OUT17.DAT中。 部分源程序已给出。 请勿改动主函数main()和输出数据函数w

4、riteDat()的内容。#include #include #include float countValue() double x0,x1; x1=0.0; do x0=x1; x1=cos(x0); while(fabs(x0-x1)=0.000001); return x1;/*fabs是针对符点数进行取绝对值的,ABS是针对整数进行取绝对值的main() clrscr(); printf(实根=%fn,countValue(); printf(%fn,cos(countValue()-countValue(); writeDat();writeDat() FILE *wf; wf=f

5、open(OUT17.DAT,w); fprintf(wf,%fn,countValue(); fclose(wf); *3.请编写函数countValue(),它的功能是:求n以内(不包括n)同时能被3与7整除的所有自然数之和的平方根s,并作为函数值返回,最后结果s输出到文件out.dat中。 例如若n为1000时,函数值应为:s=153.909064。 部分源程序存在文件prog1.c中。 请勿改动主函数main()和输入输出数据函数progReadWrite()的内容。#include #include #include double countValue(int n) int i; d

6、ouble s=0.0; for(i=1;in;i+) if(i%21=0) s+=i; return sqrt(s);main() clrscr(); printf(自然数之和的平方根=%fn,countValue(1000); progReadWrite();progReadWrite() FILE *fp,*wf; int i,n; float s; fp=fopen(in.dat,r); if(fp=NULL) printf(数据文件in.dat不存在!); return; wf=fopen(out.dat,w); for(i=0;i10;i+) fscanf(fp,%dn,&n);

7、s=countValue(n); fprintf(wf,%fn,s); fclose(fp);fclose(wf);*4.已知在文件in.dat中存有N个(个数200)实数,函数readdat()读取这N个实数并存入数组xx中。请编制函数calvalue(),其功能要求:1、求出这N个实数的平均值aver;2、分别求出这N个实数的整数部分之和sumint以及小数部分之和sumdec,最后调用函数writedat()把所求的结果输出到文件out.dat中。 注意:部分源程序已给出。 请勿改动主函数main()、读数据函数readdat()和输出数据函数writedat()的内容。#include

8、 #include #define MAXNUM 200float xxMAXNUM ;int N= 0 ; /* 文件IN.DAT中共有多少个实数 */double aver=0.0;/*平均值*/double sumint=0.0;/*整数部分之和*/double sumdec=0.0;/*小数部分之和*/int ReadDat(void) ;void WriteDat(void) ;void CalValue(void) int i; for (i=0;iN;i+) sumint+=(long)xxi;/*以强制类型转换来获得xxi的整数部分 sumdec+=xxi-(long)xxi;

9、 aver+=xxi; aver/=N;void main() int i ; clrscr() ; for(i = 0 ; i MAXNUM ; i+) xxi = 0 ; if(ReadDat() printf(数据文件IN.DAT不能打开!007n) ; return ; Calvalue() ; printf(文件IN.DAT中共有实数=%d个n, N) ; printf(平均值=%.2lfn, aver) ; printf(整数部分之和=%.2lfn, sumint) ; printf(小数部分之和=%.2lfn, sumdec) ; WriteDat() ;system(pause

10、);int ReadDat(void) FILE *fp ; int i = 0 ; if(fp = fopen(in.dat, r) = NULL) return 1 ; while(!feof(fp) fscanf(fp, %d, &xxi+) ; fclose(fp) ; return 0 ;void WriteDat(void) FILE *fp ; fp = fopen(OUT.DAT, w) ; fprintf(fp, %.2lfn%.2lfn%.2lfn, aver,sumint,sumdec) ; fclose(fp) ;*5.下列程序prog1.c的功能是:在三位整数(100

11、至999)中寻找符合条件的整数并依次从小到大存入数组中;它既是完全平方数,又是两位数字相同,例如144、676等。 请编制函数实现此功能,满足该条件的整数的个数通过所编制的函数返回。 最后调用函数writeDat()把结果输出到文件out.dat中。 请勿改动主函数main()和写函数writeDat()的内容。#include int jsValue(int bb)int i,j,cnt=0,bw,sw,gw; for(i=100;i=999;i+) bw=i/100; sw=i%100/10; gw=i%10; for(j=10;j*j=i;j+) if(i=j*j&(bw=sw|sw=g

12、w|gw=bw) bbcnt+=i; return cnt;main() int b20,num; num=jsValue(b); writeDat(num,b);writeDat(int num,int b) FILE *out; int i; out=fopen(out.dat,w); printf(%dn,num); fprintf(out,%dn,num); for(i=0;inum;i+)printf(%dn,bi);fprintf(out,%dn,bi); fclose(out);*6.请编制函数ReadDat()实现从文件IN.DAT中读取1000个十进制整数到数组xx中;请编制

13、函数Compute()分别计算出xx中偶数的个数even,奇数的平均值ave1,偶数的平均值ave2以及方差totfc的值,最后调用函数WriteDat()把结果输出到OUT.DAT文件中。 计算方差的公式如下: N 2 totfc=1/N(xxi-ave2) i=1 设N为偶数的个数,xxi为偶数,ave2为偶数的平均值。 原始数据文件存放的格式是:每行存放10个数,并用逗号隔开。(每个数均大于0且小于等于2000) 部分源程序存在文件prog1.c中。 请勿改动主函数main()和输出数据函数writeDat()的内容。#include #include #include #define

14、MAX 1000int xxMAX,odd=0,even=0;double ave1=0.0,ave2=0.0,totfc=0.0;void WriteDat(void);int ReadDat(void)int i; FILE *fp; if(fp=fopen(IN.DAT,r)=NULL) return 1;/*编制函数ReadDat()的部分*/for(i=0;iMAX;i+) fscanf(fp,%d,&xxi); if(i+1)%10=_ fscanf(fp,n); /*/ fclose(fp); return 0;void Compute(void) int i,yyMAX; fo

15、r(i=0;iMAX;i+) yyi=0; for(i=0;iMAX;i+) if(xxi%2=0) yyeven+=xxi; ave2+=xxi; else odd+; ave1+=xxi; if(odd=0) ave1=0; else ave1/=odd; if(even=0) ave2=0; else ave2/=even; for(i=0;ieven;i+) totfc+=(yyi-ave2)*(yyi-ave2)/even;void main() int i; for(i=0;iMAX;i+)xxi=0; if(ReadDat() printf(数据文件IN.DAT不能打开!007n

16、); return; Compute(); printf(OVEN=%dnAVE1=%fnAVER2=%fnTOTFC=%fn,even,ave1,ave2,totfc); WriteDat();void WriteDat(void) FILE *fp; int i; fp=fopen(OUT.DAT,w); fprintf(fp,%dn%fn%fn%fn,even,ave1,ave2,totfc); fclose(fp);*7.下列程序prog1.c的功能是:计算出自然数SIX和NINE,它们满足的条件是SIX+SIX+SIX=NINE+NINE的个数cnt以及满足此条件所有的SIX与NIN

17、E的和SUM。请编写函数countValue()实现程序的要求,最后调用函数writeDat()把结果cnt和sum,输出到文件OUT15.DAT中。 其中的S,I,X,N,E各代表一个十进制数字。 部分源程序存在文件prog1.c中。 请勿改动主函数main()和输出数据函数writeDat()的内容。#include int cnt,sum; void countValue() int s,i,x,n,e,six,nine; for(s=1;s10;s+) for(i=0;i10;i+) for(x=0;x10;x+) for(n=1;n10;n+) for(e=0;e10;e+) six

18、=s*100+i*10+x; nine=n*1000+i*100+n*10+e; if(3*six=2*nine) cnt+;sum+=six+nine; void main() cnt=sum=0; countValue(); printf(满足条件的个数=%dn,cnt); printf(满足条件所有的SIX与NINE的和=%dn,sum); writeDat();writeDat() FILE *fp; fp=fopen(OUT15.DAT,w); fprintf(fp,%dn%dn,cnt,sum); fclose(fp);另一种经典解法:void countValue() int i

19、_;for(i=666;i=999;i=i+2) if(i/10%10=(3*i/2)/100%10)&(3*i/2)/1000=(3*i/2)%100/10) cnt+;sum+=i+3*i/2;运算结果为:满足条件的个数=4满足条件所有的SIX与NINE的和=9430*8.请编写函数void countValue(int *a,int *n),它的功能是:求出1到1000之内能被7或11整除但不能同时被7或11整除的所有整数放在数组a中,并通过n返回这些数的个数。 部分源程序存在文件prog1.c中。 请勿改动主函数main()和输出数据函数writeDAT()的内容。#include #

20、include void countValue(int *a,int *n) int i; *n=0; for(i=1;i=1000;i+) if(i%7=0&i%11|i%7&i%11=0)/*或者可以作为可以被7,11整除但是不可被77整除 a(*n)+=i;main() int aa1000,n,k; clrscr(); countValue(aa,&n); for(k=0;kn;k+) if(k+1)%10=0)printf(n); else printf(%5d,aak); writeDAT();writeDAT() int aa1000,n,k; FILE *fp; fp=fope

21、n(out19.dat,w); countValue(aa,&n); for(k=0;kn;k+) if(k+1)%10=0) fprintf(fp,n); else fprintf(fp,%5d,aak);fprintf(fp,n); fclose(fp);*9.请编制函数ReadDat()实现从文件IN.DAT中读取1000个十进制整数到数组xx中;请编制函数Compute()分别计算出xx中奇数的个数odd,奇数的平均值ave1,偶数的平均值ave2以及所有奇数的方差totfc的值,最后调用函数WriteDat()把结果输出到OUT.DAT文件中。 计算方差的公式如下: N 2 totf

22、c=1/N (xxi-ave1) i=1 设N为奇数的个数,xxi为奇数,ave1为奇数的平均值。 原始数据文件存放的格式是:每行存放10个数,并用逗号隔开。(每个数均大于0且小于等于2000) 部分源程序存在文件prog1.c中。 请勿改动主函数main()和输出数据函数writeDat()的内容。#include #include #include #define MAX 1000int xxMAX,odd=0,even=0;double ave1=0.0,ave2=0.0,totfc=0.0;void WriteDat(void);int ReadDat(void) int i; FIL

23、E *fp; if(fp=fopen(IN.DAT,r)=NULL) return 1;/*编制函数ReadDat()的部分*/for(i=0;iMAX;i+) fscanf(fp,%d,&xxi); if(i+1)%10=0) fscanf(fp,n); /*/ fclose(fp); return 0;void Compute(void) int i,yyMAX; for(i=0;iMAX;i+) yyi=0; for(i=0;iMAX;i+) if(xxi%2) yyodd+=xxi; ave1+=xxi; else even+; ave2+=xxi; if(odd=0) ave1=0;

24、 else ave1/=odd; if(even=0) ave2=0; else ave2/=even; for(i=0;iodd;i+) totfc+=(yyi-ave1)*(yyi-ave1)/odd;void main() int i; for(i=0;iMAX;i+)xxi=0; if(ReadDat() printf(数据文件IN.DAT不能打开!007n); return; Compute(); printf(ODD=%dnAVE1=%fnAVE2=%fnTOTFC=%fn,odd,ave1,ave2,totfc); WriteDat();void WriteDat(void) FILE *fp; int i; fp=fopen(OUT.DAT,w); fprintf(fp,%dn%fn%fn%fn,odd,ave1,ave2,totfc); fclose(fp);*

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1