有以下程序: #include void f(int b[]) {int i; for(i=2;i

admin2020-01-10  29

问题 有以下程序:
    #include
    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、l,2,3,4,10,12,14,16,9,10,
D、1,2,6,8,10,12,14,16,9,10,

答案B

解析 数组名是常量,表示的是数组首元素的地址。当执行f(a)的时候,由于传递的是首地址,相当于直接对数组a进行操作,所以从数组a的第三个元素a[2]到元素a[5],每个元素值扩大两倍。因此B选项正确。
转载请注明原文地址:https://kaotiyun.com/show/lTCp777K
0

最新回复(0)