有以下程序: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,

21 查阅

有以下程序: 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); for(i=0;i<10;i++)printf("%d,",a[i]); } 程序运行后的输出结果是( )。

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且i6得出函数将列以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]的值没有发生变化。

计算机二级