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.总 ...
随机推荐
- hdu5249KPI动态中位数(两个set)
题意(中问题直接粘题意吧) KPI Problem Descr ...
- Supervisord远程命令执行漏洞(CVE-2017-11610)
目录 Supervisor 漏洞复现 修复建议 Supervisor Supervisor是使用Python 开发的进程管理程序,一般使用命令行进行管理,当然也能通过web接口图形化管理服务.在配置了 ...
- C#-Stmp发邮件
public MailMessage Initial(string Address) { MailMessage m_Mail = new MailMessage(); //发件人 m_Mail.Fr ...
- 通过修改EIP寄存器实现强行跳转并且注入DLL到目标进程里
/* 描述 功能:通过修改EIP寄存器实现32位程序的DLL注入(如果是64位,记得自己对应修改汇编代码部分) 原理: 挂起目标进程,停止目标进程EIP的变换,在目标进程开启空间,然后把相关的指令机器 ...
- unresolved external symbol _WinMain@16
vc下,新建一个win32项目,就写了个main函数,打印hello ,出现了如标题所述的错误 原因: 你建立了一个WINDOWS应用程序,可是你却在入口函数的时候使用main而不是WinMain 解 ...
- XCTF-supersqli
supersqli 进来有个输入框,看内容应该是var_dump了sql查询结果 单引号有报错,万能语句能用,注释符#没被ban 打了个union select,给提示ban了一堆关键字,而且忽略大小 ...
- Matlab学生账号创建激活使用
软件介绍 MATLAB主要用于数值分析.数值和符号计算.工程与科学绘图.控制系统的设计与仿真.数字图像处理.数字信号处理.通讯系统设计与仿真.财务与金融工程,是一款商业数学软件.MATLAB拥有丰富的 ...
- SpringBoot配置切换
切换需求 有时候在本地测试是使用8080端口,可是上线使用的又是80端口. 此时就可以通过多配置文件实现多配置支持与灵活切换. 多配置文件 3个配置文件: 核心配置文件:application.pro ...
- 【小技巧】启动Tomcat 提示端口被占用 怎么办?一句命令解决
windows环境: 方法1: 1.win+r 打开黑界面 2.输入命令 netstat -ano|findstr 8080 3.输入命令 taskkill /pid xxxx /f Linux环境: ...
- 基于任务的异步编程(Task,async,await)
这节讲一下比较高级的异步编程用法Task,以及两个异步关键字async和await. Task是在C#5.0推出的语法,它是基于任务的异步编程语法,是对Thread的升级,也提供了很多API,先看一下 ...