C语言 12.5 这道题怎么做 请写下运算过程

 我来答
听不清啊
高粉答主

2019-08-10 · 说的都是干货,快来关注
知道顶级答主
回答量:7.8万
采纳率:89%
帮助的人:1.9亿
展开全部
在主程序里的循环是执行两次k=f(a++),实际上,第一次的赋值被第二次覆盖了,所以只有第二次的赋值,才是有效的。再来看函数调用的内部,在函数f中,变量a和b都是局部变量,但是,变量c是一个静态变量,它的值在一次调用结束以后,会得以保留,在下一次调用时,c中保留的值继续有效。但是赋值语句是一个逗号表达式,而逗号表达式a=c++,b++的值是最后一部分的值,即b++的值,先取b原来的值0赋给a,然后b再自增。所以,两次调用函数f的返回值实际是完全一样的,静态变量在这个里面没有起到有效的作用。两次调用,每一次返回的值都是0。题目给出的备选答案中没有这个值,这是个错误。
White_MouseYBZ
2019-08-09 · TA获得超过4万个赞
知道大有可为答主
回答量:2.1万
采纳率:82%
帮助的人:6384万
展开全部
4,D正确,选D。for循环调用两次f函数:第一次调用返回c即3;第二次调用返回c即4。因为c是static变量,它的值一经改变后就要保持到下一次访问。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式