问题 单项选择题

有以下程序:
#include <stdio.h>
void f(int *q)
int i=0;
for(;i<5;i++)
(*q)++;

main()
int a[5]=5,4,3,2,1,i;
f(a);
for(i=0;i<5;i++)
printf("%d,",a[i]);

程序运行后的结果是

A) 6,4,3,2,1
B) 6,5,4,3,2
C) 5,4,3,2,1
D) 10,4,3,2,1

答案

参考答案:D

解析: 表达式(*q)++先取出q所指对象的值,再对该值递增,计算中q的值不变。所以f函数的功能是将指针q所指的数加5。函数调用f(a);相当于将数组a的第一个元素加5,操作后a[5]={10,4,3,2,1}。

材料分析题
选择题