实验十六 C函数调用中的数据传递.doc
上传人:yy****24 上传时间:2024-09-10 格式:DOC 页数:2 大小:18KB 金币:16 举报 版权申诉
预览加载中,请您耐心等待几秒...

实验十六 C函数调用中的数据传递.doc

实验十六C函数调用中的数据传递.doc

预览

在线预览结束,喜欢就下载吧,查找使用更方便

16 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

实验十六C函数调用中的数据传递*目的要求:掌握函数的值传递、地址传递。会利用函数返回值传递数据。实验内容:1.编写程序,要求实现:在主程序main()中输入2个整数,通过调用函数将两者的值互换(要求分别用地址传递方式、全局外部变量传递方式编程)。#include<stdio.h>voidfun(int*,int*);main(){intx=10,y=20;printf("输入是x=%dy=%d\n",x,y);fun(&x,&y);printf("输出是x=%dy=%d\n",x,y);}voidfun(int*a,int*b){intt;t=*a;*a=*b;*b=t;}2.编写函数,求出M行N列二维数组每列元素中的最小值,通过形参传回主函数输出,并计算它们的和值。#include<stdio.h>#defineM4#defineN3intf(intm[]);main(){inti,j,g[M][N],h[N],min,s=0;printf("请输入%d个整数:",M*N);for(i=0;i<M;i++)for(j=0;j<N;j++)scanf("%d",&g[i][j]);printf("%d行%d列数组为:\n",M,N);for(i=0;i<M;i++){for(j=0;j<N;j++)printf("%4d",g[i][j]);printf("\n");}for(j=0;j<N;j++){for(i=0;i<M;i++)h[i]=g[i][j];min=f(h);s+=min;printf("第%d列的最小值=%d\n",j,min);}printf("各列最小值之和=%d\n",s);}intf(intm[]){inti,min;min=m[0];for(i=1;i<M;i++)if(min>m[i])min=m[i];returnmin;}3.已知80名学生的《计算机程序设计C》课程的成绩,求其平均成绩。要求主函数中输入成绩,将数组名作为函数参数传递,用被调函数求平均成绩。#include<stdio.h>#include<stdio.h>#defineN80doublefun(doublex[]){inti;doubleav;av=0;for(i=0;i<N;i++)av=av+x[i]/N;returnav;}main(){inti;doublex[N];for(i=0;i<N;i++)scanf("%lf",&x[i]);printf("av=%f",fun(x));}4.编写函数,其功能是删除字符串s中的所有数字字符。#include<stdio.h>charfun(charch){if(ch>=48&&ch<=57)ch='';returnch;}main(){charc;while((c=getchar())!='@'){c=fun(c);putchar(c);}}