1变量、运算符和类型转换:
1.1手动输入一个学生的成绩,对这个成绩进行一次加分,加当前成绩的20%,输出加分后成绩

        Scanner scan = new Scanner(System.in);
System.out.println("请输入一个数字");
int num = scan.nextInt();
num += num * 0.2;
System.out.println(num);

1.2商场举行店庆,抽几折打几折,
先手动输入消费金额,再输入,抽到的折扣,计算出折后价格

        Scanner scan = new Scanner(System.in);
System.out.println("请输入消费金额");
int num = scan.nextInt();
System.out.println("请输入抽到的折扣");
int dis = scan.nextInt();
int price = 0;// 累加变量
price = num * dis / 10;
System.out.println("折后价格:" + price);

1.3手动输入一个4位数,求各位数字之和

        Scanner scan = new Scanner(System.in);
System.out.println("请输入一个4位数");
int shu = scan.nextInt();
int a = shu / 1 % 10;
int b = shu / 10 % 10;
int c = shu / 100 % 10;
int d = shu / 1000 % 10;
System.out.println(a + b + c + d);

2分支结构:
2.1商场消费返利活动,手动输入顾客消费金额,
如果金额打8折后仍然满1000元,用户就获得200元代金券一张(不考虑多张)

        Scanner scan = new Scanner(System.in);
System.out.println("请输入消费金额");
int num = scan.nextInt(); double dis = num * 0.8;// 打折后的价格
if (dis > 1000) {
dis = dis - 200;// 200元代金券
}
System.out.println(dis);

2.2用户输入一个年份,如果是闰年输出是闰年
(年份能被4整除,且不能被100整除,或者能被400整除的年份)

        Scanner input = new Scanner(System.in);
System.out.println("输入年份");
int year = input.nextInt();
if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0) {
System.out.println("是闰年");
} else {
System.out.println("不是闰年");
}

2.3手动输入一个整型会员号,
如果用户输入的是4位数字,
输出登录成功,
如果用户输入的不是4位数字,
输出“您输入的会员号有误”

        Scanner input = new Scanner(System.in);
System.out.println("请输入整型会员号");
int num = input.nextInt();
int i = 0;// 初始化 数字的位数
while (num != 0) {
num = num / 10;// 被10整除 i++;
} // 最后,这个 i 就是数字的位数
if (i != 4) {
System.out.println("您输入的会员号有误");
} else {
System.out.println("登录成功!");
}

2.4手动输入a,b,c三个变量的数值,
要求通过数值交换,
把输入的数值从小到大
排序放入a,b,c中,并输出

        Scanner scanner = new Scanner(System.in);
System.out.print("请输入第一个整数:");
int a = scanner.nextInt();
System.out.print("请输入第二个整数:");
int b = scanner.nextInt();
System.out.print("请输入第三个整数:");
int c = scanner.nextInt(); int x = 0;
if (a > b) {
x = a;
a = b;
b = x;
}
if (a > c) {
x = a;
a = c;
c = x;
}
if (b > c) {
x = b;
b = c;
c = x;
}
System.out.println(a + "," + b + "," + c);

3多分支结构
3.1商场根据会员积分打折,
2000分以内打9折,
4000分以内打8折
8000分以内打7.5折,
8000分以上打7折,
使用if-else-if结构,实现手动输入购物金额和积分,计算出应缴金额

        Scanner sc = new Scanner(System.in);
System.out.println("请输入购物金额");
double shop = sc.nextDouble();
System.out.println("请输入积分");
int fen = sc.nextInt();
if (fen < 2000) {
shop *= 0.9;
System.out.println("目前消费" + shop + "元");
} else if (fen >= 2000 && fen <= 4000) {
shop *= 0.8;
System.out.println("目前消费" + shop + "元");
} else if (fen <= 8000 && fen > 4000) {
shop *= 0.75;
System.out.println("目前消费" + shop + "元");
} else if (fen > 8000) {
shop *= 0.7;
System.out.println("目前消费" + shop + "元");
} else {
System.out.println("抱歉没有折扣");
}

3.2机票价格按照淡季旺季、头等舱和经济舱收费、
输入机票原价、月份和头等舱或经济舱,
其中旺季(5-10月)头等舱9折,经济舱85折,
淡季(11月到来年4月)头等舱7折,经济舱65折,
最终输出机票价格

        Scanner s = new Scanner(System.in);
System.out.println("请输入机票原价");
int piao = s.nextInt();
System.out.println("请输入月份");
int yue = s.nextInt();
System.out.println("请选择:1.头等" + "2.经济");
int l = s.nextInt();
if (yue >= 5 && yue <= 10) {// 旺季
if (l == 1) {
piao *= 0.9;
} else {
piao *= 0.85;
} } else {// 淡季
if (l == 1) {
piao *= 0.7;
} else {
piao *= 0.65;
} }
System.out.println(piao);

