From d386fb177eda82f18efbccb497a6f43f4864796d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=94=A1=E7=9B=9F?= <3098697928@qq.com> Date: Thu, 30 Mar 2023 23:09:25 +0800 Subject: [PATCH 1/4] =?UTF-8?q?=E8=BF=90=E7=AE=97=E7=AC=A6=E4=B8=8E?= =?UTF-8?q?=E7=BB=83=E4=B9=A01?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...27\347\254\246\344\275\234\344\270\232.md" | 158 ++++++++++++++++++ ...\344\270\232-\347\273\203\344\271\2401.md" | 120 +++++++++++++ 2 files changed, 278 insertions(+) create mode 100644 "04 \350\224\241\347\233\237/01.\346\257\217\346\227\245\344\275\234\344\270\232-\350\277\220\347\256\227\347\254\246\344\275\234\344\270\232.md" create mode 100644 "04 \350\224\241\347\233\237/02.\346\257\217\346\227\245\344\275\234\344\270\232-\347\273\203\344\271\2401.md" diff --git "a/04 \350\224\241\347\233\237/01.\346\257\217\346\227\245\344\275\234\344\270\232-\350\277\220\347\256\227\347\254\246\344\275\234\344\270\232.md" "b/04 \350\224\241\347\233\237/01.\346\257\217\346\227\245\344\275\234\344\270\232-\350\277\220\347\256\227\347\254\246\344\275\234\344\270\232.md" new file mode 100644 index 0000000..97815e3 --- /dev/null +++ "b/04 \350\224\241\347\233\237/01.\346\257\217\346\227\245\344\275\234\344\270\232-\350\277\220\347\256\227\347\254\246\344\275\234\344\270\232.md" @@ -0,0 +1,158 @@ +​ + +**1、判断一个字符数据是否是数字字符 ** + +**分析:** + +​ 1、需要判断一个字符是否是数字字符,首先需要提供一个字符数据 + +​ 2、字符是否为数字字符: 数字字符的范围 0 - 9 之间都属于数字字符,因此提供的字符只要大于或等于字符0,并且还要下于或等于字符9即可。 + +​ 3、判断完成之后,打印判断的结果。 + +```java +import java.util.Scanner; +public class 题1 { + public static void main(String[] args) { + System.out.println("请输入字符"); + Scanner sc=new Scanner(System.in); + char b =sc.next().charAt(0); + char a = '1'; + if (b>='0' & b<='9'){ + System.out.println("是"); + }else{ + System.out.println("否"); + } + } + +} +``` + +**2、判断一个字符数据是否是字母字符** + +**分析:** + +​ 1、需要判断一个字符是否是字母字符,首先需要提供一个字符数据 + +​ 2、字符是否为字母字符: 数字字符的范围 a - z 或者 A - Z 之间都属于字母字符,因此提供的字符只要大于或等于a,并且还要下于或等于z 或者 大于或等于A,并且还要下于或等于Z + +​ 3、判断完成之后,打印判断的结果。 + +```java +import java.util.Scanner; +public class 题2 { + public static void main(String[] args) { + System.out.println("请输入字符"); + Scanner sc = new Scanner(System.in); + char b =sc.next().charAt(0); + char a ='1'; + if ((b>= 'a' && b <='z') || (b>='A' && b<='Z')){ + System.out.println("是"); + }else{ + System.out.println("否"); + } + } +} +``` + +**3、判断指定的年份是否为闰年,请使用键盘录入** + +**分析:** + +​ 1、闰年的判断公式为:能被4整除,但是不能被100整除 或者 能被400整除 + +​ 2、首先需要提供一个需要判断的年份,判断完成之后,打印判断的结果。 + +```java +import java.util.Scanner; +public class 题3 { + public static void main(String[] args) { + System.out.println("请输入年份"); + Scanner scanner=new Scanner(System.in); + int b= scanner.nextInt(); + if ((b%4==0||b%100!=0) && (b%400==0)){ + System.out.println(b+"是闰年"); + }else{ + System.out.println(b+"不是闰年"); + } + } +} +``` + +**4、判断一个数字是否为水仙花数,请使用键盘录入** + +水仙花是指3位数字,表示的是每位上的数字的3次幂相加之后的和值和原数相等,则为水仙花数, + +**分析:** + +​ 如:153 ---> 1×1×*1 + 5*×5×*5 + 3×*3×3 = 153; 就是水仙花数 + +​ 1、首先需要提供一个需要判断的3位数字,因此需要一个数值 + +​ 2、判断的过程 + +​ a) 将3位数字的每一位上的数字拆分下来 + +​ b) 计算每位数字的3次幂之和 + +​ C) 用和值 和 原来的数字进行比较 + +​ D) 打印判断的比较结果即可 + +```java +import java.util.Scanner; +public class 题4 { + public static void main(String[] args) { + System.out.println("请输入三位数的数字"); + Scanner scanner=new Scanner(System.in); + int a = scanner.nextInt(); + int a1=a%10; + int a2=a/10%10; + int a3=a/100%10; + int a4=a1*a1*a1+a2*a2*a2+a3*a3*a3; + if (a4==a){ + System.out.println(a+"是水仙花数"); + }else{ + System.out.println(a+"不是水仙花数"); + } + } +} +``` + +**5、判断一个5位数字是否为回文数,使用键盘录入** + +五位数的回文数是指最高位和最低位相等,次高位和次低位相等。如:12321  23732  56665 + +**分析:** + +​ 1、首先需要提供一个需要判断的5位数字,因此需要一个数值 + +​ 2、判断的过程 + +​ a) 将5位数字的万、千、十、个位数拆分出来 + +​ b) 判断比较万位和个位 、 千位和十位是否相等 + +​ 3、判断完成之后,打印判断的结果。 + + + +```java +import java.util.Scanner; +public class 题5 { + public static void main(String[] args) { + System.out.println("请输入一个五位数的数字"); + Scanner scanner = new Scanner(System.in); + int a = scanner.nextInt(); + int a1 = a % 10; + int a2 = a / 10 % 10; + int a3 = a / 1000 % 10; + int a4 = a / 10000 % 10; + if (a1 == a4 && a2 == a3) { + System.out.println(a + "是回文数"); + } else { + System.out.println(a + "不是回文数"); + } + } +} +``` diff --git "a/04 \350\224\241\347\233\237/02.\346\257\217\346\227\245\344\275\234\344\270\232-\347\273\203\344\271\2401.md" "b/04 \350\224\241\347\233\237/02.\346\257\217\346\227\245\344\275\234\344\270\232-\347\273\203\344\271\2401.md" new file mode 100644 index 0000000..c19e964 --- /dev/null +++ "b/04 \350\224\241\347\233\237/02.\346\257\217\346\227\245\344\275\234\344\270\232-\347\273\203\344\271\2401.md" @@ -0,0 +1,120 @@ +# 知识点 + +运算符 + +## 题目1(训练) + +身高是具有遗传性的,子女的身高和父母的身高有一定的关系。假定,父母和子女的身高遗传关系如下: + +​ 儿子身高(厘米)=(父亲身高+母亲身高) ×1.08÷2 + +​ 女儿身高(厘米)=(父亲身高×0.923+母亲身高) ÷2 + +现有父亲身高177CM,母亲身高165CM。求子女身高分别预计为多少? + + + +### 训练提示 + +1. 已知的父母身高如何用代码体现? + +2. 题目中的公式如何转化为代码? + +### 解题方案 + +1. 使用变量的定义和算术运算符完成本题 + +### 操作步骤 + +1. 定义小数变量代表父亲身高 + +2. 定义小数变量代表母亲身高 + +3. 通过儿子身高计算方式计算儿子身高 + +4. 通过女儿身高计算方式计算女人身高 + +```java +import java.util.Scanner; +public class 题1 { + public static void main(String[] args) { + int a = 177; + int b = 165; + System.out.println("儿子的身高为"+(a+b)*1.08/2+"cm"); + System.out.println("女儿的身高为"+(a*0.923+b)/2+"cm"); + } +} +``` + +## 题目2(训练) + +红茶妹妹有21元钱,她攒了几天钱之后自己的钱比原来的两倍还多三块。绿茶妹妹有24元钱,她攒了几天钱之后自己的钱正好是原来的两倍。那么红茶和绿茶现在的钱一样多,请问对么? + +### 训练提示 + +1. 用什么知识点来计算她们现在的钱有多少? +2. 如何对比两个人的钱数? + +### 解题方案 + +1. 使用赋值运算符和算术运算符计算各自的钱,使用比较运算符对比大小 + +### 操作步骤 + +1. 定义红茶妹妹原来的钱为整数变量 +2. 定义绿茶妹妹原来的钱为整数变量 +3. 使用赋值运算符和算术运算符计算其现有的钱 +4. 使用比较运算符对数值做出比较 + +```java +import java.util.Scanner; +public class 题2 { + public static void main(String[] args) { + int a=21; + int b=24; + if (a*2+3==b*2){ + System.out.println("红茶和绿茶的钱一样多是对的"); + }else{ + System.out.println("红茶和绿茶的钱一样多是错的"); + } + } +} + +``` + +## 题目3(综合) + +某小伙想定一份外卖,商家的优惠方式如下:鱼香肉丝单点24元,油炸花生米单点8元,米饭单点3元。订单满30元8折优惠。鱼香肉丝优惠价16元,但是优惠价和折扣不能同时使用。那么这个小伙要点这三样东西,最少要花多少钱? + +### 训练提示 + +1. 有两种购买方式,一种是不使用优惠价,另一种是使用优惠价。分别计算花费后,对两种方式的花费作对比。 + +### 解题方案 + +1. 使用算术运算符、赋值运算符和三元运算符联合完成本题 + +### 操作步骤 + +1. 使用算术运算符求出不使用优惠时的总价 +2. 使用三元运算符判断总价是否满足打折条件,并求出折后总价 +3. 使用算术运算符求出使用优惠价时的总价 +4. 使用三元运算符判断最终更合算的购买方式和花费 + +### 参考答案 + +```java +import java.util.Scanner; +public class 题3 { + public static void main(String[] args) { + int a=24+8+3; + int b=16+8+3; + if (a>=30 && a*0.8>b){ + System.out.println("不使用优惠价花的最少花"+a*0.8+"元"); + }else{ + System.out.println("使用优惠价花的最少花"+b+"元"); + } + } +} + +``` \ No newline at end of file -- Gitee From 70d841e722b0679ec9ab4a09918edab03579dea2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=94=A1=E7=9B=9F?= <3098697928@qq.com> Date: Tue, 4 Apr 2023 13:28:54 +0800 Subject: [PATCH 2/4] =?UTF-8?q?Java=E5=9F=BA=E7=A1=80=E8=AF=AD=E6=B3=95?= =?UTF-8?q?=E6=89=A9=E5=B1=95=E4=BD=9C=E4=B8=9A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...51\345\261\225\344\275\234\344\270\232.md" | 270 ++++++++++++++++++ 1 file changed, 270 insertions(+) create mode 100644 "04 \350\224\241\347\233\237/02_Java\345\237\272\347\241\200\350\257\255\346\263\225\346\211\251\345\261\225\344\275\234\344\270\232.md" diff --git "a/04 \350\224\241\347\233\237/02_Java\345\237\272\347\241\200\350\257\255\346\263\225\346\211\251\345\261\225\344\275\234\344\270\232.md" "b/04 \350\224\241\347\233\237/02_Java\345\237\272\347\241\200\350\257\255\346\263\225\346\211\251\345\261\225\344\275\234\344\270\232.md" new file mode 100644 index 0000000..46ff525 --- /dev/null +++ "b/04 \350\224\241\347\233\237/02_Java\345\237\272\347\241\200\350\257\255\346\263\225\346\211\251\345\261\225\344\275\234\344\270\232.md" @@ -0,0 +1,270 @@ +# 巩固题 + +## 1、强制类型转换练习 + +(1)先声明两个byte类型的变量b1,b2,并分别赋值为10和20,求b1和b2变量的和,并将结果保存在byte类型的变量b3中,最后输出b3变量的值 + +```java +public class 题1 { + public static void main(String[] args) { + byte b1=10; + byte b2=20; + byte b3= (byte) (b1+b2); + System.out.println("b3变量的值为"+b3); + + } +} +``` + +(2)先声明两个short类型的变量s1,s2,并分别赋值为1000和2000,求s1和s2变量的和,并将结果保存在short类型的变量s3中,最后输出s3变量的值 + +```java +public class 题2 { + public static void main(String[] args) { + short s1=1000; + short s2=2000; + short s3= (short) (s1+s2); + System.out.println("s3变量的值为"+s3); + } +} +``` + +(3)先声明1个char类型的变量c1赋值为'a',再声明一个int类型的变量num赋值为5,求c1和num变量的和,并将结果将结果保存在char类型的变量letter中,最后输出letter变量的值。 + +```java +public class 题3 { + public static void main(String[] args) { + char c1='a'; + int num=5; + char letter= (char) (c1+num); + System.out.println("letter变量的值为"+letter); + } +} +``` + +(4)先声明两个int类型的变量i1,i2,并分别赋值5和2,求i1和i2的商,并将结果保存在double类型的变量result中,最后输出result变量的值。如何得到结果2.5呢? + +![image-20211219161207200](02_Java基础语法扩展作业图片/image-20211219161207200.png) + +```java +public class 题4 { + public static void main(String[] args) { + int i1=5; + int i2=2; + double result=(double)i1/i2; + System.out.println("result变量的值为"+result); + } +} +``` + +## 2、按步骤编写代码,效果如图所示: + +![](02_Java基础语法扩展作业图片/4.jpg) + +1. 定义两个int类型变量a1和a2,分别赋值10,11,判断变量是否为偶数,拼接输出结果 +2. 定义两个int类型变量a3和a4,分别赋值12,13,判断变量是否为奇数,拼接输出结果 + +```java +public class 题1 { + public static void main(String[] args) { + int a1=10; + int a2=11; + int a3=12; + int a4=13; + System.out.println(a1%2==0?true:false); + System.out.println(a2%2==0?true:false); + System.out.println(a3%2!=0?true:false); + System.out.println(a4%2!=0?true:false); + } +} +``` + + + +## 3、计算时间 + +案例:为抵抗洪水,战士连续作战89小时,编程计算共多少天零多少小时? + +![1557879127503](02_Java基础语法扩展作业图片/6.png) + +1. 定义一个int类型变量hours,赋值为89 +2. 定义一个int类型变量day,用来保存89小时中天数的结果 +3. 定义一个int类型变量hour,用来保存89小时中不够一天的剩余小时数的结果 +4. 输出结果 + +```java +public class 题1 { + public static void main(String[] args) { + int hours=89; + int day=89/24; + int hour=89%24; + System.out.println(day+"天"+hour+"小时"); + } +} +``` + + + +## 4、案例:今天是周2,100天以后是周几? + +![1557879464870](02_Java基础语法扩展作业图片/7.png) + +1. 定义一个int类型变量week,赋值为2 +2. 修改week的值,在原值基础上加上100 +3. 修改week的值,在原值基础上模以7 +4. 输出结果,在输出结果的时候考虑特殊值,例如周日 + +```java +public class 题1 { + public static void main(String[] args) { + int week=2; + week=week+100; + week=week%7; + if (week%7==0){ + System.out.println("今天是周2,100天以后是周日"); + }else { + System.out.println("今天是周2,100天以后是周"+week); + } +} +} +``` + + + +## 5、案例:求三个整数x,y,z中的最大值 + +![1557879847378](02_Java基础语法扩展作业图片/8.png) + +1. 定义三个int类型变量,x,y,z,随意赋值整数值 +2. 定义一个int类型变量max,先存储x与y中的最大值(使用三元运算符) +3. 再次对max赋值,让它等于上面max与z中的最大值(使用三元运算符) +4. 输出结果 + +```java +public class 题1 { + public static void main(String[] args) { + int x=3; + int y=4; + int z=1; + int max=x; + if (max>>b);//1 +System.out.println(a>>>b | 2);//3 +``` + +## 第五题 + +如何用最有效的的方法计算2乘以8 + +```java +System.out.println(2*8); +``` -- Gitee From f87dd6c75d9c6981679d8c7e20ccdb9cef576ab5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=94=A1=E7=9B=9F?= <3098697928@qq.com> Date: Thu, 6 Apr 2023 23:06:29 +0800 Subject: [PATCH 3/4] =?UTF-8?q?Java=E7=AC=AC=E5=9B=9B=E6=AC=A1=E4=BD=9C?= =?UTF-8?q?=E4=B8=9A=E6=95=B0=E7=BB=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...60\347\273\204\344\275\234\344\270\232.md" | 145 ++++++++++++++++++ 1 file changed, 145 insertions(+) create mode 100644 "04 \350\224\241\347\233\237/04.Java \346\225\260\347\273\204\344\275\234\344\270\232.md" diff --git "a/04 \350\224\241\347\233\237/04.Java \346\225\260\347\273\204\344\275\234\344\270\232.md" "b/04 \350\224\241\347\233\237/04.Java \346\225\260\347\273\204\344\275\234\344\270\232.md" new file mode 100644 index 0000000..eb11747 --- /dev/null +++ "b/04 \350\224\241\347\233\237/04.Java \346\225\260\347\273\204\344\275\234\344\270\232.md" @@ -0,0 +1,145 @@ +## 编码题 + +**1.定义一个含有五个元素的数组,并为每个元素赋值,求数组中所有元素的最小值** + +**操作步骤:** + +​ 1.定义5个元素数组 + +​ 2.可以使用初始化数组的两种方式之一为数组元素赋值 + +​ 3.遍历数组求数组中的最小值 + +``` +public class A1 { + public static void main(String[] args) { + int[] a={9,7,8,45,6}; + int min=a[0]; + for (int i=0;i a[i]) { + min = a[i]; + } + } + System.out.println("min = " + min); + } +} +``` + +**2.需求:求出数组中索引与索引对应的元素都是奇数的元素** + +**分析:** + +​ 1、遍历数组 + +​ 2、判断索引是否是奇数(索引 % 2 != 0) + +​ 3、判断索引对应的元素是否是奇数(arr[索引] % 2 != 0) + +​ 4、满足条件输出结果 + +``` +public class A2 { + public static void main(String[] args) { + int[] a={51,854,1665,154,111,123}; + for (int i=0;i < a.length;i++){ + if (a[i]%2!=0){ + System.out.println("i = " + a[i]); + } + } + } +} +``` + + + +**3.按要求在main方法中完成以下功能:** + +​ a. 定义一个长度为5的int型数组arr,提示用户输入5个1-60之间的数字作为数组元素 + +​ b. 生成2-10(范围包含2和10)之间的随机数num + +​ c. 遍历数组arr,筛选出数组中不是num倍数的元素并输出 + +​ **PS:输入的数组元素范围包括1和60,不需要代码判断** + +``` +import java.util.Random; +import java.util.Scanner; + +public class A3 { + public static void main(String[] args) { + int[] arr=new int[5]; + Scanner m=new Scanner(System.in); + + System.out.println("请输入五个1-60之间的数字"); + for (int i=0;i40){ + System.out.println("请输入20-40之间的数"); + System.exit(0); + } + + for (int i=0;i<20;i++){ + if (arr[i]==mm){ + count++; + } + } + System.out.println(mm+"出现的次数是:"+count); + } +} +``` + + + -- Gitee From 4bbb1eda1483481c7869bbc5e314fd92862abf5b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=94=A1=E7=9B=9F?= <3098697928@qq.com> Date: Thu, 6 Apr 2023 23:21:21 +0800 Subject: [PATCH 4/4] =?UTF-8?q?Java=E7=AC=AC=E4=B8=89=E6=AC=A1=E4=BD=9C?= =?UTF-8?q?=E4=B8=9A=E6=95=B0=E7=BB=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../03..Java \346\225\260\347\273\204\344\275\234\344\270\232.md" | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename "04 \350\224\241\347\233\237/04.Java \346\225\260\347\273\204\344\275\234\344\270\232.md" => "04 \350\224\241\347\233\237/03..Java \346\225\260\347\273\204\344\275\234\344\270\232.md" (100%) diff --git "a/04 \350\224\241\347\233\237/04.Java \346\225\260\347\273\204\344\275\234\344\270\232.md" "b/04 \350\224\241\347\233\237/03..Java \346\225\260\347\273\204\344\275\234\344\270\232.md" similarity index 100% rename from "04 \350\224\241\347\233\237/04.Java \346\225\260\347\273\204\344\275\234\344\270\232.md" rename to "04 \350\224\241\347\233\237/03..Java \346\225\260\347\273\204\344\275\234\344\270\232.md" -- Gitee