Java基础(2)
一、选择题
-
下面程序的运行结果是(D )
int a=3,b=1;
if(a==b){ //a不等于b不执行后面语句
System.out.println(“a=”+a);
}
A. a=1
B. a=3
C. 编译错误 //语法错误
D. 正常运行但没有输出 -
下面程序执行的结果是?(B )
int i =100;
while(true) { //永真循环
if (i++ > 100) {
break; //先比较在运算,当i为101>100,中断并跳出
}
System.out.println(i);
}
A. 100
B. 101
C. 102
D. 报错 -
下面程序执行的结果是?( C)
boolean b = true; //赋值
if(b=false){ //b=false
System.out.println(“a”);
}
else if(b){ //b=false
System.out.println(“b”);
}
else if(!b){ //b=true
System.out.println(“c”);
}
else{
System.out.println(“d”);
}
A. a B. b C. c D. d
//多重 if 语句,在条件 1 不满足的情况下,才会进行条件 2 的判断;当前面的条件均不成立时,才会执行 else 块内的代码 -
下面程序执行的结果是?( D)
Int x = 2 , y = 3 ;
switch(x){ //x = 2
default: y++; //default只有在case匹配失败的时候才会执行,无case2即y为3 然后依次执行 y为4
case 3: y++; //y为5
case 4: y++; //y为6
}
Sysetem.out.println(“y=”+y);
A. 3 B. 4 C. 5 D. 6
-
下面程序执行的结果
for(int i=1;i<=10;i++){
if (i%3==0){ //无余数 整除 3/3 6/3 9/3
continue; //停止任务3/3 6/3 9/3 执行其他
}
System.out.println(“java基础班”);//7次
}
在屏幕上打印几次“java基础班”?( C )
A. 5 B. 6 C. 7 D. 8 -
和下面代码能完成相同的选项是(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.上述全对 -
以下代码输出是( D)
int i=0;
int sum=0;
while(i<=10) {
i++;
if( i%2!=0 ) //执行不能被整除的数
continue;//有余数停止本次计算执行下面的计算
sum+=i; // 2/4/6/8/10
}
System.out.println(sum);
A. 55
B. 45
C. 35
D. 30 -
给出下列代码片段:
if ( x> 0 ) { System.out.println(“Hello”); }
else if (x >-3 ) { System.out.pirntln ( “I am Tom”); }
else {System.out.println (“How are you?”); }
请问将打印字符串 “How are you ?”的x的范围是(C )
A. x>0
B. x > -3
C. x <= -3
D. x <=0 & x >-3 -
下面程序执行的结果是(A )
classDemo {
public static void main(String [] args) {
int a=10;
if(a++>10){// 先判断在自加 10不>10 自加为11 不执行a=20
a=20;
}
System.out.println(a);
}
}
A. 11
B. 12
C. 20
D. 21 -
执行下面代码结果(D)
for(int i=0;😉{
System.out.println("这是 "+i);
break;
}
A、 语法错误,缺少表达式2和表达式3
B、 死循环
C、 程序什么都不输出
D、 输出:这是0 -
下面代码输出结果是(B )。
int i=0,s=0;
do{
if (i%2 = = 0 ){
i++;
continue;
}
i++;
s = s + i;
} while (i<7);
System.out.println(s);
A、 16
B、 12
C、 28
D、 21 -
下列输出结果是( C )
int a = 0 ;
while ( a < 5 ) {
switch(a){
case 0:
case 3 : a = a + 2;
case 1 :
case 2 : a = a + 3;
default : a = a + 5;
}
}
System.out.print (a) ;
A、 0
B、 5
C、 10
D、 其他
二、简答题
- while循环和do-while循环的区别?
while 先判断再执行,至少执行0次,
do-while 先执行再判断,至少执行1次。
2.数组的三种定义方式?
int[] a = {1,2,3,4,5};
// int a[] = {1,2,3,4,5};
int[] b = new int[5];
int[] b = new int[]{1,2,3,4,5};
3.数组的迭代方式?
1.下标法 2.for-each循环
4. break和continue的区别?
break跳出循环,continue 结束本次循环,开始下一次循环
三、编程题
- 从键盘输入三个整数,从小到大排序。
package com.sy.day22;
import java.util.Scanner;
public class Test8 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println(“请输入三个整数”);
int a = sc.nextInt();
int b = sc.nextInt();
int c = sc.nextInt();
if(a<b){
int d = a ;
a = b ;
b = d ;
}
if(a<c){
int d = a ;
a = c ;
c = d ;
}
if(b<c){
int d = b ;
b = c ;
c = d ;
}
System.out.println("");
System.out.println(c +" "+ b + " " + a);
}
}
2.从键盘输入整数,输出该整数的阶乘。5!= 5* 4* 3* 2*1
package com.sy.day22;
import java.util.Scanner;
public class Test9 {
public static void main(String[] args) {
int a = 1 ;
Scanner sc = new Scanner(System.in);
int b = sc.nextInt();
for(int i =1 ; i <= b; i++ ){
a=a*i;
}
System.out.println( b + “的阶乘为:” + a);
}
}
3.打印出100-1000之间所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个"水仙花数",因为153=1的三次方+5的三次方+3的三次方。
package com.sy.day22;
public class Test10 {
public static void main(String[] args) {
/* 打印1-1000的水仙花数
水仙花数:例如 153=111+555+333*/
//1定义标记,水仙花数起始值位0
int count =0;
//2要找出1000以内的水仙花数,先要遍历其每个数字;因为水仙花数是三位数所以从100开始
for (int i = 100; i < 1000; i++) {
//3取出个位
int g = i%10;
//4取出十位
int s = i/10%10;
//5取出百位
int b = i/100;
//6判断每个位上的立方和是否等于它自己,如果是则打印出该数字
if (g*g*g+s*s*s+b*b*b==i){
//7如果是水仙花数,count加一
count++;
System.out.println(i);
}
}
System.out.println("1000以内水仙花数的个数:"+count);
}
}
- 用if语句和switch语句分别计算消费金额:
消费金额在1000以上打7折, 800-1000之间打8折,500-800之间打9折,300-500之间打9.5折