有以下程序: #include<stdio.h> int b=2; int fun(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++)

admin2022-06-24  24

问题 有以下程序:
#include<stdio.h>
int b=2;
int fun(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、10 12
B、8 10
C、10 28
D、10 16

答案C

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

最新回复(0)