C语言学习与应用课后习题答案 学习任务七参考答案 北邮.docx

上传人:lao****ou 文档编号:197119 上传时间:2023-05-16 格式:DOCX 页数:23 大小:74.35KB
下载 相关 举报
C语言学习与应用课后习题答案 学习任务七参考答案 北邮.docx_第1页
第1页 / 共23页
C语言学习与应用课后习题答案 学习任务七参考答案 北邮.docx_第2页
第2页 / 共23页
C语言学习与应用课后习题答案 学习任务七参考答案 北邮.docx_第3页
第3页 / 共23页
C语言学习与应用课后习题答案 学习任务七参考答案 北邮.docx_第4页
第4页 / 共23页
C语言学习与应用课后习题答案 学习任务七参考答案 北邮.docx_第5页
第5页 / 共23页
亲,该文档总共23页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《C语言学习与应用课后习题答案 学习任务七参考答案 北邮.docx》由会员分享,可在线阅读,更多相关《C语言学习与应用课后习题答案 学习任务七参考答案 北邮.docx(23页珍藏版)》请在第一文库网上搜索。

1、学习任务七参考答案应用举例7T:求数组各元素之和,依据题意将代码补充完整。#incIudestdio.h#incIudestdIib.h文件#defineN10voidarrin(int*a,intn)(inti;for(i=0;in;i)ai=rand()%50;值)voidarrout(inta,intn)(inti;for(i=0;in;i+)printf(%d,ai);)intarrsum(intaN,intn)(inti,s=0;for(i=0;in;i+)s=s+ai;/用rand()函数需要包含的头为数组元素赋值的函数为数组元素赋0-49的随机/输出数组元素的函数求各数组元素之和

2、returns;)voidmain()(intaN,s;arrin(a,N);/调用输入函数为数组赋值arrout(a,N);/调用输出函数输出数组元素s=arrsum(a,N);调用求和函数将和值赋给Sprintf(ns=%d,s);getchar();应用举例7-2:求数组元素的最大值,依据题意将代码补充完整。#inc1udestdio.h#incIudestdIib.h#defineM50voidarrin(doub1es,intn)(inti;for(i=0;in;i+)si=rand()%100*1e-2;)voidarrout(doubIeaM,intn)(inti;for(i=0

3、;in;i+)(printf(%5.2f,ai);if(i+1)%10=0)printf(,n);)doubIefun(doubIe*s,intn)(inti;doub1em=s0;值最大for(i=1;in;i+)就更新mif(msi)m=si;returnm;voidmain()(doub1eaM,max;intn=40;arrin(a,n);为数组元素赋值的函数为数组元素赋实型数每输出10个元素换行求最大值的函数首先认为第一个数组元素搜索其它元素,有比m大的只使用了40个元素/调用函数,为数组元素赋值调用函数,输出数组元素arrout(a,n);max=fun(a,n);调用函数,获得数

4、组元素的最大值printf(,nmax=%5.2f,max);getchar();)问题7-1:编写程序计算数组元素的最小值。#incIudestdio.hintfun(int*s,intn)/返回数组元素最小值的函数inti;intm=s0;for(i=1;isi)m=si;returnm;voidmain()(intmin,a10=12,5,78,34,65,9,32,41,54,60);min=fun(a,10);printf(nmin二d,min);getchar();)问题7-2:删除a数组中的偶数,并输出。#incIudestdio.hintfun(int*a,intn)(inti

5、,j;for(i=0,j=0;in;i+)if(ai%2=1)aj+=ai;returnj;)voidmain()inta=1,2,3,4,5.6fi,k;k=fun(a,6);/a数组6个数删除偶数后为k个数for(i=0;ik;i+)/输出a数组printf(%3d,ai);getchar();)应用举例7-4数值统计,将代码补充完整。si=rand()%10;/将0-9之间的数赋给各数组元素问题7-3:统计各年龄段的人数。# incIude# defineN50# defineM11voidfun(int*afint*b)(1 nti;for(i=0;iM;i+)bi=0;for(i=0

