基础编程题目集(5,10 分题)

基础编程题目集(5,10 分题)

7-5 表格输出 (5 分)
本题要求编写程序,按照规定格式输出表格。

输入格式:

本题目没有输入。

输出格式:

要求严格按照给出的格式输出下列表格:
在这里插入图片描述

public class Main {
	public static void main(String[] args){
		System.out.println("------------------------------------");
		System.out.println("Province      Area(km2)   Pop.(10K)");
		System.out.println("------------------------------------");
		System.out.println("Anhui         139600.00   6461.00");
		System.out.println("Beijing        16410.54   1180.70");
		System.out.println("Chongqing      82400.00   3144.23");
		System.out.println("Shanghai        6340.50   1360.26");
		System.out.println("Zhejiang      101800.00   4894.00");
		System.out.println("------------------------------------");
	}
}


7-6 混合类型数据格式化输入 (5 分)
本题要求编写程序,顺序读入浮点数1、整数、字符、浮点数2,再按照字符、整数、浮点数1、浮点数2的顺序输出。

输入格式:

输入在一行中顺序给出浮点数1、整数、字符、浮点数2,其间以1个空格分隔。

输出格式:

在一行中按照字符、整数、浮点数1、浮点数2的顺序输出,其中浮点数保留小数点后2位。

输入样例:

2.12 88 c 4.7
输出样例:

c 88 2.12 4.70

import java.util.Scanner;
public class Main {
	public static void main(String[] args){
		Scanner sc=new Scanner(System.in);
		float f1=sc.nextFloat();
		int a=sc.nextInt();
		String s=sc.next();
		float f2=sc.nextFloat();
		
		System.out.println(s+" "+a+" "+(new java.text.DecimalFormat("0.00").format(f1))+" "+(new java.text.DecimalFormat("0.00").format(f2)));
	}
}


7-3 逆序的三位数 (10 分)
程序每次读入一个正3位数,然后输出按位逆序的数字。注意:当输入的数字含有结尾的0时,输出不应带有前导的0。比如输入700,输出应该是7。

输入格式:

每个测试是一个3位的正整数。

输出格式:

输出按位逆序的数。

输入样例:

123
输出样例:

321

import java.util.Scanner;
public class Main {
	public static void main(String[] args){
		Scanner sc=new Scanner(System.in);
		int num=sc.nextInt();
		int[] res=new int[3];
		for(int i=0;i<3;i++){
			res[i]=num%10;
			num=num/10;
		}
		for(int i=0;i<3;i++){
			if(i==0&&res[0]==0){
				continue;
			}
			if(i==1&&res[0]==0&&res[1]==0){
				continue;
			}
			System.out.print(res[i]);
		}	
	}
}


7-4 BCD解密 (10 分)
BCD数是用一个字节来表达两位十进制的数,每四个比特表示一位。所以如果一个BCD数的十六进制是0x12,它表达的就是十进制的12。但是小明没学过BCD,把所有的BCD数都当作二进制数转换成十进制输出了。于是BCD的0x12被输出成了十进制的18了!

现在,你的程序要读入这个错误的十进制数,然后输出正确的十进制数。提示:你可以把18转换回0x12,然后再转换回12。

输入格式:

输入在一行中给出一个[0, 153]范围内的正整数,保证能转换回有效的BCD数,也就是说这个整数转换成十六进制时不会出现A-F的数字。

输出格式:

输出对应的十进制数。

输入样例:

18
输出样例:

12

import java.util.Scanner;
public class Main {
	public static void main(String[] args){
		Scanner sc=new Scanner(System.in);
		int num=sc.nextInt();
		System.out.print(num/16);
		if(num/16!=0){
			System.out.print(num%16);
		}
	}
}



7-8 超速判断 (10 分)
模拟交通警察的雷达测速仪。输入汽车速度,如果速度超出60 mph,则显示“Speeding”,否则显示“OK”。

输入格式:

输入在一行中给出1个不超过500的非负整数,即雷达测到的车速。

输出格式:

在一行中输出测速仪显示结果,格式为:Speed: V - S,其中V是车速,S或者是Speeding、或者是OK。

输入样例1:

40
输出样例1:

Speed: 40 - OK
输入样例2:

75
输出样例2:

Speed: 75 - Speeding

import java.util.Scanner;
public class Main {
   public static void main(String[] args){
   	Scanner sc=new Scanner(System.in);
   	int speed=sc.nextInt();
   	if(speed>60){
   		System.out.println("Speed: "+speed+" - Speeding");
   	}
   	else{
   		System.out.println("Speed: "+speed+" - OK");
   	}
   }
   
}


7-9 用天平找小球 (10 分)
三个球A、B、C,大小形状相同且其中有一个球与其他球重量不同。要求找出这个不一样的球。

输入格式:

输入在一行中给出3个正整数,顺序对应球A、B、C的重量。

输出格式:

在一行中输出唯一的那个不一样的球。

输入样例:

1 1 2
输出样例:

C

