10.
#include
{float fun(float x[]); float ave,a[3]={4.5,2,4}; ave=fun(a); printf(?ave=%7.2f?,ave); }
float fun(float x[]) {int j;
float aver=1;
for (j=0;j<3;j++)
aver=x[j]*aver;
return(aver); }
运行结果为: ave= 36.00 11.
#include
{int a[2][3]={{1,2,3},{4,5,6}}; int b[3][2],i,j; for(i=0;i<=1;i++)
{for(j=0;j<=2;j++)
b[j][i]=a[i][j]; }
for(i=0;i<=2;i++)
{for(j=0;j<=1;j++)
printf(\ } }
运行结果为:
1 4 2 5 3 6
12.
#include
for (i=0;i<=n;i++)
r=r*b[i];
return (r); }
main()
{int x,a[]={1,2,3,4,5,6,7,8,9}; x=f(a,3);
printf(?%d\\n?,x); }
运行结果为: 24 13.
#include\main() {int j,k;
static int x[4][4],y[4][4]; for(j=0;j<4;j++) for(k=j;k<4;k++) x[j][k]=j+k; for(j=0;j<4;j++) for(k=j;k<4;k++) y[k][j]=x[j][k];
for(j=0;j<4;j++) for(k=0;k<4;k++)
printf(\}
运行结果为:
0,0,0,0,1,2,0,0,2,3,4,0,3,4,5,6
函数 1.
#include
{int x, y, result = 0; scanf(\result = Sub(x,y ) ;
printf(\}
当从键盘输入:6,3运行结果为: result =3
2.
#include
int min( int x, int y ) { int m;
if ( x> y ) m = x; else m = y; return(m); }
main() {
int a=3,b=5,abmin ; abmin = min(a,b); printf(?min is %d?, abmin); }
运行结果为: min is 5 3.
#include
printf(?%d, ?,x); }
main( )
{ int x=20; func(x);
printf(?%d?, x); }
运行结果为: 10, 20
在main函数中调用函数func,main函数将20作为实参穿给func,并转向开始执行func.
main()对应的内存 func()对应的内存 20 x 20 x func()执行x=10;,其内存中x变为10.
10 x
func()执行printf(?%d, ?,x); 即输出func函数对应内存中x的值,输出的是10. 至此,func函数执行结束,返回main函数。
main函数执行printf(?%d?, x);此时输出main函数对应内存中的x,即20 4.
#include
int func(int x,int y) { int m=1;
return(x*y-m); }
main()
{int a=2,b=3;
printf(\
printf(\}
运行结果为: 4 1
整型变量m在函数外定义,因此m为全局变量,其作用于范围为其定义位置开始,一直到整个程序结束。因此func与main函数都可以访问m
程序首先执行main函数
执行printf(\即输出m中的值4,并换行。
执行printf(\即输出表达式func(a,b)/m的值,为了计算该表达式, 需要调用函数func。此时main将a,b中的2和3值作为实参传递给func的x和y 程序开始转向执行func函数,此时func中的x为2,y为3
执行int m=1; 此句定义了一个局部变量m并赋值为1 。m的作用域为其所在的复合
语句,即func的函数体,因此在func的函数体重,有限访问局部变量m。 执行return(x*y-m); 即return(2*3-1) ;返回的是整数5. func函数返回至main函数中的被调用处
main函数中func(a,b)的值为5,func(a,b)/m=5/4=1,注意,在main函数中访问的m为全局变量m,此时main函数无法访问func中的m,因为不在func中m的作用域。 5.
#include
int fun(int a, int b) { if(a>b) return(a); else return(b); }
main()
{ int x=15, y=8, r; r= fun(x,y);
printf(\}
运行结果为:r=15
程序首先执行main函数
执行r= fun(x,y);即将func(x,y)的值赋给r,为了计算该表达式,需要调用函数func。此时main将x,y中的15和8值作为实参传递给func的a和b 程序开始转向执行func函数,此时func中的a为15,b为8
执行if语句;判断if后面的表达式,a>b成立,因此执行相应的操作return(a);即返回 a的值 。
func函数返回至main函数中的被调用处
main函数中func(x,y)的值为15,即将15赋给r。 执行printf(\即输出r=15 6.
#include
for(i=1;i<=n;i++)
f=f * i; return(f); }
main()
{ int j,s;
scanf(?%d?,&j); s=fac(j);
printf(\}
如果从键盘输入3, 运行结果为: 3!=6
程序首先执行main函数
执行r= fun(x,y);即将func(x,y)的值赋给r,为了计算该表达式,需要调用函数func。此时main将x,y中的15和8值作为实参传递给func的a和b 程序开始转向执行func函数,此时func中的a为15,b为8
执行if语句;判断if后面的表达式,a>b成立,因此执行相应的操作return(a);即返回 a的值 。
func函数返回至main函数中的被调用处
main函数中func(x,y)的值为15,即将15赋给r。