java阶段测试题答案_javase阶段考试一(Hello,world~数组)测试题及答案

一、 简单题(每题5分,共计40分)

1. 简述Java语言的跨平台特性

由于不同的操作系统中都提供了Java虚拟机进行解释执行,因此对于同一份字节码文件来说,可以实现一次编译,到处运行的美名。

2. 写出以下名词的概念和各自作用

jdk - Java开发工具包,只要做Java语言的开发就必须安装该软件。

jre - Java运行时环境,只要运行Java程序就必须安装该软件。

javac.exe - Java语言编译器,用于将高级源代码文件编译为字节码文件。

java.exe - Java语言解释器,用于启动Java虚拟机对字节码文件进行边解释边执行。

JVM - Java虚拟机,用于作为Java语言和操作系统之间的桥梁。

3. 简述Java中变量的基本概念

当需要在程序中记录单个数据内容时,则声明一个变量来记录即可,而变量的本质就是在内存中申请一块存储单元,并且该区域中的数据内容可以发生改变。

由于存储的数据内容不同导致所需的内存空间大小不同,在Java语言中使用数据类型的概念加以描述,并指定该区域一个变量名的概念来记录。

4. 标识符的命名规则

(1)由字母、数字、下划线以及美元$组成,其中数字不能开头。

(2)不能与Java语言中的关键字同名。

(3)区分大小写,长度没有限制但不宜过长。

(4)尽量做到见名知意,支持中文但不推荐使用。

5. 简述Java语言中的所有基本数据类型以及每种数据类型占用内存空间的大小

描述整数的数据类型主要有:byte/short/int/long,分别占用1个/2个/4个/8个字节大小。

描述小数的数据类型主要有:float/double,分别占用4个/8个字节大小。

描述真假的数据类型有:boolean,占用1个字节大小。

描述字符的数据类型有:char,占用2个字节。

6. 请写出if语句的三种语法格式

(1)if(条件表达式)  {语句块;}

(2)if(条件表达式)  {语句块1;}

else  {语句块2;}

(3)if(条件表达式1)  {语句块1;}

else if(条件表达式2)  {语句块2;}

... ...

else  {语句块n;}

7. 请写出声明定义数组的方式

元素类型[] 变量名= new元素类型[元素的个数];

元素类型[] 变量名= {元素1,元素2...};

8. 述单个字节表示的数值范围并写出推导过程。

非负数的表示范围是: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。

二、 编程题(每题12分,共计60分)

1. 提示用户输入一个三位数正整数并逆序输出。

/*

编程实现三位数的逆序处理并打印

*/

import java.util.Scanner;

public class TestThreeReverse{

public static void main(String[] args){

//1.提示用户输入一个三位数的正数并使用变量记录

System.out.println("请输入一个三位数的正数:");

Scanner sc = new Scanner(System.in);

int num = sc.nextInt();

//2.将输入的三位数进行逆序处理

int ia = num / 100;     //拆分百位数

int ib = num %100 / 10; //拆分十位数

int ic = num % 10;      //拆分个位数

int res = ic*100 + ib*10 + ia;

//3.打印逆序之后的结果

System.out.println(num + "逆序之后的结果是:" + res);

//System.out.println(num + "逆序之后的结果是:" + ic + ib + ia);

}

}

2. 使用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 TestScore{

public static void main(String[] args){

//1.提示用户输入考试成绩并使用变量记录

System.out.println("请输入考试成绩:");

Scanner sc = new Scanner(System.in);

int score = sc.nextInt();

//2.判断该成绩所在的等级并打印出来

if(score >= 90 && score <= 100){

System.out.println("等级A");

}

else if(score >= 80){

System.out.println("等级B");

}

else if(score >= 70){

System.out.println("等级C");

}

else if(score >= 60){

System.out.println("等级D");

}

else{

System.out.println("等级E");

}

}

}

3. 使用for循环实现1 ~ 10000之间的累加和并打印出来。

/*

编程使用for循环计算1 ~ 10000之间整数的累加和

*/

public class TestForSum{

public static void main(String[] args){

//1.声明一个int类型的变量负责记录累加和

int sum = 0;

//2.打印1 ~ 10000之间的整数的累加和

for(int i = 1; i <= 10000; i++){

sum = sum + i;

}

//3.打印最终的结果

System.out.println("sum = " + sum);

}

}

4. 使用双重循环打印2~200之间的所有素数,素数就是只能被1和本身整除的数。

/*

编程实现使用双重循环打印2~200之间的所有素数

*/

public class TestPrimeNum{

public static void main(String[] args){

for(int i=2;i<200;i++){

boolean flag = true; //默认i是质数

for(int j=2;j<=Math.sqrt(i);j++){

if(i%j == 0){//i肯定不是质数

flag = false;

break;

}

}

if(flag) System.out.println(i);

}

}

}

5. 随机生成5个整数记录到一维数组中,求出最大值和最小值以及累加和并打印出来。

/*

编程实现随机生成5个整数记录到一维数组中,求出最大值和最小值以及累加和

*/

import java.util.Random;

public class TestArr{

public static void main(String[] args){

//1.声明一个数组用于记录生成的随机数

int[] arr = new int[5];

//2.生成5个随机整数

Random ra = new Random();

for(int i = 0; i < arr.length; i++){

arr[i] = ra.nextInt();

//保证每次生成随机数不重复,让生成的随机数与之前的随机数依次比较

for(int j = i-1; j >= 0; j--){

if(arr[i] == arr[j]){

i--; //重新生成一个随机数,来覆盖重复的随机数

break; //表示跳出内层循环,找到重复随机数之后无需再比较后续

}

}

}

//3.打印数组中的所有元素值

for(int i = 0; i < arr.length; i++){

System.out.println("arr[" + i + "] = " + arr[i]);

}

//4.定义变量记录数组中的最大最小值,以及累加和

int max = arr[0];

int min = arr[0];

int sum =0;

for(int i = 0; i < arr.length; i++){

if(arr[i] > max){

max = arr[i];

}

if(arr[i] < min){

min = arr[i];

}

sum += arr[i];

}

System.out.println("数组中的最大值为:" + max);

System.out.println("数组中的最小值为:" + min);

System.out.println("数组的累加和为:" + sum);

}

}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值