1、实验 2 Java 语言基础实验一、 实验目的1. 掌握 Java 语言的基本数据类型、字符串、数组2. 掌握 Java 语言的运算符、表达式、语句3能够编写 Java 应用程序 二、实验内容1. 局部变量与 final 变量实验2. 基本数据类型与转换实验3. 算术运算的精度问题实验4. 移位运算实验5. 运算赋值实验6. 短路逻辑运算实验7. 编程实验:输出 Unicode 特定区间的字符。8. 编程实验:分析输入的数字3、 实验步骤1. 局部变量与 final 变量实验。编写以下程序,并回答问题。public class LocalVariableInitExample public s
2、tatic void main(String args) int a ; System.out.print(a); final int b = 100;b+;System.out.print(b); 请问上述程序有何错误?如何改正?2. 基本数据类型与转换实验。编写以下程序,分析代码的输出结果,并回答问题。class Test2public static void main(String args)System.out.println(“第 1 段测试代码输出“); System.out.println(byte)255);System.out.println(short)65535);Sys
3、tem.out.println(byte)-129);System.out.println(byte)129);System.out.println(byte)128);System.out.println(“第 2 段测试代码输出“); int i = 123456789;float f = i;System.out.println(f);long j = 123456789123456789L;double d = j;System.out.println(d);System.out.println(“第 3 段测试代码输出“); System.out.println(077);Syste
4、m.out.println(0x77);System.out.println(77); 请分析并回答以下问题:(1) 分析第 1 段代码,说明在什么情况下,int 类型的数字转换为 byte 或者 short 类型,会出现符号变化,即正数变负数,负数变正数?为何输出会不同?(2) 分析第 2 段代码,说明整数类型向浮点型转型是否可能出现精度损失,是否需要强制转换。(3) 分析第 3 段代码,说明整数的八进制、十六机制、十进制的书写格式(即字面值格式)都是什么?3. 算术运算的精度问题实验。编写以下程序,并回答问题。class Test3public static void main(Strin
5、g args)short a = 10;a = a + 2; byte b = 1;b = b + 1; short a = 10;byte b = 5;a = a + b; char c = a;c = c+1; 请问上述程序有何错误?如何改正?4. 移位运算实验。编写以下程序,分析代码的输出结果,并回答问题。class Test4public static void main(String args)System.out.println(“第 1 段测试代码输出“);System.out.println(132);System.out.println(1L32);System.out.pr
6、intln(“第 2 段测试代码输出“);System.out.println(105);System.out.println(-105);System.out.println(“第 3 段测试代码输出“); System.out.println(11);System.out.println(-21);请分析并回答以下问题:(1) 分析第 1 段代码,为何输出会不同?(2) 分析第 2 段代码,正整数右移的最小值是什么?负整数右移的最大值是什么?(3) 分析第 3 段代码,三个语句输出为何不同?(4) 分析第 4 段代码,两个语句输出为何不同?(5) 分析第 5 段代码,两个移位运算是否等价?
7、(6) 分析第 6 段代码, q1”和“-11”有何差别?5. 运算赋值实验。编写以下程序,并回答问题。class Test5public static void main(String args) byte a = 10;a = a 1; / 是否出错?a = 1; / 是否出错?char c = a; c = c + 1;/ 是否出错?c += 1; / 是否出错? 上述程序代码有何编译错误?并请说明运算赋值的特点。6. 短路逻辑运算实验。编写以下程序,并回答问题。class test6public static void main(String args) int x = 1, z =
8、2; System.out.println(“第 1 段测试代码输出“); if(falseelseSystem.out.println(z);z = 2; x =1;System.out.println(“第 2 段测试代码输出“); if(trueelseSystem.out.println(z); x=0; z = 2; System.out.println(“第 3 段测试代码输出“); if(true|(x = (z = 1) System.out.println(z);x=0; z = 2; System.out.println(“第 4 段测试代码输出“); if(false|(
9、x = (z =1)|true)System.out.println(z);请分析并回答以下问题:(1) 第 1 段代码的输出结果是什么,为何?(2) 第 2 段代码的输出结果是什么,为何?(3) 第 3 段代码的输出结果是什么,为何?(4) 第 4 段代码的输出结果是什么,为何?7. 编程实验:输出 Unicode 特定区间的字符。功能要求:屏幕输出所有大写英文字母、小写字母) 、某两个汉字字符之间的所有 Unicode 字符。提示:以下代码可以输出所有大写字母。8. 编程实验:分析输入的数字。功能要求:输入若干个数字,依次判断这些数字是否是奇数、平方数、素数,并输出判断信息。设计要求:需要设计静态方法 isOdd(int n)来判断参数 n是否是奇数;相似地,还需要设计静态方法 isSquareNumber(int n)和 isPrime(int n),来分别用于判断参数 n 是否是平方数、素数。