计算机二级C语言笔试试题,要求运行结果,要有详细的解题过程,不是只要结果,有实力的进,感激不尽

2025-05-15 19:30:05
推荐回答(5个)
回答1:

求结果从主函数main开始:
首先定义了一个十个数的整型数组aa,并赋值1,2,3,4,5,6,7,8,9,10。
接着定义整数s,并赋值s=f(aa+2,4).这里就调用了f函数。同时传递两个参数aa+2(即为aa[2])和4。
再看函数f:
f的函数体对结构控制用到了if语句,if的条件测试为n是否>1。
由前文可知,此时n=4,所以其实是返回3+f(aa+3,3).
又调用f,此时n=3,同理所以返回3+4+f(aa+4,2).
又调用f,此时n=2,同理返回3+4+5+f(aa+5,1).
此时n=1,不满足测试条件,返回3+4+5+6结束。
s=3+4+5+6=18
别选我

回答2:

多给点分我就给你答案

回答3:

递归从aa[2]开始,n为4,每次记录下aa的首元素,aa加1,n减1,进行下一次递归.当n=1时,递归结束,将每次递归aa首元素的值赋给s.打印s=18.

回答4:

c的程序首先看main函数,aa+2数组的首地址增加两个单位为aa[2],这时调用f函数,进入f函数先判断n的值,n为4,所以执行a[0]+f(a+1,n-1),这是一个递归算法,再调用f函数,参数为(a[1],3),以此类推,当n==1时 返回的结果为:
3+4+5+6=18(注:参数虽然都是a[1],但是每次传的首地址都不同)
有问题可以hi我

回答5:

你自己去调试啊,什么问题都能明白!