有以下程序 void fun2(char a,char b) main() {printf("%c%c",a,b);} {fun1(); char a=’A’,’b=’B’; printf("%c%c",a,b); void fun1() fun2

admin2016-12-18  20

问题 有以下程序
void fun2(char a,char b)  main()
{printf("%c%c",a,b);}  {fun1();
char a=’A’,’b=’B’;  printf("%c%c",a,b);
void fun1()  fun2(’E’,’F’);}
{a=’C’;b=’D’;}
程序的运行结果是

选项 A、A B E F
B、C D E F
C、A B C D
D、C D A B

答案B

解析 在fun1()函数之前定义了全局字符变量a和b。这两个变量的作用域是从其定义处到整个程序结束。在fun1()函数之内定义了两个变量a和b,并且分别初始化为字符’C’和’D’。在C语言中,若全局变量和某个函数中的局部变量同名,则在该函数中此全局变量被屏蔽,在该函数内访问的是局部变量,与同名的全局变量不发生任何关系。所以在主函数中,执行fun1()后,变量a、b的值分别等于’C’、’D’,打印输出CD,接着执行fun2(’E’,’F’)语句,变量a、b的值变为’E’、’F’并输出。
转载请注明原文地址:https://jikaoti.com/ti/Jli0FFFM
0

最新回复(0)