单选题
1、第220题 (1.0分) 题号:670 以下正确的说法是()。
A
定义函数时,形参的类型说明可以放在函数体内
B
return后边的值不能为表达式
C
如果函数值的类型与返回值类型不一致,以函数值类型为准
D
如果形参与实参类型不一致,以实参类型为准
答案解析
正确答案:C
解析:
这道题考查的是 C 语言中函数定义、返回值以及参数传递的基本规则。我们需要逐一分析每个选项的正确性:
**1. 分析选项 A:**
* **内容**:定义函数时,形参的类型说明可以放在函数体内。
* **解析**:这是错误的。在标准的 C 语言函数定义中,形参(形式参数)必须在函数头部的括号内声明,并且其类型说明必须紧跟在参数名之后或在函数头之前声明(针对旧式 K&R C 风格,但也绝非在函数体 `{}` 内部)。函数体内部定义的是局部变量。
* **结论**:A 错误。
**2. 分析选项 B:**
* **内容**:return 后边的值不能为表达式。
* **解析**:这是错误的。`return` 语句后面完全可以跟一个表达式。例如 `return a + b;` 或 `return (x > y) ? x : y;` 都是合法且常见的用法。编译器会先计算表达式的值,然后将结果作为函数的返回值。
* **结论**:B 错误。
**3. 分析选项 C:**
* **内容**:如果函数值的类型与返回值类型不一致,以函数值类型为准。
* **解析**:这是正确的。这里的“函数值类型”指的是函数定义时指定的返回类型(例如 `int func() { ... }` 中的 `int`)。当 `return` 语句返回的表达式类型与函数定义的返回类型不一致时,C 语言会自动进行类型转换,将返回值的类型转换为函数定义时的类型。
* 例如:`int func() { return 3.14; }`,虽然返回的是 double 类型的 3.14,但因为函数定义为 `int`,最终返回给调用者的值是整数 `3`。
* **结论**:C 正确。
**4. 分析选项 D:**
* **内容**:如果形参与实参类型不一致,以实参类型为准。
* **解析**:这是错误的。在函数调用发生数据传递时,如果实参(实际参数)的类型与形参(形式参数)的类型不一致,系统会将**实参**的类型自动转换为**形参**的类型(前提是这种转换是合法的),而不是以实参类型为准。形参的类型是在函数定义时确定的,它决定了接收数据的格式。
* **结论**:D 错误。
**综上所述,正确答案是 C。**
题目纠错
c语言选择判断题库
相关题目
单选题
1、第39题 (1.0分) 题号:94 在C语言中,能代表逻辑值”真”的是()。
单选题
1、第38题 (1.0分) 题号:151 以下程序的运行结果是()。
单选题
1、第37题 (1.0分) 题号:693 以下各选项企图说明一种新的类型名,其中正确的是()。
单选题
1、第36题 (1.0分) 题号:509 int a=1,b=2,c=3; if( )a=b; if( )a=c; 则a的值为()。
单选题
1、第35题 (1.0分) 题号:571 以下叙述正确的是()。
单选题
1、第34题 (1.0分) 题号:550 不仅可将C源程序存在磁盘上,还可将数据按数据类型分别以什么的 形式存在磁盘上()。
单选题
1、第33题 (1.0分) 题号:523 函数的形式参数隐含的存储类型说明是()。
单选题
1、第32题 (1.0分) 题号:131 若k为int型变量,则以下程序段的执行结果是()。k=-8567; printf(”|%06D|\n”,k);
单选题
1、第31题 (1.0分) 题号:136 下列程序的输出结果为()。
单选题
1、第30题 (1.0分) 题号:697 若x=2,y=3则x&y的结果是()。
