单选题
1、第180题 (1.0分) 题号:169 下列说法不正确的是()。
A
主函数main中定义的变量在整个文件或程序中有效
B
不同函数中,可以使用相同名字的变量
C
形式参数是局部变量
D
在一个函数内部,可以在复合语句中定义变量,这些变量只在复合语句中有效
答案解析
正确答案:A
解析:
本题考查 C 语言中变量的作用域(Scope)和生命周期。我们需要逐一分析各个选项,找出说法**不正确**的一项。
**选项分析:**
* **A. 主函数main中定义的变量在整个文件或程序中有效 —— 【错误】**
* 在 `main` 函数内部定义的变量属于**局部变量**。
* 局部变量的作用域仅限于定义它的函数内部(即 `main` 函数的大括号 `{}` 内)。
* 其他函数无法直接访问 `main` 函数中定义的局部变量。若要在整个文件或程序中有效,需要定义为**全局变量**(即在所有函数之外定义)。
* 因此,该说法混淆了局部变量和全局变量的概念,是不正确的。
* **B. 不同函数中,可以使用相同名字的变量 —— 【正确】**
* C 语言中,不同函数拥有独立的作用域。
* 在函数 A 中定义的变量 `x` 和函数 B 中定义的变量 `x` 是两个完全独立的内存单元,互不干扰。编译器通过作用域来区分它们。
* **C. 形式参数是局部变量 —— 【正确】**
* 函数的形式参数(形参)只在被调用时分配内存,且仅在函数体内有效。
* 当函数调用结束返回时,形参所占用的内存会被释放。因此,形参本质上就是该函数的局部变量。
* **D. 在一个函数内部,可以在复合语句中定义变量,这些变量只在复合语句中有效 —— 【正确】**
* 在 C 语言(特别是 C99 及以后标准,以及 C++)中,允许在代码块(复合语句,即 `{}` 包围的区域)内部定义变量。
* 这类变量的作用域仅限于该代码块内部,出了这个 `{}` 就无法访问。这符合块级作用域的规则。
**结论:**
题目要求选出**不正确**的说法。选项 A 错误地认为 main 函数中的局部变量具有全局作用域。
故正确答案为:**A**
题目纠错
c语言选择判断题库
相关题目
单选题
1、第79题 (1.0分) 题号:720 函数 rewind 的作用是()。
单选题
1、第78题 (1.0分) 题号:503 以下语句中,不能实现回车换行的是()。
单选题
1、第77题 (1.0分) 题号:541 若有int i=3,*p;p=&i;下列语句中输出结果为3的是()。
单选题
1、第76题 (1.0分) 题号:91 以下数值中,不正确的八进制数或十六进制数是()。
单选题
1、第75题 (1.0分) 题号:680 在调用函数时,如果实参是简单变量,它与对应形参之间的数据 传递方式是()。
单选题
1、第74题 (1.0分) 题号:116 下列语句的结果是()。
单选题
1、第73题 (1.0分) 题号:613 下面有关 for 循环的正确描述是()。
单选题
1、第72题 (1.0分) 题号:504 执行以下程序段后,输出结果和a的值是()。 int a=10; printf(”%d”,a++);
单选题
1、第71题 (1.0分) 题号:104 以下运算符中,优先级最高的运算符是()。
单选题
1、第70题 (1.0分) 题号:676 以下只有在使用时才为该类型变量分配内存的存储类说明是()。
