C语言用函数func再来计算

Python011

C语言用函数func再来计算,第1张

37func执行两次,你每次都是func(4,1)

第一次。 对于func a=4 b=1 m=0 i=2

i+= m+1 i=2+0+1=3

m=i+a+b=3+4+1=8

第一个打印就是8

第二次 a=4 b=1 m=8 i=3

i+= m+1 i=3+8+1=12

m=i+a+b=12+4+1=17

第二个打印为17

选C

38

宏定义带入即可。

S(a+b) = PT*a+b*a+b

=5.5*1+2*1+2

=9.5

选B

#include<stdio.h>

int

func(int

a,int

b)

{

int

c

c=a+b

return

c

}

main()

{

int

x=6,y=7,z=8,r//(x--,y++,x+y)为逗号表达式,取最后一项的结果,即x+y==13

r=func((x--,y++,x+y),z--)//因为z--为后减减,所以调用函数相当于调用func(13,8)

printf("%d\n",r)//输出a+b,即13+8

}

题目问的是func中的形参有几个,答案是2没有问题。

(a1,a2,a3)这是一个表达式,表达式的值为最后一个逗号后面表达式的值,即a3的值,这是考察逗号运算符的知识点。

同理(a4, a5)表达式值为a5,所以func()调用等价于func(a3, a5),您想想形参有几个,2个没问题的,对吧。