有以下程序: #include<stdio.h> void fun(int n) { static int x[3]={1,2,3}; int k; for(k=0;k<3;k+ +) x[k]+ =x[k]—n; for(k=0;k<3;k+ +) pr

admin2019-04-14  26

问题 有以下程序:
#include<stdio.h>
void fun(int n)
{
static int x[3]={1,2,3};
int k;
for(k=0;k<3;k+ +)
x[k]+ =x[k]—n;
for(k=0;k<3;k+ +)
printf(″%d,″,x[k]);
}
main( )
{
fun(0);fun(1);
}
程序运行后的输出结果是(    )。

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

答案B

解析 第一次调用fun()函数,此时n=0,数组x是静态的,因此,只在第一次时初始化,由x[k]+ =x[k]—n计算可知,x[]={2,4,6},第二次调用fun(),此时n=1,x[]={2,4,6},经计算得x[]={3,7,11},故输出结果为2,4,6,3,7,11,
转载请注明原文地址:https://jikaoti.com/ti/Ngf0FFFM
0

最新回复(0)