更多“有如下程序:main(){ int s=0, a=1,n;scanf("% d", &n);do{ s+=1; a=a-2;}while(a!=n)printf( ”相关问题
  • 第1题:

    有以下程序: main() { int s=0,a=1,n; scanf("%d",&n); do { s+=1; a=a-2; } while (a!=n); printf("%d\n",s); } 若要使程序的输出值为2,则应该从键盘给n输入的值是( )。

    A.-1

    B.-3

    C.-5

    D.0


    正确答案:B
    解析:根据题目要求,最后要使输出的s值为2,在程序中改变s的值的语句只有循环体中的s+=1;语句,而初始s的值为0,显然要使s的值变为2,该语句必须执行两次,即do-while循环中的循环体要执行两次,而在do-while中,首先不执行条件而执行do后面的循环体语句,然后再判断while循环条件。所以不管循环判断条件是否为真s+=1;语句至少执行一次,根据分析,只需要while后面括号的循环判断表达式的值为真成立一次且只能为真一次,将4个选项中的内容依次代入该程序中不难得到只有n=-3刚好使循环判断条件a!=n为真一次。故4个选项中选项B符合题意。

  • 第2题:

    以下程序段若要使输出值为2,则应该从键盘给n输入的值是____ int s=0, a=1, n; scanf (“%d”, &n); do{ s+=1; a =a-2; } while (a!=n); printf (“%dn”, s);

    A.-1

    B.-3

    C.-5

    D.0


    -3

  • 第3题:

    12、有以下程序,若从键盘给n输入的值是-3,则程序的输出结果是 #include <stdio.h> int main() { int s=0,a=1,n; scanf("%d",&n); do { s+=1; a=a-2; } while(a!=n); printf("%d\n",s); return 0; }

    A.2

    B.-1

    C.3

    D.0


    D

  • 第4题:

    当输入-2时,程序段输出结果为()。 int s=0,a=1,n; scanf("%d",&n); do { s+=1; a=a-2; } while(a>n); printf("%dn",s);

    A.-1

    B.2

    C.3

    D.0


    D

  • 第5题:

    21、有以下程序,若从键盘给n输入的值是-3,则程序的输出结果是#include <stdio.h> int main() { int s=0,a=1,n; scanf("%d",&n); do { s+=1; a=a-2; } while(a!=n); printf("%d\n",s); return 0; }

    A.2

    B.-1

    C.3

    D.0


    D