有以下程序: #include void f(int*p) {int i=0: for(;i<5;i++)(*p)+=2; } void main() {int a[5]={0,1,2,3,4},i; f(a); for(i=0;i<5;i++)print

admin2017-11-24  3

问题 有以下程序:
#include
void f(int*p)
{int i=0:
for(;i<5;i++)(*p)+=2;
}
void main()
{int a[5]={0,1,2,3,4},i;
f(a);
for(i=0;i<5;i++)printf(’’%d,’’,a );
}
程序运行后的输出结果是(  )。

选项 A、10,1,2,3,4,
B、0,1,2,3,4,
C、10,2,3,4,5,
D、2,3,4,5,6,

答案A

解析 子函数的功能是将传入的值连续加5次2,也就是加10;注意到形参是指针。所以它和实参指向同一个变量;另外,数组名是可以当作指针使用,指向的是第一个元素,所以程序实际是将数组的第一个元素的地址传入子函数进行叠加操作,结果为10,其他元素没有进行相关操作,保持原值,所以结果是10,1,2,3,4。
转载请注明原文地址:https://kaotiyun.com/show/QSID777K
0

相关试题推荐
最新回复(0)