Java期末考试编程题复习
- 在程序中定义Person类,为该类编写如下字段、构造器、访问器、修改器和相应的其他方法。(20分)
<1>在Person类中定义两个字段: 私有访问权限,类型为String的name字段; 私有访问权限,类型为int的age字段。
<2>在Person类中定义构造器
构造器有两个参数,第一个参数的类型是String,名字为name。第二个的类型是int,名字是age。第一个参数的值赋给字段name,第二个参数的值赋给字段age。
<3>为Person类的两个字段分别编写访问器方法,方法名称分别为getName和getAge。getName方法返回类型为String的name字段的值;getAge方法返回类型为int的age字段的值。
<4>为Person类的两个字段分别编写修改器方法,方法名称分别为setName和setAge。setName方法有一个String类型的参数,方法中用该参数来设置字段name的值;setAge方法有一个int类型的参数,方法中用该参数来设置字段age的值,并且保证age字段的值不能为负数,如果要将age设置为负数则给出错误提示。
<5> 在main()中创建一Person类型的对象,并调用上面的方法。
class Person {
/* 定义string类型姓名以及int类型年龄 */
private String name;
private int age;
/* 构造器 */
public Person(String _name, int _age) {
age = _age;
name = _name;
}
/* 设置姓名以及年龄的方法 */
public void setName(String _name) {
name = _name;
}
public void setAge(int _age) {
if (_age < 0) {
/* 如果设置的年龄小于0岁打印错误 */
System.out.println("error");
} else {
age = _age;
}
}
/* 获取姓名以及年龄的方法 */
public String getName() {
return name;
}
public int getAge() {
return age;
}
}
public class App {
public static void main(String[] args) {
// 创建Person对象(p1采用构造函数方式创建p2采用类方法进行数据设置)
Person p1 = new Person("小张", 18);
Person p2 = new Person(null, 0);
// 调用类方法设置
p2.setAge(21);
p2.setName("小李");
// 调用get方法输出信息
System.out.println(p1.getName() + "的年龄是 " + p1.getAge());
System.out.println(p2.getName() + "的年龄是 " + p2.getAge());
}
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
2、已知三个小数x,y,z,请把这三个数由大到小输出 (20分)
public class App {
public static void main(String[] args) throws Exception {
double Num1 = 10.2;
double Num2 = 11.9;
double Num3 = 7.8;
double max = 0.0, min = 0.0;
// 如果num1大于num2和num3最大数为num1
if (Num1 > Num2 && Num1 > Num3) {
// 如果上述判断成立则从num2和num3中判断出最小值
if (Num2 > Num3) {
min = Num3;
} else {
min = Num2;
}
max = Num1;
} else if (Num2 > Num1 && Num2 > Num3) {
if (Num1 > Num3) {
min = Num3;
} else {
min = Num1;
}
max = Num2;
} else if (Num3 > Num2 && Num3 > Num1) {
if (Num2 > Num1) {
min = Num1;
} else {
min = Num2;
}
max = Num3;
}
// 打印出最大数值和最小数值
System.out.println("最大值是: " + max + " 最小值是:" + min);
}
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
3、求n!,如当n=6时,输出为720 (15分)
import java.util.Scanner;
public class App {
public static void main(String[] args) throws Exception {
/* 求n的阶乘 */
System.out.print("请输入阶乘数值:");
Scanner sc = new Scanner(System.in);
// 输入一个求阶乘的数值
int Num = sc.nextInt();
int value = 1;
// 求阶乘核心程序
for (int i = 1; i < Num; i++) {
value += i * value;
}
// 输出阶乘数值
System.out.println(Num + "的阶乘 = " + value);
// 关闭sc类
sc.close();
}
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
4、将一个数组逆序输出,如:原来为{1,2,3,4,5},输出为{5,4,3,2,1} (15分)
public class App {
public static void main(String[] args) {
int[] arrList = { 1, 2, 3, 4, 5 };
// 逆序方式输出
for (int i = arrList.length - 1; i >= 0; i--) {
System.out.print(arrList[i] + " ");
}
}
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
5、已知学生成绩,如成绩大于等于90,则输出优秀;如在80到90间,则输出良好;如在70到80间,则输出中等;如在60到70间,则输出及格;如在0到60间,则输出不及格;如成绩小于0或大于100,则输出出错) (10分)
import java.util.Scanner;
public class App {
public static void main(String[] args) throws Exception {
Scanner sc = new Scanner(System.in);
System.out.print("请输入学生成绩:");
double scores = sc.nextDouble();
String level;
if (scores >= 90 && scores <= 100) {
level = "优秀";
} else if (scores >= 80) {
level = "良好";
} else if (scores >= 70) {
level = "中等";
} else if (scores >= 60) {
level = "及格";
} else if (scores >= 0) {
level = "不及格";
} else {
level = "出错";
}
System.out.println("该学生等级为:" + level);
sc.close();
}
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
2021-1-2更新阶乘程序更正(阶乘数值类型更改为double类型):
byte占1个字节8位,取值范围为-27~27-1
int占4个字节32位,取值范围为-231~231-1
short占2个字节16位,取值范围为-215~215-1
long占8个字节64位,取值范围为-263~263-1
float占4个字节32位,取值范围为3.402823e+38 ~ 1.401298e-45
double占8个字节64位,取值范围为1.797693e+308~ 4.9000000e-324
char占2个字节16位,取值范围为0~65535
boolean即true或false
import java.util.Scanner;
public class App {
public static void main(String[] args) throws Exception {
/* 求n的阶乘 */
System.out.print("请输入阶乘数值:");
Scanner sc = new Scanner(System.in);
// 输入一个求阶乘的数值
int Num = sc.nextInt();
double value = 1;
// 求阶乘核心程序
for (int i = 1; i < Num; i++) {
value += i * value;
}
// 输出阶乘数值
System.out.println(Num + "的阶乘 = " + value);
// 关闭sc类
sc.close();
}
}
原文章:https://blog.csdn.net/qq_43581670/article/details/112086069
Java期末考试编程题复习的更多相关文章
- 中国MOOC_面向对象程序设计——Java语言_期末考试编程题_1细胞自动机
期末考试编程题 返回 这是期末考试的编程题 温馨提示: 1.本次考试属于Online Judge题目,提交后由系统即时判分. 2.学生可以在考试截止时间之前提交答案,系统将取其中的最高分作为最终成 ...
- 网易云课堂_C语言程序设计进阶_期末考试编程题部分
1 字符串循环右移(5分) 题目内容: 输入一个字符串和一个非负整数N,要求将字符串循环右移N次. 输入格式: 输入在第1行中给出一个字符串,以'#'表示结束,‘#’不是字符串的一部分,字符串的长度未 ...
- 网易云课堂_程序设计入门-C语言_期末考试编程题
1 字数统计(10分) 题目内容: 你的程序要读入一篇英文文章,然后统计其中的单词数来输出.需要统计的数据为: 总的单词数量: 含有1个字母到10个字母的单词的数量. 单词和单词的间隔是由以下标点符号 ...
- Java期末考试冲刺总结
经过长达将近三个小时的冲刺,我感觉身心俱疲,但它无法掩盖我敲代码的欲望! 三个小时我只实现了公文流转系统的的部分功能. 我深刻的意识到建民老师说的这套关系之复杂,它真的是太复杂了!!!没有系统的梳理, ...
- java 期末考试复习
//Scanner这样写? Scanner input = new Scanner(System.in); //不断获得下一个单词 names[i] = toTitleCase(input.nex ...
- java经典50编程题
菲波拉契数列:有一对兔子,从出生后第 3 个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? package com.day2; public ...
- Java OOP考试错题分析
解析: A.ArrayList 可以存储NULL值,也可以存储重复的值,对集合没有任何影响. B.一旦实例化不可改变自身大小,这是数组的特性.集合的容量是自身扩容的. C.ArrayList可以存 ...
- 链家2018春招C/C++开发实习生在线考试编程题
题目一 题解:该题目意思就是让你输入n组数据,然后求并集,利用STL容器set集合的特性:元素不重复存储,我们可以很轻易得出答案 #include <iostream> #include ...
- java面向对象基础编程题
第一题: 设计一个形状类Shape,方法:求周长和求面积.形状类的子类:Rect(矩形),Circle(圆形).Rect类的子类:Square(正方形).不同的子类会有不同的计算周长和面积的方法1.总 ...
随机推荐
- 【python】Leetcode每日一题-逆波兰表达式求值
[python]Leetcode每日一题-逆波兰表达式求值 [题目描述] 根据 逆波兰表示法,求表达式的值. 有效的算符包括 +.-.*./ .每个运算对象可以是整数,也可以是另一个逆波兰表达式. 说 ...
- 在IDEA配置tomcat
springboot的项目写多了,导致都快忘记怎么在idea中配置tomcat 点击加号,而不是Templates 选择Tomcat 服务器的Local 服务器配置 部署配置,选择Artifact 到 ...
- VMware 15 虚拟机黑屏问题
方法一:关闭加速3D图形 点击虚拟机,右键设置,取消勾选后,再进行重启 方法二:用管理员运行cmd 输入如下命令,要使用管理员运行,然后重启电脑 netsh winsock reset 方法三:换成V ...
- 【ECharts】报表联动,动态数据设计
说明: 数据没有拉取后台数据,仅仅前端模拟数据,Copy即可有效果.联动后台时,使用异步获取数据即可.鼠标点击,动态展示点击项的数据.有关更多实例,请移步到echarts官网查看. 成果展示: 相关代 ...
- @shiro.hasPermission 使用
在页面上加上@shiro.hasPermission 如下用.ftl为例子: 当加上shiro标签后,会与后台代码结合使用: 需要继承AuthorizingRealm 下的 protected Au ...
- MySQL优化|一分钟带你了解单表优化
在开始前,分享给大家我看过觉得讲数据库讲的算是很不错的,也在B站拥有百万播放量的教程. 这个MySQL视频是动力节点的老杜讲解,个人也很喜欢老杜的教学风格,老杜真的是从MySQL基础一点点带我入门,基 ...
- Docker------Idea连接远程并生成和上传镜像
1.Docker开启远程访问连接 备注: 1)Linux是CentOS7版本 2)安装Docker可参考: https://www.cnblogs.com/tianhengblogs/p/125202 ...
- Iperf3网络性能测试工具详解教程
Iperf3网络性能测试工具详解教程 小M 2020年4月17日 运维 本文下载链接 [学习笔记]Iperf3网络性能测试工具.pdf 网络性能评估主要是监测网络带宽的使用率,将网络带宽利用最大化是保 ...
- split命令_Linux split命令:切割(拆分)文件
<Linux就该这么学>是一本基于最新Linux系统编写的入门必读书籍,内容面向零基础读者,由浅入深渐进式教学,销量保持国内第一,年销售量预期超过10万本.点此免费在线阅读. 15 分钟之 ...
- centos下查看网卡,主板,CPU,显卡,硬盘型号等硬件信息
centos下查看网卡,主板,CPU,显卡,硬盘型号等硬件信息 rose_willow rose_willow 发布于 2016/06/16 11:32 字数 902 阅读 405 收藏 0 点赞 0 ...