Java编程基础-实验题(1)


一、实验描述

1、考核知识点

名 称:变量的类型转换

2、练习目标

掌握不同数据类型间的强制类型转换

3、需求分析

强制类型转换也叫显式类型转换,指的是两种数据类型之间的转换需要进行显式地声明。例如,两种类型彼此不兼容,或者目标类型取值范围小于源类型,都需要进行强制类型转换。

4、设计思路(实现原理)

1)编写一个类Example02

2)在Example02中的main()方法中定义一个int类型的变量i和byte类型的变量b,并将变量i的值赋给变量b

3)使用println语句打印出变量b的值

二、实验实现

代码:

static byte Example02(int i,byte b)

{

b=(byte)i;

System.out.println(b);

return b;

}

public static void main(String[] args)

{

//实验1-2 变量的强制类型转换

int i=3;

byte b=0;

Example02(i,b);

}

运行结果截图为图1-2:

图1-2运行结果在这里插入图片描述

三、实验总结

1、强制类型转换,具体格式如下:

目标类型 变量 = (目标类型)值

2、在对变量进行强制类型转换时,会发生取值范围较大的数据类型向取值范围较小的数据类型的转换,如将一个int类型的数转为byte类型,这样做极容易造成数据精度的丢失。int在内存中占用4个字节。byte类型的数据在内存中占用1个字节,当将变量i的数据在内存中占的内存大于1个字节时,前面3个高位字节的数据会丢失,数值也会发生改变。

实验1-3 运算符的优先级


一、实验描述

1、考核知识点

名称:运算符的优先级

2、练习目标

掌握运算符之间的优先级

3、需求分析

当使用不同的运算符进行运算时,应该按照一定的顺序进行运算,即根据运算符的优先级进行运算。

4、设计思路(实现原理)

1)编写一个类Example03

2)在main方法中定义两个int型变量x和y

3)将表达式3>2*x?x++:–x赋值给y

4)用输出语句分别输出变量x和y的值

二、实验实现

代码:

public static int Example03(int x,int y)

{

y=3>2*x?x++:–x;

System.out.printf(“%d,%d”,x,y);

return y;

}

//实验1-3 运算符的优先级

int x=1;

int y=3;

Example03(x,y);

运行结果截图为图1-3:

图1-3运行结果在这里插入图片描述

三、实验总结

1.本实验中表达式的运算过程如下所示:

1)在表达式y=3>2*x?x++:–x;中赋值运算符=的优先级最低,所以要先运算=右侧的表达式;

2)?:为三元运算符,该运算符的优先级较低,要先运算?前面的表达式。

3)的优先级比>的高,所以3>21为true。按照三元运算符的运算规则表达式等价于y=x++

4)x++的++在后面,所以要先进行其它运算再自增,最后结果为x=2,y=1

2、下表列举了Java中运算符的优先级,数字越小优先级越高。

在这里插入图片描述

3、其实没有必要去刻意记忆运算符的优先级。由于运算符“()”的优先级最高,编写程序时,尽量使用括号“()”来实现想要的运算顺序,以免产生歧义。

实验1-4 if条件语句


一、实验描述

1、考核知识点

名称:if条件语句

2、练习目标

掌握if条件语句的语法格式

了解if条件语句的执行流程

3、需求分析

if…else if…else语句用于对多个条件进行判断,进行多种不同的处理。本实验使用if…else if…else语句实现判断某月是哪个季节的功能。

设计思路(实现原理)

1)编写一个类Example04

2)定义一个变量month用于存储月份。

3)用if条件语句,判断这个月份在哪一个季节并输出结果,如:春季是3、4、5月,夏季是6、7、8月,秋季是9、10、11月,冬季是12、1、2月

4)由于一年只有12个月,所以要过滤除1-12以外的月份值

二、实验实现

代码:

package com.java.zjlyyds;

import java.util.Scanner;

