niusouti.com
参考答案和解析
答案:B
解析:do-while循环,先执行循环体sum+=x,则sum=sum+x=0+5=5,再执行while中的表达式,结果为0,退出循环,所以运行结果是5。
更多“有以下程序: #include main( ) { int sum=0,x=5; do{sum+=x;}while(!--x); printf("%d\n",sum); } 程序的运行结果是( )。 ”相关问题
  • 第1题:

    下列程序的输出结果是______。 #define A100 main() { int i=0,sum=0; do{ if(i==(i/2)*2)continue; sum+=i; }while(++i<A) ; printf("%d\n",sum); }

    A.2500

    B.2050

    C.4

    D.0


    正确答案:A
    解析:本题程序的功能是求1到99之间(包括1和99)所有奇数之和。程序中的while循环的终止条件为++i=100,在 while循环体内,如果i是偶数,则执行continue,跳过这一次循环,执行下一次循环,否则求和。最后输出的值是1到 99之间(包括1和99)所有奇数之和(1+99)*50/2=2500。

  • 第2题:

    设有以下程序:

    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语句后面的语句,开始下一次循环。

  • 第3题:

    下面程序的运行结果是 #include"iostream.h" #define sum(a,b) a*b void main( ) { int x; x=sum(1+2,3); cout<<x; }

    A.0

    B.9

    C.7

    D.5


    正确答案:C
    解析:理解宏定义,sum(a,Ba*b中a为1+2,b为3,故sum(1+2,3)=1+2*3,即宏定义的替换过程是原样替换。注意:选项B的计算方法是(1+2)*3=9是错误的,注意,不要随意的加括号。注意:宏定义与函数的区别。

  • 第4题:

    下列程序的输出结果是______。 #define A 100 main() { int i=0,sum=0; do{ if(i=(i/2)*2)continue; sum+=i; }while(++i<A); print("%d\n",sum); }

    A.2500

    B.2050

    C.4

    D.0


    正确答案:A
    解析:本题程序的功能是求1到99之间(包括1和99)所有奇数之和。程序中的while循环的终止条件为++i=100,在 while循环体内,如果i是偶数,则执行continue,跳过这一次循环,执行下—次循环,否则求和。最后输出的值是1到 99之间(包括1和99)所育奇数之和(1+99)*50/2=2500。

  • 第5题:

    以下程序运行后的输出结果是( )。 include main() { int x=20; printf("%d", 0

    以下程序运行后的输出结果是( )。

    include<stdio.h>

    main()

    { int x=20;

    printf("%d", 0<x<20);

    printf("%d\n", 0<x && x<20);

    }


    正确答案:10
    10 解析:表达式0x20,首先计算0x,其值为1,再计算120,其值为1,输出1;表达式0x && x20,0x为1,x20为0,再计算1 && 0,其值为0,输出0。所以输出结果为10。

  • 第6题:

    有以下程序:includeusing namespace std;int f(int x);int sum(int n){ int x,s=0; f

    有以下程序: #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


    正确答案:C
    解析:这还是有关调用函数的程序,而且有两层关系。根据程序逐步分析:①本程序包含了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。

  • 第7题:

    下列程序的输出结果是______。 #define A 100 main() { int i=0,sum=0; do{ if(i==(i/2)*2) continue; sum+=i; }while(++i<A) ; printf("%d\n",sum);

    A.2500

    B.2050

    C.4

    D.0


    正确答案:A
    解析:本题程序的功能是求1到99之间(包括1和99)所有奇数之和。程序中的while循环的终止条件为++i=100,在while循环体内,如果i是偶数,则执行continue,跳过这依次循环,执行下一次循环,否则求和。最后输出的值是1到99之间(包括1和99)所有奇数之和(1+99)*50/2=2500。

  • 第8题:

    有下列程序: int fun(int x[],int n) { static int sum=0,i; for(i=0;i<n;i++) sum+=x[i]: return sum; } main( ) {int a[3]={1,2,3,4,5),b[3]={6,7,8,9),s=0; s=fun(a,5)+fun(b,4);printf("%d\n",s); } 程序执行后的输出结果是( )。 、

    A.45

    B.50

    C.60

    D.55


    正确答案:C
    在函数intfun(intx[],intn)的定义中,变量sum为一个静态局部变量。由于在整个程序运行期间,静态局部变量在内存中的静态存储中占据着永久的存储单元。函数intfun(intx[],intn)的功能是求出数组x[]各个元素的和,所以在主函数中,调用函数fun(a,5)后,变量sum=1+2+3+4+5=15,当再次调用fun(b,4)后,变量sum=15+6+7+8+9=45,所以s=15+45=60。

  • 第9题:

    有以下程序:include int fun(int x[], int n){ static int sum =0,i;for(i=0;i

    有以下程序: #include <stdio.h> int fun(int x[], int n) { static int sum =0,i; for(i=0;i<n;i ++ )sum + =x[i]; return sum;{ int a[] ={1,2,3,4,5},b[]={6,7,8,9},s=0; s = fun(a,5) + fun(b,4) ;printf( "%d \n",s);程序执行后的输出结果是( )。

    A.45

    B.50

    C.60

    D.55


    正确答案:C
    解析:静态变量是在编译时赋初值的,即只赋初值一次,在程序运行时它已有初值,以后每次调用函数时不再重新赋初值而只是保留上次函数调用结束时的值。在main函数中调用fun(a,5),执行for循环得到sum=0+a[0]+a[1]+a[2]+a[3]+a[4]=15;然后调用fun(b,4),因为sum为静态变量,再次调用时sum保留上次函数调用结束时的值,所以sum:15+b[0]+b[1]+b[2]+b[3]=45;返回sum的值,main函数中输出的s=15+45=60。

  • 第10题:

    现有: class TestApp{ public static void main (String[] args){ int [5] myarray={ 10, 11, 12, 13, 14); int sum=0; for (int x : myarray) sum+=x; System. out. println( "sum= "+sum); } } 上述程序运行后的结果是哪项?()

    • A、sum=10
    • B、sum=70
    • C、sum=60
    • D、运行时抛出异常

    正确答案:C

  • 第11题:

    填空题
    执行下列程序的输出结果是()。  #include   main( )  {   int x=10;      do{   x--;      }while(--x);  printf(“%d/n”,x--);  }

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

  • 第12题:

    单选题
    有以下程序:#include main(){ int sum=0,x=5; do{ sum+=x; } while(!--x); printf(%d,sum);}程序的运行结果是(  )。
    A

    0

    B

    5

    C

    14

    D

    15


    正确答案: B
    解析:
    do-while循环,先执行循环体sum+=x,则sum=sum+x=0+5=5,再执行while中的表达式,结果为0,退出循环,所以运行结果是5。答案选择B选项。

  • 第13题:

    以下程序的输出结果是【 】。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。

  • 第14题:

    有以下程序:include void sum(int a[ ] ){a[0]=a[-1] +a[1];}main ( ){int a[10] = {

    有以下程序:#include <stdio, h>void sum(int a[ ] ){ a[0]=a[-1] +a[1];}main ( ){ int a[10] = {1,2,3,4,5,6,7,8,9,10}; sum(&a[2]); prinff("% d \n",a[2]); }程序运行后的输出结果是( )。

    A.6

    B.7

    C.5

    D.8


    正确答案:A
    解析:本题将主函数中a[2]的地址传递给了sum函数中的形参a[],使得sum函数中的(a+0)为主函数中a[2]的地址,所以a[-1]即*(a-1)的值为主函数中a[1]的值,故函数sum中a[0]=2+4。由于此函数中的a是指向主函数中的a[2],所以主函数中的a[2]的值即为6。

  • 第15题:

    以下程序的输出结果是【】。 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。

  • 第16题:

    下列程序的输出结果是( )。 public class Test { public static void main (String[] args) { int n=5,sum=0; while (n>0) { sum+=n; --n; } System.out.println("Sum is"+sum); } }

    A.sum is 14

    B.sum is 15

    C.sum is 10

    D.sum is 5


    正确答案:B
    解析:本题目实际上是利用循环求1到n的和,n为5,所以结果为15。

  • 第17题:

    以下程序的输出结果是#include <stdio.h>main(){ int i,j,sum; for(i=5;i>=1;i--) { sum=0; for(j=i;j<=i;j++) sum+=i*j; } printf("%d\n",sum);}


    正确答案:√
    本题考查对程序运行结果的计算。本程序的目的是输出sum的值,在输出sum值之前,需要进行一个for循环,该循环内部有一个for子循环。外层for语句的循环变量i的初始值为5,循环条件为i>=1,循环变量增值为-1。外层for语句每循环一次,都会将sum值重新赋0,所以,只要计算最后一次循环结束后sum的值作为输出即可。当i=1时,外层for语句进行最后一次循环,sum的值由内层for语句决定。内层for语句循环变量为j,初始值为j=i,循环条件为j<=i,循环变量增值为+1,由此可见,内层for语句只运行一次,结果就是sum=i*j。当i=1时,j=1,sum=1。

  • 第18题:

    有下列程序: int fun(int x[],int n) { static int sum=0,i: for(i 0;i<n;i++) sum+=x[i]; return sum; } main { int a[]={1,2,3,4,5),b[]一{6,7,8,9),s=0: s=fun(a,5)+fun(b,4);printf("%d\n",s): } 程序执行后的输出结果是( )。

    A.45

    B.50

    C.60

    D.55


    正确答案:C
    在函数intfun(intxE],intn)的定义中,变量sum为一个静态局部变量。由于在整个程序运行期间,静态局部变量在内存中的静态存储中占据着永久的存储单元。函数intfun(intx[],intn)的功能是求出数组X[]各个元素的和,所以在j三函数中,调用函数fun(a,5)后,变量sum=1+2+3+4+5=15,当再次调用fun(b,4)后,变量sum=15+6+7+8+9=45,所以S=l5+45=60。

  • 第19题:

    有以下程序: 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。

  • 第20题:

    下列程序的运行结果是()。 include define ADD(x)x+x main() {int m=1,n=2,k=3; int s

    下列程序的运行结果是( )。

    #include<stdio.h>

    #define ADD(x)x+x

    main()

    { int m=1,n=2,k=3;

    int s=ADD(m+n)*k;

    printf("s=%d",s);

    }

    A.sum=18

    B.sum=10

    C.sum=9

    D.sum=25


    正确答案:B
    解析:本题考查带参数的宏的定义及相关运算: S=m+n+m+n*k=1+2+1+2*3=10。

  • 第21题:

    执行下列程序的输出结果是()。  #include   main( )  {   int x=10;      do{   x--;      }while(--x);  printf(“%d/n”,x--);  } 


    正确答案:0

  • 第22题:

    单选题
    现有:      class TestApp{  public  static  void main (String[]  args){      int [5]   myarray={ 10, 11, 12, 13, 14);      int sum=0;  for (int x  :  myarray)     sum+=x;  System. out. println( "sum= "+sum);     }     }  上述程序运行后的结果是哪项?()
    A

     sum=10

    B

     sum=70

    C

     sum=60

    D

     运行时抛出异常


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

  • 第23题:

    单选题
    有以下程序:#include main(){ int x=0,y=6;  do {  while(--y)x++; } while(y--); printf(%d,%d,x,y); }程序的运行结果是(  )。
    A

    5,0

    B

    6,0

    C

    5,-1

    D

    6,-1


    正确答案: A
    解析:
    程序执行过程为:执行do…while的循环体:y=5,判断y为真,x=1;y=4,x=2;y=3,x=3;y=2,x=4;y=1,x=5;y=0,判断y为假,退出循环体。判断do…while条件y=0为假,y=-1,退出循环。输出x,y为5,-1,答案选择C选项。