单选题
1、第60题 (1.0分) 题号:674 以下错误的描述是:函数调用可以()。
A
出现在执行语句中
B
出现在一个表达式中
C
做为一个函数的实参
D
做为一个函数的形参
答案解析
正确答案:D
解析:
本题考查的是 C 语言(或类似结构化编程语言)中函数调用的语法规则及位置。我们需要逐一分析各个选项,找出描述**错误**的一项。
**1. 选项分析:**
* **A. 出现在执行语句中**
* **分析**:这是最常见的函数调用方式。例如 `printf("Hello");` 或 `scanf("%d", &a);` 都是作为独立的表达式语句存在的。如果函数有返回值,也可以忽略返回值直接调用,如 `func();`。
* **结论**:描述正确。
* **B. 出现在一个表达式中**
* **分析**:如果函数有返回值,它可以参与运算或赋值。例如 `int b = func() + 10;` 或者 `if (func() > 0) { ... }`。此时函数调用作为表达式的一部分存在。
* **结论**:描述正确。
* **C. 做为一个函数的实参**
* **分析**:函数的返回值可以作为另一个函数的参数传递。例如 `printf("%d", func());`,这里 `func()` 的返回值被当作 `printf` 的实际参数(实参)传入。
* **结论**:描述正确。
* **D. 做为一个函数的形参**
* **分析**:**形参**(形式参数)是在函数定义时声明的变量,用于接收调用者传来的数据。形参必须是**变量声明**(包括类型和变量名),而不能是一个“动作”或“调用过程”。
* 例如,定义函数 `void test(int a)`,这里的 `int a` 是形参。我们不能写成 `void test(func())`,因为 `func()` 是一个调用表达式,而不是一个变量类型的声明。虽然在某些高级特性(如函数指针)中,形参可以是函数指针类型,但那是“指针变量”,而不是“函数调用”本身。题目中的“函数调用”指的是执行函数的动作 `func(...)`,这绝对不能作为形参。
* **结论**:描述**错误**。
**2. 总结:**
函数调用是一个运行时发生的动作或表达式,它可以作为语句、表达式的一部分或实参传递,但不能在函数定义阶段作为形参声明。形参只能是变量或指针等数据类型的标识符。
因此,错误的描述是 **D**。
**正确答案:D**
题目纠错
c语言选择判断题库
相关题目
单选题
1、第199题 (1.0分) 题号:598 下列四组选项中,均不是C语言关键字的选项是()。
单选题
1、第198题 (1.0分) 题号:530 C程序中的宏展开是在()。
单选题
1、第197题 (1.0分) 题号:554 从键盘上输入某字符串时,不可使用的函数是()。
单选题
1、第196题 (1.0分) 题号:519 int a[10]; 给数组a的所有元素分别赋值为1、2、3、……的语句是()。
单选题
1、第195题 (1.0分) 题号:168 若输入ab,程序运行结果为()。
单选题
1、第194题 (1.0分) 题号:549 若有double *p,x[10];int i=5;使指针变量p指向元素x[5]的语句为()。
单选题
1、第193题 (1.0分) 题号:120 假设所有变量均为整型,表达式:a=2,b=5,a>b?a++:b++,a+b的值 是()。
单选题
1、第192题 (1.0分) 题号:138 以下程序的输出结果是()。
单选题
1、第191题 (1.0分) 题号:641 若有说明:int a[10];则对a数组元素的正确引用是()。
单选题
1、第190题 (1.0分) 题号:696 设 int b=2;表达式(b>>2)/(b>>1)的值是()。
