有以下程序: #include <stdio.h> void sum(int *a) { a[0]=a[1]; } main() { int aa[10]={1,2,3,4,5,6,7,8,9,10},i;

admin2009-01-15  27

问题 有以下程序:    #include   <stdio.h>    void sum(int *a)    {  a[0]=a[1];  }    main()    {  int aa[10]={1,2,3,4,5,6,7,8,9,10},i;       for(i=2;i>=0;i--) sum(&aa);       printf("%d\n",aa[0]);    }    执行后的输出结果是(    )。

选项 A、4
B、3
C、2
D、1

答案1

解析 该程序通过main函数循环凋用sum函数。
   当i=2时,将实参aa[2]的地址传递给形参,此时a[0]=a[1]=aa[3]=4,即aa[2]=4;
   当i=1时,将实参aa[1]的地址传递给形参,此时a[0]=a[1]=aa[2]=4,即aa[1]=4;
   当i=0时,将实参aa[0]的地址传递给形参,此时a[0]=a[1]=aa[1]=4,即aa[0]=4;
   当i=-1时,不满足条件i>=0,跳出循环,程序执行后数组aa中的值为4,4,4,4,5,6,7, 8,9,10,所以aa[0]=4。
转载请注明原文地址:https://kaotiyun.com/show/mpHp777K
0

相关试题推荐
最新回复(0)