有以下程序:  #include<stdio.h>  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

admin2022-10-24  27

问题 有以下程序:
 #include<stdio.h>
 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

解析 数组名相当于常量,表示的是数组首元素的地址。当执行函数f(a)的时候,因为传递的是首地址,相当于直接对数组a进行操作,所以从数组a的第3个元素a[2]到元素a[5],每个元素值扩大两倍。故本题答案为B选项。
转载请注明原文地址:https://jikaoti.com/ti/QId0FFFM
0

最新回复(0)