考试(编程题中没有告诉类型的默认都是int类型)
一:填空题,每空1分,共20分
1:java的基本数据类型有(byte)(short)(int)(long)(float)
(double)(boolean)(char)
2:请写出你接触过的关键字
(class)(int)(void)(byte)(boolean)(double)(char)
3:标识符可以由三类东西组成,包括(26个大小写字母)(美元符号)(下划线,数字)
不能以(数字)开头,不能是(关键字 ).
二:简答题,每题5分
1:请写出99的二进制,八进制,十六进制
需要过程
99/2=49,余数1 49/2=24,余数1 24/2=12,余数0 2/2=6,余数0 6/2=3,余数0 3/2=1,余数1
余数反转,二进制:1100011
99/8=12,余数3 12/8=1,余数4
余数反转,八进制:143
99/16=6,余数3
余数反转,十六进制:63
2:请写出-6的二进制,以及计算出他当前二进制对应的原码,反码,补码
二进制:110
原码:10000000 00000000 00000000 00000110
反码:11111111 11111111 11111111 11111001
补码:11111111 11111111 11111111 11111010
3:计算下列表达式的结果,写出运算过程
小题1
int a=2,b=3;
a|b*2^4>>a++ 的结果是多少(参考qq群里的优先级表)
a|((b*2)^(4>>(a++)))
a++结果3
b*2结果6
4>>3结果0
00000000 00000000 00000000 00000110
00000000 00000000 00000000 00000011
--------------------------------------------------------------
00000000 00000000 00000000 00000000(000)
结果0
6^0
00000000 00000000 00000000 00000110
00000000 00000000 00000000 00000000
------------------------------------------------------------------------
00000000 00000000 00000000 00001110
结果6
3|6
00000000 00000000 00000000 00000011
00000000 00000000 00000000 00000110
---------------------------------------------------------------------
00000000 00000000 00000000 00000111
结果7
小题2
int x=4,y=5;
int z=(x++)*(y--);
x,y,z的值分别是什么
x++结果为5
y--结果为4
x的值为5,y的值为4,z的值为20
4:给每一个基本数据类型定义一个变量,并附上一个合理的初始值。
byte a = 100
short b = 1000
int c = 100000
long d = 100000L
float f1 = 222.2f
double d1 = 3.1415926
boolean one = true
char e = 'A'
三,选择题
1.Java以下定义定义,满足标识符的规则的是 B
A. int 2a = 10 ;
B. double d = 12.56 ;
C. float f = 11.34 ;
D. long l = 1678882309819;
2. 有一段java应用程序,它的主类名是a1,那么保存它的源文件名可以是(c)
A. a1
B. a1.class
C. a1.java
D. 以上都不对
3.下列不可作为java语言标识符的是(D)
A.a1
B.$1
C._1
D.11
四.简答题
1.Java的显示转换和隐式转换
隐式转换:默认类型提升:byte,short,char三者之间不转换,但是分别自己参与运算的时候优先提升为int---long---float---double
显式转换:当变量相加计算的时候,如果接收的类型范围小于计算结果的数据类型时就需要进行强制类型转换---使数据类型进行匹配
目标数据类型 变量名 = (目标数据类型)(结果)
尽量避免强转类型转换,可能会造成数据精度损失
2.Jre,JDK,JVM分别是什么,请描述
jvm是java虚拟机用来运行java文件
jre是java的运行环境,里面包含jvm和java核心类库
jdk是java开发工具包,包含了jre、java工具和java基础类库
三者的关系:jdk>jre>jvm
3.javac和java 请描述分别的作用,然后手写一个Java程序,进行javac和java过程
javac是将java文件编译成class文件,
java是执行编译的class文件
编写内容
class HelloWorld{
public static void main(String[] args){
System.out.println("Hello World");
}
}
保存
文件名称和类名保持一致
进入dos控制台
进入到保存Java文件目录
编译HelloWorld.java文件
生成class文件
运行java HelloWorld
4.数据类型划分哪些,请描述
Java中的数据类型分为两大类分别是基本类型和引用类型,基本类型包含int,float,double,char,boolean等八种类型,引用类型包含类,数组,接口三种类型。
五.编程题(没有明确类型,默认int)
1.创建一个Demo.java文件,里面书写main方法,然后定义3个变量,
分别对3个变量重新初始化,然后输出结果
class Demo{
public static void main(String[] args) {
int x;
int y;
int z;
x=3;
y=4;
z=5;
System.out.println(x);
System.out.println(y);
System.out.println(z);
}
}
2.创建Demo2.java文件,定义两个变量,分别将两个变量数据值交换
class Demo2{
public static void main(String[] args) {
int x = 10;
int y = 20;
x = x ^ y
y = x ^ y
x = x ^ y
System.out.println(x);
System.out.println(y);
}
}
3.使用键盘录入数据,录入三个数据,求三个数据中的最大值 (新建java文件)
import java.util.Scanner ;
class KaoShi{
public static void main(String[] args) {
Scanner sc = new Scanner(System.in) ;
int firstNum = sc.nextInt() ;
int secondNum = sc.nextInt() ;
int thirdNum = sc.nextInt() ;
int temp = (firstNum > secondNum) ? firstNum : secondNum ;
int max = (temp > thirdNum) ? temp : thirdNum ;
System.out.println(max);
}
}
4.使用键盘录入数据,录入两个数据,比较两个数据是否相等(true,相等/false,不相等)(新建java文件)
import java.util.Scanner ;
class KaoShi2{
public static void main(String[] args) {
Scanner sc = new Scanner(System.in) ;
int a = sc.nextInt() ;
int b = sc.nextInt() ;
boolean bijiao = (a == b)?true : false;
System.out.println(bijiao);
}
}
5.附加题 使用for循环语句写出 99乘法表