有以下程序: #include<iostream> using namespace std; int f(int x); int sum(int n) { int x,s=0; for(x = 0;x<

admin2010-03-29  19

问题 有以下程序:    #include<iostream>    using namespace std;    int f(int x);    int sum(int n)    {       int x,s=0;       for(x = 0;x<=n;x++)           s+=f(x);       return  s;    }    int  f(int  x)    {       return  (x*x+1);    }    int main()    {       int  a,b;       cout<<"Enter  a  integer  number:";       cin>>a;       b=sum(a) ;       cout<<a<<","<<b<<end1;       return 0;    }    如果输入数字3,其输出结果是(    )。

选项 A、3,12
B、3,16
C、3,18
D、4,20

答案4

解析 这还是有关调用函数的程序,而且有两层关系。根据程序逐步分析:
①本程序包含了3个函数,其中主函数main调用了sam()函数,而在sum()函数中又调用了f函数。
   ②在主函数中,先从键盘输入一整数,并赋值给a。在这里题目开始已给出输入的是整数3,调用函数sum(),并把3传值给形参n,最后输出a,b的值。
   ③在sum()函数中,有一个for循环语句,在每次循环时调用函数f,并把当前的x值传给形参x,循环结束后,返回s值。
   ④在f()函数中,变量x接收实参的值后,执行表达式“x*x+1”,并返回表达式的运算结果。
   ⑤在sum()函数中,由于n值为3,不难看出,当x=0、x=1、x=2和x=3时,都能执行循环体,即调用函数f,第1次循环更改s值为1,第2次循环更改s值为3,
   第3次更改为8,第4次更改为18,也就是最后一次循环,即最终sum()返回值将是18。
   ⑥在主函数收到sum()函数的返回值,并输出3,18。
转载请注明原文地址:https://kaotiyun.com/show/YDjp777K
0

最新回复(0)