- 1、本文档共40页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第7章函数.
第7章 函 数 本章要点: C语言程序结构和特点 函数的定义 函数的返回值与函数的类型 函数的调用及参数的传递关系 函数的嵌套与递归 全局变量和局部变量的概念 变量的存储类别 3)编写2个函数,分别求两个数的最大公约数和最小公倍数,请填空。 #include stdio.h zdgys(int x,int y) /*最大公约数函数*/ { int r, t; if(x__①__y){t=x;x=y;y=t;} while(r!=0) /* r为x/y余数*/ { r=x%y; if (r__②__0) return __③__; x=y; y=r; }} zxgbs(int x,int y) /*最小公倍数函数*/ { return((x__④__y)/zdgys(x,y));/*在返回值表达式中调用zdgys()函数*/ } main() { int a,b; printf(input two numbers:\n); scanf(%d%d,a,b); printf(maxgys=%d\tmingbs=%d,zdgys(a,b),zxgbs(a,b));/*调用函数*/ } 4)用递归算法,把一个整数的每一位数分解,并从低位到高位打印出来,一行一个数。例如:对整数765,输出: 5 6 7。请填空。 #include stdio.h void f(int x) { int i; i=x%__①__; /*取出x的个位的数赋值给i*/ printf(%d ,i); x/=__②__; /*将x的值缩小10倍并截尾取整*/ if(x0i0) f(x); /*递归调用f(x)函数*/ } main() { int a; printf(input a:\n); scanf(%d,a); f(a); /*调用f()函数,将实参传递给形参*/ } 5)函数 fun 的功能是:计算正整数num的各位上的数字之积。例如,若输入:252,则输出应该是:20。若输入:202,则输出应该是:0。请填空。 #include stdio.h long fun (long num) { long k=1; do { k*=num%10 ; num__①__; } while(num) ; return (k) ; } main( ) { long n ; scanf(%d,n) ; printf(\n%ld\n,fun(n)) ; } 6)请编写一个函数 void fun(int tt[M][N],int pp[N]),tt指向一个M行N列的二维数组,求出二维数组每列中最小元素,并依次放入pp所指一维数组中。 #include stdio.h #define M 3 #define N 4 /*求出二维数组每列中最小元素,并依次放入pp所指一维数组中*/ void fun ( int tt[M][N], int pp[N] ) { } main( ) { int t [ M ][ N ]={{22,45, 56,30 } ,{19,33, 45,38}, {20,22, 66,40}}; int p [ N ], i, j, k; printf ( The original data is : \n ); for( i=0; iM; i++ ) { for( j=0; jN; j++ ) printf ( %6d, t[i][j] ); printf(\n); } fun ( t, p ); printf( \nThe result is:\n ); for ( k = 0; k N; k++ ) printf ( %4d , p[ k ] ); } 7)函数fun的功能是求出一个2*M整型二维数组中最大元素的值,请将程序补充完整。 #include stdio.h #define M 4 fun (int a[][M]) { int i, j, max=a[0][0]; for(i=0; i2; i++) for(j=0; jM; j++) if(__①__)
文档评论(0)