java基础练习题
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基础练习题的更多相关文章
- Java 基础练习题2
按要求编写Java程序: (1)编写一个接口:InterfaceA,只含有一个方法int method(int n): (2)编写一个类:ClassA来实现接口InterfaceA,实现int met ...
- java基础练习 字符串,控制流,日历,日期等
1,对基本控制流程的一些练习 package org.base.practice3; import org.junit.Test; /** * Created with IntelliJ IDEA. ...
- 6、50道JAVA基础编程练习题跟答案
50道JAVA基础编程练习题 [程序1] 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? 程序分析 ...
- 50道JAVA基础编程练习题
50道JAVA基础编程练习题 [程序1] 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子对数为多少? 程序分析 ...
- 50道JAVA基础编程练习题 - 题目
50道JAVA基础编程练习题[1]题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? [2]题目:判断 ...
- 【视频+图文】Java基础经典练习题(一)输出2-100之间的素数,及素数个数
目录 第一题:判断2-100之间有多少个素数,并输出所有素数. 1.视频讲解: 2.思路分析: 代码讲解:以i=4为例 4.为大家准备了彩蛋: 能解决题目的代码并不是一次就可以写好的 我们需要根据我们 ...
- 【视频+图文】Java经典基础练习题(三):输入3个整数,并将其由小到大输出
目录 一.视频讲解 二.思路分析 总结: 三.代码+详解+结果 四.彩蛋 能解决题目的代码并不是一次就可以写好的 我们需要根据我们的思路写出后通过debug模式找到不足再进行更改 多次测试后才可得到能 ...
- 【视频+图文】Java经典基础练习题(六):猴子吃桃子问题
目录 一.具体题目 二.视频讲解 三.思路分析(逆向思维) 四.代码+结果 代码: 结果: 五.彩蛋 一.具体题目 猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个 第二天 早上又将剩下 ...
- JAVA基础(代码)练习题61~90
JAVA基础 61.设计一个方法打印数组{'a','r','g','s','e','r'}中下标为1和3的的元素 package Homework_90; /** * 设计一个方法打印数组{'a',' ...
随机推荐
- Fragment源码分析
转载请标明出处:http://blog.csdn.net/shensky711/article/details/53171248 本文出自: [HansChen的博客] 概述 Fragment表示 A ...
- Git实战指南----跟着haibiscuit学Git(第一篇)
笔名: haibiscuit 博客园: https://www.cnblogs.com/haibiscuit/ Git地址: https://github.com/haibiscuit?tab=re ...
- Debug 利器:pstack & strace
工作中难免会遇到各种各样的 bug,对于开发环境 or 测试环境的问题还好解决,可以使用 gdb 打断点或者在代码中埋点来定位异常; 但是遇到线上的 bug 就很难受了,由于生产环境不能随意替换.中断 ...
- 最小生成树(Kruskal)
题目描述 如题,给出一个无向图,求出最小生成树,如果该图不连通,则输出orz 输入输出格式 输入格式: 第一行包含两个整数N.M,表示该图共有N个结点和M条无向边.(N<=5000,M<= ...
- linux下svn服务器端的操作
1.停止svn服务器端: [root@ www]# ps -ef|grep svnroot 21698 1 0 09:55 ? 00:00:00 svnserve -d -r /www/svn/roo ...
- PAT-2019年秋季考试-甲级
7-1 Forever (20 分) #include <bits/stdc++.h> using namespace std; int N,K,m,number[10]; multima ...
- ThinkPHP5——Session和Cookie
Session 首先要引入use think\Session:下面使用静态方法调用Session //赋值 Session::set('name','s1'); //赋值think作用域,set(‘名 ...
- 目不识丁的我使用Python编写汉字注音小工具
一万点暴击伤害 人懒起来太可怕了,放了个十一充分激发了我的惰性.然后公众号就这么停了半个月,好惭愧- 新学期儿子的幼儿园上线了APP,每天作业通过app布置后,家长需要陪着孩子学习,并上传视频才算完成 ...
- 使用ModelArts自动学习完成猫狗声音分类
准备数据 点击下载猫狗声音数据集至本地: 解压,文件包结构大概如下图所示 data ├── test │ ├── cats │ │ ├── cat_20.wav │ │ ├── ...... │ │ ...
- php上传下载文件
之前做一个上传下载的项目,发现网上的和自己需求不是很一样,翻阅了下书籍和整理了下网上的一些代码.做了一个上传下载的demo,上传通过php本身的uploadfile函数,并返回以时间戳命名的文件名后, ...