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

10.以下函数调用语句中实参的个数是()。 func((e1,e2),(e3,e4,e5));

A
2
B
3
C
5
D
 语法错误

答案解析

正确答案:A

解析:

这道题考查的是 C 语言中**逗号运算符**与**函数参数分隔符**的区别。 ### 核心考点解析 在 C 语言中,逗号 `,` 有两种主要用途: 1. **作为参数分隔符**:在函数调用 `func(arg1, arg2)` 中,逗号用于分隔不同的实参。 2. **作为逗号运算符**:在表达式 `(expr1, expr2)` 中,逗号是一个运算符,它会先计算左边的表达式,再计算右边的表达式,整个表达式的值是**最后一个表达式的值**。 ### 具体分析 题目中的函数调用语句为: ```c func((e1,e2),(e3,e4,e5)); ``` 我们需要分析括号内的结构来确定实参的个数: 1. **第一个实参**:`(e1,e2)` * 这里最外层的括号是函数参数列表的一部分。 * 内部的 `e1,e2` 被包裹在一对圆括号中,构成了一个**逗号表达式**。 * 根据逗号运算符的规则,`(e1,e2)` 整体被视为**一个**表达式,其值为 `e2` 的值。 * 因此,这是第 **1** 个实参。 2. **第二个实参**:`(e3,e4,e5)` * 同样,内部的 `e3,e4,e5` 被包裹在一对圆括号中,构成了一个**逗号表达式**。 * 该表达式依次计算 e3、e4、e5,整个表达式的值为 `e5` 的值。 * 因此,这是第 **2** 个实参。 3. **参数分隔** * 连接这两个部分的是中间那个没有被内部括号包裹的逗号。这个逗号才是**函数参数的分隔符**。 ### 结论 该函数调用实际上等价于: ```c func(e2, e5); ``` 它传递了 **2** 个实参。 * 如果写成 `func(e1, e2, e3, e4, e5)`,则是 5 个实参。 * 但题目中通过括号将逗号组合成了表达式,改变了优先級。 因此,实参个数为 2。 **正确答案是:A**
题目纠错
c语言选择判断题库

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

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