单选题 下列程序的运行结果是______。
#include<stdio.h>
void sub(int*s,int*y)
static int m=4;
*y=s[m];
m--;

void main()
int a[]=1,2,3,4,5,k;
int x;
printf("/n");
for(k=0;k<=4;k++)
sub(a,&x);
printf("%d,",x);


A.5,4,3,2,1, B.1,2,3,4,5, C.0,0,0,0,0, D.4,4,4,4,4,

【正确答案】 A
【答案解析】[解析] 本题考查的是静态变量以及函数的实参与形参之间的地址值传递。sub函数中定义的变量m是一个静态变量,系统可为其分配固定的存储空间,重复使用时,变量的值保留。所以当main函数中的for循环中语句sub(a,&x);执行时,sub函数中m的值依次是4,3,2,1,0。因为变量x进行的是地址值传递,所以最后依次输出的是数组a的元素a[4]、a[3]、a[2]、a[1]、a[0]。