一道计算机二级C语言真题 求解 如图 这是笔试题 有答案了 求过程

请帮忙解读一下这个程序是如何运行的 尤其是f( )是怎么计算的

第一次循环:a=0,f(a)=1,b=1,'A'+b='B'
第二次循环:a=1,f(a)=2,b=1+2=3,'A'+b='D'
第三次循环:a=2,f(a)=5,b=3+5=8,'A'+b='I'

所以答案是B,不懂可以追问,如有帮助还请采纳!追问

请问return是怎么执行的呢?它的目的是不是计算f(a)?程序的执行顺序是怎么样的?

追答

对,子函数如有返回值,那么最后子函数的值。
比如:
int f(int x); 那么可以看出子函数f必须有一个int型的返回值,一般都是这样的调用的:int a=f(x);
那么这是f函数中必须要有个return,返回一个int型的值。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-03-04
第一次循环:a=0,f(a)=0*0+1=1, b=0+1=1, 'A'+b='A'+1=‘B’
第二次循环:a=1,f(a)=1*1+1=2, b=1+2=3, 'A'+b='A'+3='D'
第三次循环:a=2,f(a)=2*2+1=5, b=3+5=8, 'A'+b='A'+8='I'

故是BDI,选B追问

请问return是怎么执行的呢?它的目的是不是计算f(a)?程序的执行顺序是怎么样的?

第2个回答  2013-03-04
f(a) 就是执行a的平方加1

在main里面有个for循环 a的取值为0 1 2的时候分别执行b= b+a方+1,(每一次的b值都是上一次计算出来的结果的b值)

有问题可以追问来自:求助得到的回答
第2个回答  2013-03-04
首先明确for(a=0;a<3;a++)与purchar函数的作用是输出三个字符;
f(int);函数的作用是例如x=5,那么f(5)等于5*5+1
那么可知:
a=0,f(a)=1,b=1,'A'+b(1)='B'
a=1,f(a)=2,b=1+2=3,'A'+b(3)='D'
a=2,f(a)=5,b=3+5=8,'A'+b(8)='I'
第3个回答  2013-03-04
for循环总共执行3次:
第一次:f函数返回值为:0*0+1
第二次:f函数返回值为:1*1+1
第三次:f函数返回值为:2*2+1