下面程序的执行结果是______。 #define MAX 10 nt a[MAX],i; main() { printf("\n"); sub1();sub3(A) ; sub2();sub3(A) ;

admin2010-05-22  18

问题 下面程序的执行结果是______。    #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;    }      sub2()        {int a[MAX],i,max;        max=5;        for(i=0;i<max;i++)                  a=i;    }    sub3(int a[])     { int i;       for(i=0;i<MAX;i++)                printf("%d",a);       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

答案8

解析 函数sub1给全局作用范围内数组a(长度为10)的每个元素赋值,函数sub2中数组a仅在本函数范围内有效,长度也是10,但仅给前5个元素赋值,main函数调用sub3时,传递数组地址均是全局作用范围内数组a的地址,因此两次调用打印的结果相同。
转载请注明原文地址:https://kaotiyun.com/show/GCWp777K
0

最新回复(0)