A-A+

下面程序的执行结果是______。 #define MAX 10 nt a[MAX] i;

2022-08-06 05:01:18 问答库 阅读 176 次

问题详情

下面程序的执行结果是______。 #define MAX 10 nt a[MAX],i; main() { printf("n"); sub1();sub3(A) ; sub2();sub3(A) ; } sub1() {for(i=0;i<1MAX;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"); }
A.0 2 4 6 8 10 12 14 16 18 0 1 2 3 4
B.0 1 2 3 4 0 2 4 6 8 10 12 14 16 18
C.0 1 2 3 4 5 6 7 8 9 0 1 2 3 4
D.0 2 4 6 8 10 12 14 16 18 0 2 4 6 8 10 12 14 16 18请帮忙给出正确答案和分析,谢谢!

参考答案

正确答案:D
解析:函数sub1给全局作用范围内数组a(长度为10)的每个元素赋值,函数sub2中数组a仅在本函数范围内有效,长度也是10,但仅给前5个元素赋值,main函数调用sub3时,传递数组地址均是全局作用范围内数组a的地址,因此两次调用打印的结果相同。

考点:程序