有以下程序 #include <stdio.h> int b=2; int fun(int *k ) { b=*k+b; return (b); } main() { int a[10]={

admin2020-07-28  23

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

选项 A、8  10
B、10  28
C、10  12
D、10  16

答案B

解析 主函数中循环执行2次,fun函数被调用2次,b是全局变量,整个程序均可使用,第1次调用:fun(&a[2]),形参指针k获得a[2]的地址,则*k为a[2]的值,返回值:b=a[2]+2=3+2=5;主程序中:b=fun(&a[2])+b=5+5=10;第2次调用:fun(&a[3]),返回值:b=4+10=14;主程序中:b=fun(&a[3])+b=14+14=28。因此B选项正确.
转载请注明原文地址:https://kaotiyun.com/show/ML3p777K
0

最新回复(0)