程序填空题
1. 输入一个数n(n<10),求1!+2!+...+n!的和。
import java.util.*;
public class Sum {
public static void main(String[] args) {
int sum,a=1;
int n=new Scanner(System.in).nextInt();
sum=0 ;(1)
for(int i=1;i<= n ;i++)(2){
a= a*i ;(3)
sum+=a;
}
System.out.println( sum );(4)
}
}
2. 输入一串字符(不含空格),将其中的大写字母转小写字母后存入到c盘的b.txt中。
import java.io.*;
import java.util.*;
public class IntoFile {
public static void main(String[] args) {
Scanner input=new Scanner(System.in);
String num=input. next() ;(6)
try {
FileWriter f=new FileWriter("c:/b.txt");
char ch;
for(int i=0;i< num.length() ;i++)(7){
ch=num.charAt(i);
if( ch>=’A’&&ch<=’Z’ ) (8){
f.write((char)(ch+32);
}//大转小
f.close() ;(9)
}
catch (Exception e)(10){
System.out.print(e.toString());
}
}
}
3. 显示e:/aa目录下的文件
import java.io.* ;(11)
public class List {
public static void main(String[] args) {
File file=new File(" e:/aa ");(12)
String[] lists=file.list();
File temp=null;
for(String f:lists) {
temp=new File(file.getPath()+"/"+f);
if(temp. isFile() ())(13)
System.out.println(temp. getName() +" "+temp.length());(14)
}
}
}
程序阅读题
1. static属性和static代码块是在加载的时候执行:1—2--3
static int a = 3; //1
static { //2
a++;
}
public static void add(){a++;} //3
public static void main(String[] args) {
Test.add();
System.out.println("属性a的值:"+Test.a);
}
拓展:继承时,先父类static—子类static—父类普通属性-父类构造方法-子类属性-子类构造方法
程序设计题
1. 随机产生10个数[0,9]之间的随机整数,计算这10个数的平均值。(Math.random()产生0到1之间的随机数)
public class Test {
public static void main(String[] args){
int a[]=new int[10];
double s=0;
for(int i=0;i<=9;i++){
a[i]=(int)(Math.random()*10);
s+=a[i];
}
s=s/10;
System.out.printf(“%.1f”,s);
}
//求最大值、最小值,该如何实现
2. 创建一个Shape类,area方法用来求面积,利用方法重载实现求多种图形的面积:
(1) area方法带一个参数时,计算圆周的面积;
(2) area方法带二个参数时,计算矩形的面积;
(3) area方法带三个参数时,计算三角形的面积。
(三角形面积的计算公式:,p=(a+b+c)/2,a、b、c是边长)
public class Shape {
public double area(double x){
return Math.PI*x*x;
}
public double area(double x,double y){
return x*y;
}
public double area(double x,double y,double z){
double p=(x+y+z)/2;
double s=Math.sqrt(p*(p-x)*(p-y)*(p-z));
return s;
}
}
3. 实现下列类图
abstract Shape{
public abstract double area();
}
class Square extends Shape {
private double side;
public double getSide() {
return side;
}
public void setSide(double side) {
this.side = side;
}
public Square() {
this.side=0;
}
public Square(double w) {
this.side=w;
}
public double area() {
return side*side;}
}
}
public class SquareTest {
public static void main(String[] args) {
Square b=new Square();
b.setSide(1);
System.out.println(b.area());
}
}
4. 输入一个数n(n<10),求n的阶乘(类名为Factory)。
import java.util.*;
public class Factory {
public static void main(String[] args) {
int sum=1;
int n=new Scanner(System.in).nextInt();
for(int i=1;i<=n;i++)
sum*=i;
System.out.println(sum);
}
}
5. 输入一个数n,求1+3+5+7+...+(2n-1)(类名为Sum)
import java.util.*;
public class Sum {
public static void main(String[] args) {
int sum=0;
int n=new Scanner(System.in).nextInt();
for(int i=1;i<=n;i++)
sum+=(2*i-1);
System.out.println(sum);
}
}
6. 输入一个数n,判断n是否是完数,结果显示yes或者no(类名Beauty,10分)(还有如水仙花数,素数等)
完数:
import java.util.*;
public class PerfactNumber {
public static void main(String[] args) {
Scanner input=new Scanner(System.in);
int n=input.nextInt();
int s=0;
for(int i=1;i<=n-1;i++)
if(n%i==0)
s+=i;
if(s==n)
System.out.println("yes");
else
System.out.println("no");
}
}
水仙花数:
import java.util.*;
public class Sum {
public static void main(String[] args) {
int x=new Scanner(System.in).nextInt();
int hun=x/100;
int ten=x/10%10;
int gewei=x%10;
if(x==(int)Math.pow(hun,3)+ten*ten*ten+gewei*gewei*gewei)
System.out.println(“yes”);
else
System.out.println(“no”);
}
}
素数:
import java.util.*;
public class Prim {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
int n = input.nextInt();
boolean flag = true;
if (n == 1 || n == 0)
flag = false;
else {
for (int i = 2; i <= n - 1; i++)
if (n % i == 0) {
flag = false;
break;
}
}
if (flag)
System.out.println("yes");
else
System.out.println("no");
}
}
冒泡排序:
int temp;
for(int i=0;i<arr.length-1;i++)
for(int j=0;j<arr.length-1-i;j++)
if(arr[j]>arr[j+1]) {
temp=arr[j];
arr[j]=arr[j+1];
arr[j+1]=temp;
}
for(int a:arr) {
System.out.print(a+" ");
}
7. 输入一串字符,判断是否是回文,若是,显示“yes”,不是显示“no”(类名为Palindrome)
import java.util.Scanner;
public class Palindrome {
public boolean isHuiWen(String b) {
StringBuffer sb=new StringBuffer(b);
sb.reverse();
if(b.equals(sb.toString()))
return true;
else
return false;
}
public static void main(String[] args) {
Scanner input=new Scanner(System.in);
String s=input.nextLine();
Palindrome h=new Palindrome();
boolean result=h.isHuiWen(s);
if(result)
System.out.println("yes");
else
System.out.println("no");
}
}
//拓展:如何实现逆串呢
8. 输入一串只含有省会城市的字符串,以,分隔,请输出每个省会城市
import java.util.Scanner;
public class FenGe {
public static void main(String[] args) {
String str=new Scanner(System.in).nextLine();
String[] list=str.split(",");
for(String name:list)
System.out.println(name);
}
}
9. 创建一类计算器类Calculator,利用重载的知识在计算机器类中实现若干个add 方法:
add 方法1:需要传入两个float型的参数,返回的结果类型是float;
add 方法2:需要传入两个String 型的参数,返回的结果类型是String;
add 方法3:需要传入两个int型整数的参数,返回的结果类型是int
创建一个测试类CalculatorTest进行方法测试。
class Caculator {
public int add(int a,int b) {
return a+b;
}
public float add(float a,float b) {
return a+b;
}
public String add(String a,String b) {
return a+b;
}
}
public class CalculatorTest {
public static void main(String[] args) {
Caculator cal=new Caculator();
System.out.println(cal.add(2,3));
System.out.println(cal.add(2.0f,3.0f));
System.out.println(cal.add("2.0","3.0"));
}
}
10. 创建两个类:Employee(员工类,抽象父类)和Manager(经理类,子类)。父类Employee中含一抽象方法void printSalary()。子类Manager重写父类方法printSalary,显示“收入为4000元”,再定义一个测试类ManagerTest进行测试。
abstract class Employee {
abstract void printSalary ();
}
class Manager extends Employee {
public void printSalary () {
System.out.println(“收入为4000元”);
}
}
public class ManagerTest {
public static void main(String[] args) {
Manager m=new Manager();
m. printSalary ();
}
}
11. 假设ArrayList集合中存放有《新少年四大名捕》剧中人物名字,分别是“冷血”,“无情”,“铁手”,“追命”,“楚离陌”和“姬瑶花”,请输入任意人物的名字,判断是否存在,若存在,则显示“他是本剧人物”,否则显示“无此人”。(类名为Search)
import java.util.*;
public class Search {
public static void main(String[] args) {
ArrayList<String> arr=new ArrayList<String>();
arr.add("冷血");
arr.add("无情");
arr.add("铁手");
arr.add("追命");
arr.add("楚离陌");
arr.add("姬瑶花");
Scanner input=new Scanner(System.in);
String name=input.next();
if(arr.contains(name))
System.out.println("他是本剧人物");
else
System.out.println("无此人");
}
}
12. 假设HashMap集合中存放有5个省份key的省会城市value(打*的为核心省份,如下表所示。请编程显示所有核心省份的省会城市。(类名Browser)
import java.util.*;
public class Browser {
public static void main(String[] args) {
HashMap<String,String> map=new HashMap<String,String>();
map.put("浙江省*", "杭州");
map.put("上海省*", "上海");
map.put("北京省*", "北京");
map.put("河北省", "石家庄");
map.put("四川省", "成都");
//遍历记录
Set<String> c=map.keySet();
for(String s:c)
if(s.endwith(“*”)
System.out.println(map.get(s));
}
}
13. 定义一个抽象类Shape,其中包括一个计算体积的抽象方法double vol();设计一正方体类Square,其中包含:(1)一边长a,私有属性,double,并需创建相应的set和get方法;(2)重写vol方法,用于计算此正方体的体积。创建一个测试类Test,在该类中输入任意的边长,显示其体积。
import java.util.*;
abstract class Shape {
public abstract double vol();
}
class Square extends Shape {
private double a;
public double getA() {
return a;
}
public void setA(double a) {
this.a = a;
}
public double vol() {
return a*a*a;
}
}
public class Test {
public static void main(String[] args) {
Scanner input=new Scanner(System.in);
Square s=new Square();
s.setA(input.nextDouble());
System.out.println(s.vol());
}
}
14. 产生10个1~100的随机整数,由小到大排序后将其存放到当前包下面的文件b.txt中(类名为InFile)。
import java.io.*;
import java.util.*;
public class InFile {
public static void main(String[] args) {
Scanner input=new Scanner(System.in);
int a[]=new int[10];
for(int i=0;i<a.length;i++)
a[i]= ((int)(Math.random()*100+1));
Arrays.sort(a);
try {
DataOutputStream f = new DataOutputStream(new FileOutputStream(".//src/OOTest/b.txt"));
for(int i=0;i<a.length;i++)
f.writeInt(a[i]);
f.close();
} catch(Exception e) {
System.out.print(e.toString());
}
}
}
15. 输入一串字符(含空格、数字和英文字母),将其中的空格替换成’*’字符后,存入到当前包下面的文件a.txt中(类名为StoreFile)。
import java.util.*;
import java.io.*;
public class StoreFile {
public static void main(String[] args) {
Scanner input=new Scanner(System.in);
String str=input.nextLine();
try {
char ch;
FileWriter f=new FileWriter("e:/a.txt");
for(int i=0;i<str.length();i++) {
ch=str.charAt(i);
if(ch==' ')
ch='*';
f.write(ch);
}
f.close();
}
catch(Exception e) {
System.out.print(e.toString());
}
}
}