public class test1 {

private static Scanner myScanner;

public static int Example04(int month)

{

while(month>=1&&month<=12)

{

if(month>=3&&month<=5)

{

System.out.println(“春季!”);

}

else if(month>5&&month<=8)

{

System.out.println(“夏季!”);

}

else if(month>8&&month<=11)

{

System.out.println(“秋季!”);

}

else

{

System.out.println(“冬季!”);

}

break;

}

return month;

}

public static void main(String[] args)

{

实验1-4 if条件语句

myScanner = new Scanner(System.in);

System.out.println(“请输入”);

int month = myScanner.nextInt();

Example04(month);

}

}

运行结果截图为图1-4:

图1-4运行结果在这里插入图片描述

三、实验总结

1、f…else if…else语句用于对多个条件进行判断,进行多种不同的处理。if…else if…else语句具体语法格式如下:

if (判断条件1) {

执行语句1

} else if (判断条件2) {

执行语句2

}

else if (判断条件n) {

执行语句n

} else {

执行语句n+1

}

if…else if…else语句的执行流程如图1-5所示。

图1-5流程图在这里插入图片描述

2、因为一年只有12个月,所以当month>12时是不符合逻辑的数据,这时会打印“没有这个月份”。在编程过程中,经常要考虑程序在实际环境下是否符合逻辑需求。

3、“||”表示或操作,当运算符两边的操作数任何一边的值为true时,其结果为true,当两边的值都为false时,其结果才为false。所以只要符合三个条件中的一个就会被判断为这个季节。

实验1-5 switch条件语句


一、实验描述

1、考核知识点

名称:switch条件语句

2、练习目标

熟悉switch条件语句的语法格式

了解switch条件语句的特点

3、需求分析

switch 条件语句也是一种很常用的选择语句,和if条件语句不同,它只能针对某个表达式的值作出判断,从而决定程序执行哪一段代码。本实验使用switch 条件语句实现判断选择题对错的功能。

4、设计思路(实现原理)

1)编写一个类Example05

2)定义一个变量answer用于存储答案选项

3)用switch条件语句判断如果变量answer为B则正确,其它则错误

4)如果变量answer不等于ABCD四个选择则打印“不存在此选项”

二、实验实现

代码:

package com.java.zjlyyds;

import java.util.Scanner;

public class test2 {

private static Scanner myScanner;

public static void main(String[] args) {

System.out.println(“请输入答案:”);

myScanner=new Scanner(System.in);

char answer= myScanner.next().charAt(0);

switch(answer)

{

case ‘B’:System.out.println(“正确”);break;

case ‘A’:

case ‘C’:

case ‘D’:System.out.println(“错误”);break;

default:System.out.println(“不存在此选项”);

}

}

}

运行结果截图为图1-6:

图1-6运行结果在这里插入图片描述

三、实验总结

1、switch语句的执行流程是:根据表达式的值查找与其匹配的项,如果有匹配项,则执行该匹配项下面的语句。如果没有匹配项,就会执行default后面的语句。

2、switch关键字后括号内的表达式可以是byte,short,int,char四种类型;在JDK5以后表达式可以是枚举;在.JDK7以后表达式可以是字符串。

3、switch语句只适合判断若干值的情况,不适合判断范围。

4、if和switch都可以判断值的情况,这时应该使用switch语句,因为switch的效率比if语句高。

实验1-6 while循环语句


一、实验描述

1、考核知识点

名称:while循环语句

2、练习目标

掌握while循环语句的语法格式和使用

了解while循环语句的特点

3、需求分析

while语句会反复地进行条件判断,只要条件成立,{}内的执行语句就会执行,直到条件不成立,while循环才会结束。本实验使用while语句实现统计1-10以内奇数的功能。

4、设计思路(实现原理)

1)编写一个类Example06

2)定义一个变量x为1,用while语句循环条件为x<=10

3)在while循环中,使用表达式x%2判断是否为奇数,如果为奇数,则变量count的值加1。

二、实验实现

代码:

package com.java.zjlyyds;

public class test3 {

public static void main(String[] args) {

int x=1;

int count=0;

while(x<=10)

{

if(x%2==1)

count++;

x++;

}

System.out.println(count);

}

}

运行结果截图为图1-7:

图1-7运行结果在这里插入图片描述

