有以下程序 #include intb=2; intfun(int*k) {b=*k+b;return(b);} main() {inta[10]={1,2,3,4,5,6,7,8},i; for(i=2;i<4;i++){b=fun(&a[i])+b;p

admin2015-07-31  39

问题 有以下程序
#include
intb=2;
intfun(int*k)
{b=*k+b;return(b);}
main()
{inta[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/46Dp777K
0

最新回复(0)