A-A+
有以下程序 yoidfun2(chara charb) {printf(%c%c a b);
问题详情
有以下程序 yoidfun2(chara,charb) {printf(%c%c,a,b);) chara=A,b=B; yoidfunl() {a=C;b=D;) main() {funl(); printf(%c%ca,b); fun2(E,F); } 程序的运行结果是
A.ABEF
B.CDEF
C.abcD
D.CDAB3.8变量的作用域和生存期
请帮忙给出正确答案和分析,谢谢!
参考答案
正确答案:B
存funl()函数之前定义了全局字符变量a和b。这两个变量的作用域是从其定义处到整个程序结束。在fun1()函数之内定义了两个变量a和b,并且分别初始化为字符"C"和"D"。在C语言中,若全局变量和某个函数中的局部变量同名,则在该函数中此全局变量被屏蔽,在该函数内访问的是局部变量,与同名的全局变量不发生任何关系。所以在主函数中,执行fun1()后,变量a、b的值分别等于"C"、"D",打印输出CD,接着执行fun2("E"F")语句,变量a、b的值变为"E"、"F"并输出。