(例73求1~100的累加和。 int sum1000 int sum(int x) fint i, t=0 、圃0; g for(i=l;i<=100;i+) for(i-l; i<=x; i++) t+=i; 个 return(t) return(t) 程呈 main() 序 main f int s; 有 Int s, =sum1000; 何s=smm(100; printf("%d\n",s); printf("%dIn", s) 程序输出结果 程序输出结果: 5050 5050 2005年3月
2005年3月 11 int sum100( ) { int i,t=0; for (i=1; i<=100; i++) t+=i; return (t);} main( ) { int s; s=sum100( ); printf("%d\n", s); } 程序输出结果: 5050 int sum ( int x ) { int i,t=0; for (i=1; i<=x; i++) t+=i; return (t); } main( ) { int s; s=sum (100); printf("%d\n", s); } 【例7.3】求1~100的累加和。 思 考: 两 个 程 序 有 何 不 同 程序输出结果: 5050
72,3函数参数与函数的远回值1 1.函数的形式参数与实际参数 【例74】编一程序,将主函数中的两个变量的值传 递给swap函数中的两个形参,交换两个形参的值。 void swap(int x, int y) d int z; 形式参数(形参) TX;x-Y; yFz; printf("\ny/=0/a,y=%d"x,y) 际参数(实参) maino 单向值传递 i int a= 10, )=20; 程序输出结果: swap(; x=20,y=10 printf("lna=%d, b=%d\n", a, b);9=10. b=20 2005年3月
2005年3月 12 void swap(int x, int y) { int z; z=x; x=y; y=z; printf("\nx=%d,y=%d",x ,y); } main( ) { int a= 10,b=20; swap(a,b); printf("\na=%d,b=%d\n",a,b); } 7.2.3 函数参数与函数的返回值 1.函数的形式参数与实际参数 程序输出结果: x=20,y=10 a=10,b=20 形式参数(形参) 实际参数(实参) 【例7.4】编一程序,将主函数中的两个变量的值传 递给swap函数中的两个形参,交换两个形参的值。 单向值传递
有关形参和实参的说明 13 ①当函数被调用时才给形参分配内存单元。调用结 束,所占内存被释放。 ②实参可以是常量、变量或表达式,但要求它们有 确定的值。 ③实参与形参类型要一致,字符型与整型可以兼容 ④实参与形参的个数必须相等。在函数调用时,实 参的值赋给与之相对应的形参。“单向值传递” 注意:在C中,实参的求值顺序是从右到左 2005年3月
2005年3月 有关形参和实参的说明: 13 ① 当函数被调用时才给形参分配内存单元。调用结 束,所占内存被释放。 ② 实参可以是常量、变量或表达式,但要求它们有 确定的值。 ③ 实参与形参类型要一致,字符型与整型可以兼容 。 ④ 实参与形参的个数必须相等。在函数调用时,实 参的值赋给与之相对应的形参。“单向值传递” 。 注意:在TC中,实参的求值顺序是从右到左
【例75】函数调用中实参的求值顺序。 14 void fun(int a, int b) printf(a=%d, b=%dn", a, b); man f int m=5; fun(3+m,m++); 程序输出结果: a=9b=5 2005年3月
2005年3月 【例 14 7.5】函数调用中实参的求值顺序。 void fun(int a,int b) { printf("a=%d,b=%d\n",a,b); } main( ) { int m=5; fun(3+m, m++); } 程序输出结果: a=9,b=5
2函数的类型与函数的返回值 15 (4)函数的类型【例76】输出两个数中的大数。 max(int x, int y) 说明: fint z; ①函数的类型 ZX>Y?X:VS return(z);返回z的值* 决定了函数返 回值的类型。 若省略函数的 main() 类型,系统默 fint a, b, c, 认其为int型 scanf(%od, %d", &a, &b); ②无返回值的 c=max a, b); printf("max is %din", c); 函数应将其类 型定义为void (空)类型 2005年3月
2005年3月 15 2.函数的类型与函数的返回值 说明: ①函数的类型 决定了函数返 回值的类型。 若省略函数的 类型,系统默 认其为int型。 ②无返回值的 函数应将其类 型定义为void (空)类型。 ⑴ 函数的类型 【例7.6】输出两个数中的大数。 max(int x,int y) { int z; z=x>y?x:y; return (z); /* 返回z的值 */ } main( ) { int a,b,c; scanf("%d,%d",&a,&b); c=max(a,b); printf("max is %d\n",c); }