问题 单项选择题

以下程序运行后的输出结果是 #include<stdio.h> 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"); }

A.10 12

B.8 10

C.10 28

D.10 16

答案

参考答案:C

解析: 第一次for循环,循环参数i=2,fun(&a[2])调用,fun函数中b=3+2,即全局变量b被改为5。返回main函数,b=5+5,全局变量b的值为10,并输出;第二次for循环,循环参数i=3,fun(&a[3])调用,fun函数中b=4+10,即全局变量b被改为14。返回main函数,b=14+14,全局变量b的值为28,并输出。

单项选择题
单项选择题