3.3选择一个形状(1长方形、2正方形、3三角形、4圆形)
根据不同的选择让用户输入不同的信息,
长方形有长和宽、
正方形有边长、
三角形有底和高、
圆形有半径,
计算输出指定形状的面积

        Scanner scan=new Scanner(System.in);
System.out.println("1长方形、2正方形、3三角形、4圆形");
int num=scan.nextInt();
switch(num) {
case 1:
System.out.println("请输入长方形的长");
int l=scan.nextInt();
System.out.println("请输入长方形的宽");
int w=scan.nextInt();
int fs=l*w;
System.out.println("长方形面积为:"+fs);
break;
case 2:
System.out.println("请输入正方形边长");
int z=scan.nextInt();
System.out.println("正方形面积为:"+z*z);
break;
case 3:
System.out.println("请输入三角形的底长");
int d=scan.nextInt();
System.out.println("请输入三角形的高");
int g=scan.nextInt();
System.out.println("三角形面积为:"+d*g/2);
break;
case 4:
System.out.println("请输入圆形的半径");
double r=scan.nextDouble();
double ys=3.14*r*r;
System.out.println("圆形面积为:"+ys);
break;
}

3.4输入年份和月份,输出这个月应该有多少天(使用switch结构)

        Scanner scan = new Scanner(System.in);
System.out.println("请输入年份");
int year = scan.nextInt();
System.out.println("请输入月份");
int month = scan.nextInt();
switch (month) {
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
System.out.println("31天");
break;
case 4:
case 6:
case 9:
case 11:
System.out.println("30天");
break;
case 2:
if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0) {
System.out.println("29天");
} else {
System.out.println("28天");
}
}

4循环结构(上)
4.1随机生成一个1-100之间的数字num,循环让用户输入猜这个数,
如果用户输入的数字大于num提示输入的数字比较大,
如果用户输入的数字小于num提示输入的数字比较小,
直到用户输入的数字和num相等为止,然后输出用户猜数的总次数

        Scanner scan=new Scanner(System.in);
Random ran=new Random();
//生成游戏答案1~100
int num=ran.nextInt(100)+1;
//System.out.println(num);
int n=0;//定义n的初值
int i=0;//定义猜数次数
while(n!=num) {
System.out.println("请猜数字");
n=scan.nextInt();
if(n>num) {//判断猜数结果
System.out.println("输入的数字较大");
}else if(n<num) {
System.out.println("输入的数字较小");
}else {
System.out.println("恭喜您猜对了");
}
i++;//猜数次数加1
}
System.out.println("总共猜了"+i+"次");

4.2打印出1-100之间所有不是7的倍数和不包含7的数字,并求和

        int sum = 0;
for (int i = 1; i <= 100; i++) {
if(i%7 ==0 || i%10 == 7 || i/10 == 7){//注意:70-79容易漏掉
continue;
}
sum += i;
}
System.out.println(sum);

4.3循环输入5个数,输完后显示这些数中有没有负数

        Scanner scan=new Scanner(System.in);
System.out.println("请输入5个数字");
int flag=0;//立旗
int i=1;
while(i<=5) {
int num=scan.nextInt();
if(num<0) {
flag=1;
}
i++;
}
if(flag==0) {
System.out.println("没有负数");
}else {
System.out.println("有负数");
}

5循环结构(下)
5.1有一个有钱的神经病,他往银行里存钱,
第一天存1元,以后每天比前一天多存50%,完成下列计算任务
1)他存到第几天,当天存的钱会超过10元

        double money=1;
int day=1;
while(money<10) {
money*=1.5;
day++;
System.out.println("day:"+day+",money:"+money);
}
System.out.println(day);

2)一个月(30天)后,他总共存了多少钱

double sum=0;
double mo=1;
for(int i=1;i<=30;i++) {
sum+=mo;
System.out.println("i:"+i+",money:"+mo+",sum:"+sum);
mo*=1.5;
}
System.out.println(sum);

5.2有一个400米一圈的操场,一个人要跑10000米,
第一圈50秒,其后每一圈都比前一圈慢1秒,
按照这个规则计算跑完10000米需要多少秒

        int round=10000/400;
int sum=0;
int time=50;
for(int i=1;i<=round;i++) {
sum+=time;
System.out.println("圈数:"+i+",时间:"+time+",花的时间:"+sum);
time++;
}
System.out.println(sum);

5.3用户输入任意一个整数,求各位数字之和

        Scanner scan=new Scanner(System.in);
System.out.println("请输入一个数字");
int num=scan.nextInt();
int sum=0;//累加变量
while(num>0) {
//将数字的个位取出累加
sum+=num%10;
//将当前数字除以10,以便下次循环使用
num=num/10;//num/=10;
}
System.out.println(sum);

