C语言作业题。

3.写出下面程序的运行结果。
# define MAX 10
int a[MAX], i ;
sub1 ( )
{ for (i=0; i<MAX; i++) a[i]=i+i ;
}
sub2 ( )
{ int a[MAX], i ,max ;
max=5;
for (i=0; i<MAX; i++) a[i]=i ;
}
sub3 (int a[ ])
{ int i ;
for (i=0; i<MAX; i++) printf(“%d ”,a[i]);
printf(“\n”);
}
main ( )
{ sub1( ); sub3(a); sub2( ); sub3(a);
}
4. 若输入的值是-125,写出下面程序的运行结果。
#include <math.h>
fun (int n)
{ int k,r ;
for (k=2; k<=sqrt(n); k++) {
r = n % k ;
while (!r) {
printf(“%d”,k); n=n/k;
if (n>1) printf(“*”);
r = n % k ;
}
}
if (n!=1) printf(“%d\n”,n);
}
main ( )
{ int n ;
scanf(“%d”,&n);
printf(“%d=”,n);
if (n<0) printf(“-”);
n = fabs(n); fun(n);
}

第1个回答  2012-05-23
3.的结果
024681012141618
024681012141618

4.的结果
-125=-5*5*5追问

第三个题是两个结果?

追答

第三题中调用sub1( ); sub3(a); sub2( ); sub3(a);
两个sub3(a);打印两行
sub2()没有改全局变量,所以后面的sub3(a)又打印了一遍刚才的结果

第2个回答  2012-05-23
你为什么不选第一次就回答正确的为满意回答呢??!!!
第3个回答  2012-05-23
3. 024681012141618
0123456789

4. -125=-5*5*5追问

第三个怎么两串数字。

追答

024681012141618
024681012141618
两个都是一样滴,不好意思弄错了,你调用了两次sub3(a);函数。

本回答被提问者采纳
相似回答