三、实验总结

1、while循环语句和条件判断语句有些相似,都是根据条件判断来决定是否执行大括号内的执行语句。区别在于,while语句会反复地进行条件判断,只要条件成立,{}内的执行语句就会执行,直到条件不成立,while循环结束。

2、while循环的执行流程如图1-8所示。

图1-8流程图在这里插入图片描述

实验1-7 for循环语句


一、实验描述

1、考核知识点

名称:for循环语句

2、练习目标

掌握for循环语句的语法格式和使用

了解for循环语句的特点

3、需求分析

for循环语句是最常用的循环语句,一般用在循环次数已知的情况下。本实验使用for循环语句计算1+2+3+4+5…+100表达式的结果

4、设计思路(实现原理)

1)编写一个类Example07

2)在该类中定义一个变量sum来存储每次循环整数相加的和。

3)在for循环语句中定义变量x,循环条件为x<=100

二、实验实现

定义Example07类:

public class Example07 {

public static void main(String[] args) {

int count = 0;

for (int x = 1; x <= 100; x++) {

count += x;

}

System.out.println(count);

}

}

运行结果截图为图1-9:

图1-9编译结果在这里插入图片描述

三、实验总结

1、在for循环中,for关键字后面()中包括了三部分内容:初始化表达式、循环条件和操作表达式,它们之间用“;”分隔,{}中的执行语句为循环体。

2、通过序号来具体分析for循环的执行流程。具体如下:

for(① ; ② ; ③){

}

第一步,执行①

第二步,执行②,如果判断结果为true,执行第三步,如果判断结果为false,执行第五步

第三步,执行④

第四步,执行③,然后重复执行第二步

第五步,退出循环

实验1-8 for循环嵌套


一、实验描述

1、考核知识点

名称:循环嵌套

2、练习目标

掌握循环嵌套的使用和执行顺序

3、需求分析

在编程过程中,经常需要双重循环或多重循环,这就需要循环语句的嵌套。最常见的循环嵌套就是在for循环中嵌套for循环。为了让初学者熟悉for循环嵌套的使用,本实验将演示如何用for循环嵌套打印由 星组成的直角三角形。具体要求如下:

在这里插入图片描述

4、设计思路(实现原理)

在这里插入图片描述

二、实验实现

定义Example08类:

public class Example08 {

public static void main(String[] args) {

// TODO Auto-generated method stub

for (int i = 0; i < 5; i++) {

for (int j = 5 - i; j >= 1; j–)

System.out.print(“*”);

System.out.println();

}

}

}

运行结果截图为图1-10:

图1-10运行结果在这里插入图片描述

三、实验总结

由于嵌套循环程序比较复杂,下面分步骤进行讲解,具体如下:

第一个三角形:

1、当x=0时,y=0且y<5,循环5次,完成后返回到外层循环进行换行。

2、当x=1时,y=1且y<5,循环4次,完成后返回到外层循环换行。

3、当x=2时,y=2,循环3次,完成后返回到外层循环换行。

4、当x=3时,y=3,循环2次,完成后返回到外层循环换行。

5、当x=4时,y=4,循环1次,完成后返回到外层循环换行。由于x<5所以循环终止,打印结束。

第二个三角形:

1、当x=0时,y=0且y<=0,循环1次,完成后返回到外层循环进行换行。

2、当x=1时,y=0且y<=1,循环2次,完成后返回到外层循环进行换行。

3、当x=2时,y=0且y<=2,循环3次,完成后返回到外层循环进行换行。

4、当x=3时,y=0且y<=3,循环4次,完成后返回到外层循环进行换行。

5、当x=4时,y=0且y<=4,循环5次,完成后返回到外层循环进行换行。由于x<5所以循环终止,打印结束。

实验1-9 方法的定义


一、实验描述

1、考核知识点

名称:方法的定义

2、练习目标

掌握方法的定义

3、需求分析

为了减少重复代码编写的问题,Java中可以将具有相同功能的重复代码提取出来,封装成方法。本实验定义一个方法,该方法能够实现四则运算的功能。

4、设计思路(实现原理)

