有以下程序: #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; f

admin2021-02-25  21

问题 有以下程序:
  #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)+b;printf("%d",b);}
    printf("\n");
  }
  程序运行后的输出结果是(    )。

选项 A、1012
B、810
C、1028
D、1016

答案C

解析 变量b是全局变量,所以它的值在整个程序结束时才会消失。for循环第一次i=2,a=3,所以fun(&a)=3+2=5,这时b为5,所以输出的b=fun(&a)+b=5+5=10。for循环第二次,i=3,b=10,然后fun(&a),代入a=4,这时fun(&a)=10+4=14,所以输出的b=fun(&a)+b=14+14=28。
转载请注明原文地址:https://kaotiyun.com/show/49tp777K
0

最新回复(0)