问题
单项选择题
有以下程序:
#include <stdio.h>
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[i]);
程序运行后的输出结果是( )。
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
解析: 本题首先定义了一个数组a并初始化。然后用数组名a作为实参调用函数f()。在f()中,只有一个for循环,循环变量i从0递增至4,共循环5次,而每次执行的语句是(*q)++; ,即让形参q所指内容连续增1了5次。所以调用结束后,数组a的第1个元素被加5,故输出的结果为6, 2, 3, 4, 5, 。应该选择B)。