import java.util.Scanner;
public class Main {
   public static void main(String[] args){
   	Scanner sc=new Scanner(System.in);
   	int a=sc.nextInt();
   	int b=sc.nextInt();
   	int c=sc.nextInt();
   	if(a==b&&c!=a)
   		System.out.println("C");
   	else if(a==c&&b!=a)
   		System.out.println("B");
   	else 
   		System.out.println("A");
   }

}


7-11 分段计算居民水费 (10 分)
为鼓励居民节约用水,自来水公司采取按用水量阶梯式计价的办法,居民应交水费y(元)与月用水量x(吨)相关:当x不超过15吨时,y=4x/3;超过后,y=2.5x−17.5。请编写程序实现水费的计算。

输入格式:

输入在一行中给出非负实数x。

输出格式:

在一行输出应交的水费,精确到小数点后2位。

输入样例1:

12
输出样例1:

16.00
输入样例2:

16
输出样例2:

22.50

import java.util.Scanner;
public class Main {
   public static void main(String[] args){
   	Scanner sc=new Scanner(System.in);
   	float x=sc.nextInt();
   	float y;
   	//当x不超过15吨时,y=4x/3;超过后,y=2.5x−17.5
   	if(x<=15){
   		y=(4*x)/3;
   	}else{
   		y=(float) (2.5*x-17.5);
   	}
   	System.out.println(new java.text.DecimalFormat("0.00").format(y));
   	
   }

}



7-12 两个数的简单计算器 (10 分)
本题要求编写一个简单计算器程序,可根据输入的运算符,对2个整数进行加、减、乘、除或求余运算。题目保证输入和输出均不超过整型范围。

输入格式:

输入在一行中依次输入操作数1、运算符、操作数2,其间以1个空格分隔。操作数的数据类型为整型,且保证除法和求余的分母非零。

输出格式:

当运算符为+、-、*、/、%时,在一行输出相应的运算结果。若输入是非法符号(即除了加、减、乘、除和求余五种运算符以外的其他符号)则输出ERROR。

输入样例1:

-7 / 2
输出样例1:

-3
输入样例2:

3 & 6
输出样例2:

ERROR

import java.util.Scanner;
public class Main{
   public static void main(String[] args){
   	Scanner sc=new Scanner(System.in);
   	int[] a=new int[2];
   	String[] s=new String[2];
   	int[] b=new int[2];
   	for(int i=0;i<2;i++){
   		a[i]=sc.nextInt();
   		s[i]=sc.next();
   		b[i]=sc.nextInt();
   		solve(a[i],s[i],b[i]);
   	}
   	
   }
   public static void solve(int a,String s,int b){
   	switch(s){
   	case "+":{
   		System.out.println(a+b);
   		break;
   	}
   	case "-":{
   		System.out.println(a-b);
   		break;
   	}
   	case "*":{
   		System.out.println(a*b);
   		break;
   	}
   	case "/":{
   		System.out.println(a/b);
   		break;
   	}
   	case "%":{
   		System.out.println(a%b);
   		break;
   	}
   	default:System.out.println("ERROR");break;
   	}
   }

}



7-34 通讯录的录入与显示 (10 分)
通讯录中的一条记录包含下述基本信息:朋友的姓名、出生日期、性别、固定电话号码、移动电话号码。 本题要求编写程序,录入N条记录,并且根据要求显示任意某条记录。

输入格式:

输入在第一行给出正整数N(≤10);随后N行,每行按照格式姓名 生日 性别 固话 手机给出一条记录。其中姓名是不超过10个字符、不包含空格的非空字符串;生日按yyyy/mm/dd的格式给出年月日;性别用M表示“男”、F表示“女”;固话和手机均为不超过15位的连续数字,前面有可能出现+。

在通讯录记录输入完成后,最后一行给出正整数K,并且随后给出K个整数,表示要查询的记录编号(从0到N−1顺序编号)。数字间以空格分隔。

输出格式:

对每一条要查询的记录编号,在一行中按照姓名 固话 手机 性别 生日的格式输出该记录。若要查询的记录不存在,则输出Not Found。

输入样例:

3
Chris 1984/03/10 F +86181779452 13707010007
LaoLao 1967/11/30 F 057187951100 +8618618623333
QiaoLin 1980/01/01 M 84172333 10086
2 1 7
输出样例:

LaoLao 057187951100 +8618618623333 F 1967/11/30
Not Found

import java.util.Scanner;
public class Main {
   public static void main(String[] args){
   	Scanner sc=new Scanner(System.in);
   	int n=sc.nextInt();
   	String [][] str=new String[n][5];
   	for(int i=0;i<n;i++){
   		for(int j=0;j<5;j++){
   			str[i][j]=sc.next();
   		}
   	}
   	int k=sc.nextInt();
   	int[] num=new int[k];
   	for(int i=0;i<k;i++){
   		num[i]=sc.nextInt();
   	}
   	for(int i=0;i<k;i++){
   		f(str,num[i]);
   	}
   	
   	
   }
   
   public static void f(String[][] str,int num){
   	for(int i=0;i<str.length;i++){
   		if(num==i){
   			System.out.println(str[i][0]+" "+str[i][3]+" "+str[i][4]+" "+str[i][2]+" "+str[i][1]);
   			return;
   		}
   	}
   	System.out.println("Not Found");
   }
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值