下面程序片段输出的是( )。inti=0,j=9;do{if(i++>--j)break;}while(i下面程序片段输出的是( )。inti=0,j=9;do{if(i++>--j)break;}while(iSystem.out.println("i="+i+"andj="+j);A、i=4andj=4B、i=5andj=5C、i=5andj=4D、i=4andj=5

题目
下面程序片段输出的是( )。inti=0,j=9;do{if(i++>--j)break;}while(i<4);System.out.print

下面程序片段输出的是( )。

inti=0,j=9;

do{

if(i++>--j)

break;

}while(i<4);

System.out.println("i="+i+"andj="+j);

A、i=4andj=4

B、i=5andj=5

C、i=5andj=4

D、i=4andj=5


相似考题
参考答案和解析
正确答案:D
更多“下面程序片段输出的是( )。inti=0,j=9;do{if(i++>--j)break;}while(i<4);System.out.print ”相关问题
  • 第1题:

    以下程序的输出是()。main(){chara[2][5]={“6937”,”8254”};inti,j,s=0;for(i=0;i2;i++)for(j=0;a[i][j]'0'a[i][j]='9';j+=2)s=10*s+a[i][j]-‘0’;printf(“s=%d”,s);}

    A.6385

    B.69825

    C.63825

    D.693825


    正确答案:A

  • 第2题:

    有如下程序 #include(iostream.h> voidmain( ) {charch[2][5]={"6937","8254"),*p[2]; inti,j,s=0; for(i=0;i<2;i++)p[i]=ch[i]; for(i=0;i<2;i++) for(j=0;p[i][j])\0;j+=2) s=10*s+p[i][j]一0; cout<<S;} 该程序的输出结果是( )。

    A.69825

    B.63825

    C.6385

    D.693825


    正确答案:C
    C。【解析】该题主要要搞清楚以下几点:①定义了一个指针数组char*p[2]后,程序中第一个循环“for(i=0;i(2;i++)p[i]=ch[i]”的作用是使指针数组的p[0]元素(它本身是一个指针)指向了二维数组ch的第一行字符串,并使指针数组的p[1]元素指向了二维数组ch的第二行字符串,这样,就使指针数组P和二维数组ch建立起了一种对应关系,以后对二维数组ch的某个元素的引用就有两种等价的形式:ch[i][j]或p[i][j]。②对二维数组ch的初始化,使其第一行ch[0]中存入了字符串“6937”,第二行ch[1]中的内容为字符串“8254”。③程序中第二个循环中的循环体“s=s*10+p[i][j]-0”的功能是这样的,每执行一次,将s中的值乘以10(即将s中的数值整体向左移动一位,并在空出来的个位上添一个0),再将当前p[i][j]中的字符量转换为相应的数字,然后把这个数字加到s的个位上。④注意到内层循环的循环条件p[i][3]>\0是指p[i][j]中的字符只要不是字符串结束标志\0就继续循环,语句j+=2;是使下标j每次增加2,即一个隔一个地从p[i]所指向的字符串中取出字符。经过上述解析后,不难看出,该程序首先从p[0]所指向的字符串“6937”中一个隔一个地取出字符,分别是“6”和“3”,然后从p[1]所指向的字符串“8254”中一个隔一个地取出字符,分别是“8”和“5”,同时经过转换和相加运算后,结果s中的值应该是6385。

  • 第3题:

    已知C源程序如下: include include void reverse(char S[]){ int C,i,J; f

    已知C源程序如下:

    include<stdio. h>

    include<string. h>

    void reverse(char S[]){

    int C,i,J;

    for(i=0,j=strlen(s)-1;i<j;i++,j++){

    c=s[i];

    s[i]=s[j];

    s[j]=c;

    }

    }

    void getHex(int number,char s[]){

    int I;

    i=0;

    while(number>0){

    if(number%16<10)

    s[i++]=number%16+'0';

    else

    switch(number%16){

    case 10:s[i++]='A';break;

    case 11:s[i++]='B';break;

    case 12:s[i++]='C';break;

    case 13:s[i++]='D';break;

    case 14:s[i++]='E';break;

    case 15:s[i++]='F';break;

    default:printf("Error");break;

    }

    number/=16;

    }

    s[i]:'\o';

    reverse(s);

    }

    int main(){

    unsigned int number;

    int i=0:

    char s[50];

    printf("%s","please input number;\n");

    scanf("%d",&number):

    getHex(number,s);

    i=0;

    while(s[i])

    printf("%c",s[i++]);

    return 0;

    }

    画出程序中所有函数的控制流程图。


    正确答案:流程图
    流程图

  • 第4题:

    以下程序的输出结果是( )。 include main() {int i=10,j=0; do {j=j+i; i--; }while(i>5

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


    正确答案:40
    40 解析:分析程序,初始时i=10,j=0,这时do循环中的“i=j+i”

  • 第5题:

    有以下程序: main {int i,j; for(j=10;j<11;j++) { for(i=9;i<j;i++) if(!(j%i))break; if(i==j-1) printf("%d",j); } } 输出结果是( )。

    A.11

    B.10

    C.9

    D.10 11


    正确答案:B
    本题考多循环的使用,当j=10,i=9时,循环成立,第一个if条件为假,第二个if条件i==j-1成立,则输出j的值为10,接者执行i++后,i为10;当i为10,for循环不成立,退出内层循环,此时执行j++后,j为11,循环不成立,退出循环。

  • 第6题:

    下列程序的输出结果是【】。 include void main() { inta(5),b(6),i(0)1j(0); switch(a

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

    include<iostream.h>

    void main()

    {

    inta(5),b(6),i(0)1j(0);

    switch(a)

    {

    case 5:switch(b)

    {

    case 5:i++;break;

    case 6:j++;break;

    defaun:i++;j++;

    }

    case 6:i++;

    j++;

    break;

    default:i++;j++;

    }

    cout<<i<<","<<j<<endl;

    }


    正确答案:12
    1,2

  • 第7题:

    若有以下程序main(){ int a[4][4]={{1,2,-3,-4},{0,-12,-13,14},{-21,23,0,-24},{-31,32,-33,0}}; int i,j,s=0; for(i=0;i<4;i++) { for(j=0;j<4;j++) { if(a[i][j]<0) continue; if(a[i][j]==0) break; s +=a[i][j]; } } printf("%d\n",s);}程序执行后的输出结果是


    正确答案:58
    在本题程序中,首先定义了一个4*4的二维数组a,并进行了初始化操作,然后定义了三个整型变量,i和j分别作为循环变量,而s作用一个记录和的变量被初始化为0。然后开始循环,第一层循环的循环变量i被初始化为0,循环结束条件是i<4,即循环执行四次,而第二层循环同样是4次,总循环此时为4´4=16次,如果逐次循环分析,工作量和花费时间太多,且一不小心容易出错,这种情况下,我们应该找出一个更简便的方法。
    从循环体中的if(a[i][j]<0) continue;我们可以知道,只要数组元素小于0,结束本次循环,即不参与求和运算,由if(a[i][j]==0) break;我们可以知道,只要数组元素等于0,结束本层循环,即同一行的数组元素都不用参加求和运算,从数组a的初始化情况我们可以看到,在第二行的第一个元素为0,即第二行都不参加求和运算,而第三行的第三个元素为0,即该行最后一个元素不参加求和运算。这样,参与求和运算的数组元素必须满足大于0,且其前面的该行元素无0出现。由此可以知道,变量s的最后结果应该为1+2+23+32=58。因此,程序最后的输出结果为58。

  • 第8题:

    以下程序运行后的输出结果是______。 main () { int y=18,i=0,j,a[8]; do { a[i]=y%2;i++; y=y/2; } while(y>=1); for(j=i-1;j>=0;j--)printf("%d",a[j]); printf("\n"); }

    A.1000

    B.10010

    C.110

    D.10100


    正确答案:B

  • 第9题:

    以下程序运行后,输出结果是( )。 main() {int y=18,i=0,j,a[8]; do { a[i]’y%2; i++; y=y/2; } while(y>=1); for(j=i-1;j>=0;j--) printf("%d",a[j]); printf("\n"); }

    A.1000

    B.10010

    C.110

    D.10100


    正确答案:B
    解析:do-while循环的功能是对数组a中的元素赋值,值为0、1、0、0、1。for循环的功能是将数组a中元素按下标从大到小的顺序输出,所以选项B符合题意。

  • 第10题:

    下面代码输出结果是( )。inti=0,s=0;do{if(i%2==0){i++;continue;}i++;s=s+i;}while(i<7);

    下面代码输出结果是( )。

    inti=0,s=0;

    do{

    if(i%2==0){

    i++;

    continue;

    }

    i++;

    s=s+i;

    }while(i<7);

    System.out.println(s);

    A、16

    B、12

    C、28

    D、21


    正确答案:B

  • 第11题:

    下列程序的输出结果是______。 main() { int i,j; for(j=10;j<11;i++) { for(i=9;i<j;i++) if(!(j%i))break; if(i>=j-1)printf(”%d”,i); } }

    A.11

    B.10

    C.9

    D.10 11


    正确答案:B

  • 第12题:

    单选题
    有以下程序: #include  main() {  int i,j,m=1;  for(i=1;i<3;i++)  {   for(j=3;j>0;j--)   {    if(i*j>3)break;    m*=i*j;   }  }  printf(m=%d,m); } 程序运行后的输出结果是(  )。
    A

    m=6

    B

    m=2

    C

    m=4

    D

    m=5


    正确答案: A
    解析:
    本程序中包含了一个双重for循环,当变量i=1,且j=3、j=2、j=1时都能执行m*=i*j,此时得到m的值为6;当变量i=2,且j=3时会执行break语句,内部循环直接结束,此时i再加1,也会导致退出外部循环,所以最终m的值为6。答案选择A选项。

  • 第13题:

    程序:classTestApp{publicstaticvoidmain(String[]args){for(inti=0;i<10;i++){if(i==3)break;System.out.print(i);}}}程序运行后的输出是哪项?()

    A.0123

    B.012

    C.0123456789

    D.012456789


    参考答案:B

  • 第14题:

    阅读下面程序

    int i=3.j;

    outer:while(i>0) {

    j=3;

    inner:while(j>0) {

    if(j<2)break outer;

    System.out.println(j+"and"+i);

    j--;

    }

    i--;

    }

    被输出到屏幕的第一行结果是______。


    正确答案:3 and 3
    3 and 3 解析:第一次执行外层循环时,为j赋初值3,然后开始执行内层循环。j=3显然满足j>0的条件,进入内层循环体执行if语句。由于不满足j2的条件,因此执行System.out.println(j+"and"+i);语句,输出屏幕的第一行结果即3 and 3。

  • 第15题:

    下面程序段的执行结果为( )。 int i=3,j=0,k=0; for(;i>0;--i) { ++k; do { ++j; if (i!=j) break; ++k; }while(j<5); } printf("i=%d j=%d k=%d\n",i,j,k);

    A.i=0 j=4 k=12

    B.i=0 j=5 k=5

    C.i=0 j=4 k=4

    D.i=0 j=3 k=3


    正确答案:C
    解析:程序开始时(i,j,k)三个值分别为(3,0,0),然后进入for循环,由于for的第一条语句空缺,所以不做初始化,此时i为3满足循环条件,进入循环体。然后执行“++k;”使k变成1,再无条件进入do-while循环体执行“++j;”使j变成1,此时i和j不相等所以执行break;语句跳出do-while循环。准备开始第二遍for循环,i的值被减1,此时3个值分别为(2,1,1),i为2满足循环条件,进入循环体。然后依次执行++k;和++j;使它们增1,此时i和j同为2相等,所以跳过break;语句再执行一次++k;使k为3,由于此时j满足do-while的循环条件,所以下一步回到前面执行do后面的++j;语句,使j为3,此时i和j不相等,所以执行break;跳出do-while循环。准备开始第三遍for循环,i的值被减1,此时3个值分别为(1,3,3),i为1满足循环条件,进入循环体。然后依次执行++k;和++j;使它们增1,此时i和j不相等,所以执行break;跳出do-while循环。准备开始第四遍for循环,i的值被减1,此时3个值分别为(0,4,4),i为0不满足for语句的循环条件,所以执行循环体后面的printf()函数输出3个值,故正确答案为C。

  • 第16题:

    下面程序片段输出的是()。inti=0,j=9;do{if(i++>--j)break;}while(i<4);System.out.println("i="+i+"andj="+j);

    A、i=4andj=4

    B、i=5andj=5

    C、i=5andj=4

    D、i=4andj=5


    正确答案:D

  • 第17题:

    有如下程序段: inti=1: while(1){ i++: if(i==10)break: if(i%2==0)cout<<*: } 执行这个程序段输出字符*的个数是( )。

    A.10

    B.3

    C.4

    D.5


    正确答案:C
    C。【解析】本题主要考查while的作用。只有i为偶数时才输出“*”,而本题只有2,4,6,8时才满足条件,而当i为10时程序结束,即只有4个“*”被输出。

  • 第18题:

    当执行以下程序后,i的值是5,j的值是4,k的值是【 】。

    int a, b, c, d, i, j, k;

    a=10; b=c=d=5; i=j=k=0;

    for(;a>b; ++b) i++;

    while(a>++c) j++;

    do {

    k++;

    }while(a>d++);


    正确答案:6
    6

  • 第19题:

    以下程序运行后的输出结果是【】。include main(){int i=10,j=0;do{j=j+ i; i--;}while

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

    include <iostream.h>

    main()

    {

    int i=10,j=0;

    do

    {

    j=j+ i; i--;

    }

    while(i>2);

    cout<<j;

    }


    正确答案:52
    52

  • 第20题:

    控制台应用程序 example.java 如下:

    public class example

    {

    public static void main(String[] args)

    {

    int i=0, j=9;

    do

    {

    if(i++>--j) break;

    } while(i<4);

    System.out.println("i="+i+" and j="+j);

    }

    }


    正确答案:
      

  • 第21题:

    以下程序的输出结果是 ______。includevoid main(){ inti,j;for(j=10;j<=11;j++){fo

    以下程序的输出结果是 ______。 #include<iostream.h> void main(){ int i,j; for(j=10;j<=11;j++){ for(i=9;i<j:j++) if(!(j%i))break; if(i>j-1)cout<<j<<" " ; } }

    A.11

    B.10

    C.10 11

    D.9


    正确答案:C

  • 第22题:

    下面的程序段运行后,输出结果是 int i,j,x=0; static int a[8][8]; for(i=0;i<3;i++) for(j=0;j<3;j++) a[i][j]=2*i+j; for(i=0;i<8;i++) x+=a[i][j]; printf("%d",x);

    A.9

    B.不确定值

    C.0

    D.18


    正确答案:C
    解析:本题主要考查的是用二维数组首地址和下标来引用二维数组元素的方法。通过分析可知,程序中的双重循环定义了一个如下的二维数组:

    由于数组的下标是从。开始的,所以二维数组元素a[i][j]表示的是二维数组a的第i+1行、第j+1列对应位置的元素。

  • 第23题:

    单选题
    有以下程序: #include  main() {  char a[4][4]={' '};  int i,j;  for(i=0;i<4;i++)  {   a[i][0]=a[i][3]='#';   for(j=1;j<3;j++)   {    a[0][j]=a[3][j]='#';    if((i!=0)&&(i!=3))a[i][j]='o';   }  }  for(i=1;i<3;i++)  {   for(j=0;j<4;j++)    printf("%2c",a[i][j]);   printf("");  } } 程序的运行结果是(  )。
    A

    # o o #<换行> # o o #

    B

    # # # #<换行> # o o #

    C

    # o o #<换行> # # # #

    D

    # # # #<换行> # # # #


    正确答案: C
    解析:
    程序的执行过程为:定义4行4列二维数组字符a并且初始化为a[0][0]=' ',其他元素均为0。执行for循环将数组第一列和第四列赋值为'#'。执行for循环将数组第一行和第四行的第二个到第三个元素赋值为'#',然后将剩余元素全部赋值为'o'。此时矩阵为{{#,#,#,#}, {#,o,o,#}, {#,o,o,#}, {#,#,#,#}}。之后输出矩阵第二行与第三行元素,答案选择A选项。