问题
单项选择题
有以下程序:
#include<stdio.h>
void f(int b[])
inti;
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
解析: 本题主要考查的是数组名用做函数参数。数组名用做函数参数的情况类似于指针,属于传地址,故对形参数组元素的修改会同时修改实参。本题中,f()函数通过一个for循环语句,将传入数组的元素从下标2到下标5每个自乘以2。因此,调用结束时,数组a中的内容为{1, 2, 6, 8, 10, 12, 7, 8, 9, 10},故本题应该选择B)。