- 简单题(每题5分,共计50分)
- 简述Java语言跨平台的原理
Java跨平台的特性,也就是同一份字节码文件可以在不同的系统上执行,
由不同系统中的Java虚拟机负责翻译成对应的机器指令。
- 写出以下名词的概念和各自作用
jre - Java运行时环境信息,只要运行Java编写的应用程序就需要安装。
jdk - Java开发工具包,只要编写Java应用程序就需要安装,该工具包中包含了jre。
jvm - Java虚拟机,将字节码文件解释为机器指令。
javac.exe - Java编译器,用于将高级源代码文件转换为字节码文件。
java.exe - Java解释执行器,用于将字节码文件通过Java虚拟机解释并执行起来。
- 简述Java中变量的基本概念和定义形式
变量就是指在内存中申请的一块存储区域,用来存储各种类型的数据。根据所存储的数据大小不同,有各种不同数据类型的变量。具体的形式为:
数据类型 变量名 = 初始值; -其中=初始值可以省略,分号不可以省略。
- 变量的主要分类
按所属的数据类型划分:
基本数据类型变量
引用数据类型变量
按被声明的位置划分:
局部变量:方法或语句块内部定义的变量
成员变量:方法外部、类的内部定义的变量
- 标识符的命名规则
(1)由字母、数字、下划线以及美元$组成,数字不能开头。
(2)标识符长度没有明确的限定,但是不要太长。
(3)不能与java中的关键字同名,如:public class int ...
(4)区分大小写。
(5)可以是汉字,但是不推荐使用。
- 简述Java语言中的所有基本数据类型以及每种数据类型占用内存空间的大小
描述整数的数据类型主要有:byte/short/int/long,分别占用1个/2个/4个/8个字节大小。
描述小数的数据类型主要有:float/double,分别占用4个/8个字节大小。
描述真假的数据类型有:boolean,占用1个字节大小。
描述字符的数据类型有:char,占用2个字节。
- 简述二进制和十进制,十进制和二进制之间的转换方法
(1)非负十进制转换为二进制
除2取余法,使用十进制整数不断地除以2取出余数,当商为0时反向组织所有二进制数字。
拆分法:就是将十进制整数拆分为多个2的次方组成的和。
(2)非负二进制转换为十进制
采用加权法,也就是将每个数字和当前的权重相乘,再加起来即可。
(3)负二进制转换为十进制
将二进制的每位数字按位取反,再加1,转换为十进制后再添加负号。
(4)负十进制转换为二进制
将十进制整数的绝对值拆分为二进制,再按位取反,最后加1。
- 请写出if语句的三种语法格式
(1)if(条件表达式) {语句块;}
(2)if(条件表达式) {语句块1;}
else {语句块2;}
(3)if(条件表达式1) {语句块1;}
else if(条件表达式2) {语句块2; }
... ...
else {语句块3;}
- 请写出声明定义数组的方式(至少两种)
元素类型[] 变量名 = new 元素类型[元素的个数];
元素类型[] 变量名 = {元素1,元素2...};
元素类型[] 变量名 = new 元素类型[]{元素1,元素2...}
- 述单个字节表示的数值范围并写出推导过程。
非负数的表示范围是:0000 0000 ~ 0111 1111 => 0 ~ 127 => 0 ~ 2^7-1
0111 1111 => 64 + 32 + 16 + 8 + 4 + 2 + 1 => 127
负数的表示范围是:1000 0000 ~ 1111 1111 => -128 ~ -1 => -2^7 ~ -2^0
1000 0000 => 0111 1111 => 1000 0000 => 128 => -128
1111 1111 => 0000 0000 => 0000 0001 => 1 => -1
综上所述:
1个字节所能表示的十进制整数范围是:-128 ~ 127,也就是-2^7 ~ 2^7-1。
- 编程题(每题10分,共计50分)
- 使用if-else if-else分支结构根据用户输入的成绩判断所在的等级并打印出来。
[90 ~ 100] 打印等级A
[80 ~ 89] 打印等级B
[70 ~ 79] 打印等级C
[60 ~ 69] 打印等级D
[0 ~ 59] 打印等级E
import java.util.Scanner;
public class text {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入查询成绩: ");
int aa = sc.nextInt();
if(aa >= 90 && aa<=100) {
System.out.println("A");
}
if(aa>=80&&aa<=89) {
System.out.println("B");
}
if(aa>=70&&aa<=79) {
System.out.println("C");
}
if(aa>=60&&aa<=69) {
System.out.println("D");
}
if(aa>=0&&aa<=59) {
System.out.println("E");
}
}
}
- 提示用户输入一个正整数并逆序输出。
import java.util.Scanner;
public class text {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入整数: ");
int bb = sc.nextInt();
int num=0;
while (bb!=0) {
num = bb%10+num*10;
bb = bb/10;
}
System.out.println("倒序输出:"+num);
}
}
3.编程实现1 - 100之间随机数的生成,给用户十次输入机会来猜出生成的数字,如果输入数字等于随机数就打印“恭喜你猜对了”,并结束循环;如果输入数字小于随机数就打印“太小了,再大一点吧”;如果输入数字大于随机数就打印“太大了,再小一点吧”;如果十次机会用完也没有猜对就打印“太笨了,下次再来吧”。
import java.util.Random;
import java.util.Scanner;
public class text {
public static void main(String[] args) {
int number = (int)(Math.random()*100);
Scanner sc = new Scanner(System.in);
int a=0;
do {
a++;
if(a>10) {
System.out.println("太笨了,下次再来吧");
break;
}
System.out.println("请输入100以内整数: ");
int bb = sc.nextInt();
if(bb<number) {
System.out.println("太小了,再大一点吧");
}else if(bb>number) {
System.out.println("太大了,再小一点吧");
}else{
System.out.println("恭喜你猜对了");
break;
}
System.out.println("还剩"+(10-a)+"次机会");
}while(true);
}
}
4.使用双重循环打印2~200之间的所有素数。
public class text {
public static void main(String[] args) {
for (int i = 2; i < 200; i++) {
boolean a = true;
for (int j = 3; j < i; j++) {
if(i%j==0) {
a = false;
break;
}
}
if(a) {
System.out.println(i);
}
}
}
}
- 已知一个int数组arr = {12,4,22,11,24,9},找出最大值和最小值并打印。
public class text {
public static void main(String[] args) {
int []arr ={12,4,22,11,24,9};
int min =0;
int max =0;
min=max=arr[0];
for(int i=0;i<arr.length;i++) {
if(arr[i]>max)
max=arr[i];
if(arr[i]<min)
min=arr[i];
}
System.out.println("数组的最大值是:"+max);
System.out.println("数组的最小值是:"+min);
}
}
原文地址:https://www.cnblogs.com/kindsong/p/9601597.html