✏️ 纠错
第 233 题 / 共 301 题
第7题 运行如下代码会输出( )。
int value = 100;
void print1() {
int value = 50;
cout << value << " ";
cout << ::value << " ";
}
void print2() {
cout << value << " ";
}
print1();
print2();你真棒!
📝 题目解析
【考纲知识点】C++变量作用域、局部变量与全局变量的访问、作用域解析运算符::的使用
【正确答案】C
【题目解析】
全局变量与局部变量:
代码开头定义了全局变量value,初始值为100。
print1()函数内部定义了同名的局部变量value,初始值为50。局部变量会隐藏同名的全局变量。
print1()函数的输出:
cout << value << " ";:访问局部变量value,输出50。
cout << ::value << " ";:使用作用域解析运算符::强制访问全局变量value,输出100。
print2()函数的输出:
函数内部未定义局部变量value,直接访问全局变量,输出100。
最终输出结果:
调用print1()输出50 100。
调用print2()输出100。
组合后结果为50 100 100,对应选项C。
局部变量会隐藏全局变量,但可通过::访问全局变量。因此,正确答案为C。