一、流程规范
本文档严禁外传,按照操作流程视频完整操作
- 点击专属链接进行注册报名:专属渠道链接
- 完善个人学校,专业信息,报名成功
- 选择测试题进行测试,机试实战难度较大,机试体验难度较小
- 选择题目,点击进入考试
- 鼠标放置右侧黑色背景代码区,全选(Ctrl+A)删除后,复制粘贴参考代码,进行保存并运行
- 通过后进行下一题,全部通过后,提交试卷即可
- 记录华为云ID
二、示例:Java机试体验 华为云HCSD秋招特训营_开发者-华为云
1. 截取一个字符串的前3位(点击右上方复制,粘贴到答题区)
【习题描述】
用户录入一个字符串,通过substring方法,截取字符串前3位,然后打印输出。
import java.util.Scanner;
/*
录入一个字符串,通过方法substring截取前3位后输出。
如:输入123456 输出:123
*/
class Example7_75 {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.println("输入1个字符串:");
String o1 = input.next();
if (o1.length() >= 3) {
//TODO:通过String对象的substring获取前3位字符串
String o2 = o1.substring(0,3);
System.out.print(o2);
} else {
System.out.print("字符串长度小于3");
}
}
}
2. 格式化数字(点击右上方复制,粘贴到答题区)
【习题描述】
用户输入一个整数,编写程序按千分组(带正号)格式化该整数并打印输出;输入一个小数,格式化为整数7位,小数3位,然后打印输出格式化后的内容。
import java.util.Scanner;
public class Example8_19 {
public static void main(String args[]){
int n= 12356789;
Scanner scanner = new Scanner(System.in);
System.out.println("请输入整数:");
/*
TODO:将输入的整数赋值给变量n
使用format("%,+d",n)按千分组格式化n,然后将结果输出
打印语句提示:
System.out.println("整数"+n+"按千分组(带正号):");
System.out.println( 格式化后的内容 );
*/
n = scanner.nextInt();
String n1 = String.format("%, d",n);
System.out.println("整数"+n+"按千分组(带正号):");
System.out.println( n1 );
double number = 98765.6789;
System.out.println("请输入小数:");
number = scanner.nextDouble();
n1 = String.format("%011.3f",number);
System.out.println(number+"格式化为整数7位,小数3位:" );
System.out.println( n1 );
/*
TODO:将输入小数格式化整数7位,小数3位。提示:format("%011.3f",number)
然后将结果输出,提示:System.out.println(number+"格式化为整数7位,小数3位:");
System.out.println( 格式化后的内容 );
*/
}
}
3. 录入链表长度,再录入链表的元素,使链表打印输出(点击右上方复制,粘贴到答题区)
【习题描述】
用户输入链表长度和链表元素,构建循环链表,并打印输出链表,完成从头部打印输出到尾部。
如:输入 4,1,2,3,4
输出:[4,3,2,1]
import java.util.Scanner;
public class Example22_125 {
public static ListLinkedNode<Integer> head = new ListLinkedNode();
public static void main(String[] args) {
System.out.println("请输入链表长度:");
Scanner scanner = new Scanner(System.in);
int n = scanner.nextInt();
System.out.println("请输入值:");
for (int i = 0; i < n; i++) {
int value = scanner.nextInt();
if (i == 0) {
ListLinkedNode<Integer> p = new ListLinkedNode<Integer>();
p.setData(value);
p.setNext(head);
head.setNext(p);
} else {
addFromHead(value);
}
}
print();
}
/*
TODO:补全打印链表数据的缺失while循环条件步骤
功能描述:输出链表,完成从头部打印输出到尾部
参数说明:
head: 待输出的链表的表头(未列在参数中, 但可直接使用)
返回值说明:无
举例说明:
输入3
1
2
3,
输出[3,2,1]
*/
public static void print() {
/*
TODO:
输出格式: 先输出‘[’, 然后依次输出链表元素,用‘,’隔开,最后输出‘]’
链表的修改与访问方法已实现。初始化、或取元素,修改下一元素、或取下一元素的方法使用如下:
p.setData(a);
p.setNext(a);
p.getNext(a);
p.getData(a);
结点分配语句如下(已实现,可直接使用)
ListLinkedNode<Integer> p = new ListLinkedNode<Integer>();
*/
System.out.print("[");
ListLinkedNode<Integer> p = new ListLinkedNode<Integer>();
p = head.getNext();
while(p.getNext() != head){
System.out.print(p.getData());
System.out.print(",");
p = p.getNext();
}
System.out.print(p.getData());
System.out.print("]");
}
public static void addFromHead(Integer e) {
ListLinkedNode<Integer> p = new ListLinkedNode<Integer>();
p.setData(e);
p.setNext(head.getNext());
head.setNext(p);
}
}
class ListLinkedNode<T> {
private T data;
private ListLinkedNode<T> next;
public ListLinkedNode() {
}
public ListLinkedNode(T data, ListLinkedNode<T> next) {
this.setData(data);
this.setNext(next);
}
public T getData() {
return data;
}
public void setData(T data) {
this.data = data;
}
public ListLinkedNode<T> getNext() {
return next;
}
public void setNext(ListLinkedNode<T> next) {
this.next = next;
}
}