1)int z=5;f ( ){ static int x=2; int y=5;x=x+2; z=z+5;y=y+z;

南方九日2022-10-04 11:39:541条回答

1)int z=5;
f ( )
{ static int x=2; int y=5;
x=x+2; z=z+5;
y=y+z;
printf (〃%5d%5dn〃,x,z);
}
main ( )
{ static int x=10; int y;
y=z;
printf (〃%5d%5dn〃,x,z);
f ( );
printf (〃%5d%5dn〃,x,z);
f ( );
}
2)struct prob
{ char *a;
int b;
} x[ ]={ 〃Zhang San〃,19,〃Li Si〃,21,〃Wang Wu〃,20};
main ( )
{ int i,m1,m2;
m1=m2=x[0].b;
for (i=1; im1)m1=x[i].b;
else if (x[i].b

已提交,审核后显示!提交回复

共1条回复
pippo加油 共回答了19个问题 | 采纳率94.7%
把代码补全一点,主要是注意返回类型!
#include "stdio.h"
int z=5;
void f()
{ static int x=2; int y=5;/* x为静态变量,分配了以后直到程序结束,y没实际用到*/
x=x+2; z=z+5;
y=y+z;
printf ("%5d%5dn",x,z);
}
int main()
{ static int x=10; int y;/* x为静态变量,分配了以后直到程序结束,和上面的x不同*/
y=z;
printf("%5d%5dn",x,z); /*这时x=10,z=5*/
f();/*这时进入函数f(),函数里面的x=4,z=10*/
printf("%5d%5dn",x,z);/*这时main()函数的x=10,z=10*/
f();/*这时进入函数f(),函数里面的x=x+2=4+2,z=15*/
return 0;
}
运行结果
10 5
4 10
10 10
6 15
其实关键是静态变量的作用域问题
#include "stdio.h"
struct prob
{ char *a;
int b;
} x[]={ "Zhang San",19,"Li Si",21,"Wang Wu",20};
int main()
{ int i,m1,m2;
m1=m2=x[0].b;
for (i=1; im1) m1=x[i].b;/*m1存放最大的年龄*/
else if (x[i].
1年前

相关推荐