有下列程序: void f(int *q) { int i=0; for(;i<5; i+ +) (*q)+ +; } main( ) { int a[5] ={1,2,3,4,5}, i; f(a); for(i=0;i<5; i+ +) printf(

admin2019-12-17  22

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

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

答案B

解析 void f(int *q)函数的功能是对(*q)的值连续5次自加1。在main()函数中f(a)语句把一维数组a[5]的首地址作为实参,传递给函数f(int *q)的形参q,然后在函数f(int *q)内,a[0]连续5次自加1后,a[0]的值就变成6。所以输出为6,2,3,4,5。
转载请注明原文地址:https://jikaoti.com/ti/keG0FFFM
0

最新回复(0)