1:如果使用import语句引入了整个包中的类,那么可能会增加编译时间。但绝对不会影响程序运行的性能,因为当程序执行时,只是将真正使用的类的字节码文件加载到内存。 (T)
2:一个数组可以存放许多不同类型的数值。 (F)
3:设String对象s="Hello ",运行语句System.out.println(s.concat("World!"));后String对象s的内容为"Hello world!",所以语句输出为Hello world!。 (F)
// String永远不会发生改变,任何对String的操作都是另外返回一个新的String,而不是在原有的String上进行修改:
4:类及其属性、方法可以同时有一个以上的修饰符来修饰。 (T)
5:可以使用protected修饰符来防止方法和数据被不同包的非子类访问。 (T)
6:实例变量只能通过对象名访问,类变量既可以通过某个对象名也可以通过类名来访问。 (T)
7:StringBuffer类是线程安全的,StringBuilder类是线程不安全的。 (T)
8:构造方法可以调用本类中重载的构造方法和它的父类的构造方法。 (T)
9:可以使用throws语句来指明方法有异常抛出。 (T)
10:在实例方法或构造器中,this用来引用当前对象,通过使用this可引用当前对象的任何成员。 (F)
2-1
类中某方法定义如下: double fun(int a,int b){ return a*1.0/b; } 同一类内其它方法调用该方法的正确方式是( 3 )。(2分)
2-2
Which of the following statements correctly rotates the button 45 degrees counterclockwise? (4 )
2-3
What kind of reader do you use to handle Character code? (3 ) (2分)
2-4
To handle the mouse click event on a pane p, register the handler with p using _3_. (2分)
2-5
The method _3_ gets the contents of the text field tf. (2分)
2-6
Which statement about the garbage collection mechanism are true? (1 ) (2分)
2-7
为AB类的一个无形式参数无返回值的方法method书写方法头,使得使用类名AB作为前缀就可以调用它,该方法头的形式为( 3)。(3)
2-8
A派生出子类B,B派生出子类C,对于如下Java源代码正确的说法是(4)。(2分)
1. A a0 =new A();
2. A a1 =new B();
3. A a2 =new C();
2-9
The statement for registering a listener for processing list view item change is _. (1)
2-10
以下代码段将创建几个对象?(2)
String s1="bc";
String s2="bc";
2-11
下面哪个Set是根据内容排序的? (2)
2-12
To add a node to the the first row and second column in a GridPane pane, use _2_. (2分)
2-13
在使用interface声明一个接口时,只可以使用(B )修饰符修饰该接口。 (2分)
2-14
下列语句会造成数组new int[10]越界是(D)。 (2分)
2-15
To register a source for an action event with a handler, use __2. (2)
三:程序填空题
定义一个名为Stock的股票类,这个类包括:一个名为symbol的字符串数据域表示股票代码。一个名为name的字符串数据域表示股票名称。一个名为previousClosingPrice的double数据域,它存储前一日的股票交易价格。一个名为currentPrice数据域,它存储当前的股票交易价格。创建一个有特定代码和名称的股票的构造方法。一个名为changePercent()方法返回从previousClosingPrice变化到currentPrice的百分比。
Stock
import java.util.Scanner;
/* 你提交的代码将被嵌入到这里 */
public class Main {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
String symbol1=input.next();
String name1=input.next();
Stock stock = new Stock(symbol1, name1);
stock.previousClosingPrice = input.nextDouble();
// Input current price
stock.currentPrice = input.nextDouble();
// Display stock info
System.out.println(stock.name+"price changed: " + stock.changePercent() * 100 + "%");
input.close();
}
}
002594
比亚迪
56.98
55.40
比亚迪股价涨跌: -2.77290277290277%
class Stock{
String symbol,name;
double previousClosingPrice,currentPrice;
Stock(String symbol,String name){
this.symbol=symbol;
this.name=name;
}
public double changePercent(){
return (currentPrice-previousClosingPrice)/previousClosingPrice;
}
}
请从下列的抽象类shape类扩展出一个圆形类Circle,这个类圆形的半径radius作为私有成员,类中应包含初始化半径的构造方法。
public abstract class shape {// 抽象类
public abstract double getArea();// 求面积
public abstract double getPerimeter(); // 求周长
}
主类从键盘输入圆形的半径值,创建一个圆形对象,然后输出圆形的面积和周长。保留4位小数。
圆形类名Circle
import java.util.Scanner;
import java.text.DecimalFormat;
abstract class shape {// 抽象类
/* 抽象方法 求面积 */
public abstract double getArea( );
/* 抽象方法 求周长 */
public abstract double getPerimeter( );
}
/* 你提交的代码将被嵌入到这里 */
public class Main {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
DecimalFormat d = new DecimalFormat("#.####");// 保留4位小数
double r = input.nextDouble( );
shape c = new Circle(r);
System.out.println(d.format(c.getArea()));
System.out.println(d.format(c.getPerimeter()));
input.close();
}
}
3.1415926
31.0063
19.7392
class Circle extends shape{
private double radius;
Circle(double radius){
this.radius=radius;
}
public double getArea(){
return Math.PI*radius*radius;
}
public double getPerimeter( ){
return 2*Math.PI*radius;
}
}
请编写程序,从键盘输入两个整数m,n,找出等于或大于m的前n个素数。
第一个整数为m,第二个整数为n;中间使用空格隔开。例如:
103 3
从小到大输出找到的等于或大于m的n个素数,每个一行。例如:
103
107
109
9223372036854775839 2
9223372036854775907
9223372036854775931
import java.util.*;
import java.math.BigInteger;
public class Main{
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
BigInteger m = input.nextBigInteger();
int n = input.nextInt();
int cnt=0;
while(cnt
请编写程序,从键盘输入一个整数n,找出大于long.MAX_VALUE且能被n整除的前3个数字。
输入一个作为除数的整数n,例如: 17
输出大于long.MAX_VALUE且能被n整除的前3个数字,例如下列三个数能被17整除且大于long.MAX_VALUE: 9223372036854775816
9223372036854775833
9223372036854775850
103
9223372036854775832
9223372036854775935
9223372036854776038
import java.util.*;
import java.math.BigInteger;
public class Main {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
int n = input.nextInt();
BigInteger big = new BigInteger(String.valueOf(Long.MAX_VALUE));
int count = 0;
while (count<3) {
if (big.mod(BigInteger.valueOf(n)).intValue() == 0) {
count++;
System.out.println(big);
}
big = big.add(BigInteger.ONE); // +1
}
}
}
得到两个巨大素数(质数)的乘积是简单的事,但想从该乘积分解出这两个巨大素数却是国际数学界公认的质因数分解难题。这种单向的数学关系,是不对称加密RSA算法的基本原理。 本题给出两个大素数(128bit位)的乘积和其中一个素数,请你编程求出另一个素数。
44022510695404470886511586569647292146578314354528108825807522926455663589709 (大素数的乘积)
189193782774204832019945226750213439577 (其中一个大素数)
232684764001698545563067004009755869717 (另一个素数)
60883665878129858935918958333091530420746054622405737630613777684610994823161
271963475875372143777333694041058521413
223867067745633357281812540202957589797
import java.util.*;
import java.math.BigInteger;
public class Main {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
BigInteger a = input.nextBigInteger();
BigInteger b = input.nextBigInteger();
System.out.println(a.divide(b));
}
}
import java.math.BigDecimal;
import java.util.Scanner;
public class Main {
public static BigDecimal factorial(int n){
BigDecimal result = new BigDecimal(1);
BigDecimal temp;
for(int i = 2; i <= n; i++){
temp = new BigDecimal(i);
result = result.multiply(temp);
}
return result;
}
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
System.out.println(factorial(n));
}
}
求解给定字符串的前缀。
输入数目不定的多对字符串,每行两个,以空格分开。 例如:
filename filepath
Tom Jack
返回两个字符串的最大前缀,例如:
The common prefix is file
No common prefix
filename filepath
Tom Jack
The common prefix is file
No common prefix
import java.util.*;
public class Main{
public static void prefix(String s1, String s2){
StringBuffer s = new StringBuffer();
int shortlen = s1.length() < s2.length() ? s1.length() : s2.length();
boolean flag=false;
for(int i = 0; i < shortlen; i++) {
if(s1.charAt(i) == s2.charAt(i)){
s.append(s1.charAt(i));
flag=true;
}
else break;
}
}
if (!flag) System.out.println("No common prefix");
else System.out.println("The common prefix is " + s);
}
public static void main(String[] args){
String s1,s2;
Scanner in = new Scanner(System.in);
while (in.hasNext()) {
s1 = in.next();
s2 = in.next();
prefix(s1, s2);
}
in.close();
}
}
文件phonebook1.txt和phonebook2.txt中有若干联系人的姓名和电话号码。请你设计一个程序,将这两个文件中的电话号码同步。(所谓同步,就是将两个文件中的电话号码合并后剔除相同的人名和电话号码。请将同步后的电话号码按照姓名拼音顺序排序后保存到文件phonebook3.txt中。)
由于目前的OJ系统暂时不能支持用户读入文件和写文件,我们编写程序从键盘输入文件中的姓名和电话号码,当输入的单词为end时,表示文件结束。将同步后的电话号码按照姓名拼音顺序排序后输出。
张三 13012345678
李四 13112340000
王五 13212341111
马六 13312342222
陈七 13412343333
孙悟空 13512345555
end (表示文件phonebook1.txt结束)
张三 13012345678
孙悟空 13512345555
王五 13212341111
陈七 13412343333
唐三藏 13612346666
猪悟能 13712347777
沙悟净 13812348888
end (表示文件phonebook2.txt结束)
陈七 13412343333
李四 13112340000
马六 13312342222
沙悟净 13812348888
孙悟空 13512345555
唐三藏 13612346666
王五 13212341111
张三 13012345678
猪悟能 13712347777
Zhang3 13012345678
Li4 13112340000
Wang5 13212341111
Ma6 13312342222
Chen7 13412343333
SunWuKong 13512345555
end
Zhang3 13012345678
SunWuKong 13512345555
Wang5 13212341111
Chen7 13412343333
TangSanZang 13612346666
ZhuWuneng 13712347777
ShaWuJing 13812348888
end
Chen7 13412343333
Li4 13112340000
Ma6 13312342222
ShaWuJing 13812348888
SunWuKong 13512345555
TangSanZang 13612346666
Wang5 13212341111
Zhang3 13012345678
ZhuWuneng 13712347777
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
TreeMap map = new TreeMap<>(( String s1,String s2) -> {
return s1.compareTo(s2);
});
String name;
String[] data = new String[2];
while(true){
name = sc.nextLine();
if(name.substring(0,3).equals("end")){
break;
}
data = name.split(" "); //空格处拆分为字符串数组
map.put(data[0],Long.parseLong(data[1]));
//// Long.parseLong() 此方法返回的十进制参数表示的long
}
while(true){
name = sc.nextLine();
if(name.substring(0,3).equals("end")){
break;
}
data = name.split(" ");
map.put(data[0],Long.parseLong(data[1]));
}
Set keys = map.keySet();
for(String key:keys){
System.out.println(key+" "+map.get(key));
}
}
}
文件:期中考试成绩.txt中有若干学生的姓名和数学期中考试成绩。 Smith 67 Anderson 75 Lewis 83 Cook 58 David 96 请你编写一个简单的查询成绩程序,当从键盘输入一个姓名时查找到他的数学期中考试分数并按照21%折算后输出。如果没找到则显示Not found. 由于目前的OJ系统暂时不能支持用户读入文件,我们编写程序从键盘输入文件中的姓名和成绩,当输入的名字为noname时,表示结束。noname后面有一个名字,需要查找其成绩。
Smith 67
Anderson 75
Lewis 83
Cook 58
David 96
noname (表示结束)
Bill
Not found.
Smith 67
Anderson 75
Lewis 83
Cook 58
David 96
noname
Lewis
17.43
import java.util.*;
public class Main{
public static void main(String []args){
Scanner in=new Scanner(System.in);
HashMap m=new HashMap();
String name;
double score;
name=in.next();
while(!name.subtring("noname")!=0){
score=in.nextDouble();
m.put(name, score);
name=in.next();
}
name=in.next();
if(m.get(name)!=null)
System.out.println(m.get(name).intValue()*0.21);
else
System.out.println("Not found.");
}
}
文件phonebook1.txt中有若干联系人的姓名和电话号码。
高富帅 13312342222
白富美 13412343333
孙悟空 13512345555
唐三藏 13612346666
猪悟能 13712347777
沙悟净 13812348888
请你编写一个简单的通信录程序,当从键盘输入一个姓名时查找到对应的电话号码并输出。如果没找到则显示Not found. 由于目前的自动裁判系统暂时不能支持用户读入文件,我们编写程序从键盘输入文件中的姓名和电话号码,当输入的名字为noname时,表示结束。noname后面有一个名字,需要查找其对应的电话号码。
高富帅 13312342222
白富美 13412343333
孙悟空 13512345555
唐三藏 13612346666
猪悟能 13712347777
沙悟净 13812348888
noname (表示结束)
唐三藏 (需要查找此人的电话号码)
13612346666 (输出对应的电话号码)
白富美 13412343333
孙悟空 13512345555
唐三藏 13612346666
猪悟能 13712347777
沙悟净 13812348888
noname
白骨精
Not found.
import java.util.*;
public class Main{
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
Map map = new HashMap();
String name;
String telphone;
name = input.next();
while (!name.equals("noname")) {
telphone = input.next();
map.put(name, telphone);
name = input.next();
}
String target = input.next();
if (map.get(target) != null)
System.out.println(map.get(target));
else
System.out.println("Not found.");
}
}