5.4井里有一只蜗牛,他白天往上爬5米,晚上掉3.5米,井深56.7米
计算蜗牛需要多少天才能从井底到爬出来

        int day=1;//天数
double sum=0;//爬过的距离
while(true) {
//白天向上爬5米
sum+=5;
System.out.println("day:"+day+",sum:"+sum);
if(sum>=56.7) {//如果爬出了井
//退出循环
break;
}
//晚上掉3.5;
sum-=3.5;
day++;
}
System.out.println(day);

6循环嵌套
6.1求1~1000以内质数列表
PS:质数是只能被1和自身整除的整数

        int i, j;
for (i = 1; i <= 1000; i++) {
for (j = 2; j < i; j++) {
if (i % j == 0)
break;
} if (i == j){
System.out.print(j + " ");
} }

7数组
7.1定义一个数组int[] nums={8,7,3,9,5,4,1}
输出数组中的最大值和最大值所在的下标

        int[] nums={8,7,3,9,5,4,1};
int max = nums[0];//默认第一个最大
int index = 0;
for (int i = 0; i < nums.length; i++) {
if (nums[i] > max) {
max = nums[i];
index = i;
}
}
System.out.println("最大的数: "+max+" 下标: "+index);

7.2向一个长度为10的整型数组中随机生成10个0~9的随机整数,完成下列任务
1)升序输出、降序输出
2)输出总和、平均数

        Random ran = new Random();
int[] num = new int[10];
for (int i = 0; i < num.length; i++) {
num[i] = ran.nextInt(10);
}
Arrays.sort(num);
for (int i = 0; i < num.length; i++) {
System.out.print(num[i] + " ");
}
System.out.println("------升序------");
for (int i = num.length - 1; i >= 0; i--) {
System.out.print(num[i] + " ");
}
System.out.println("------降序------"); // 总和
int sum = 0;
for (int i = 0; i < num.length; i++) {
sum = num[i] + sum;
}
System.out.println("总和:" + sum); // 平均数
int sum2 = 0;
for (int i = 0; i < num.length; i++) {
sum2 = num[i] + sum2;
}
System.out.println("平均数:" + sum2 / num.length);

7.3向一个长度为5的整型数组中随机生成5个1-10的随机整数
要求生成的数字中没有重复数

        int[] nums = new int[5];
Random ran = new Random(); for (int i = 0; i < nums.length; i++) {
nums[i] = ran.nextInt(10) + 1; for (int j = 0; j < i; j++) {
while (nums[i] == nums[j]) {//如果重复,退回去重新生成随机数
i--;
}
}
}
for (int i = 0; i < nums.length; i++) {
System.out.print(nums[i] + " ");
}

7.4(选做)向一个长度为10的整型数组中随机生成10个0~9的随机整数,完成下列任务
1)统计每个数字出现了多少次
2)输出出现次数最多的数字
3)输出只出现一次的数字中最小的数字

        Random r = new Random();
// 1. 声明源数组,包含10个0-9之间的随机数
int[] src = new int[10];
// 2. 声明一个标记数组,存放的是0-9,10个数字
int[] flag = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };
// 3. 声明一个用来统计标记数组中数字在源
// 数组中的个数
int[] count = new int[flag.length];
// 4. 给源数组赋值0-9之间的随机数
for (int i = 0; i < src.length; i++) {
src[i] = r.nextInt(10);
}
// 5. 统计标记数组中的每个元素在源数组中
// 有多少个即给count数组赋值
for (int i = 0; i < flag.length; i++) {
for (int j = 0; j < src.length; j++) {
// 如果标记数组中的数字在源数组中有,则count+1
if (flag[i] == src[j]) {
count[i]++;
}
}
}
// 6. 输出src和count的数据
System.out.println("随机产生的数据如下:");
System.out.println(Arrays.toString(src));
// System.out.println(Arrays.toString(count)); // a.统计每个数字出现的次数
// 如果count中的元素的值大于0,则输出其下标和值
for (int i = 0; i < count.length; i++) {
if (count[i] > 0) {
System.out.println("数字" + i + "出现" + count[i] + "次");
}
} // b.输出出现最多次数的数字
// 假设第一个统计的数字就是最多那个
int max = count[0];
int index = 0;
for (int i = 0; i < count.length; i++) {
if (count[i] > max) {
max = count[i];
index = i;
}
}
System.out.println("出现次数最多的数字是" + index); // c. 输出只出现一次的数字中最小的数字
for (int i = 0; i < count.length; i++) {
if (count[i] == 1) {
System.out.println("出现1次的数字中最小的是" + i);
break;
}
}

good luck!

