问题
单项选择题
有以下程序 void fun2 (char a,char b) {printf("%c%c",a,b);} char a=’A’,b=’B’; void fun1(){ a=’C’; b=’D’; } main() { fun1(); printf("%c%c",a,b); fun2 (’E’,’F’); } 程序的运行结果是______。
A.CDEF
B.ABEF
C.ABCD
D.CDAB
答案
参考答案:A
解析:
本题主要是要区分全局变量和局部变量,全局变量是指在函数之外定义的变量,它的有效范围是从定义变量的位置开始到本源文件结束,函数fun1中用的变量a、b就是全局变量,虽然在定义时给a、b分别赋值为A、B,但在fun1函数中对其值进行了改变,所以调用fun1后输出的a、b的值为’C’和’D’;而fun2中输出的是两个局部形参变量a、b的值,这两变量的值由主函数在调用时赋给它,故输出结果为:E、F。