1)编写一个类Example09

2)定义一个方法siZe,设置三个参数,两个数字为int型,一个符号为char型

3)在方法中,用if选择语句根据传入的符号参数进行不同的运算

4)如果传入的符号不包含在加减乘除四个符号中则输出“符号错误”

5)在main方法中调用方法计算3*0的结果,测试方法是否成功运算出正确结果

二、实验实现

定义Example09类:

import java.util.Scanner;

public class Example09 {

public static int siZe(int a, int b, char c) {

if (c == ‘+’)

return a + b;

else if (c == ‘-’)

return a - b;

else if (c == ‘*’)

return a * b;

else if (c == ‘/’)

return a / b;

else

System.out.println(“符号错误”);

return 0;

}

public static void main(String[] args) {

int a, b;

char c;

while (true) {

Scanner in = new Scanner(System.in);

System.out.println(“请输入2个整数及运算符号”);

a = in.nextInt();

b = in.nextInt();

c = in.next().charAt(0);

int p = siZe(a, b, c);

System.out.println§;

}

}

}

运行结果截图为图1-11:

图1-11运行结果在这里插入图片描述

三、实验总结

1、在Java中,声明一个方法的具体语法格式如下:

修饰符 返回值类型 方法名([参数类型 参数名1,参数类型 参数名2,......]){

// 执行语句

return 返回值;

}

2、需要特别注意的是,方法中的“参数类型 参数名1,参数类型 参数名2”被称作参数列表,它用于描述方法在被调用时需要接收的参数,如果方法不需要接收任何参数,则参数列表为空,即()内不写任何内容。方法的返回值必须为方法声明的返回值类型,如果方法中没有返回值,返回值类型要声明为void,此时,方法中return语句可以省略。

实验1-10 方法的重载


一、实验描述

1、考核知识点

名称:方法的重载

2、练习目标

了解重载的定义

掌握方法重载的用法

3、需求分析

方法重载指的是方法名相同,参数类型或个数不同。本实验通过方法重载的方式实现九九乘法表的打印

4、设计思路(实现原理)

1)编写一个类Example10

2)在Example10中定义一个带参数的方法print99,该参数用于指定乘法表打印的行数

3)在Example10中定义一个方法print99,此方法没有参数。

4)在main方法中分别调用无参方法print99()和有参方法print99(6),测试两个重载的方法print99能否成功打印出符合要求的乘法表。

写在最后

为了这次面试,也收集了很多的面试题!

以下是部分面试题截图

Java程序员秋招三面蚂蚁金服,我总结了所有面试题,也不过如此

运行结果截图为图1-11:

图1-11运行结果在这里插入图片描述

三、实验总结

1、在Java中,声明一个方法的具体语法格式如下:

修饰符 返回值类型 方法名([参数类型 参数名1,参数类型 参数名2,......]){

// 执行语句

return 返回值;

}

2、需要特别注意的是,方法中的“参数类型 参数名1,参数类型 参数名2”被称作参数列表,它用于描述方法在被调用时需要接收的参数,如果方法不需要接收任何参数,则参数列表为空,即()内不写任何内容。方法的返回值必须为方法声明的返回值类型,如果方法中没有返回值,返回值类型要声明为void,此时,方法中return语句可以省略。

实验1-10 方法的重载


一、实验描述

1、考核知识点

名称:方法的重载

2、练习目标

了解重载的定义

掌握方法重载的用法

3、需求分析

方法重载指的是方法名相同,参数类型或个数不同。本实验通过方法重载的方式实现九九乘法表的打印

4、设计思路(实现原理)

1)编写一个类Example10

2)在Example10中定义一个带参数的方法print99,该参数用于指定乘法表打印的行数

3)在Example10中定义一个方法print99,此方法没有参数。

4)在main方法中分别调用无参方法print99()和有参方法print99(6),测试两个重载的方法print99能否成功打印出符合要求的乘法表。

写在最后

为了这次面试,也收集了很多的面试题!

以下是部分面试题截图

[外链图片转存中…(img-r4r9pQra-1714500383103)]

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值