niusouti.com

14、已知程序如下,该程序实现的功能为____。 main() { int i,n; long sum = 0, p = 1; ...//输入n值的语句,略 for(i = 1; i <= n; i++) { p = p * i; sum = sum + p; } ...//输出sum值的语句,略 }A.sum = 1*2+2*3+(n-1)*nB.sum = 1+2+3+...+nC.sum = 1*2*3*...*nD.sum = 1!+2!+...+n!

题目

14、已知程序如下,该程序实现的功能为____。 main() { int i,n; long sum = 0, p = 1; ...//输入n值的语句,略 for(i = 1; i <= n; i++) { p = p * i; sum = sum + p; } ...//输出sum值的语句,略 }

A.sum = 1*2+2*3+(n-1)*n

B.sum = 1+2+3+...+n

C.sum = 1*2*3*...*n

D.sum = 1!+2!+...+n!


相似考题
更多“14、已知程序如下,该程序实现的功能为____。 main() { int i,n; long sum = 0, p = 1; ...//输入n值的语句,略 for(i = 1; i <= n; i++) { p = p * i; sum = sum + p; } ...//输出sum值的语句,略 }”相关问题
  • 第1题:

    有以下程序 struct stu { char num[10];float score[3]; }; main() { struct stu s[3]={{"20021",90,95,85},{"20022",95,80,75},{"20023",100,95,90}},*p=s; int i;float sum=0; p++; for(i=0;i<3;i++)sum=sum+p->score[i]; printf("%6.2f\n",sum); }程序运行后的输出结果是______。

    A.260

    B.270

    C.250

    D.285


    正确答案:C

  • 第2题:

    执行下列语句,变量sum的值是______。

    int sum=0;

    for(inti=1;i<=3;i++)

    for(intj=1;j<=i;j++) sum++;


    正确答案:6
    6

  • 第3题:

    以下程序的输出结果是【 】。include main() {int i,j,sum; for(i=3;i>=-1;i-) (sum=0; fo

    以下程序的输出结果是【 】。

    include<stdio.h>

    main()

    {int i,j,sum;

    for(i=3;i>=-1;i-)

    (sum=0;

    for(j=1;j<=i;j++) sum+=i*j;

    }

    printf("%d\n,sum);

    }


    正确答案:√
    1 解析:本题考查的是for循环嵌套。外循环i变量从3递减到1,内循环变量j在每轮外循环的作用下从1递增到i,并在每轮外循环结束时,通过内循环求得sum的值,但由于外循环体的第一条语句是将变量sum初始化为0,所以每轮外循环结束时求得的sum值均被下一轮外循环执行时重新初始化为0,只有在最后一轮,当i=1时,内循环求得stan=1,跳出内循环,i的值减1变为0,不满足i>=1这个条件,结束外循环,此时输出sum的值为1。

  • 第4题:

    以下程序的输出结果是【】。 include using namespace std; int main(){ int sum,i; for(

    以下程序的输出结果是【 】。

    include<iostream>

    using namespace std;

    int main(){

    int sum,i;

    for(sum=0,i=1;i<5;i++)sum+=i;

    cout<<sum<<endl;

    return 0;

    }


    正确答案:10
    10 解析:本题程序实现的是计算1+2+3+4的和,因此最后输出为10。

  • 第5题:

    有如下程序 main() { int i,sum; for(i=1;i<=3;sum++)sum +=i; printf("%d\n",sum); } 该程序的执行结果是_____。

    A.6

    B.3

    C.死循环

    D.0


    正确答案:C
    解析:在循环过程中,i的值一直没有被改变,所以这是一个死循环。

  • 第6题:

    有如下程序 main() { int i,sum; for(i=1;i<=3;sum++)sum+=i; printf("%d\n",sum); } 该程序的执行结果是______。

    A.6

    B.3

    C.死循环

    D.0


    正确答案:C
    解析:在循环过程中,i的值一直没有被改变,所以这是一个死循环。

  • 第7题:

    阅读以下说明和C语言程序,将应填入(n)处的字句写在对应栏内。

    【说明】

    计算n的合数。一个整数n可以有多种划分,使其划分的一列整数之和为n。例如,整数5的划分为:

    5

    4 1

    3 2

    3 1 1

    2 2 1

    2 1 1 1

    1 1 1 1 1

    共有7种划分。这种划分的程序如下所示。

    【程序】

    include <stdio.h>

    int n[1000],m,k;

    void output sum()

    {

    int j;

    for(j=0;n[j]!=0;j++)

    printf("%d\t",n[j]);

    printf("\n");

    }

    void sum(int i)

    if(m-n[i]<n[i])

    { m=m-n[i];

    (1)

    i++;

    n[i+1]=0;

    }

    else

    {

    (2)

    m-=n[i];

    i++;

    }

    if(m!=n[i])

    sum(i);

    else

    output_sum();

    if(n[i]>1)

    {

    n[i]--;

    (3)

    }

    else

    {

    while((n[i]==1)&&(i>O))

    {

    i--;

    (4)

    }

    if(i!=0)

    {

    (5)

    sum(i);

    }

    }

    }

    void main()

    {

    int i;

    scanf("%d",&n[0]);

    m=k=n[0];

    for(i=1;i<=k;i++)

    n[i]=0;

    while(n[0]!=1)

    {

    n[0]--;

    i=0;

    sum(0);

    m=k;

    }

    }


    正确答案:(1)n[i+1]=m; (2)n[i+1]=n[i]; (3)sum(i); (4) m+=n[i]; (5)n[i]--;
    (1)n[i+1]=m; (2)n[i+1]=n[i]; (3)sum(i); (4) m+=n[i]; (5)n[i]--; 解析:本题考查C语言中计算n合数方法的实现。
    题目要求计算n的合数,我们首先来了解一下什么是n的合数。在正整数n的所有不同的划分中,将最大加数n1不大于m的划分个数记作q(n,m)。可以建立q(n,m)的如下递推关系。
    (1)q(n,1)=1,n1
    当最大数n1不大于1时,任何正整数只有一种划分形式,就是全1。
    (2)q(n,m)=q(n,n),mn
    最大加数n1实际上不能大于n。因此,q(1,m)=1。
    (3)q(n,n)=1+q(n,n-1)
    正整数n的划分由n1=n的划分和n1≤n-1的划分组成。
    (4)q(n,m)=q(n,m-1)+q(n-m,m),n>m>1
    正整数n的最大加数n1不大于m的划分由n1=m的划分和n1≤m-1的划分组成。要想求出所有解,只有递归到最底层即全为1为止。
    知道了上述特性,下面我们来看代码。在代码中首先声明一个数组和两个全局变量 k,m。结合程序可以看出,其中数组n[i]中存放的是当前划分的最大加数,而m中存放的是当前被划分的数。程序代码中有三个函数,一个是主函数、一个output_sum()函数和一个sum()函数,函数output_sum()的功能很简单,就是输出一次划分结果,在sum()函数中被调用。
    经过分析不难发现,函数sum()的作用是实现整数的划分。在函数体中,首先是一个条件判断语句,其作用是判断当前被划分的数m是否小于当前最大加数的两倍,如果条件成立,说明数被划分为两个数后,其最大加数大于另一个数,而另一个数应该存放在数组中。此时执行语句m=m-n[i]来求出另一个数,接下来应该是保存这个数到数组中的下个位置,第(1)空就用来完成这个任务,因此,答案为n[i+1]=m。
    第(2)空所在的位置是条件不成立的情况下运行的语句,条件不成立,说明数被划分为两个数后,其最大加数小于另一个数,数可以有更大的最大加数,因此,将当前的最大加数保存到数组中的下个位置,此空答案为n[i+1]=n[i]。
    第(3)空也在一个条件选择语句下面,此条件语句用于判断当前最大加数是否大于1,如果大于1,则需要接着划分,因此要调用函数sum(),其参数是i,所以此空答案为sum(i)。
    第(4)空是条件不成立即当前最大加数为1的情况下执行的语句,当最大加数为1时,说明递归到了最底层,此时,递归应该往回走了,这需要还原当前最大划分数m(为这个数的其他划分做准备),因此,这个空的答案为m+=n[i]。
    第(5)空是在条件i!=0为真的情况下执行的语句,如果条件为真,说明递归还没有回到最上层,应该求当前被划分数在当前最大加数变小后的其他划分情况,因此,此空答案为n[i]--。

  • 第8题:

    以下程序执行后sum的值是 ______。 main() { int i,sum; for(i=1;i<6;i++)sum+=i; printf("%d\n",sum); }

    A.15

    B.14

    C.不确定

    D.0


    正确答案:C
    解析:变量sum在使用时未赋初值,所以无法确定sum最终的值。

  • 第9题:

    有以下程序段struct STU{ char num[10];float score[3];};main(){ struct STU s[3]={ {"20021",90,95,85}, {"20022",95,80,75}, {"20023",100,95,90}, },*p=s; int i;float sum=0; for(i=0;i<3;i++) sum=sum+p->score[i]; printf("%6.2f\n",sum); }程序运行后的输出结果是A.260.00 B.270.00 C.280.00 D.285.00


    正确答案:B
    在本题中,程序首先定义一个结构体,结构体中含有两个结构体成员,两个结构体成员都是数组。
    在主函数中,首先定义了一个大小为3的该结构体数组s,并对其进行初始化操作,然后定义了一个该结构体类型的指针变量p,使其指向结构体数组s,接着定义两个变量,整型变量i作为循环变量,浮点型变量sum用来保存和计算结果。然后执行for循环。
    当循环变量i=0时,执行sum=sum+p->score[i];语句,p->score[0]表示结构体数组中第一个结构体变量的score[0]值,即90,本次循环结束后,sum的值为90。
    当循环变量i=1时,同理,求得sum=90+95=185。
    当循环变量i=2时,求得sum=185+85=270。
    然后循环结束,用格式%6.2f对sum进行输出操作,这个输出格式的意思是输出数据的宽带为6且要输出两位小数位,那么输出的结果为270.00。因此,本题的正确答案是B。

  • 第10题:

    以下程序执行后Sum的值是(48)。main(){ int i,sum; for(i=1;i<6;i++)sum+=i; printf("%d\n",sam);}

    A.15

    B.14

    C.不确定

    D.0


    正确答案:C
    解析:整个循环的过程中,sum一直进行累加,根据循环的条件,i从1变化到5,sum最终的值为:1+2+3+4+5=15。所以,这道题很容易做出选择A选项的判断。但是c语言中,如果不在定义变量的时候赋初始值,那么该变量的值将会是一个随机数。所以,本题的正确答案是C。

  • 第11题:

    执行下列语句后,变量sum的值是【 】。

    int sum=0;

    for(int i=1;i<=3;i++)

    for(int j=1;j<=i;j++)

    sum++;


    正确答案:6
    6 解析:本题考查的知识点是:for循环的嵌套。题目中外循环会循环3次,每次循环变量i的值分别为1、2、3。而内循环会循环i次,故3次执行内循环,循环的次数分别为1、2、3次。那么,sum总共被增1了6次。故最终sum的值为6。

  • 第12题:

    单选题
    以下程序执行后sum的值是()。 main(){ int i,sum; for(i=1;i<6;i++) sum+=i; printf("%d/n",sum); }
    A

    15

    B

    14

    C

    不确定

    D

    0


    正确答案: B
    解析: 暂无解析

  • 第13题:

    ●下列程序运行后输出的数据是(51)。

    int sum(int n)

    {

    int p=1;

    int s=0;

    int i=0;

    for(i=1;i﹤=n;i++) s+=(p*=i);

    retum s;

    }

    main()

    {

    printf((“sum(5)=%d\n”,sum(5));

    }

    (51) A.sum(5)=151

    B.sum(5)=152

    C.sum(5)=153

    D.sum(5)=155


    正确答案:C

  • 第14题:

    请教专家,下列c++代码哪里错了??

    #include<iostream>void main(){ int i,n,sum; cout<<"please input n:"<<endl; cin>>n; sum=0; for(i=1,i<=n;i++); { sum+=i; } cout<<"运算结果为"<<sum<<endl;}


    头文件有后缀“.h” for循环括号里边是两个“;” 并且你在后面加了“;”相当于循环执行一个空语句。 改正后的程序 #include<iostream.h> void main() { int i,n,sum; cout<<"please input n:"<<endl; cin>>n; sum=0; for(i=1;i<=n;i++) { sum+=i; } cout<<"运算结果为"<<sum<<endl; }

  • 第15题:

    设有以下程序:

    main()

    {int i,sum=0;

    for(i=2;i<10;i++)

    { if((i%2)==0)

    continue;

    sum+=i;}

    printf("%d\n",sum);

    }

    程序执行后的输出结果是( )。


    正确答案:24
    24 解析:continue语句功能:结束本次循环(注:不是终止整个循环),即跳过循环体中continue语句后面的语句,开始下一次循环。

  • 第16题:

    以下程序执行后sum的值是 ( ) main( ) { int i,sum; for(i;i<6;i+ +)sum+=i; printf("%d\n",sum); }

    A.15

    B.14

    C.不确定

    D.0


    正确答案:C

  • 第17题:

    以下C程序的运行结果为______。main(){ int i=1,sum=0; loop:if(i<=10) { sum+=i; i++; goto loop; } printf("sum=%d\n",sum);}

    A.sum=10

    B.sum=55

    C.sum=100

    D.sum=88


    正确答案:B

  • 第18题:

    下面程序执行的结果是【 】。 include using namespace std; void main(){ int sum=0; i

    下面程序执行的结果是【 】。

    include <iostream>

    using namespace std;

    void main(){

    int sum=0;

    int array[6]={1,2,3,4,5,6};

    int *p;

    p=&array[0];

    for(int i=0;i<6;i++){

    sum=sum+*p;

    p++;

    }

    cout<<sum;

    }


    正确答案:21
    21 解析:本题用数组地址来访问数组内容,通过数组指针来操作数组内容,依次取出数组内容进行加和,然后进行输出。

  • 第19题:

    单击命令按钮之后,下列程序代码的执行结果为______。 Private Function P(N As Integer) Static sum For I=I To N Sum = sum +1 Next I P =sum End Function Private Sub Command1_Click() S=P(1)+P(2)+P(3)+P(4) Print S: End Sub

    A.20

    B.30

    C.115

    D.135


    正确答案:B

  • 第20题:

    以下程序执行后sum的值是( )。 main { int i,sum; for(i=1;i<6;i++)sum+=i: printf("1%d\n",sum): }

    A.15

    B.14

    C.不确定

    D.0


    正确答案:C
    sum+=i等价于sun+i,在本题中sum没有赋初值,而题中只输出sum的值,因此整个结果为不确定值。

  • 第21题:

    有以下程序: include using namespace std; int main() {int i=1,sum=0;Loop:if(i<=20

    有以下程序:

    include<iostream>

    using namespace std;

    int main()

    {

    int i=1,sum=0;

    Loop:if(i<=20)

    {

    sum+=i;

    i++;

    goto Loop;

    }

    cout<<sum<<end1;

    return 0;

    }

    该程序运行后的输出结果是【 】。


    正确答案:210
    210 解析:本题是goto跳转语句的应用。程序中,如果满足条件“i=20”,则执行语句“sum+=i;i++;”然后,又跳转到Loop处。直到条件“i=20”不满足。由此可知,此程序的功能是统计1~20的总和,即210。

  • 第22题:

    下列程序的执行结果是( )。 Function P(N As Integer) For i=1 To N Sum=Sum+i Next i P=Sum End Function Private Sub Command1_Click() S=P(1)+P(2)+P(3)+P(4) Print S; End Sub

    A.15

    B.16

    C.2O

    D.25


    正确答案:C
    解析:本题主要考查函数返回值引用的方法.在引用函数时,只需应用该函数名即可。题中程序运算过程为:S=P(1)+P(2)+(3)+P(4)→S=1+3+6+10=20。

  • 第23题:

    以下程序执行后sum的值是()。 main(){ int i,sum; for(i=1;i<6;i++) sum+=i; printf("%d/n",sum); }

    • A、15
    • B、14
    • C、不确定
    • D、0

    正确答案:C

  • 第24题:

    单选题
    有如下程序:#include int *sum(int data){ static int init=0; init+=data; return &init;}main(){ int i,*p; for(i=1;i<=4;i++) sum(i); p=sum(0); printf(%d,*p);}程序运行后的输出结果是(  )。
    A

    15

    B

    0

    C

    1

    D

    10


    正确答案: A
    解析:
    static变量编译时,将其分配在内存的静态存储区中,在整个程序运行期间都不释放这些存储单元,即使退出函数,下次再进入该函数时,静态局部变量仍使用原来的存储单元,值是上一次函数调用结束时的值。程序执行过程为:执行for循环,i=1,调用函数sum(1),data=1,init=0,init=init+data=1;i=2,调用函数sum(2),data=2,init=1,init=init+data=3;i=3,调用函数sum(3),data=3,init=3,init=init+data=6;i=4,调用函数sum(4),data=4,init=6,init=init+data=10;i=5退出for循环。调用函数sum(0),data=0,init=10,init=init+data=10,返回指向init的指针,输出init=10。答案选择D选项。