以下程序运行时的输出结果第一行至第三行分别为

2025-04-04 06:02:46
推荐回答(2个)
回答1:

#include
int k; //全局变量k, 默认初始值为0
main()
{ int i=4; //局部变量i, 初始值为4
fun(i); //因为是局部变量值传递,所以函数调用完后i的值不受影响, 这一句过后i还是4
printf(“(1)%d,%d\n”,i,k);} //所以i=4, k的值会被fun()修改为4

fun(int m)

{ m+=k;k+=m; //前边说过,k初始为0, 所以m = 4, k = 4, 因为k是全局变量,所以在fun()内修改后,fun()外也受影响.

{ char k=’B’; //这是一个被{} 包括的代码段,在这里定义的k是指在这段中村在的局部变量, 值为B

printf(“(2)%d\n”,k-‘A’); //B-A = 1

}

printf(“(3)%d,%d\n”,m,k); //这里的k是全局变量,被m+=k;k+=m; 修改过为4, 而m是参数,是4.

}

回答2:

你首先需分清全局变量和局部变量,程序中的K是全局变量,它的值不会因为分块程序所改变,分块程序就像被调函数,当执行完后即刻消失,所以(2) 为1,但K值依然是4