首页 > 试题广场 >

函数调用exec((vl,v2),(v3,v4),v5,v6

[单选题]
函数调用exec((vl,v2),(v3,v4),v5,v6);中,实参的个数是:
  • 3
  • 4
  • 5
  • 6
推荐
函数原型exec((vl,v2),(v3,v4),v5,v6);
用括号括起来的两个形参组成是一个逗号运算符组成的表达式
C语言中逗号运算符返回最后一个参数作为表达式的值
所以(vl,v2)和(v3,v4)是两个逗号表达式,相当于两个实参
所以一共4个实参
编辑于 2015-01-27 21:05:46 回复(0)
B
运算符优先级,加入括号提高优先级,首先运算逗号表达式,(vl,v2),(v3,v4)结果分别是v2和v4,加上v5和v6一共四个
发表于 2015-01-17 16:41:02 回复(0)
如果出现逗号表达式:
Y = (X1, X2, X3, X4, ... Xn
那么会分别计算X1, X2, X3, X4, ... Xn表达式的值,但是最后赋给Y的值是Xn表达式的值。

如果在函数调用里出现:
int add(int x, int y)
{
    ...
}
形参中的逗号只是用于分隔不同变量,不能算是逗号表达式。

如果还有其它变量需要用逗号分隔的情况下,要使用逗号表达式得加上括号,就像这题:

exec((v1, v2),(v3,v4), v5, v6);

实际上等价于
exec(v2, v4, v5, v6);
一共有4个实参。
------------------------------菜鸟一枚,有错欢迎纠正


编辑于 2020-08-22 12:42:56 回复(0)
答案 B
看不懂这个题,写个代码测试一下:
int aa(int a, int b, int c)
{
return 0;
}

调用aa((1, 2), 3,4);
参数a的值是2, 参数b的值是3,参数c的值是4

假设(1,2)当成一个参数传递给a,为什么不会报参数不符合呢?
发表于 2015-01-13 10:22:24 回复(1)
答案:B
1. 形参:“形式参数”,是在定义函数名和函数体的时候使用的参数,目的是用来接收调用该函数时传递的参数
2. 实参:“实际参数”,实参可以是常量、变量、表达式、函数等,无论实参是何种类型的量,在进行函数调用时,它们都必须有确定的值,以便把这些值传送给形参。因此应预先用赋值,输入等办法使参数获得确定值。
3、实参和形参在数量上,类型上、顺序上应严格一致。
“实参可以是表达式”: (v1,v2) 这个表达式是一个实参,(v3,v4)这个表达式是一个实参,
“实参可以是变量”:v5 是一个实参, v6是一个实参。

发表于 2022-03-15 16:46:02 回复(0)
C语言中逗号是一个表达式,用括号括起来表示返回一个参数,所以是4个实参
发表于 2021-11-18 15:41:39 回复(0)
函数原型exec((vl,v2),(v3,v4),v5,v6); 用括号括起来的两个形参组成是一个逗号运算符组成的表达式 。 C语言中逗号运算符返回最后一个参数作为表达式的值 ,所以(vl,v2)和(v3,v4)是两个逗号表达式,相当于两个实参 ,所以一共4个实参
发表于 2021-11-15 10:17:58 回复(0)
一个参数和一组
发表于 2021-03-04 10:50:38 回复(0)
逗号表达式最后返回一个数,逗号表达式的优先级最低。
发表于 2016-05-22 16:36:26 回复(1)
B
发表于 2015-04-02 15:07:50 回复(0)