下面程序段的执行结果为( )。 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=12B.i=0 j=5 k=5C.i=0 j=4 k=4D.i=0 j=3 k=3

题目

下面程序段的执行结果为( )。 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。
更多“下面程序段的执行结果为()。int i=3,j=0,k=0;for(;i>0;--i){++k;do{++j; if(i!=j) break;++k;}whi ”相关问题
  • 第1题:

    执行完下面的程序段后,k的值是 int k=0; for(int i=1;i<4;i++) { for(int j=1;j<4;j++) { k+=i+j; if(j==2) break; } }


    9

  • 第2题:

    15、执行下面的程序段,输出的结果为()。 int i=0,k=10,j=5; if(i+j) k=(i=j)?(i=1):(i=i+j); printf("k=%d\n",k);


    C

  • 第3题:

    设 i,j,k 均为 int 型变量 , 则执行完下面的 for 循环 后 ,k 的值为 for(i=0,j=10;i<=j;i++,j--) k=i+j 设i,j,k均为int型变量,则执行完下面的for循环后, k的值为 i=0; for(j=10;i<=j;i++) { k=i+j; j=j-1;}

    A.10

    B.可以去调试来理解这个结果

    C.9

    D.11

    E.12


    B

  • 第4题:

    4、下列程序段的输出结果是___。 for(i=0,j=10,k=0;i<=j;i++,j-=3,k=i+j); cout<<k


    1 * 1 = 1 1 * 2 = 2 1 * 3 = 3 2 * 2 = 4 2 * 3 = 6 3 * 3 = 9

  • 第5题:

    29、[XH]下列程序段执行后k值为()。 int k=0,i,j; for(i=0;i<5;i++) for(j=0;j<3;j++) k=k+1 ;

    A.15

    B.3

    C.5

    D.8


    C