k-=j ; } m = i+j ; printf(\ return 0; }
A)k=0,m=3 B)k=0,m=5 C)k=1,m=3 D)k=1,m=5 10. 下面程序的输出结果是 。 int main ( ) { int i,s,n=0; for (i=0; i<=5; i++) { s=i%3; while(s>0) s--,n++; } printf(\ return 0; }
A)5,0 B)6,0 C)5,-1 11. 下面程序的输出结果是 。 int main ( ) { char c='A'; int k=0; do { switch (c++) { case 'A' : k++ ; break ; case 'B' : k-- ;
case 'C' : k+=2 ; break ; case 'D' : k%=2 ; continue ; case 'E' : k*=10 ; break ; default : k/=3 ; } k++; } while (c<'G') ; printf (\ return 0; }
A)k=3 B)k=4 C)k=2 12. 以下正确的描述是 。
A)continue语句的作用是结束整个循环的执行
31
D)6,-1 D)k=0 B)只能在循环体内和switch语句体内使用break语句 C)在循环体内使用break语句或continue语句的作用相同 D)从多层循环嵌套中退出时, 只能使用goto语句
二.分析程序写结果
1. 写出下面程序运行的结果。
int main() { int x=1,y=0; switch(x) { case 1: switch(y) { case 0:printf(\ case 1:printf(\ } case 2:printf(\ }
return 0; }
2. 写出下面程序运行的结果。 int main ( ) { int k=1,n=263; do { k*=n; n/=10 ; } while (n) ; printf(\ return 0; }
3. 写出下面程序运行的结果。 int main () {
int a,i; for (a=1,i=-1; i>-2 && i<1; i++) { a++; printf(\ } printf(\ return 0; }
32
4. 写出下面程序运行的结果。 int main ( ) { int y=2,a=1; while (y--!=-1) do { a*=y ; a++ ; } while (y--) ; printf(\ return 0; }
5. 写出下面程序运行的结果。 int main ( ) { int i=5; do { switch(i%2) { case 0:i++; break; case 1:i--; continue; } i-=2; printf(\ \ }while(i>=0); return 0; }
三.阅读程序并填空
1. 根据以下函数关系,对输入的每个整数x值,计算出相应的y值,请填空使程序完整。
?0?x?y???10???0.5x?20int main()
{ int x,c; float y; scanf(\ if ( ) c= -1; else
x?00??x?10
10??x?2020??x?4033
switch (c) { case -1 : y=0 ; break ; case 0 : y=x ; break ; case 1 : y=10 ; break ; case 2 : case 3 : y=-0.5*x+20 ; break ; default : y=-2 ; } if ( ) printf (\ else printf(\ return 0; }
2. 下面程序的功能是:输出满足“用3除余2;用5除余3,用7除余2”的所有3位数,请填空使程序完整。 int main () { int i=100; do { if ( ) printf(\ i=i+1; }while( ); return 0; }
3. 下面程序的功能是:求1!+2!+3!+…+10!,请填空使程序完整。 int main () { int n; double s=0,t=1; for (n=1; ;n++) { t=t*n; } printf(\ ); return 0; }
4. 下面程序的功能是输出1至100之间每位数的乘积大于每位数的和的数,请填空使程序完整。 int main ( )
34
{ int n,k=1,s=0,m ; for (n=1 ; n<=100 ; n++) { k=1 ; s=0 ; while ( ) { k*=m; s+=m; } if (k>s) printf(\ }
return 0; }
5. 下面程序的功能是输出100至200之间的不能被3整除的数,请填空使程序完整。 int main ( ) { int n; for (n=100;n<=200;n++) { if(n%3==0) printf(\ \ }
return 0; }
四.程序改错
1. 下面程序输入两个运算数x,y和一个运算符号op,然后输出该运算结果的值,例如输入3+4↙得到结果7;请判断下面程序的正误,如果错误请改正过来。 int main() { float x,y, r; char op; scanf(\ switch (op) { case '+' : r=x+y ; case '-' : r=x-y ; case '*' : r=x*y ; case '/' : r=x/y ;
35