有以下程序: void f(int b[]) {int i; for(i=2;i<6;i++)b[i]*=2; } main() {int a[10]={1,2,3,4,5,6,7,8,9,10},i; f(A);

admin2011-06-13  25

问题 有以下程序:    void f(int b[])    {int i;    for(i=2;i<6;i++)b*=2;    }    main()    {int a[10]={1,2,3,4,5,6,7,8,9,10},i;    f(A);    for(i=0;i<10;i++)printf("%d,",a);    }    程序运行后的输出结果是(       )。

选项 A、1,2,3,4,5,6,7,8,9,10,
B、1,2,6,8,10,12,7,8,9,10
C、1,2,3,4,10,12,14,16,9,10,
D、1,2,6,8,10,12,14,16,9,10,

答案B

解析 本题在调用函数时,实参是数组名也是把数组a的首地址传递给形参,由条件i=2且i<6得出函数将列以a[2]开始的4个元素(3、4、5、6)进行乘2操作,结果分别是a[2]=6、a[3]=8、a[4]=10、a[5]=12。a[0]、a[1]、a[6]、a[7]、a[8]、a[9]的值没有发生变化。
转载请注明原文地址:https://kaotiyun.com/show/tVPp777K
0

最新回复(0)