java基础练习题的更多相关文章

  1. Java 基础练习题2

    按要求编写Java程序: (1)编写一个接口:InterfaceA,只含有一个方法int method(int n): (2)编写一个类:ClassA来实现接口InterfaceA,实现int met ...

  2. java基础练习 字符串,控制流,日历,日期等

    1,对基本控制流程的一些练习 package org.base.practice3; import org.junit.Test; /** * Created with IntelliJ IDEA. ...

  3. 6、50道JAVA基础编程练习题跟答案

    50道JAVA基础编程练习题 [程序1] 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? 程序分析 ...

  4. 50道JAVA基础编程练习题

    50道JAVA基础编程练习题 [程序1] 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子对数为多少? 程序分析 ...

  5. 50道JAVA基础编程练习题 - 题目

    50道JAVA基础编程练习题[1]题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? [2]题目:判断 ...

  6. 【视频+图文】Java基础经典练习题(一)输出2-100之间的素数,及素数个数

    目录 第一题:判断2-100之间有多少个素数,并输出所有素数. 1.视频讲解: 2.思路分析: 代码讲解:以i=4为例 4.为大家准备了彩蛋: 能解决题目的代码并不是一次就可以写好的 我们需要根据我们 ...

  7. 【视频+图文】Java经典基础练习题(三):输入3个整数,并将其由小到大输出

    目录 一.视频讲解 二.思路分析 总结: 三.代码+详解+结果 四.彩蛋 能解决题目的代码并不是一次就可以写好的 我们需要根据我们的思路写出后通过debug模式找到不足再进行更改 多次测试后才可得到能 ...

  8. 【视频+图文】Java经典基础练习题(六):猴子吃桃子问题

    目录 一.具体题目 二.视频讲解 三.思路分析(逆向思维) 四.代码+结果 代码: 结果: 五.彩蛋 一.具体题目 猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个  第二天 早上又将剩下 ...

  9. JAVA基础(代码)练习题61~90

    JAVA基础 61.设计一个方法打印数组{'a','r','g','s','e','r'}中下标为1和3的的元素 package Homework_90; /** * 设计一个方法打印数组{'a',' ...

随机推荐

  1. .Net Core 3.0 使用 Serilog 把日志记录到 SqlServer

    Serilog简介 Serilog是.net中的诊断日志库,可以在所有的.net平台上面运行.Serilog支持结构化日志记录,对复杂.分布式.异步应用程序的支持非常出色.Serilog可以通过插件的 ...

  2. js模块导入/导出大全

    说明 module.exports与exports是CommonJS的规范 export与export default是es6规范 require 是 AMD规范引入方式 import是es6的一个语 ...

  3. Java中我常用到的十二个最基本的快捷键

    自己在Java中经常用到的快捷键先记下来方便日后学习之用: 1. Ctrl+shift+r:打开资源 这可能是所有快捷键组合中最省时间的了.这组快捷键可以让你打开你的工作区中任何一个文件,而你只需要按 ...

  4. 12-kubernetes Dashboard 认证及分级授权

    目录 部署 dashboard 查看 开放访问 配置dashboard用户 1. token 令牌认证 创建一个 serviceAccount dashboard-admin 绑定 clusterbi ...

  5. Netty学习——通过websocket编程实现基于长连接的双攻的通信

    Netty学习(一)基于长连接的双攻的通信,通过websocket编程实现 效果图,客户端和服务器端建立起长连接,客户端发送请求,服务器端响应 但是目前缺少心跳,如果两个建立起来的连接,一个断网之后, ...

  6. Spring Boot中@ConditionalOnProperty使用详解

    在Spring Boot的自动配置中经常看到@ConditionalOnProperty注解的使用,本篇文章带大家来了解一下该注解的功能. Spring Boot中的使用 在Spring Boot的源 ...

  7. 基于SpringBoot+Netty实现一个自己的推送服务系统

    目标 实现一个WebSocket服务中心,支持水平扩展 技术栈 SpringBoot.Netty.JDK8.MySQL.Redis.RabbitMQ.MyBatis-Plus 环境搭建 主要功能点说明 ...

  8. POJ3261 Milks patterns(后缀数组)

    Farmer John has noticed that the quality of milk given by his cows varies from day to day. On furthe ...

  9. 2018ACM/ICPC 焦作网络预选赛-A Magic Mirror

    Jessie has a magic mirror. Every morning she will ask the mirror: 'Mirror mirror tell me, who is the ...

  10. A*算法在最短路问题的应用及其使用举例

    1 A*算法 A*算法在人工智能中是一种典型的启发式搜索算法,启发中的估价是用估价函数表示的: 其中f(n)是节点n的估价函数,g(n)表示实际状态空间中从初始节点到n节点的实际代价,h(n)是从n到 ...