有以下程序 #include void f( int *q ) { int i=0; for ( ;i

admin2020-05-19  22

问题 有以下程序
#include
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、6, 2, 3, 4, 5,
B、2, 2, 3, 4, 5,
C、1, 2, 3, 4, 5,
D、2, 3, 4, 5, 6,

答案A

解析 函数f的功能是循环执行语句"(*q)++;"五次,而该语句的执行过程是获取指针p指向的数据并自加,由于指针p没有移动,所以每次获取的都是数组a第一个元素的值,自加五次之后,值为6,数组的其他元素没有变化,所以答案选A。
转载请注明原文地址:https://kaotiyun.com/show/b5Cp777K
0

最新回复(0)