有以下程序:
#include
int b=2;
int fun(int *k)
{
b=*k+b;
return(b);
}
main()
{
int a[10]={1,2,3,4,5,6,7,8},i;
for(i=2;i<4;i++)
{
b=fun(&a[i])+b;
printf("%d",b);
}
printf("\n");
}
程序运行后的输出结果是( )。
因为 int 是全局变量, 所以它的值在整个程序结束时才会消失。 for 循环第一次 i=2, a[i]=3, 所以fun(&a[i])=3+2=5, 这时 b 为 5, 所以b=fun(&a[i])+b=5+5=10。 第二次循环时, b=10, 然后 fun(&a[i]), 代入 a[i]=4,这时 fun(&a[i])=10+4=14, 所以b=fun(&a[i])+b=14+14=28。 答案选择 C 选项。