6、;iN;i+)if(ai100)bai10+;Iseb10+;doubIernd()获得一个随机数的函数statict=29,c=217,m=1024,r=0;r=(r*t+c)%m;return(doubIe)rm);)voidmain()itageN,i,dM;for(i=0;iN;i+)agei=(int)(115*rnd();赋年龄值printf(Theorigina1data:n);for(i=0;iN;i+)printf(i+1)%10=07%4dn,:,%4d,1,agei);printf(,nn);fun(age,d);for(i=0;i10;i+)printf(%4d-%4d

7、:%4dn,i*10,i*10+9,di);printf(,Over100:%4dn”,d10);getchar();)编程训练7T-1数组元素的引用和输入/输出。(1)输入:23569056985678988712输出:23569056985678988712(2)#incIudestdio.h#defineM5voidmain()(inti,sM,*p=s;for(i=0;i=0;i)printf(%d,*(s+i);getchar();)输入:2356905698输出:9856905623(3)#define5M改为:#defineM5inti,sM;改为:inti,pM;编程训练7-1

8、-2按要求计算数组元素之和。(1)#incIudestdio.h#incIude,stdIib.h#defineM30voidarrin(int*a)inti;for(i=0;iM;i+)ai=rand()%50;voidarrout(int*a)(inti;for(i=0;iM;i+)printf(%4d,ai)if(i+1)%10=0)printf(n);)从a地址开始的连续n个元为sum赋初值计算数组元素和intfun(int*a,intn)素求和(inti,sum-0;for(i=0;in;i+)sum=sum+ai;returnsum;voidmain()intaM1s;arrin(

9、a);arrout(a);s=fun(a,M);PrintfC数组元素和s=%dn,s);getchar();)输出:411734019242881214545312711414542273641423423221161845数组元素和s=731(2)将上面主函数中的s=fun(a,M);改为:s=fun(a+1,3);重新运行程序,回答以下问题。数组元素和s=51这个和值是哪些薮组元素之和a1+a+a如果求a8+a9+a10,如何写:s=fun(a+8,3);如果求a8+a9+a10+a18+a19+a20,如何写:s=fun(a+8,3)+fun(a+18,3)调试程序写出验证结果:输出如

10、下,正确。411734019242881214545312711414542273641423423221161845数组元素和s=135(3)用形参传递结果,计算数组元素的奇数和和偶数和。#incIudestdio.hvoidfun(int*a,intn,int*odd,int*even)inti;*odd=0,*even=0;程序中的*Odd就是主函数的s1,为S1和s2赋初值for(i=0;in;i+)if(ai%2)如果数组元素是奇数*odd=*odd+ai;eISe*even=*even+ai;)voidmain()inta=1,2,3,4,5t6,s1,s2;定义数组的同时初始化数

11、组fun(a,6,&s1,&s2);/调用函数为s1,s2赋值Printf(”奇数和:%d,偶数和:%dn,s1fs2);getchar();)输出:奇数和:9,偶数和:12编程训练7-2-1求数组元素最大值的下标。#incIudestdIib.h#defineM50voidarrin(ints,intn)为数组赋IoO以内的随机数inti;for(i=0;in;i+)si=rand()%100;)voidarrout(intaM,intn)/输出函数,每输出10个数换行inti;for(i=0;in;i+)printf(%4d,ai);if(i+1)%10=0)printf(n);)intf

12、un(int*s,intn)返回值是下标,是整型(inti,m=0;/m存最大值下标,默认最大值下标为0for(i=1;ism)如果下标i的元素大于下标m的元素,更新mreturnm;voidmain()(intaM;intk;/k用于接收最大值下标arrin(a,M);arrout(a,M);k=fun(a,M);printf(k=%4d,max=%4dn,k,ak);输出最大值下标和最大值getchar();输出:41673406924785862645458127619195422736914253928221161895472671386912679935943112233736441115368k=37,max=99编程训练7-2-2将最大值放在a0中voidarrin(ints,intn)为数组赋100内的随机数略voidarrout(intaM1intn)/输出函数,每输出10个数换略voidfun(int*s,intn)(inti,mzz0,t;值Ofor(i=1;in;i+)边if(smsi)元素,更新mm=i;/无需返回值/

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 应用文档 > 汇报材料

copyright@ 2008-2022 001doc.com网站版权所有   

经营许可证编号:宁ICP备2022001085号

本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有,必要时第一文库网拥有上传用户文档的转载和下载权。第一文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知第一文库网,我们立即给予删除!



客服