阅读以下C代码,回答问题1至问题3,将解答填入答题纸的对应栏内。 【C代码3】 int getSum(int n) { int t,i=0,sum=0; while(i<n){ scanf("%d",&t);

admin2020-04-30  23

问题 阅读以下C代码,回答问题1至问题3,将解答填入答题纸的对应栏内。
【C代码3】
    int getSum(int n)
    {
    int t,i=0,sum=0;
    while(i<n){
    scanf("%d",&t);
    if(t<0)
    continue;
    sum+=t;
    i++;
    }
    return sum;
    }
【问题3】
(1)简要说明【C代码3】中的函数getSum()的功能;
(2)程序员小王将函数getSum改写后得到下面的函数getSum_v2(即用for语句来描述循环)。请问,getSum_v2的功能是否与【C代码3】的gctSum完全相同,若不同,请说明原因。
    int getSum v2(int n)
    {
    int t,i=0,sum=0;
    for(i=0;i<n; i++)  {
    scanf("%d",&t);
    if(t<0)
    continue;
    Sum+=t;
    }
    return sum;
    }

选项

答案(1)将输入的n个非负整数求和或含义相同的表述 (2)不同 for循环中i的值每次都增1,在while循环中i的值不是每次都增1。 注:含义相同的表述都可。

解析 【问题3】
本问题考查描述循环流程控制的语句应用。
    while和for都是常用的循环语句,需要注意其中continue的作用。
    函数getSum的处理逻辑如下面的流程图所示,其中continue的作用是结束本次循环,重新开始下一次循环,因此i的值在输入的整数不小于0时才增加1,其作用是计算输入的非负整数个数,在i的值为n时结束循环,sum的结果是n个非负整数的和。

    而函数getSum_V2的处理逻辑如下面的流程图所示,其中,在输入的整数不小于0时sum的值增加,i的值每次循环都会自增,所以i计算的是所输入的所有整数的个数,最后sum的结果是n个整数中所有非负整数的和。
转载请注明原文地址:https://kaotiyun.com/show/G2jZ777K
0

随机试题
最新回复(0)