计算机二级

有以下程序 main() { int i=0,s=0; do{ if(i%2){i++;continue;} i++; s+=i; }while(i<7); printf("%d\n",s); } 执行后输出结果是A.16B.12C.28D.21

题目

有以下程序 main() { int i=0,s=0; do{ if(i%2){i++;continue;} i++; s+=i; }while(i<7); printf("%d\n",s); } 执行后输出结果是

A.16

B.12

C.28

D.21

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

第1题:

以下程序的输出结果是

int f()

{ static int i=0;

int s=1;

s+=i; i++;

return s; }

main()

{ int i,a=0;

for(i=0;i<5;i++)a+=f();

printf("%d\n",a);}

A.20

B.24

C.25

D.15


正确答案:D
解析:函数的静态局部变量在编译时就赋初值,即只赋初值一次,在程序运行时它已有初值,以后每次调用函数时不再重新赋值,而只是保留上次函数调用结束时的值。

第2题:

有以下程序 main() {int i; for(i=1;i<=40;i++) { if(i++%5=0) if(++i%8=0) printf ("%d",i); } printf("\n"); }

A.5

B.24

C.32

D.40


正确答案:C
解析:在满足for语句条件下,第—个if语句的条件是指i先对5取余后,再自行加1;第二个if语句的条件是指:i=i+1后,再对8取余。设可以满足第—个if语句的值为:x,那么可以满足第二个if语句的值为:x+2,转换为方程组:

x=32,所以答案选C。

第3题:

有以下程序

int a=4;

int f(int n)

{ int t=0; static int a=5;

if(n%2) {int a=6; t+=a++;}

else {int a=7 ;t +=a++ ; }

return t+a++ ;

}

main( )

{ int s=a , i=0 ;

for( ; i 〈 2 ; i++) s+=f(i);

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

}

程序运行后的输出结果是

A)24

B)28

C)32

D)36


正确答案:B

第4题:

设有以下程序:

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

第5题:

有以下程序 main( ) { int i=0,s=0; do{ if(i%2){i++;continue;} i++; s+=i; } while(i<7); printf("%d\n",s); } 执行后输出的结果是

A.16

B.12

C.28

D.21


正确答案:A
解析:本题的功能是计算0~7之间所有奇数的和(包括7)。

第6题:

有以下程序 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循环将一直循环下去。

第7题:

有以下程序: main() { int i,n=0; for(i=2;i<5;i++) { do { if(i%3) continue; n++; }while(!i); n++; } printf("n=%d\n",n); } 程序执行后的输出结果是( )。

A.n=5

B.n=2

C.n=3

D.n=4


正确答案:D
解析:for循环当i=2时,执行do循环。由于if表达式的条件为真,执行continue语句,结束本次循环,判断while循环条件为假,故退出while循环,执行n++,此时n的值为1。当i=3时,执行do循环,由于if{3%3)为假,执行下面的n++语句,此时n的值为2,结束本次循环,继续判断while循环条件为假,故退出while循环,执行n++语句,此时n的值为3。当i=4时,执行do循环。由于if(4%3)为真,执行continue语句,结束本次循环,继续判断while循环条件为假,故退出while循环,执行n++,此时n的值为4。当i=5时,退出for循环,因此最后输出的n值为4。所以,4个选项中选项D符合题意。

第8题:

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

main()

{ int a[3][3]={{1,2,9},{3,4,8},{5,6,7}},i,s=0;

for(i=0;i<3;i++) s+=a[i][i]+a[i][3-i-1];

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

}


正确答案:
(8) 【 8 】 30
解析 : 程序运行后的结果是 a[0][0]+a[0][2]+a[1][1]+a[1][1]+a[2][2]+a[2][0]=1+9+4+4+7+5=30

第9题:

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

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选项。

第10题:

以下程序的输出结果是 void reverse(int a[],int n) { int i,t; for(i=0;i<n/2;i++) { t=a[i]; a[i]=a[n-1-i];a[n-1-i]=t;} } main() { int b[10]={1,2,3,4,5,6,7,8,9,10};int i,s=0; reverse(b,8); for(i=6;i<10;i++)s+=b[i]; printf("%d\n",s); }

A.22

B.10

C.34

D.30


正确答案:A
解析:在main函数中,调用revere函数将b数组中的前8个成员进行互置,执行完毕后,b数组中的成员为{8,7,6,5,4,3,2,1,9,10},然后再执行for循环结构,将b[6],b[7]…b[9]的值相加,结果为22。

更多相关问题