练习题:
1.下列语句序列执行后,m 的值是。
int a=10, b=3, m=5;
if( a==b ) m+=a; else m=++a*m; A) 15 B) 50 C) 55 D) 5 2.下列语句序列执行后,k 的值是。
int i=4,j=5,k=9,m=5;
if(i>j||m int i=10, j=18, k=30; switch( j - i ) { case 8 : k++; case 9 : k+=2; case 10: k+=3; default : k/=j; } A) 31 B) 32 C) 2 D) 33 4.若a和b均是整型变量并已正确赋值,正确的switch语句是。 A) switch(a+b); { ...... } B) switch( a+b*3.0 ) { ...... } C) switch a { ...... } D) switch ( a%b ) { ...... } 5.下列语句序列执行后,r 的值是。 char ch='8'; int r=10; switch( ch+1 ) { case '7': r=r+3; case '8': r=r+5; case '9': r=r+6; break; default: r=r+8; } A) 13 B) 15 C) 16 D) 18 6.设int 型变量 a、b,float 型变量 x、y,char 型变量 ch 均已正确定义并赋值,正确的switch语句是。 A) switch (x + y) { ...... } B) switch ( ch + 1 ) { ...... } C) switch ch { ...... } D) switch ( a + b ); { ...... } 7.下列语句序列执行后,k 的值是。 int x=6, y=10, k=5; switch( x%y ) { case 0: k=x*y; case 6: k=x/y; case 12: k=x-y; default: k=x*y-x; } A) 60 B) 5 C) 0 D) 54 8.下列语句序列执行后,r 的值是。 char ch='A'; int r=6; switch( ch+5 ) { case 'A': r=r+3; case 'B': r=r+5; case 'C': r-=6; break; default : r/=2; } A) 11 B) 3 C) 2 D) 9 9.以下for循环的执行次数是。 for(int x=0;(x==0)&(x>4);x++); A)无限次 B)一次也不执行 C)执行4次 D)执行3次 10.下列语句序列执行后,j 的值是。 int j=1; for( int i=5; i>0; i-=2 ) j*=i; A) 15 B) 1 C) 60 D) 0 11.以下for循环的执行次数是。 for(int x=0;(x==0)&(x<4);x++); A)无限次 B)一次 C)执行4次 D)执行3次 12.下列语句序列执行后,j 的值是。 int j=2; for( int i=7; i>0; i-=2 ) j*=2; A) 15 B) 1 C) 60 D) 32 13.以下由 for 语句构成的循环执行的次数是。 for ( int i = 0; true ; i++) ; A)有语法错,不能执行 B)无限次 C)执行1次 D)一次也不执行 14.下列语句序列执行后,i 的值是。 int s=1,i=1; while( i<=4 ) {s*=i;i++;} A) 6 B) 4 C) 24 D) 5 15.下列语句序列执行后,j 的值是。 int j=8, i=6; while( i >4 ) i-=2; - -j; A) 5 B) 6 C) 7 D) 8 16. 若有循环: int x=5,y=20; do { y-=x; x+=2; }while(x A) 2次 B) 1次 C) 0次 D) 3次 17.以下由do-while语句构成的循环执行的次数是。 int m = 8; do { ++m; } while ( m < 8 ); A)一次也不执行 B)执行1次 C)8次 D)有语法错,不能执行 18.下列语句序列执行后,i的值是。 int i=10; do { i/=2; } while( i>1 ); A) 1 B) 5 C) 2 D) 0 19.下列语句序列执行后,i的值是。 int i=10; do { i/=2; } while( i--> 1 ); A) 1 B) 5 C) 2 D) -1 20.下列循环中,执行break outer语句后,所列——语句将被执行。 outer: for(int i=1;i<10;i++) { inner: for(int j=1;j<10;j++) { if(i*j>50) break outer; System.out.println(i*j); } next: A)标号为inner的语句 B)标号为outer的语句 C)标号为next的语句 D)以上都不是 21.下列循环中,执行continue outer语句后,——说法正确。 outer: for(int i=1;i<10;i++) { inner: for(int j=1;j<10;j++) { if(i*j>50) continue outer; System.out.println(i*j); } } A)程序控制在外层循环中并且执行外层循环的下一迭代 B)程序控制在内层循环中并且执行内层循环的下一迭代 C)执行标号为next的语句 D)以上都不是 27.下面是一个java应用程序(Application),它的功能是在屏幕上输出26个小写英文字母,其中每个字母相隔一个制表符,请完成程序填空。 public _____ Class1 { public static void main( String args[] ) { char c='a'; for (int i=1;i<=26;i++) { System.out.print(______); } } } 28.下面是一个java应用程序(Application),它的功能是计算 s=1+2+3+...+10 ,请完成程序填空。 public _____ Class1 { public static void main( String args[] ) { int s=0; for (int i=1;i<=10;i++) { s+=______; } System.out.println(\ } } 29.下面是一个java Application 的主类的定义,其功能是输出乘法口诀表第一列,请完成程序填空。 import java.io.*; public class MyClass { public static void main(String[] args) { int j=1; for(int i=1; _______; i++) { System.out.println(i+\ } } } 30. 设ch1, ch2是 char 型变量: if ( ch1 == ?a? ) { if ( ch2 == ?b? ) System.out.print(\?a\\? , ch2=\\?b\\? \ } else System.out.print(\?a\\? \ System.out.println(\ 问题: 1)若执行前 ch1 的值为 ?a?, ch2 的值为 ?c? 该程序段输出是什么? 2)若执行前 ch1 的值为 ?w?, ch2 的值为 ?b? 该程序段输出是什么? 3)若执行前 ch1 的值为 ?a?, ch2 的值为 ?b? 该程序段输出是什么? 31.阅读下面的程序段,回答问题。 if ( x < 5 ) System.out.print(\else { if ( y < 5 ) System.out.print(\else System.out.println(\ } 问题: 1)若执行前 x=6, y=8,该程序段输出是什么? 2)若执行前 x=1, y=8,该程序段输出是什么? 32.下面的程序的输出结果是什么? public class Mystery { public static void main (String [] args ) { int y, x = 1 , total = 0 ; while (x<=10) { y = x*x; System.out.println( y ); total += y; System.out.println( “Total is ”+total ); } } } 33.确定以下各段程序当x=9 , y=11以及x=11 , y=9 时的输出结果。(下面程序我们取消缩进格式) a) if ( x < 10 ) if ( y > 10 ) System.out.println(“*****”); else System.out.println(“#####”); System.out.println(“$$$$$”); b) if ( x < 10 ) { if ( y > 10 ) System.out.println(“*****”); } else { System.out.println(“#####”); System.out.println(“$$$$$”); } 编程题: 1.用while循环,求1-100的和 2.编写程序输出1-20之间的偶数 3.水仙花数是指个位、十位和百位三个数的立方和等于这个三位数本身的数,编写程序求出所有的水仙花数。 4.编写一个Java应用程序,用循环结构打印如下的数值列表: N 10*N 100*N 1000*N 1 10 100 1000 2 20 200 2000 3 30 300 3000 4 40 400 4000 5 50 500 5000 5.编写一个应用程序,计算1~10之间的各个整数的阶乘,并将结果输出到屏幕上。 6.用while循环求n2大于12000的最小数n。 7.打印2到10000的所有素数,每行显示8个素数。 8.写一个嵌套的for循环打印下列图案: 1 1 2 1 2 3 1 2 3 4 1 2 3 4 5 9.编写JAVA Application,要求输出一个如下图的菱形。 * * * * * * * * * * * * * 10.编写一个主类Triangle,要求在它的main方法中写一个嵌套的for循环,通过这个嵌套的循环在屏幕上打印下列图案: 1 1 2 1 1 2 3 2 1 1 2 3 4 3 2 1 1 2 3 4 5 4 3 2 1 1 2 3 4 5 6 5 4 3 2 1 1 2 3 4 5 6 7 6 5 4 3 2 1 2 3 4 5 6 7 8 7 6 5 4 3 11、输出1到100中能被7整除或者个位数是7的数字 12、有三个整型变量a、b和c,编写程序求3个数中的最大值 13、输出1~100这100个数 14、编写一个程序把十进制的数转换成一个二进制的数 1 2 1