第3章 控制语句
学习目标
? ? ? ?
能够使用if和if…else选择语句来选择各种动作 能够使用for循环结构来重复地执行程序中的语句
能够使用do…while循环和while循环语句重复地执行程序中的语句 能够使用break和continue程序控制语句
3.1 实验前检查
在学完《Java语言程序设计》的第3章后,请回答以下问题。这些问题旨在检验和巩固你对关键概念的理解。既可以在实验课程之前,也可以在实验课程期间完成。 3.1.1 选择题:
1.下列语句序列执行后,m 的值是( C )。
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 的值是( B )。
int i=4,j=5,k=9,m=5;
if(i>j||m 3.下列语句序列执行后,k 的值是( C)。 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语句是( D )。 A) switch(a+b); { ...... } B) switch( a+b*3.0 ) { ...... } C) switch a { ...... } D) switch ( a%b ) { ...... } 5.下列语句序列执行后,j 的值是( A )。 int j=1; for( int i=5; i>0; i-=2 ) j*=i; A) 15 B) 1 C) 60 D) 0 6.以下for循环的执行次数是( B )。 for(int x=0;(x==0)&(x<4);x++); A)无限次 B)一次 C)执行4次 D)执行3次 7.下列语句序列执行后,j 的值是( D )。 int j=2; for( int i=7; i>0; i-=2 ) j*=2; A) 15 B) 1 C) 60 D) 32 8.下列语句序列执行后,k 的值是( B)。 int m=3, n=6, k=0; while( (m++) < ( -- n) ) ++k; A) 0 B) 1 C) 2 D) 3 9.下列语句序列执行后,i 的值是( C )。 int s=1,i=1; while( i<=4 ) {s*=i;i++;} A) 6 B) 4 C) 24 D) 5 10. 下列语句序列执行后,k 的值是( C )。 int m=3, n=6, k=0; while( m < n ) { ++k; m++; --n; } A) 0 B) 1 C) 2 D) 3 11.以下由do-while语句构成的循环执行的次数是(B)。 int m = 8; do { ++m; } while ( m < 8 ); A)一次也不执行 B)执行1次 C)8次 D)有语法错,不能执行 12.下列语句序列执行后,i的值是( A )。 int i=10; do { i/=2; } while( i>1 ); A) 1 B) 5 C) 2 D) 0 13.下列语句序列执行后,i的值是( D )。 int i=10; do { i/=2; } while( i--> 1 ); A) 1 B) 5 C) 2 D) –1 14.下列循环中,执行break outer语句后,所列( B )语句将被执行。 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)以上都不是 15.下列循环中,执行continue outer语句后,( B )说法正确。 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)以上都不是 3.1.2 程序填空题 1.下面是一个java应用程序(Application),它的功能是计算 s=1+2+3+...+10 ,请完成程序填空。 public __class_ Class1 { public static void main( String args[] ) { int s=0; for (int i=1;i<=10;i++) { s+=__ i_; } System.out.println(\ } } 2.下面是一个java Application 的主类的定义,其功能是输出乘法口诀表第一列,请完成程序填空。 import java.io.*; public class MyClass { public static void main(String[] args) { int j=1; for(int i=1; __i<=9_; i++) { System.out.println(i+\ } } } 3.1.3 程序改错题 下列程序片断有什么错误?如何改正? 1. char ch; switch(ch) 标点格式 { case ‘A’: System.out.println(“字母是A”); case ‘B’: System.out.println(“字母是B”); } 2. i=10; INT I=10,SUM=0; while(i!=0); sum+=i; 3. for(int i=10;i>100;i--) int SUM=0 sum+=i; 4. for(float i=0.0;i>-10.0;i-=1.0) DOUBLE System.out.println(i); 5. int i=10; do{ System.out.println(i); i--; }while(i=1) WHILE(I==1); 3.2 编程实验 3.2.1 编程实验1:直角三角形 本实验要求在封闭实验课中在教师指导下完成。 1. 实验目的 本实验旨在巩固学生对《Java语言程序设计》中第3章内容的掌握。在这个实验中学生将练习: ? 从控制台获取数据 ? 使用IF语句进行判断 2. 问题描述 编写一个应用程序,读取用户任意输入的3个非零数值,判断它们是否可以作为三角形的3条边,如果可以,则打印打印这3条边,计算并显示这个三角形的面积。 三角形面积计算网站找找啊!!! 3. 示例输出 4. 程序模板 public class Triangle { public static void main(String[] args) { int side1; int side2; int side3; System.out.println(“Enter length of side 1:”); side1 = MyInput.readDouble(); System.out.println(“Enter length of side 2:”); side2 = MyInput.readDouble(); System.out.println(“Enter length of side 3:”); side3 = MyInput.readDouble(); int side1Square = side1*side1; int side2Square = side2*side2; int side3Square = side3*side3; if ((side1Square + side2Square) == side3Square) System.out.println(“Area is : ”+side1*side2/2); if ((side1Square + side3Square) == side2Square)
相关推荐: