niusouti.com

【程序说明】程序功能是求30!。【程序】SET TALK OFFCLEARN=1I=1DO WHILE (1)(2)N=N+1(3)? ISET TALK ON(1)A.N<>30B.N>30C.N<30D.N<=30

题目

【程序说明】程序功能是求30!。

【程序】

SET TALK OFF

CLEAR

N=1

I=1

DO WHILE (1)

(2)

N=N+1

(3)

? I

SET TALK ON

(1)

A.N<>30

B.N>30

C.N<30

D.N<=30


相似考题
更多“【程序说明】程序功能是求30!。【程序】SET TALK OFFCLEARN=1I=1DO WHILE(1) (2)N=N+1 (3)?ISET TALK ”相关问题
  • 第1题:

    以下程序计算1+1/3+1/5+…+1/(2N+1),直至1/(2N+1)小于0.00001,横线处应补充的程序是( )。

    A.2n

    B.2n+1

    C.2*n

    D.2*n+1


    正确答案:D
    本题考查do-while循环的用法。题目中没有给出累加次数,故不能使用for循环,在do循环中,由累加项term的值作为退出循环的条件。根据题目要求,应该填写2*n+1。本题的关键是while(term>=0.00001)语句,题目要求计算直至1/(2N+1)小于0.00001,所以term=1/(2N+1),因此n=2*n+1。

  • 第2题:

    下列给定程序中,函数fun()的功能是:根据以下公式求n的值,并作为函数值返回。例如,给指定精度的变量eps输入 0.0005时,应当输出Pi=3.140578。

    n/2=1+1/3+1/3*2/5+1/3*2/5*3/7+1/3*2/5*3/7*4/9……

    请改正程序中的错误,使它能得出正确的结果。

    注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。

    试题程序:

    include <conio.h>

    include <stdio.h>

    include <math.h>

    double fun(double eps)

    {double s,t; int n=t;

    s=0.0;

    /*************found**************/

    t=1;

    /*************found**************/

    while(t>eps)

    { s+=t;

    t=t*n/(2*n+1);

    n++;

    }

    /*************found**************/

    return (s);

    }

    main()

    { double x;

    printf("\nPlease enter a precision: ");

    scanf("%1f",&x);

    printf("\nPi=%1f\n ",fun(x));

    }


    正确答案:(1)错误:t=0; 正确:t=1.0; (2) 错误:while(t>eps) 正确:while(t>=eps) (3) 错误:return(s); 正确:return(s*2);
    (1)错误:t=0; 正确:t=1.0; (2) 错误:while(t>eps) 正确:while(t>=eps) (3) 错误:return(s); 正确:return(s*2); 解析:该题中,我们首先看函数fun()中while语句的含义,当新的一项大于给定参数时,循环累加。根据题意我们可以看出,最后一项应该小于给定参数,因此,循环条件应当为while(t>=eps)。至于return(s);错误,是一个数学常识,应该是 return(s*2);。

  • 第3题:

    下列程序段中是死循环的是()

    A.int n=1; while(!n) n++;

    B.int n=1; do{n--;} while(n);

    C.int n=1; do{ n+1; } while(n)

    D.for(n=5;n<1;) ;


    D 解析:本题考查三种循环语句的结束条件。对于选项A,它的条件表达式1永远为真,故循环永远不会停止,是死循环;对于选项B,它的条件表达式为空,也是死循环;对于选项C,它的条件表达式(n>=0)总是成立,故也是死循环;对于选项D,当m减到小于0时,它的条件表达式结果为假(false),循环结束。

  • 第4题:

    以下程序拟实现计算s=1+2*2+3*3+…+n*n+…,直到s>;1000为止。

    程序运行后,不能得到正确结果,以下修改方案正确的是( )。

    A.把while(s>lOOO);改为while(s<=1000);

    B.把s=1;改为s=0;

    C.把n=1;改为n=0;

    D.把n=n+1;改为n=n$n;


    正确答案:A
    题目中程序不能实现预期功能是因为while的循环条件错误,在选项B中,把s=1,改为s=0,最终的结果s=4,与题目原意不同;在选项C中,把n=1;改为n=0;最终的结果s=2,与题目原意不同;在选项D中,把n=n+1;改为n=11s13;最终的结果s=2,与题目原意不同;选项A,正确的修改了while循环条件,可以得到正确结果。故答案为A选项。

  • 第5题:

    【程序说明】 程序功能是用两种循环步长值来求1+2+3+…+50的值。

    【程序一】

    S=0

    FOR (5)

    (6)

    ENDFOR

    ? S

    RETURN

    【程序二】

    S=0

    FOR (7)

    S=S+N

    ENDFOR

    (8)

    RETURN

    (5)

    A.N=50 TO 1

    B.N=1 TO 50 STEP-1

    C.N=1 TO 50

    D.S=1 TO 50


    正确答案:C
    解析:FOR… ENDFOR格式1:
    FOR循环变量=初值TO终值[STEP 步长]
      语句序列>
      [EXIT]
      [LOOP]
    ENDFOR/NEXT
    功能:当循环变量的值不大于终值时,执行循环操作。每循环一次,循环变量的值自动递增一个步长值。
    循环变量为任意一个内存变量,不需要事先定义。
    初值、终值、步长均为一个数值表达式,其值可为正或负或小数。
    若不选[STEP步长]选项,递增步长为1。
    [LOOP]选项实现循环短路操作,[EXIT]选项实现结束当前循环操作。
    格式2:
    FOREACH变量>IN数组变量>/集合>
      语句系列>
      [EXIT]
      [LOOP]
    ENDFOR/NEXT[变量>]
    功能:对数组变量>或集合>中的每个元素执行循环操作。