计算机等级二级考试辅导:综合应用上机模拟题及解答(第8部分)
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第 18/19 页
第 19/19 页
第 8/19 页
6、编程实现打印昨天的当前时刻 解答:
在应用开发中,可能会涉及到获取过去几天,几月,几年前的时间,可以应用 java.util.Calendar 类中的 add 方法。add 方法实现向给定的日历字段添加或减去指定的时间, 第一个参数为当前的时间(可以为时、分、秒和年、月、日等类型的日历字段,如 Calendar.DATE 代表当前日期),第二个参数是需要加减的时间(往前为负数,往后为正数)。 比如,如下示例代码是获得封装“昨天”的日期的 Calendar 类对象。 Calendar nowThisDate = Calendar.getInstance(); nowThisDate.add(Calendar.DATE, -1);
第 2/19 页
(2)设计一个方法,对字符串中包含的字母实现大小写替换。如输入字符串 ab1234CD, 则输出 AB1234cd。 解答:
由于本问题的要求只是将一个字符串中的大写字母转换为小写字母,而小写字母则转 换为大写字母,并不是将整个字符串全部转换为大写或者小写字母。因此,必须要对给定 的字符串进行分析判断,识别出某个字符的状况,然后再进行对应的转换(如果为非字母 字符,则不需要进行转换)。
第 1/19 页
2、依据题目中对字符串的功能操作要求,编程对应的程序 (1)设计一个方法,实现字符串的反转功能。如输入 abcdefg 字符串,则输出 gfedcba 字 符串。 解答:
在 StringBuffer 类中提供有一个 reverse()方法直接可以实现字符串的反转功能,因此只 需要将待转换的字符串转化为 StringBuffer 类的对象实例就可以实现本问题的功能。参看如 下示例图所示的程序代码示例,其中实现字符串反转的功能方法为 convertOneString。
计算机等级二级考试辅导:综合应用上机模拟题及解答(第 8 部分)
1、Java 基本数据类型相关的问题 (1)Java 有那些基本数据类型,String 是不是基本数据类型,它们有何区别。
1)基本数据类型主要有 int、float、char、boolean、byte、long 等数据类型。其中的 int 为 32 位,float 分为 32 位(单精度浮点数)和 64 位(双精度浮点数),而 long 为 64 位。 2)String 不是基本数据类型,它是一个类,属于复合类型(参考如下示例图所示的 String 类的定义及功能说明)
5、如何实现将 GB2312 编码的字符串转换为 ISO-8859-1 编码的字符串 解答:
在 String 类中提供有如下形式的构造方法:String(byte[] bytes, Charset charset),它通过 使用指定的编码格式 charset 参数解码指定的 byte 数组,重新构造一个新的字符串对象实 例。因此,应用该构造方法可以解决本问题,参看如下示例图所示的程序代码。
创建两个类 Car 和 Motorbike 从 Vehicle 类继承,并在这两个类中实现 getInfoOfWheels 方法。在 Car 类中,应当返回“四轮车”信息;而在 Motorbike 类中,应当返回“双轮车” 信息。创建另一个带 main 方法的类,在该类中创建 Car 和 Motorbike 的实例,并在控制台 中显示出对应的消息。
第 6/19 页
但由于 java.util.Date 类中的许多方法都是 Deprecated 类型的方法(过时),更推荐采用 java.util.Calendar 类。作者对本问题采用 java.util.Calendar 类重新加以实现,参看如下示例 图所示的程序代码。
(2)如何取得从 1970 年到现在的毫秒数(直接根据 System 类中 currentTimeMillis 方法)
第 13/19 页
9、计算“1+2+3+4+…+100”的总和值 解答:
应用循环并进行累加可以解决本问题,本示例的程序代码及执行后的结果参看如下示 例图所示的结果。
第 14/19 页
其实,本示例也可以采用 while 循环和 do…while 循环实现,有兴趣的读者可以自行实 现。 10、输出 100~200 之间不能被 3 整除的数 解答:
69 分输出为‘D’,60 分以下输出为‘E’。 解答:
给出一个百分制的成绩为 95.5,并应用 if 条件语句进行判断,最终的程序代码参看如 下示例图所示的程序代码示例。
第 10/19 页
8、给定某年和某月份,判断该年该月份中有多少天 解答:
实现本问题的功能要求的程序代码示例如下(给定 2021 年 3 月份): package com.bluedream.demo; public class StringConvert {
java.text.DecimalFormat 类是 NumberFormat 的一个具体子类,用于格式化十进制数字, 如下示例图所示的内容为 DecimalFormat 类的定义及主要功能说明。
DecimalFormat 类主要靠“#”和“0”两种占位符号来指定数字长度,包含一个模式和 一组符号。“0”表示如果位数不足则以 0 填充,而“#”表示只要有可能就把数字拉上这
其中的int为32位float分为32位单精度浮点数和64位双精度浮点数而long为642string不是基本数据类型它是一个类属于复合类型参考如下示例图所示的string类的定义及功能说明3基本数据类型一般为某个具体的值而复合类型代表的是一个对象可以为类接口或者数组对象2swtich语句是否可以应用byte类型变量
第 7/19 页
解答: 直接应用 System 类中 currenttimeValue = System.currentTimeMillis();
(3)如何获取本月的总天数 解答:
在 java.util.Calendar 类中提供有 getActualMaximum 方法可以获得某个月份的总天数, 参看如下示例图所示的程序代码。
(2)如何将数字转换为字符
第 4/19 页
解答: 将数字(本示例以 int 整形数据为示例加以说明)转换为字符串(尽管该字符串中只包
含有一个字符),然后将该字符串转换为 char 类型的数组(该数组中只有一个成员元素), 最后获得数组中的第 1 个字符元素。参看如下示例图所示的程序代码示例。
(3)对某个小数值进行四舍五入处理,返回只保留两位小数的数据值 解答:
第 5/19 页
个位置(详细的含义请参看相关的帮助文档)。参看如下示例图所示的程序代码示例。
4、依据题目中的要求对日期和时间进行编程,编程实现对应的功能程序 (1)如何取得年月日,小时分秒 解答:
java.util.Date 类提供对日期和时间包装,通过该类可以获取当前时间、获取某个时间的 某种格式、设置时间和对时间进行运算等功能。因此,应用 java.util.Date 类可以实现本问 题的功能要求,相关的程序代码参看如下示例图所示的程序代码。
public static void main(String[] args){ int year=2021; int month=3; int days=1; switch(month){ case 1: days=31; break; case 2:
第 11/19 页
if((year %4)==0 ){ days=29;
(4)如何格式化日期 对日期和时间进行格式化,可以应用 SimpleDateFormat 类及相关的功能方法,该类可
以实现对日期字符串进行解析和格式化输出。 SimpleDateFormat formatObject = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); formatObject.parse(stringTimeDate);
第 17/19 页
绘制;而 Rectangle 类代表矩形,Triangle 类代表三角形,Circle 类代表圆形。这些子类根 据自身图形的特点,新增对应的属性和实现基类中的 initSelf、drawSelf 方法。
12、创建一个 Vehicle 类并将它声明为抽象类,在 Vehicle 类中声明一个 getInfoOfWheels 方法,使它返回一个字符串值。
因此,应用 java.util.Calendar 类中的 add 方法可以解决本问题,参看如下示例图所示的 程序代码。
第 9/19 页
7、给出一个百分制的成绩,要求输出成绩的等级‘A’、‘B’、‘C’、‘D’、‘E’。 其中 90 分以上输出为‘A’,80~89 分输出为‘B’、70~79 分输出为‘C’、60~
} else{
days=28; } break; case 3: days=31; break; case 4: days=30; break; case 5: days=31; break; case 6: days=30; break; case 7: days=31; break; case 8: days=31; break; case 9: days=30; break; case 10:
11、设计一个能细分为矩形、三角形、圆形和椭圆形的“图形”类。 使用 Java 继承机制将这些图形分类,找出能作为基类部分的共同特征(如校准点)和
方法(如画法、初始化),并看看这些图形是否能进一步划分为子类。本题只考虑实现思 想,不考虑具体实现的细节,实现方式可自由发挥。 解答:
本示例的程序代码参看如下示例图所示的结果,其中的 Figure 类代表图形,为抽象类, 定义有共同的属性“顶点”坐标(topPointX, topPointY),共同的方法 initSelf 初始化、drawSelf
本示例的程序代码及执行后的结果参看如下示例图所示的结果,在 100~200 之间不能 被 3 整除的数有多个,示例程序都一一列出。
第 15/19 页
采用 while 循环实现本示例的程序代码示例参看如下示例图所示的程序代码示例。
第 16/19 页
采用 do…while 循环实现本示例的程序代码示例参看如下示例图所示的程序代码示例。
第 12/19 页
days=31; break; case 11: days=30; break; case 12: days=31; break; } System.out.println(year+"年"+month+"月中的总天数是:"+days+"天"); } } 本示例的程序代码执行后的结果参看如下示例图所示的结果(给定 2021 年 3 月份)。
3)基本数据类型一般为某个具体的值,而复合类型代表的是一个对象(可以为类、接 口或者数组对象) (2)Swtich 语句是否可以应用 byte 类型变量?是否可以应用 long 类型变量?是否可以应 用 String 类型的对象? 1)了解 switch(expr1)语句 在 switch(expr1)语句中,其中的 expr1 是一个整数表达式。因此传递给 switch 和 case 语句的参数应该是 int、short、char 或者 byte 类型。而 long 和 String 类型的数据都不能作 用于 swtich 语句中。 2)测试的代码示例参看如下示例图所示
最终的程序代码参看如下示例图所示的程序代码,实现本功能的方法为 convertOneString。
第 3/19 页
3、依据题目中的要求对数据类型进行转换,编程对应的程序 (1)将数值型字符转换为数字 解答:
下面以 int 整数为示例说明,对于其它的数据类型也基本相同。参看如下示例图所示的 程序代码示例,实现的基本原理:首先,将字符转换为字符串;其次,再应用对应的数据 类型的包装类(如 int 采用 Integer 类,double 则采用 Double 类)对该字符串进行解析,获 得对应的数据类型的值。
第 19/19 页
第 8/19 页
6、编程实现打印昨天的当前时刻 解答:
在应用开发中,可能会涉及到获取过去几天,几月,几年前的时间,可以应用 java.util.Calendar 类中的 add 方法。add 方法实现向给定的日历字段添加或减去指定的时间, 第一个参数为当前的时间(可以为时、分、秒和年、月、日等类型的日历字段,如 Calendar.DATE 代表当前日期),第二个参数是需要加减的时间(往前为负数,往后为正数)。 比如,如下示例代码是获得封装“昨天”的日期的 Calendar 类对象。 Calendar nowThisDate = Calendar.getInstance(); nowThisDate.add(Calendar.DATE, -1);
第 2/19 页
(2)设计一个方法,对字符串中包含的字母实现大小写替换。如输入字符串 ab1234CD, 则输出 AB1234cd。 解答:
由于本问题的要求只是将一个字符串中的大写字母转换为小写字母,而小写字母则转 换为大写字母,并不是将整个字符串全部转换为大写或者小写字母。因此,必须要对给定 的字符串进行分析判断,识别出某个字符的状况,然后再进行对应的转换(如果为非字母 字符,则不需要进行转换)。
第 1/19 页
2、依据题目中对字符串的功能操作要求,编程对应的程序 (1)设计一个方法,实现字符串的反转功能。如输入 abcdefg 字符串,则输出 gfedcba 字 符串。 解答:
在 StringBuffer 类中提供有一个 reverse()方法直接可以实现字符串的反转功能,因此只 需要将待转换的字符串转化为 StringBuffer 类的对象实例就可以实现本问题的功能。参看如 下示例图所示的程序代码示例,其中实现字符串反转的功能方法为 convertOneString。
计算机等级二级考试辅导:综合应用上机模拟题及解答(第 8 部分)
1、Java 基本数据类型相关的问题 (1)Java 有那些基本数据类型,String 是不是基本数据类型,它们有何区别。
1)基本数据类型主要有 int、float、char、boolean、byte、long 等数据类型。其中的 int 为 32 位,float 分为 32 位(单精度浮点数)和 64 位(双精度浮点数),而 long 为 64 位。 2)String 不是基本数据类型,它是一个类,属于复合类型(参考如下示例图所示的 String 类的定义及功能说明)
5、如何实现将 GB2312 编码的字符串转换为 ISO-8859-1 编码的字符串 解答:
在 String 类中提供有如下形式的构造方法:String(byte[] bytes, Charset charset),它通过 使用指定的编码格式 charset 参数解码指定的 byte 数组,重新构造一个新的字符串对象实 例。因此,应用该构造方法可以解决本问题,参看如下示例图所示的程序代码。
创建两个类 Car 和 Motorbike 从 Vehicle 类继承,并在这两个类中实现 getInfoOfWheels 方法。在 Car 类中,应当返回“四轮车”信息;而在 Motorbike 类中,应当返回“双轮车” 信息。创建另一个带 main 方法的类,在该类中创建 Car 和 Motorbike 的实例,并在控制台 中显示出对应的消息。
第 6/19 页
但由于 java.util.Date 类中的许多方法都是 Deprecated 类型的方法(过时),更推荐采用 java.util.Calendar 类。作者对本问题采用 java.util.Calendar 类重新加以实现,参看如下示例 图所示的程序代码。
(2)如何取得从 1970 年到现在的毫秒数(直接根据 System 类中 currentTimeMillis 方法)
第 13/19 页
9、计算“1+2+3+4+…+100”的总和值 解答:
应用循环并进行累加可以解决本问题,本示例的程序代码及执行后的结果参看如下示 例图所示的结果。
第 14/19 页
其实,本示例也可以采用 while 循环和 do…while 循环实现,有兴趣的读者可以自行实 现。 10、输出 100~200 之间不能被 3 整除的数 解答:
69 分输出为‘D’,60 分以下输出为‘E’。 解答:
给出一个百分制的成绩为 95.5,并应用 if 条件语句进行判断,最终的程序代码参看如 下示例图所示的程序代码示例。
第 10/19 页
8、给定某年和某月份,判断该年该月份中有多少天 解答:
实现本问题的功能要求的程序代码示例如下(给定 2021 年 3 月份): package com.bluedream.demo; public class StringConvert {
java.text.DecimalFormat 类是 NumberFormat 的一个具体子类,用于格式化十进制数字, 如下示例图所示的内容为 DecimalFormat 类的定义及主要功能说明。
DecimalFormat 类主要靠“#”和“0”两种占位符号来指定数字长度,包含一个模式和 一组符号。“0”表示如果位数不足则以 0 填充,而“#”表示只要有可能就把数字拉上这
其中的int为32位float分为32位单精度浮点数和64位双精度浮点数而long为642string不是基本数据类型它是一个类属于复合类型参考如下示例图所示的string类的定义及功能说明3基本数据类型一般为某个具体的值而复合类型代表的是一个对象可以为类接口或者数组对象2swtich语句是否可以应用byte类型变量
第 7/19 页
解答: 直接应用 System 类中 currenttimeValue = System.currentTimeMillis();
(3)如何获取本月的总天数 解答:
在 java.util.Calendar 类中提供有 getActualMaximum 方法可以获得某个月份的总天数, 参看如下示例图所示的程序代码。
(2)如何将数字转换为字符
第 4/19 页
解答: 将数字(本示例以 int 整形数据为示例加以说明)转换为字符串(尽管该字符串中只包
含有一个字符),然后将该字符串转换为 char 类型的数组(该数组中只有一个成员元素), 最后获得数组中的第 1 个字符元素。参看如下示例图所示的程序代码示例。
(3)对某个小数值进行四舍五入处理,返回只保留两位小数的数据值 解答:
第 5/19 页
个位置(详细的含义请参看相关的帮助文档)。参看如下示例图所示的程序代码示例。
4、依据题目中的要求对日期和时间进行编程,编程实现对应的功能程序 (1)如何取得年月日,小时分秒 解答:
java.util.Date 类提供对日期和时间包装,通过该类可以获取当前时间、获取某个时间的 某种格式、设置时间和对时间进行运算等功能。因此,应用 java.util.Date 类可以实现本问 题的功能要求,相关的程序代码参看如下示例图所示的程序代码。
public static void main(String[] args){ int year=2021; int month=3; int days=1; switch(month){ case 1: days=31; break; case 2:
第 11/19 页
if((year %4)==0 ){ days=29;
(4)如何格式化日期 对日期和时间进行格式化,可以应用 SimpleDateFormat 类及相关的功能方法,该类可
以实现对日期字符串进行解析和格式化输出。 SimpleDateFormat formatObject = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); formatObject.parse(stringTimeDate);
第 17/19 页
绘制;而 Rectangle 类代表矩形,Triangle 类代表三角形,Circle 类代表圆形。这些子类根 据自身图形的特点,新增对应的属性和实现基类中的 initSelf、drawSelf 方法。
12、创建一个 Vehicle 类并将它声明为抽象类,在 Vehicle 类中声明一个 getInfoOfWheels 方法,使它返回一个字符串值。
因此,应用 java.util.Calendar 类中的 add 方法可以解决本问题,参看如下示例图所示的 程序代码。
第 9/19 页
7、给出一个百分制的成绩,要求输出成绩的等级‘A’、‘B’、‘C’、‘D’、‘E’。 其中 90 分以上输出为‘A’,80~89 分输出为‘B’、70~79 分输出为‘C’、60~
} else{
days=28; } break; case 3: days=31; break; case 4: days=30; break; case 5: days=31; break; case 6: days=30; break; case 7: days=31; break; case 8: days=31; break; case 9: days=30; break; case 10:
11、设计一个能细分为矩形、三角形、圆形和椭圆形的“图形”类。 使用 Java 继承机制将这些图形分类,找出能作为基类部分的共同特征(如校准点)和
方法(如画法、初始化),并看看这些图形是否能进一步划分为子类。本题只考虑实现思 想,不考虑具体实现的细节,实现方式可自由发挥。 解答:
本示例的程序代码参看如下示例图所示的结果,其中的 Figure 类代表图形,为抽象类, 定义有共同的属性“顶点”坐标(topPointX, topPointY),共同的方法 initSelf 初始化、drawSelf
本示例的程序代码及执行后的结果参看如下示例图所示的结果,在 100~200 之间不能 被 3 整除的数有多个,示例程序都一一列出。
第 15/19 页
采用 while 循环实现本示例的程序代码示例参看如下示例图所示的程序代码示例。
第 16/19 页
采用 do…while 循环实现本示例的程序代码示例参看如下示例图所示的程序代码示例。
第 12/19 页
days=31; break; case 11: days=30; break; case 12: days=31; break; } System.out.println(year+"年"+month+"月中的总天数是:"+days+"天"); } } 本示例的程序代码执行后的结果参看如下示例图所示的结果(给定 2021 年 3 月份)。
3)基本数据类型一般为某个具体的值,而复合类型代表的是一个对象(可以为类、接 口或者数组对象) (2)Swtich 语句是否可以应用 byte 类型变量?是否可以应用 long 类型变量?是否可以应 用 String 类型的对象? 1)了解 switch(expr1)语句 在 switch(expr1)语句中,其中的 expr1 是一个整数表达式。因此传递给 switch 和 case 语句的参数应该是 int、short、char 或者 byte 类型。而 long 和 String 类型的数据都不能作 用于 swtich 语句中。 2)测试的代码示例参看如下示例图所示
最终的程序代码参看如下示例图所示的程序代码,实现本功能的方法为 convertOneString。
第 3/19 页
3、依据题目中的要求对数据类型进行转换,编程对应的程序 (1)将数值型字符转换为数字 解答:
下面以 int 整数为示例说明,对于其它的数据类型也基本相同。参看如下示例图所示的 程序代码示例,实现的基本原理:首先,将字符转换为字符串;其次,再应用对应的数据 类型的包装类(如 int 采用 Integer 类,double 则采用 Double 类)对该字符串进行解析,获 得对应的数据类型的值。