实验1Java编程基础
![实验1Java编程基础](https://img.360docs.net/imgd5/1ozwuxqrnjttc4audvpnzy58h1u2883z-51.webp)
![实验1Java编程基础](https://img.360docs.net/imgd5/1ozwuxqrnjttc4audvpnzy58h1u2883z-f2.webp)
实验1 Java编程基础
一、实验目的
1.熟悉基本数据类型,包括其所占字节数、数值范围及常数的后缀形式;
2.掌握变量的声明、初始化方法,能够正确区分全局变量(即成员变量)和局部变量(即本地变量);4.掌握算术运算符(+、-、*、/、%)和自增(++)、自减(--)运算符的用法;
5.掌握关系运算符()、>=、<、<=、==、!=)和逻辑运算符(!、&&、||)的使用;
6.掌握if…else…语句的单分支、双分支、多分支结构的使用;
7.掌握switch语句用法;
8.熟悉循环结构的初始化部分、条件判断部分、修改条件部分、循环体部分的功能;
9.掌握for语句的使用,熟悉for语句的简单应用(累加、连乘积、分类统计);
10.掌握while语句的使用;
11.掌握do…while语句的使用,能够正确区分do…while与while的不同之处;
12.熟悉Java程序的常用输入输出格式;
13.掌握一维数组:声明,创建,初始化,数组元素的访问;
14.掌握多维数组的概念:二维数组的声明,初始化,元素的访问。
二、实验内容与步骤
1.应用程序若要输出如图2-1所示结果,请将程序所缺代码填充完整,并加以运行:
图2-1程序运行结果
程序代码:
________________ Diamond {
_____________________ main(__________ args[]) {
System.out.println(" *");
System.out.println(" * *");
System.out.println(" * *");
System.out.println("* *");
____________________________;
____________________________;
____________________________;
}
}
2.请按下列要求,将程序代码填充完整,并加以运行:
public class Test {
// 初始值为0的整型变量 b1
// 初始值为10000的长整型变量b2
// 初始值为3.4的浮点型变量b3
// 初始值为34.45的双精度型变量b4
// 初始值为'’4’的字符型变量b5
// 初始值为true的布尔型变量b6
public static void main(String ________) {
// 输出变量b1——b6的值
}
}
3.输入下列程序内容,运行程序,并回答相关问题:
public class DataType {
public static void main(String args[]) {
byte a1 = 126, a2 = (byte) 256, a3 = 'A';
System.out.println("a1=" + a1 + "\ta2=" + a2 + "\ta3=" + a3);
int b1 = 12345, b2 = (int) 123456789000L, b3 = '0', b4 = 0xff;
System.out.println("b1=" + b1 + "\tb2=" + b2 + "\tb3=" + b3 + "\tb4="+ b4);
char c1 = 'a', c2 = 98, c3 = '\u0043', c4 = '\n';
System.out.println("c1=" + c1 + "\tc2=" + c2 + c4 + "c3=" + c3);
}
}
问题:
(1)变量a2、a3的输出内容是什么?为何出现这种变化?
(2)变量b2、b3的输出内容是什么?为何出现这种变化?;
(3) '\t'、'\n'各有什么特殊用途?
(4)System.out的println()方法与print()方法有什么不同?
(5)如何声明、初始化一个变量?
(6)b4初始化时,被赋予什么进制的数?
(7)写出声明ch为字符型变量、并初始化为'c'的三种不同写法。
4.写出下列程序的运行结果,并解释其原因:
public class Pass {
static int j = 20;
public static void main(String args[]) {
int i = 10;
Pass p = new Pass();
p.aMethod(i);
System.out.println("i=" + i);
System.out.println("j=" + j);
}
public void aMethod(int x) {
x = x * 2;
j = j * 2;
}
}
5.本程序用到关系运算符、逻辑运算符。请填充程序所缺代码,使之输出如下结果:public class RelationLogical {
public static void main(String args[]) {
boolean a = (35 >= 62);
boolean b = ('C' < 'z');
System.out.println("a=" + a);
System.out.println("b=" + b);
System.out.println(____________);
System.out.println(____________);
System.out.println(____________);
System.out.println(____________);
}
}
程序运行结果如图2-2所示:
图2-2 程序运行结果
6. 打印出所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个"水仙花数",因为153=1的三次方+5的三次方+3的三次方。 1.程序分析:利用for循环控制100-999个数,每个数分解出个位,十位,百位。
7. 输出9*9口诀。
程序分析:分行与列考虑,共9行9列,i控制行,j控制列。
8.一维数组的使用:根据注释填充程序所缺代码,然后编译、运行该程序,并回答相关问题:
//一维数组:声明,创建,初始化,数组元素的引用及数组拷贝
public class ArrayDemo1 {
public static void main(String[] args){
_______________; // 声明一个名为week的String类型的一维数组
_______________________; // 为week数组分配存放7个字符串的空间
for (int i=0; i System.out.println("week["+i+"] = "+___________); System.out.println(); String FuWa[]={"贝贝","晶晶" ,"欢欢" ,"迎迎", "妮妮"}; for (int i=0; i<___________;i++) // 输出FUWa数组各元素的值 System.out.println("FuWa["+i+"] = "+FuWa[i]); } } 问题: (1)一维数组如何声明、创建?如果没有给数组元素赋值,则它们的取值如何? (2)数组的静态初始化具有什么功能? (3)要了解数组元素的个数,可用访问数组的什么属性得到? (4)怎样引用数组的元素?写出它的下标取范围。 9.二维数组的使用:根据注释填充所缺代码,然后编译、运行该程序,并回答相关问题: //二维数组:声明,创建,动态初始化,数组元素的引用 public class ArrayDemo2 { public static void main(String[] args){ // 声明一个名为myArray的数组,该数组有2行,每行列数不等,并为其分配内存空间 ________________________; myArray[0]=new int[5]; // 第一行有5个元素,并为其分配内存空间 ________________________; // 第二行有10个元素,并为其分配内存空间 for (int j=0; j for (int j=0; j<________________;j++) // 用100-200之间的随机整数给第二行元素赋值myArray[1][j]=(int)(Math.random()*100+100); for (int i=0; i<______________;i++){ // 输出myArray数组各元素的值 for (int j=0; j System.out.print(myArray[i][j]+" "); } System.out.println(); } } } 问题: (1)二维数组如何声明、创建?二维数组的列数是否一定要求相同? (2)二维数组如何动态初始化? (3)怎样理解“多维数组是数组的数组”?length作用于不同的数组:myArray.length,myArray[0].length,myArray[1].length,结果什么不同? (4)怎样引用数组的元素?它们下标取值范围怎样?