java基础练习题
1变量、运算符和类型转换:
1.1⼿动输⼊⼀个学⽣的成绩,对这个成绩进⾏⼀次加分,加当前成绩的20%,输出加分后成绩
Scannerscan=newScanner();
n("请输⼊⼀个数字");
intnum=t();
num+=num*0.2;
n(num);
ViewCode
1.2商场举⾏店庆,抽⼏折打⼏折,
先⼿动输⼊消费⾦额,再输⼊,抽到的折扣,计算出折后价格
Scannerscan=newScanner();
n("请输⼊消费⾦额");
intnum=t();
n("请输⼊抽到的折扣");
intdis=t();
intprice=0;//累加变量
price=num*dis/10;
n("折后价格:"+price);
ViewCode
1.3⼿动输⼊⼀个4位数,求各位数字之和
Scannerscan=newScanner();
n("请输⼊⼀个4位数");
intshu=t();
inta=shu/1%10;
intb=shu/10%10;
intc=shu/100%10;
intd=shu/1000%10;
n(a+b+c+d);
ViewCode
2分⽀结构:
2.1商场消费返利活动,⼿动输⼊顾客消费⾦额,
如果⾦额打8折后仍然满1000元,⽤户就获得200元代⾦券⼀张(不考虑多张)
Scannerscan=newScanner();
n("请输⼊消费⾦额");
intnum=t();
doubledis=num*0.8;//打折后的价格
if(dis>1000){
dis=dis-200;//200元代⾦券
}
n(dis);
ViewCode
2.2⽤户输⼊⼀个年份,如果是闰年输出是闰年
(年份能被4整除,且不能被100整除,或者能被400整除的年份)
Scannerinput=newScanner();
n("输⼊年份");
intyear=t();
if(year%4==0&&year%100!=0||year%400==0){
n("是闰年");
}el{
n("不是闰年");
}
ViewCode
2.3⼿动输⼊⼀个整型会员号,
如果⽤户输⼊的是4位数字,
输出登录成功,
如果⽤户输⼊的不是4位数字,
输出“您输⼊的会员号有误”
Scannerinput=newScanner();
n("请输⼊整型会员号");
intnum=t();
inti=0;//初始化数字的位数
while(num!=0){
num=num/10;//被10整除i++;
}//最后,这个i就是数字的位数
if(i!=4){
n("您输⼊的会员号有误");
}el{
n("登录成功!");
}
ViewCode
2.4⼿动输⼊a,b,c三个变量的数值,
要求通过数值交换,
把输⼊的数值从⼩到⼤
排序放⼊a,b,c中,并输出
Scannerscanner=newScanner();
("请输⼊第⼀个整数:");
inta=t();
("请输⼊第⼆个整数:");
intb=t();
("请输⼊第三个整数:");
intc=t();
intx=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;
}
n(a+","+b+","+c);
ViewCode
3多分⽀结构
3.1商场根据会员积分打折,
2000分以内打9折,
4000分以内打8折
8000分以内打7.5折,
8000分以上打7折,
使⽤if-el-if结构,实现⼿动输⼊购物⾦额和积分,计算出应缴⾦额
Scannersc=newScanner();
n("请输⼊购物⾦额");
doubleshop=uble();
n("请输⼊积分");
intfen=t();
if(fen<2000){
shop*=0.9;
n("⽬前消费"+shop+"元");
}elif(fen>=2000&&fen<=4000){
shop*=0.8;
n("⽬前消费"+shop+"元");
}elif(fen<=8000&&fen>4000){
shop*=0.75;
n("⽬前消费"+shop+"元");
}elif(fen>8000){
shop*=0.7;
n("⽬前消费"+shop+"元");
}el{
n("抱歉没有折扣");
}
ViewCode
3.2机票价格按照淡季旺季、头等舱和经济舱收费、
输⼊机票原价、⽉份和头等舱或经济舱,
其中旺季(5-10⽉)头等舱9折,经济舱85折,
淡季(11⽉到来年4⽉)头等舱7折,经济舱65折,
最终输出机票价格
Scanners=newScanner();
n("请输⼊机票原价");
intpiao=t();
n("请输⼊⽉份");
intyue=t();
n("请选择:1.头等"+"2.经济");
intl=t();
if(yue>=5&&yue<=10){//旺季
if(l==1){
piao*=0.9;
}el{
piao*=0.85;
}
}el{//淡季
if(l==1){
piao*=0.7;
}el{
piao*=0.65;
}
}
n(piao);
ViewCode
3.3选择⼀个形状(1长⽅形、2正⽅形、3三⾓形、4圆形)
根据不同的选择让⽤户输⼊不同的信息,
长⽅形有长和宽、
正⽅形有边长、
三⾓形有底和⾼、
圆形有半径,
计算输出指定形状的⾯积
Scannerscan=newScanner();
n("1长⽅形、2正⽅形、3三⾓形、4圆形");
intnum=t();
switch(num){
ca1:
n("请输⼊长⽅形的长");
intl=t();
n("请输⼊长⽅形的宽");
intw=t();
intfs=l*w;
n("长⽅形⾯积为:"+fs);
break;
ca2:
n("请输⼊正⽅形边长");
intz=t();
n("正⽅形⾯积为:"+z*z);
break;
ca3:
n("请输⼊三⾓形的底长");
intd=t();
n("请输⼊三⾓形的⾼");
intg=t();
n("三⾓形⾯积为:"+d*g/2);
break;
ca4:
n("请输⼊圆形的半径");
doubler=uble();
doubleys=3.14*r*r;
n("圆形⾯积为:"+ys);
break;
}
ViewCode
3.4输⼊年份和⽉份,输出这个⽉应该有多少天(使⽤switch结构)
Scannerscan=newScanner();
n("请输⼊年份");
intyear=t();
n("请输⼊⽉份");
intmonth=t();
switch(month){
ca1:
ca3:
ca5:
ca7:
ca8:
ca10:
ca12:
n("31天");
break;
ca4:
ca6:
ca9:
ca11:
n("30天");
break;
ca2:
if(year%4==0&&year%100!=0||year%400==0){
n("29天");
}el{
n("28天");
}
}
4循环结构(上)
4.1随机⽣成⼀个1-100之间的数字num,循环让⽤户输⼊猜这个数,
如果⽤户输⼊的数字⼤于num提⽰输⼊的数字⽐较⼤,
如果⽤户输⼊的数字⼩于num提⽰输⼊的数字⽐较⼩,
直到⽤户输⼊的数字和num相等为⽌,然后输出⽤户猜数的总次数
Scannerscan=newScanner();
Randomran=newRandom();
//⽣成游戏答案1~100
intnum=t(100)+1;
//n(num);
intn=0;//定义n的初值
inti=0;//定义猜数次数
while(n!=num){
n("请猜数字");
n=t();
if(n>num){//判断猜数结果
n("输⼊的数字较⼤");
}elif(n
n("输⼊的数字较⼩");
}el{
n("恭喜您猜对了");
}
i++;//猜数次数加1
}
n("总共猜了"+i+"次");
4.2打印出1-100之间所有不是7的倍数和不包含7的数字,并求和
intsum=0;
for(inti=1;i<=100;i++){
if(i%7==0||i%10==7||i/10==7){//注意:70-79容易漏掉
continue;
}
sum+=i;
}
n(sum);
4.3循环输⼊5个数,输完后显⽰这些数中有没有负数
Scannerscan=newScanner();
n("请输⼊5个数字");
intflag=0;//⽴旗
inti=1;
while(i<=5){
intnum=t();
if(num<0){
flag=1;
}
i++;
}
if(flag==0){
n("没有负数");
}el{
n("有负数");
}
5循环结构(下)
5.1有⼀个有钱的神经病,他往银⾏⾥存钱,
第⼀天存1元,以后每天⽐前⼀天多存50%,完成下列计算任务
1)他存到第⼏天,当天存的钱会超过10元
doublemoney=1;
intday=1;
while(money<10){
money*=1.5;
day++;
n("day:"+day+",money:"+money);
}
n(day);
2)⼀个⽉(30天)后,他总共存了多少钱
doublesum=0;
doublemo=1;
for(inti=1;i<=30;i++){
sum+=mo;
n("i:"+i+",money:"+mo+",sum:"+sum);
mo*=1.5;
}
n(sum);
5.2有⼀个400⽶⼀圈的操场,⼀个⼈要跑10000⽶,
第⼀圈50秒,其后每⼀圈都⽐前⼀圈慢1秒,
按照这个规则计算跑完10000⽶需要多少秒
intround=10000/400;
intsum=0;
inttime=50;
for(inti=1;i<=round;i++){
sum+=time;
n("圈数:"+i+",时间:"+time+",花的时间:"+sum);
time++;
}
n(sum);
5.3⽤户输⼊任意⼀个整数,求各位数字之和
Scannerscan=newScanner();
n("请输⼊⼀个数字");
intnum=t();
intsum=0;//累加变量
while(num>0){
//将数字的个位取出累加
sum+=num%10;
//将当前数字除以10,以便下次循环使⽤
num=num/10;//num/=10;
}
n(sum);
5.4井⾥有⼀只蜗⽜,他⽩天往上爬5⽶,晚上掉3.5⽶,井深56.7⽶
计算蜗⽜需要多少天才能从井底到爬出来
intday=1;//天数
doublesum=0;//爬过的距离
while(true){
//⽩天向上爬5⽶
sum+=5;
n("day:"+day+",sum:"+sum);
if(sum>=56.7){//如果爬出了井
//退出循环
break;
}
//晚上掉3.5;
sum-=3.5;
day++;
}
n(day);
6循环嵌套
6.1求1~1000以内质数列表
PS:质数是只能被1和⾃⾝整除的整数
inti,j;
for(i=1;i<=1000;i++){
for(j=2;j
if(i%j==0)
break;
}
if(i==j){
(j+"");
}
}
7数组
7.1定义⼀个数组int[]nums={8,7,3,9,5,4,1}
输出数组中的最⼤值和最⼤值所在的下标
int[]nums={8,7,3,9,5,4,1};
intmax=nums[0];//默认第⼀个最⼤
intindex=0;
for(inti=0;i<;i++){
if(nums[i]>max){
max=nums[i];
index=i;
}
}
n("最⼤的数:"+max+"下标:"+index);
7.2向⼀个长度为10的整型数组中随机⽣成10个0~9的随机整数,完成下列任务
1)升序输出、降序输出
2)输出总和、平均数
Randomran=newRandom();
int[]num=newint[10];
for(inti=0;i<;i++){
num[i]=t(10);
}
(num);
for(inti=0;i<;i++){
(num[i]+"");
}
n("------升序------");
for(inti=-1;i>=0;i--){
(num[i]+"");
}
n("------降序------");
//总和
intsum=0;
for(inti=0;i<;i++){
sum=num[i]+sum;
}
n("总和:"+sum);
//平均数
intsum2=0;
for(inti=0;i<;i++){
sum2=num[i]+sum2;
}
n("平均数:"+sum2/);
7.3向⼀个长度为5的整型数组中随机⽣成5个1-10的随机整数
要求⽣成的数字中没有重复数
int[]nums=newint[5];
Randomran=newRandom();
for(inti=0;i<;i++){
nums[i]=t(10)+1;
for(intj=0;j
while(nums[i]==nums[j]){//如果重复,退回去重新⽣成随机数
i--;
}
}
}
for(inti=0;i<;i++){
(nums[i]+"");
}
7.4(选做)向⼀个长度为10的整型数组中随机⽣成10个0~9的随机整数,完成下列任务
1)统计每个数字出现了多少次
2)输出出现次数最多的数字
3)输出只出现⼀次的数字中最⼩的数字
Randomr=newRandom();
//1.声明源数组,包含10个0-9之间的随机数
int[]src=newint[10];
//2.声明⼀个标记数组,存放的是0-9,10个数字
int[]flag={0,1,2,3,4,5,6,7,8,9};
//3.声明⼀个⽤来统计标记数组中数字在源
//数组中的个数
int[]count=newint[];
//4.给源数组赋值0-9之间的随机数
for(inti=0;i<;i++){
src[i]=t(10);
}
//5.统计标记数组中的每个元素在源数组中
//有多少个即给count数组赋值
for(inti=0;i<;i++){
for(intj=0;j<;j++){
//如果标记数组中的数字在源数组中有,则count+1
if(flag[i]==src[j]){
count[i]++;
}
}
}
//6.输出src和count的数据
n("随机产⽣的数据如下:");
n(ng(src));
//n(ng(count));
//a.统计每个数字出现的次数
//如果count中的元素的值⼤于0,则输出其下标和值
for(inti=0;i<;i++){
if(count[i]>0){
n("数字"+i+"出现"+count[i]+"次");
}
}
//b.输出出现最多次数的数字
//假设第⼀个统计的数字就是最多那个
intmax=count[0];
intindex=0;
for(inti=0;i<;i++){
if(count[i]>max){
max=count[i];
index=i;
}
}
n("出现次数最多的数字是"+index);
//c.输出只出现⼀次的数字中最⼩的数字
for(inti=0;i<;i++){
if(count[i]==1){
n("出现1次的数字中最⼩的是"+i);
break;
}
}
goodluck!
本文发布于:2022-11-12 16:22:58,感谢您对本站的认可!
本文链接:http://www.wtabcd.cn/fanwen/fan/88/5362.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |