单选题
1、第96题 (1.0分) 题号:526 用户定义的函数不可以调用的函数是()。
A
非整型返回值的
B
本文件外的
C
main函数
D
本函数下面定义的
答案解析
正确答案:C
解析:
**正确答案:C**
**解析:**
在 C 语言(以及大多数遵循类似规则的编程语言如 C++)中,关于函数调用的规则如下:
1. **关于 `main` 函数(选项 C)**:
`main` 函数是程序的入口点由操作系统或运行时环境直接调用。虽然从语法技术上讲,在 C 语言标准中递归调用 `main` 是允许的(尽管极少使用且通常不推荐),但在常规的编程规范和考试语境中,**用户定义的普通函数不应该也不允许去主动调用 `main` 函数**。这是因为 `main` 函数的职责是初始化程序并协调其他函数的执行,如果允许普通函数随意调用 `main`,会导致程序流程混乱、栈溢出或资源重复初始化等严重问题。因此,在考察函数调用规范的题目中,`main` 函数被视为不可由用户自定义函数随意调用的特殊函数。
2. **关于非整型返回值的函数(选项 A)**:
函数可以返回各种类型的数据,包括 `float`、`double`、`char`、指针、结构体等。只要声明和定义一致,完全可以被调用。因此该选项错误。
3. **关于本文件外的函数(选项 B)**:
如果一个函数在其他文件中定义,但在当前文件中通过头文件包含或外部声明(`extern`)进行了声明,那么它是可以被调用的。这是多文件编程的基础。因此该选项错误。
4. **关于本函数下面定义的函数(选项 D)**:
只要在调用之前对函数进行了**前置声明**(Function Prototype/Declaration),即使函数的具体定义(Implementation)写在调用它的函数之后,也是完全可以正常调用的。因此该选项错误。
**总结:**
用户定义的函数不能(或不应当)调用 `main` 函数,因为 `main` 是程序的主控入口,其调用权属于系统启动代码,而非普通业务逻辑函数。故本题选 **C**。
题目纠错
c语言选择判断题库
相关题目
单选题
1、第163题 (1.0分) 题号:712 若有说明:int n=2,*p=&n,*q=p;,则以下非法的赋值语句是()。
单选题
1、第162题 (1.0分) 题号:687 表达式,0x13&0x17的值是()。
单选题
1、第161题 (1.0分) 题号:113 执行下列语句后变量x和y的值是()。 y=10;x=y++;
单选题
1、第160题 (1.0分) 题号:634 以下不正确的定义语句是()。
单选题
1、第159题 (1.0分) 题号:642 在C语言中,一维数组的定义方式为:类型说明符数组名()。
单选题
1、第158题 (1.0分) 题号:181 C语言中函数调用的方式有()。
单选题
1、第157题 (1.0分) 题号:717 fscanf函数的正确调用形式是()。
单选题
1、第156题 (1.0分) 题号:653 以下程序段中,不能正确赋字符串(编译时系统会提示错误)的是()。
单选题
1、第155题 (1.0分) 题号:604 下面不正确的字符串常量是()。
单选题
1、第154题 (1.0分) 题号:723 函数调用语句:fseek(fp,-20L,2);的含义是()。
