JAVA计算机二级考试题目及答案
这些题目是仅仅是代表我自己的解法
第一套
一、大题01
1、在Test01类的main方法中,补充完整代码,实现从键盘输入一个正整数整数时,求大于零并且小于或等于这个正整数的所有奇数的和,并在控制台输出计算结果。如果输入不是正整数则输出提示。程序运行结果之一如下图所示
2、保存文档。(10分)
import java.util.Scanner;
/**
* 从键盘输入一个正整数,求大于零并且小于或等于这个正整数的所有奇数的和,并在控制台输出计算结果。如果输入不是正整数,则输出提示。
*/
public class Test01 {
public static void main(String[] args) {
int num = 0;
int sum = 0;
System.out.println("请输入一个正整数:");
Scanner sc = new Scanner(System.in);
try {
num = sc.nextInt();
if (num % 1 == 0) { // 判断输入是否为正整数 -----------2分
for (int i = 1;i <= num; i++) {//设置遍历统计条件-----2分
if (i % 2 == 1) { //判断是否为奇数----------2分
sum = sum + i;//求和------------2分
}
}
System.out.println("大于零并且小于或等于" + num + "的所有奇数的和是:" + sum);
} else {
System.out.println("你输入的不是正整数");
}
} catch (Exception e) { //输入异常处理 ----2分
System.out.println("你的输入不符合要求,无法计算");
}
}
}
二、大题02
补充下面程序接受用户输入的一串字符串,将其转化为全部小写,然后计算26个小写英文字母在字符串中首次出现的位置并输出结果。(15分)
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class TestNum1 {
public static void main(String[] args) throws IOException {
BufferedReader sc=new BufferedReader(new InputStreamReader(System.in));
System.out.println("请输入一串字符串");
String sID= sc.readLine();//接受用户输入
sID = sID.toLowerCase();//转成全部小写字母
System.out.println("您输入的是:"+sID);
int index= 0;// 记录位置
for(int i=0;i<26;i++){
char c= (char) (97+i);//每一个字母
index = sID.indexOf(c);// 找出第一次出现位置
if(index>=0){//判断是否出现
System.out.println(c+"首次出现的位置为:"+index);
}else{
System.out.println(c+"没出现");
}
}
}
}
三、大题03
写一个MyMath类,提供静态函数void fun(int x)对x(一个大于或等于3的正整数,若x小于3将直接退出),判断它是不是一个素数(素数是指除了1和该数本身之外,不能被其它任何整数整除的数。例如,13是素数。因为它不能被2,3,4,…,12整除。)如果是素数则打印出“x是素数”,如果不是则打印“x不是素数”。注意打印结果中x用具体数值取代,例如“13是素数”。在main函数中,调用这个函数计算出结果。(20分)
class MyMath {
void fun(int x) { // #1
int r;// 存放余数
if (x < 3)
return; // #2 小于3 程序退出
for (int i=2; i<x; i++) {// #3
r = x%i;// #4 得到余数
if ( r == 0) { // #5 余数为零
System.out.println(x + "不是素数");
return ;// #6 程序退出
}
}
System.out.println(x + "是素数");
}
}
public class Test31 {
public static void main(String[] args) {
int num=18;
MyMath my = new MyMath();//利用fun函数计算num是不是素数 #7(3分)
my.fun(num);
}
}
四、大题04
1、打开Test10.java按说明和要求补充完成代码。模拟实现用户使用某系统的权限分级管理。 程序包含以下对象:
*interface CanRead 读接口:通过该接口,可具体定义用户的浏览权限
*interface CanWrite 写接口:通过该接口,可具体定义用户的写入权限
*interface CanAlter 改接口:通过该接口,可具体定义用户的修改权限
*class Visitor 访客类,实现读接口,具有浏览特定信息的权限;
*class NormalUser 普通用户类,继承了访客的所有权限,并且实现写接口;
*class Administrator管理员类,继承了普通用户的所有权限,并且实现了改接口。
2、程序运行时,选择输入用户身份,创建对应的用户,在控制台输出相应用户相关信息。若输入指令非法,控制台输出错误提示,并提醒继续输入。
根据运行结果图和提示,补全代码调试通过。程序运行可能结果之一如下图所示:
3、保存类文档。(25分)
import java.util.InputMismatchException;
import java.util.Scanner;
public class Test10 {
public static void main(String[] args) {
Visitor vs = null;
boolean flag = true;
do {
Scanner sc = new Scanner(System.in);
System.out.println("输入你的身份,1 :代表访客;2:代表普通用户;3:代表管理员");
try{
int i = sc.nextInt();
if (i==1 || i==2 || i==3) { //判断输入指令是否合法-----3分
flag = false ; //根据要求设置循环输入开关的状态 ---------------2分
switch (i) { //设置分支选择变量-------------------------2分
case 1:
vs = new Visitor(); //根据输入的指令创建相应的对象 -----2分
break;
case 2:
vs = new NormalUser() ;//根据输入的指令创建相应的对象 -----2分
break;
case 3:
vs = new Administrator();//根据输入的指令创建相应的对象---2分
break;
}
/*以下代码通过父类型输出特定对象的特性信息*/
System.out.println("你的身份是:"+vs.getType()); //-----2分
/* 以下代码,根据上面已经创建出的具体对象访问该对象的所有权限信息*/
if (vs instanceof Administrator) {
Administrator admin = (Administrator) vs; //转换为相对应的对象----2分
System.out.println(admin.read());
System.out.println(admin.write());
System.out.println(admin.alter());
} else if (vs instanceof NormalUser) {
NormalUser nu = (NormalUser) vs; //转换为相对应的对象------2分
System.out.println(nu.read());
System.out.println(nu.write());
} else if (vs instanceof Visitor) {
System.out.println( vs.read()); //转换为相对应的对象-------2分
}
}else{
System.out.println("输入的指令不正确,请重新选择输入!");
}
}catch(InputMismatchException ime){
System.out.println("输入的指令不正确,请重新选择输入!");
}finally{
sc = new Scanner(system.in); ; //io释放资源 -------------------------------------2分
}
} while (flag); // 设计一个控制程序是否循环输入的开关变量 --------------- 2分
}
}
interface CanRead {
public String read();
}
interface CanWrite {
public String write();
}
interface CanAlter {
public String alter();
}
class Visitor implements CanRead {
@Override
public String read() {
return "具备浏览相关信息权限!";
}
public String getType() {
return "访客!";
}
}
class NormalUser extends Visitor implements CanWrite {
@Override
public String write() {
return "具备写入相关信息权限!";
}
@Override
public String getType() {
return "普通用户!";
}
}
class Administrator extends NormalUser implements CanAlter {
@Override
public String alter() {
return "具备修改相关信息权限!";
}
@Override
public String getType() {
return "管理员!";
}
}
仅代表个人解法
不是标准答案!不是标准答案!不是标准答案!
原题:
链接:https://pan.baidu.com/s/1ncaMFEI7qT71PlKPi2QZhA
提取码:3nuf