设某程序中定义了全局整型变量x和y,且函数f()的定义如下所示,则在语句“x=3*y+1;”中( )。 int f(int y) { int x; x=3*y+1 ; return x; }

admin2017-08-31  42

问题 设某程序中定义了全局整型变量x和y,且函数f()的定义如下所示,则在语句“x=3*y+1;”中(    )。
    int f(int y)
    { int x;
    x=3*y+1  ;
    return x;
    }

选项 A、x和y均是全局变量
B、x是全局变量、y是局部变量
C、x是局部变量、y是局部变量
D、x是局部变量、y是全局变量

答案C

解析 本题主要考查程序中变量的作用域。
根据变量作用域与其定义语句在程序中出现位置关系,可把变量分为局部变量和全局变量两种。其中,在函数外部定义的变量叫做全局变量,又称为外部变量;在函数体内定义的变量是局部变量,又称为内部变量(当然,函数的形参也是一种局部变量)。局部变量和全局变量主要有以下区别。
(1)作用域的不同,局部变量的作用域是定义它的函数或程序段,而全局变量的作用域是整个程序。
(2)局部变量的生命周期与其存储类型有关,而全局变量的生命周期是整个程序的生命周期。
(3)当局部变量和全局变量同名时,局部变量在其作用域内具有更高的优先使用权。
(4)不同函数或程序段之中的局部变量可以同名,而不同的全局变量名称必须不相同。
所以,在本题中,虽然在函数外定义了全局变量x和y,但在函数f中,有局部变量x和y,那么在函数f中使用时,局部变量比全局变量具有更高的优先权,所以函数f中的x和y都是局部变量。
转载请注明原文地址:https://kaotiyun.com/show/6NRZ777K
0

相关试题推荐
最新回复(0)