第10章 习题课.ppt

  1. 1、本文档共55页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
1 输入3个数,求平均数 4个指针变量指向这4个一般变量 所有的操作(输入、计算、输出)都用指针变量完成。不能出现4个一般变量的名字 将指针变量内存放的地址输出,并分析 main() {float f(float *x,float *y,float *z); float a,b,c,d,*p1,*p2,*p3,*p4; p1=a;p2=b;p3=c;p4=d; scanf(%f,%f,%f,p1,p2,p3); *p4=f(p1,p2,p3); printf(%.3f,*p4); } float f(float *x,float *y,float *z) {return (*x+*y+*z)/3;} 2 输入3个数,求平均数 输入、输出在主函数内实现 具体算法另外写一个函数实现。 函数参数:传递3个地址给被调用函数,指针变量作为函数行参。 函数返回值:为一般变量 float ave(float *x,float *y,float*z) { 3 输入3个整数,按照从大到小的顺序输出 用指针变量控制 main() {int a,b,c,t,*p1,*p2,*p3; p1=a;p2=b;p3=c; scanf(%d,%d,%d,p1,p2,p3); if(*p1*p2){t=*p1;*p1=*p2;*p2=t;} if(*p1*p3){t=*p1;*p1=*p3;*p3=t;} if(*p2*p3){t=*p2;*p2=*p3;*p3=t;} printf(%d,%d,%d,*p1,*p2,*p3); } main() {int a,b,c,t,*p1,*p2,*p3; scanf(%d,%d,%d,p1,p2,p3); if(*p1*p2){t=*p1;*p1=*p2;*p2=t;} if(*p1*p3){t=*p1;*p1=*p3;*p3=t;} if(*p2*p3){t=*p2;*p2=*p3;*p3=t;} printf(%d,%d,%d,*p1,*p2,*p3); } 4 输入10个数,并反序输出 用指针与数组配合使用 除了数组和一个指针变量外,不能出现其它变量 循环不是用i控制,要用指针变量控制 main() {int a[10],*p; for(p=a;pa+10;p++)scanf(%d,p); for(p--;p=a;p--)printf(%d ,*p); } 5 输入10个数,求最大数 输入、输出在main中实现 挑选过程另外建立一个函数实现 函数参数 实参:数组名or指针变量(地址) 形参:数组名or指针变量(地址) 函数返回值:一般变量or用全局变量解决or一个地址(存放最大数的地址) main() {int *max(int *x); int a[10],*p; for(p=a;pa+10;p++)scanf(%d,p); p=max(a); printf(MAX=%d,*p); } int *max(int *x) {int *i,*j; for(i=j=x;ix+10;i++)if(*j*i)j=i; return j; } 6 输入10个整数,将最小的一个与第一个互换,将最大的一个与最后一个互换。 用指针处理 main() { main() {int a[10],t,*p,*q; for(p=a;pa+10;p++)scanf(%d,p); for(p=q=a;pa+10;p++)if(*p*q)q=p; t=*a;*a=*q;*q=t; for(p=q=a;pa+10;p++)if(*p*q)q=p; t=*(a+9);*(a+9)=*q;*q=t; for(p=a;pa+10;p++)printf(%d ,*p); } 7 输入10个整数,将最小的一个与第一个互换,将最大的一个与最后一个互换。 用指针处理 将输入、输出、和算法三部分都分别写成一个函数实现。 main() {int a[10]; in(a); f(a); out(a); } void in(int *x) {int *p; for(p=x;px+10;p++)scanf(%d,p); } void out(int *x) {int *p; for(p=x;px+10;p++)printf(%d ,*p); } void f(int *x) {int *i,*j,t; for(i=j=x;ix+10;i++)if(*j*i)j=i; t=*j;*j=*(x+9);*(x+9)=t; for(i=j=x;ix+10;i++)if(*j*i)j=i; t=*j;*j=*x;*x=t; } main() {void in(int *x), jisuan(

文档评论(0)

精华文档888 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档