一、填空题
1.Java中有两种类型的选择结构的控制语句,分别是__if语句_和 __ switch语句 __ 。
2.在Java JDK1.7之前,switch只能支持byte、short、char、int或者其对应的封装类以及Enum类型。在JDK1.7中又加入了___ string__ 类型。
3.for循环的语法格式是for (表达式1;表达式2;表达式3) {循环体},其中在整个循环过程中只执行一次的部分是 __表达式1 ___ 。
4.在循环结构中,如果想跳出循环体,结束整个循环结构可以使用 break 语句。
5.__continue____语句用在循环语句体中,用于终止某次循环过程,即跳过循环体中尚未执行的语句,接着进行下一次是否执行循环的判定。即只结束本次循环,而不是终止整个循环的执行。
6.使用Math.random( )返回带正号的 double值,该值大于等于0.0且小于1.0。使用该函数生成[30,60]之间的随机整数的语句是 ___ Random r = new Random(); double d =(double)r.nextInt(30)+31; _____ 。
二、选择题
-
以下代码的执行结果是(B )。(选择一项)
boolean m = false;
if(m = false){
System.out.println(“false”);
}else{
System.out.println(“true”);
}A. false
B. true
C. 编译错误
D. 无结果 -
分析如下Java代码,编译运行的输出结果是( A )。(选择一项)
public static void main(String[ ] args) {
boolean a=true;
boolean b=false;
if (!(a&&b)) {
System.out.print("!(a&&b)");
}else if (!(a||b)) {
System.out.println("!(a||b)");
}else {
System.out.println(“ab”);
}
}A !(a&&b)
B. !(a||b)
C. ab
D. !(a||b)ab -
下列选项中关于变量x的定义,( BD )可使以下switch语句编译通过。(选择二项)
switch(x) {
case 100 :
System.out.println(“One hundred”);
break;
case 200 :
System.out.println(“Two hundred”);
break;
case 300 :
System.out.println( “Three hundred”);
break;
default :
System.out.println( “default”);
}A double x = 100;
B. char x = 100;
C. String x = “100”;
D. int x = 100; -
阅读下列文件定入的Java代码,其执行结果是( D )。(选择一项)
public class Test {
public static void main(String[] args) {
char ch = ‘c’;
switch (ch) {
case ‘a’:
System.out.print(“a”); break;
case ‘b’:
System.out.print(“ab”);
case ‘c’:
System.out.print(“c”);
default:
System.out.print(“d”);
}
}
}A a
B. b
C. c
D. cd -
以下Java程序编译运行后的输出结果是( B )。(选择一项)
public class Test {
public static void main(String[] args) {
int i = 0, sum = 0;
while (i <= 10) {
sum += i;
i++;
if (i % 2 == 0)
continue;
}
System.out.println(sum);
}
}A 0
B. 55
C. 50
D. 36 -
以下四个选项中和下面代码功能相同的是( B )。(选择一项)
int i = 1;
int sum = 0;
while (i <= 100) {
if (i % 2 == 0)
sum = sum + i;
i++;
}A for (int x =1; x<=100;x++){ sum=sum+x;}
B. for (int x =0; x<=100;x+=2){ sum=sum+x;}
C. for (int x =1; x<=100;x+=2){ sum=sum+x;}
D. 上述全对 -
以下do-while循环代码的执行结果是( A )。(选择一项)
int a=0;
int c=0;
do{
–c;
a=a-1;
}while(a>0);
System.out.println(a+" "+c);A. -1 -1
B. 死循环
C. -1 -2
D. -1 0 -
while循环和do-while循环的区别是( D )。(选择一项)
A. 没有区别,这两个结构在任何情况下效果一样
B. while循环比do-while循环执行效率高
C. while循环是先循环后判断,所以循环体至少被执行一次
D. do-while循环是先循环后判断,所以循环体至少被执行一次 -
在Java中有如下代码,则编译运行该类的输出结果是( D )。(选择一项)
public static void main(String[ ] args) {
for(int i=0;i<10;i++){
if (i%2!=0) {
break;
}
System.out.print(i);
}
}A 13578
B. 02468
C. 0123456789
D. 0 -
下面程序执行的结果是在屏幕上打印( B )次Java基础班。(选择一项)
for(int i=1;i<=10;i++){
if (i<5)
continue;
System.out.println(“Java基础班”);
}A 5
B. 6
C. 7
D. 8
三、判断题
1.if语句的条件表达式的结果都必须是boolean值。( T )
2.switch选择语句是多分支选择语句,只能处理等值条件判断的情况,表达式可以是int类型、char类型,但不能是double,float类型。(T )
3.while循环结构的特点是先循环再判断,循环体至少执行一次。( F )
4.for循环的语法格式是for (表达式1;表达式2;表达式3) {循环体},其中三个表达式都可以省略。( T )
5.break语句可以出现在switch语句和循环语句中。( T )
6.continue语句可以出现在switch语句和循环语句中。( F )
四、简答题
1.if多分支语句和switch语句的异同之处
答:相同点:他们都是用来处理多分支条件的结构。不同点:switch语句只能处理等值条件判断的情况,而且条件只能是整型变量或字符型变量。 多重if选择结构的限制,特别适合某个变量处于某个连续区间时的情况。
2.while和do-while语句的异同之处
答:do-.while循环先执行一次再去判断条件,也就是说不管满不满足条件,都会先执行一次,执行次数最少1次;while循环必须先判断条件,满足了才执行,最少执行次数0次
3.break和continue语句的作用
答:break语句作用:
1、可以用来从循环体内跳出循环体,即提前结束循环,接着执行循环下面的语句
2、使流程跳出switch结构;continue语句作用:结束本次循环,即忽略循环体中continue语句下面尚未执行的语句,接着进行下一次是否执行循环的判定。
五、编码题
1.判断一个数是否是素数。
// 输入一个数
Scanner input = new Scanner(System.in);
System.out.println("请输入一个数:");
int n = input.nextInt();
// 判断是否是素数
boolean flag = true;
if (n == 1)
flag = false;
else {
for (int i = 2; i < n; i++) {
if (n % i== 0) {
flag = false;
break;
}
}
}
// 输出结果
if (flag) {
System.out.println(n + "是素数");
} else {
System.out.println(n + "不是素数");
}
2.从键盘输入某个十进制整数数,转换成对应的二进制整数并输出。
//给出一个十进制数
int num2 =15;
//转换
int num = num2;
String str="";
do{
//除以2得到商
int div = num/2;
//得到余数作为二进制位
int mod = num%2;
str = mod + str;
//商作为被除数
num = div;
}while(num!=0);//被除数不是零
//输出二进制数
System.out.println(num2+"------>"+str);
六、进阶题
1.输入一批整数,使用循环求出最大值与最小值,输入0时结束。
Scanner input = new Scanner(System.in);
int max = 0, min = 0;
int nums = 1;
//输入第一个数,指定它是最大值和最小值
System.out.println("请输入1个数:");
nums = input.nextInt();
max = nums;
min = nums;
//依次输入其他数字,并判断是否是最大值和最小值
for (int i = 2; nums != 0; i++) {
System.out.println("请输入" +i + "个数:");
nums = input.nextInt();
if (nums != 0) {
if (nums > max) {
max = nums;
}
if (nums < min) {
min = nums;
}
}
}
//输出最大值和最小值
System.out.println("最大值为:" + max);
System.out.println("最小值为:" + min);
2.给20块钱买可乐,每瓶可乐3块钱,喝完之后退瓶子可以换回1块钱,问最多可以喝到多少瓶可乐。
int money = 20, price = 3;
// temp表示每一次购买的可乐瓶数
int temp = 0;
// change表示每次购买完可乐剩下的钱
int change = 0;
// sum表示总的可乐瓶数
int sum = 0;
// 如果钱数大于可乐价格
while (money >= price) {
// 购买可乐
temp = money / price;
// 总可乐瓶数增加
sum += temp;
// 计算买可乐剩下的钱
change = money % price;
// 兑换可乐瓶子,计算剩余的总钱数
money = temp + change;
}
// 输出结果
System.out.println(sum);
3.从键盘输入某个十进制小数,转换成对应的二进制小数并输出。
//给定一个十进制小数
double d = 0.778866;
//转换
double mul = d;
StringBuffer buffer = new StringBuffer("0.");
//定义一个计数器
int count=0;
do{
//乘以2得到积
double result = mul*2;//1.250
//从积中取出整数部分作为二进制位
int i = (int)result;
buffer.append(i);
//计数
count++;
//判断是否够7位
if(count==7){
break;
}
//从积中取出小数部分作为下一次的乘数
mul= result-i;
}while(mul!=0); //判断乘数是否为0
//输出十进制小数和二进制小数
System.out.println(d+"---->"+buffer);