一,简答题
1.Java数据类型分几大类?,基本类型有哪些?
两大类:基本类型和引用类型。
基本类型分为整数类型(byte,short,int,long),浮点类型(float,double),字符类型(char)和布尔类型(boolean)。
2.基本数据类型转换规则是什么?
分为默认转换和强制类型转换。
默认转换:小范围默认转换为大范围,(byte,short,char,)-->int-->long-->float-->double(其中byte,short,char之间不可相互转换)
强制类型转换:将大范围数据类型转换为小范围数据类型,但可能会发生数据溢出,精度降低;
计算混合类型时,系统自动转换为最大类型。
3.常用的运算符有哪几大类,分别是什么?
六大类运算符,算数运算符,比较运算符,赋值运算符,逻辑运算符,条件运算符,位运算符。
4.“+” 运算符有哪几种用法,需要注意什么?
可以进行加法运算和字符串连接,在连接字符串时,字符串要加上双引号
5.“++”运算符在使用时需要注意什么?
例如:a++应先运算再自加,++a应先自加再运算。
6.& 与 && 的区别?
用&时,无论左是真是假都要对右边进行判断;用&&时,左边是假ze右边不再判断,左边是真那么再对右边进行判断。
二,看程序,写结果
-
int i = 1; i += ++i; i最终的值是多少
答:i=3
2.int i = 1; boolean b = !(i++ == 3) && (i++==3); System.out.println(b); System.out.println(i); 输出结果?
答:false;i=3
3.int i = 1; int j = ++i + i++ + ++i + ++i + i++; 问 j最终的结果是多少?i最终的值多少?
答:j=18;i=6
4.int x = 4; int y =x++ + ++x + x*10; y的值?
答:y=70;
5.int a = 10, b = 10, c = 10; boolean result = a++ == 10 && b-- == 10 || ++c == 10; 结果? result=true a=11 b=9 c=11
6.运算符问题,下面代码分别输出什么? public static void main(String[] args) { int i1 = 10, i2 = 10; System.out.println("i1 + i2 = " + i1 + i2); System.out.println("i1 - i2 = " + i1 - i2); System.out.println("i1 * i2 = " + i1 * i2); System.out.println("i1 / i2 = " + i1 / i2); }
i1 + i2 = 20;
i1 - i2 = 0;
i1 * i2 = 100; i1 / i2 = 1;
7.class Test{ public static void main (String [] args) { short a,b,C; a=1; b=2; C=a+b; a += 2; } } 以上代码中,哪一句是错误的?
C=a+b;a+b的计算结果默认为int型,应写为(short)(a+b)
8. class Test4 { public static void main (String [] args) { boolean x=true; boolean y=false; short z=42; if((z++==42)&&(y=true)) z++; if((x=false)||(++z==45)) System.out.println(”z=”+z); } } 输出结果: z=45
9. class TestApp{ public static void main (String[] args){ for (int i=0; i<10;i++){ if(i==3){ break; } System.out.print (i); } } } 输出结果: 012
10. class Test{ public static void main (String[] args){ boolean state=false; int i=2; if((++i>2)&&(state=true)) i++; if((++i>4)||(state=false)) i++; System.out .println (i); } } 输出结果: 6
11. class WhileTests{ public static void main (String [] args) { int x=5; while(++x<4) { --x; } System.out.println( "x="+x); } } 输出结果: x= 6
12.下面程序运行的结果正确的是: 0 public class Demo{ public static void main (String args[]) { int num=0; for (int i=0;i<100;i++) { num=num++; } System.out.println("num="+num); } }
num=0
13.编译运行以下程序后,输出结果是( ) public class Demo{ public static void main (String args[]) { int x=4; double r = ((x>4) ? 99.9:9); System.out.println(r); } }
9.0
14.下面的程序编译运行的结果是: public class Demo{ public static void main (String args[]) { int c; System. out. println(c); System. out. println(c++); System. out. println(c); } }
0
0
1
15.下面程序运行的结果正确的是: public class Demo{ public static void main (String args[]) { int n = 100; int m = 20; if (m++ <= 20 || n == n++) System.out.println(n); System.out.println(m); } }
100
21
16.给定如下java代码,编译运行之后结果是: class Demo{ public static void main(String args[]) { for (int i=0;i<3; i++) { System.out.print(i); } System. out. print (i); } }
0
1
2
3
编程.编程题
1.判断某一年是否为闰年
通过Scanner 输入一个年份,然后判断概念是否是闰年 闰年判断标准(满足任何一个) 1.如果能够被4整除&&但是不能被100整除
-
能够被400整除
package feifan; import java.util.Scanner; public class H1 { public static void main(String args[]) { Scanner sc = new Scanner(System.in); int year = sc.nextInt(); if((year%4==0&&year%100!=0)||year%400==0){ System.out.println("此年是闰年"); }else{ System.out.println("此年不是闰年"); } } }
2.根据指定月份,打印该月份所属的季节,3,4,5春季 678夏季 9 10 11秋季 12 ,1,2 冬季
package feifan; import java.util.Scanner;public class H1 { public static void main(String args[]) { Scanner sc = new Scanner(System.in); int month = sc.nextInt(); switch (month){ case 3: case 4: case 5: System.out.println("此月是春季"); break; case 6: case 7: case 8: System.out.println("此月是夏季"); break; case 9: case 10: case 11: System.out.println("此月是秋季"); break; case 12: case 1: case 2: System.out.println("此月是冬季"); break; }}}
3.我家的狗5岁了,5岁的狗相当于人的多大呢?,其实狗的前两年,每一年相当于人的10.5岁,之后每增加一岁就增加4岁,
那么5岁的狗相当于人的年龄就应该是10.5+10.5+4+4+4=33岁. 编写程序获取用户输入狗的年龄(整数),通过程序输出显示相当于人的年龄.如果为负数请提示.
package feifan; import java.util.Scanner; public class H1 { public static void main(String args[]) { Scanner sc = new Scanner(System.in); int age = sc.nextInt(); if(age<0){ System.out.println("输入年龄有误"); } else if (age>0&&age<=2){ System.out.println("小狗今年"+age*10.5+"岁"); } else if(age>2){ System.out.println("小狗今年"+(2*10.5+(age-2)*4)+"岁"); }}}
4.一直青蛙在一口11米深的井底向上爬,白天向上爬3米,晚上向下滑2米,总共需要几天可以爬出.
写程序实现.
public class H1 { public static void main(String args[]) { Scanner sc = new Scanner(System.in); int d ; int h=11,h1=3,h2=2; d = h/(h1-h2); System.out.println(d); }}
5.输出奇数100以内最大的5个奇数
public class H1 { public static void main(String args[]) { int num=0; for (int i = 0; i < 100; i++) { if(i%2==1){ num++; if(num>45){ System.out.println(i);}}}}}
6.有1、2、3、4四个数字,能组成多少个互不相同且一个数字中无重复数字的三位数?
public class H1 { public static void main(String[] args) { int sum = 0; for (int i = 100; i <= 999; i++) { int ge = i%10; int shi = i/10%10; int bai = i/100%100; if (ge <= 4 & shi <= 4 & bai <= 4 & ge >= 1 & shi >= 1 & bai >=1) { if (ge != shi & ge != bai & shi != bai) { System.out.println(i); sum++;}}} System.out.println("能组成" + sum + "个不同且无重读数字的三位数"); }}
7.编程一个程序,计算今天是今年的第几天.
例如: 输入年 2022 输入月 10 输入天 30
public class H1 {
public static void main(String[] args) { Scanner sc=new Scanner(System.in); System.out.println("请输入年份"); int year=sc.nextInt(); System.out.println("请输入月"); int month=sc.nextInt(); System.out.println("请输入日"); int day=sc.nextInt(); int a=0;
switch (month-1){ case 12: a+=31; case 11: a+=30; case 10: a+=31; case 9: a+=30; case 8: a+=31; case 7: a+=31; case 6: a+=30; case 5: a+=31; case 4: a+=30; case 3: a+=31; case 2: if (a%4==0&&a%100!=0||a%400==0) a+=29; else a+=28; case 1: a+=31; } a+=day; System.out.println("今天"+year+"年"+month+"月"+day+"日是今天的第"+a+"天"); } }
8.猴子吃桃问题。猴子第一天摘下若干个桃子,当时就吃了一半,还不过瘾,
就又吃了一个。第二天又将剩下的桃子吃掉一半,又多吃了一个。以后每天都吃 前一天剩下的一半零一个。到第 10 天在想吃的时候就剩一个桃子了,求第一天共 摘下来多少个桃子?
public class H1 {
public static void main(String[] args) {
int n=1;
for (int i=1;i<=9;i++){
n=(n+1)*2; }
System.out.println("第一天一共摘下来"+n+"个桃子"); }}