AI智能推荐题库-试题通 AI智能整理导入题库-试题通
×
首页 题库中心 c语言选择判断题库 题目详情
CA4E3A01C46000013755684012D01E55
c语言选择判断题库
379
单选题

1、第84题 (1.0分) 题号:180 以下函数调用语句中实参的个数是()。 func((e1,e2),(e3,e4,e5));

A
2
B
3
C
5
D
 语法错误

答案解析

正确答案:A

解析:

这道题考查的是 C 语言中**逗号运算符**与**函数参数分隔符**的区别。 ### 核心考点解析 在 C 语言中,逗号 `,` 有两种主要用途: 1. **作为参数分隔符**:在函数调用 `func(a, b)`中,逗号用于分隔不同的实参。 2. **作为逗号运算符**:在表达式 `(expr1, expr2)` 中,逗号是一个运算符。它会先计算左边的表达式,再计算右边的表达式,整个表达式的值是**最后一个表达式的值**。 ### 详细推导过程 让我们分析题目中的函数调用语句: ```c func((e1,e2),(e3,e4,e5)); ``` 1. **识别最外层的参数分隔**: 函数 `func` 的括号内,我们需要找到处于最外层、未被其他括号包裹的逗号,这些逗号才是用来分隔参数的。 观察结构:`func( 参数1 , 参数2 )` * 第一个部分:`(e1,e2)` * 第二个部分:`(e3,e4,e5)` 中间的那个逗号将这两个部分分开,因此这里有两个主要的参数位置。 2. **分析第一个实参 `(e1,e2)`**: * 这是一个由括号包裹的表达式。 * 内部的逗号是**逗号运算符**。 * 根据逗号运算符的规则,`(e1,e2)` 先计算 `e1`,再计算 `e2`,整个表达式的结果是 `e2` 的值。 * 因此,这整体被视为**一个**实参。 3. **分析第二个实参 `(e3,e4,e5)`**: * 同样,这是一个由括号包裹的表达式。 * 内部的逗号也是**逗号运算符**。 * 它会依次计算 `e3`、`e4`、`e5`,整个表达式的结果是 `e5` 的值。 * 因此,这也整体被视为**一个**实参。 ### 结论 综上所述,函数 `func` 实际上接收了两个实参: 1. 第一个实参是表达式 `(e1,e2)` 的计算结果。 2. 第二个实参是表达式 `(e3,e4,e5)` 的计算结果。 所以,实参的个数是 **2**。 ### 选项分析 * **A. 2**:正确。 * **B. 3**:错误。如果误以为 `(e3,e4,e5)` 中的逗号是参数分隔符,可能会数错,但因为有外层括号,它们是运算符。 * **C. 5**:错误。这是把所有变量 `e1` 到 `e5` 都当成了独立参数,忽略了括号和逗号运算符的优先级。 * **D. 语法错误**:错误。这种写法在 C 语言中是完全合法的。 **正确答案:A**
题目纠错
c语言选择判断题库

扫码进入小程序
随时随地练习

关闭登录弹窗
专为自学备考人员打造
勾选图标
自助导入本地题库
勾选图标
多种刷题考试模式
勾选图标
本地离线答题搜题
勾选图标
扫码考试方便快捷
勾选图标
海量试题每日更新
波浪装饰图
欢迎登录试题通
可以使用以下方式扫码登陆
APP图标
使用APP登录
微信图标
使用微信登录
试题通小程序二维码
联系电话:
400-660-3606
试题通企业微信二维码