有以下程序:main(){intx=0,y=0,i;for(i=1;++i){if(i%2==0){x++;continue;} if(i%5==0){y++;break

题目

有以下程序: main() { int x=0,y=0,i; for(i=1;++i) { if(i%2==0){x++;continue;} if(i%5==0){y++;break;}} printf("%d,%d",x,y);} 程序的输出结果是( )。

A.2,1

B.2,2

C.2,5

D.5,2

如果没有搜索结果或未解决您的问题,请直接 联系老师 获取答案。
相似问题和答案

第1题:

有以下程序 main() { int i=0,s=0; for(;;) { if(i==3‖i==5) continue; if(i==6) break; i++; s+=i; }; printf("%d\n",s); } 程序运行后的输出结果是

A.10

B.13

C.24

D.程序进入死循环


正确答案:D
解析:程序中for循环中省略了判断退出循环的表达式,for循环将由里面的break语句控制是否结束循环,第一次循环,第一条if语句后面括号里的表达式的值为假,所以该if语句不被执行,执行下面的第二条语句,此时该if语句表达式的值为假,所以该if语句也不执行,执行下面的语句,i++、s+=i,执行完毕后i的值为1,s的值为1,如此循环,直到第三次之后i,s的值都为3,继续第四次循环,显然这时满足第一条if语句的,执行后面的continue该次循环结束从头开始下次循环,而i的值为3一直没有改变,所以第一条语句始终要执行,因此for循环将一直循环下去。

第2题:

有以下程序:includeusing namespace std;int main(){ inty=18,i=0,j,a[8]; do{ a[i]=

有以下程序: #include <iostream> using namespace std; int 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;i>=0;j--) cout<<a[j]; cout<

A.1000

B.10010

C.110

D.10100


正确答案:B
解析:本题考核一维数组元素的引用和一维数组的输出。程序中的do-while循环语句的执行过程如下:第1次循环时,i=0、y=18,把“y%2”的值0存入a[0],执行i++后,i的值变为1,再执行y=y/2;,使y的值变为9。同理,第2次循环后,a[1]的值为1,第3次循环后,a[2]的值变为0,第4次循环后,a[3]的值变为0,第5次循环后,a[4]的值为1,然后退出do-while循环体。for循环是输出从a[4]到a[0]的值,结果为:10010。

第3题:

有以下程序

main()

{ int i,j,x=0;

for(i=0;i<2;i++)

{ x++;

for(j=0;j<=3;j++)

{ if(j % 2) continue;

x++;

}

x++;

}

printf("x= % d\n",x);

}

程序执行后的输出结果是

A)x=4

B)x=8

C)x=6

D)x=12


正确答案:B
(32)B) 解析 : 此程序考察了 for 循环和 x++ 。 对于大循环 , 有两个 x++, 其中循环 3 次 , 对于小循环 , 循环三次 , 但是运行了两次 x++, 所以最后结果是 6+2=8 。

第4题:

有以下程序:include main ( ){ inti=0.s=0;for(;;) if( i = = 3 ‖ i = = 5 ) continu

有以下程序: #include <stdio. h> main ( ) { inti=0.s=0; for(;;) if( i = = 3 ‖ i = = 5 ) continue; if (i ==6) break; i++; s+ =i; } printf(" % d \n" ,s);程序运行后的输出结果是( )。

A.10

B.13

C.21

D.程序进入列循环


正确答案:D
解析:程序第1次执行for循环时,i=0,两条if语句中的表达式都不成立,执行i++;s+=i;此时i为1,s为1第2次循环,两条if语句中的表达式也不成立,执行i++,s+=i,此时i为2,s为3;……;当i=3时,执行continue,结束本轮循环,不执行i++;继续执行下一轮循环,这样一来i值始终为3,继续continue,无终止条件,进入死循环。

第5题:

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

main

{ int i=0,S=0;

for(;;)

{

if(i==3 ||i==5)continue;

if(i==6)break;

i++;

s+=i:

};

printf("%d\n",s);

}

A.10

B.13

C.21

D.程序陷入死循环


正确答案:D
当i一0时,两个if都不满足,所以都不执行,直接执行i++语句,此时i为1,S为l,返回for循环中;当i=1时,同样不执行两个if语句,执行i++后,i=2,s=3,返回for循环中;i=2时也不执行if语句,执行i++后,i=3,s=6,接着又执行for循环,此时符合第一个if语句,执行到continue时不再执行i++了,continue是跳出本次循环,接着下次循环。永远这样执行下去,i的值永远为3,故选择D选项。

第6题:

以下程序中,while循环的循环次数是

main( )

{int i=0;

while(i<10)

{if(i<1)continue;

if(i= =5)break;

i++;)

}

A.1

B.10

C.6

D.死循环,不能确定次数


正确答案:D
解析:本题考查continue在循环语句中的作用。当i=0时,执行第一个if语句,为真,跳过后面的第二个if和i++,重新判断while的条件,此时i并没有任何改变,依然是0,因此将陷入一个无限循环中。

第7题:

以下程序中,while语句的循环次数是 ______。includeviod main(){ inti=0; while(i<1

以下程序中,while语句的循环次数是 ______。 #include<iostream.h> viod main() { int i=0; while(i<10) { if(i<1)continue; if(i==5) break; i++; } }

A.1

B.10

C.6

D.死循环,不能确定次数


正确答案:D

第8题:

有以下程序

#include <stdio.h>

main()

{ int a[ ]={2,3,5,4},i;

for(i=0;i<4;i++)

switch(i%2)

{ case 0:switch(a[i]%2)

{case 0:a[i]++;break;

case 1:a[i]--;

}break;

case 1:a[i ] =0;

}

for(i=0;i<4;i++) printf("%d",a[i]); printf("\n");

}

程序运行后的输出结果是

A)3 3 4 4

B)2 0 5 0

C)3 0 4 0

D)0 3 0 4


正确答案:C

第9题:

以下程序的输出结果是______。main(){ int i,j,x=0; for (i=0;i<2;i++) { x++; for(j=0;j<3;j++) { if(j%2) continue; x++; } x++; } printf("x=%d\n",x);}

A.x=4

B.x=8

C.x=6

D.x=12


正确答案:B

第10题:

有以下程序: main() { int a[3][3], *p, i; p=&a[0][0]; for(i=0; i<9; 1++)p[i]=i; for (i=0; i<3; i++)printf("% d", a[1][i]); 程序运行后的输出结果是______。

A.0 1 2

B.1 2 3

C.2 3 4

D.3 4 5


正确答案:D
解析:p指向的a的首地址,由于C语言是行优先存储的,一维数组p就依次存放了a中从第0行到第2行的所有元素,因此a[1][i]就对应了p[3]~p[5]。

更多相关问题