导航菜单
首页 >  大一java期末考试编程题  > Java 100道经典机试笔试题(01)

Java 100道经典机试笔试题(01)

导语

每篇将有两道经典Java机试题,每道题后面均为大家附上代码,每一道题目力求:

能够在JDK11环境下编译在Eclipse JavaIDE中运行通过思路易想易懂易学重点代码有注释 第001题    逆置求和(难度:★☆☆☆☆) 题目描述:

编写一个reverseadd函数,实现两个数逆置后再求和的功能,比如输入123,456就是求321+654,输出975。注意:输入100,200输出3,(自动去除开头的0)。

输入示例:

123

456

输出示例:

975

思路

数倒置:

1.循环模取10,保存单个数到ArrayList链表数组中;

while (add != 0) { array_add1.add(add1 % 10);add1 = add1 / 10;}

2.循环取数每次乘10加,合并数字。

for (int i = 0; i < array_add.size(); i++) {reverseadd = reverseadd * 10 + array_add.get(i); }代码 import java.util.ArrayList;import java.util.Scanner;class E {public int reverseadd(int add1,int add2) {ArrayList array_add1 = new ArrayList();//保存加数1的链表ArrayList array_add2 = new ArrayList();//保存加数2的链表while (add1 != 0 && add2 != 0) { //分别分离每位上的数字if(add1 != 0) { //分离加数1array_add1.add(add1 % 10);add1 = add1 / 10;}if(add2 != 0) { //分离加数2array_add2.add(add2 % 10);add2 = add2 / 10;}}int reverseadd1 = 0, reverseadd2 = 0;//把链表里的数字重新组合成一个数for (int i = 0; i < array_add1.size(); i++) {reverseadd1 = reverseadd1 * 10 + array_add1.get(i); }for (int i = 0; i < array_add2.size(); i++) {reverseadd2 = reverseadd2 * 10 + array_add2.get(i);}return reverseadd1 + reverseadd2;//返回逆置后的两个加数和}}public class Test{public static void main(String[] args) {Scanner sc = new Scanner(System.in);int add1 = sc.nextInt();int add2 = sc.nextInt();E e = new E();//实例化int sum = e.reverseadd(add1, add2);//调用reverseadd函数System.out.println(sum); //输出结果}} 运行结果

第002题    字符串初始化(难度:★☆☆☆☆) 题目描述:

输入一个字符串,此字符串中包含有大小写字母,逗号(“,”),空格(“  ”),现需要对其进行初始化。

初始化规则:每个逗号或空格后紧跟的第一个字母如果已经是大写,则保持不变,否则变为大写;其余字母如果有大写的,需要变为小写字母,而小写字母不变;逗号或空格原样输出。(要求输出后仍然是一个字符串)

输入示例:

abc,DeF ghi JKL,oPq

输出示例:

Abc,Def Ghi Jkl,Opq

思路

考虑到要遍历字符串,想到将字符串先变为字符数组(String.toCharArray()),进行如下判断后,再转换成字符串(String.valueOf(array))。

当前是“,”或“  ”,继续判断下一个字母是否为小写,如果是,则-32变为大写;(大小写字母的ASCII相差32)当前不是“,”或“  ”,判断是否为大写字母,如果是,则+32变为小写;代码 import java.util.Scanner;public class Test{public static void main(String[] args) {Scanner sc = new Scanner(System.in);String string = sc.nextLine(); //读取一行字符串char array[] = string.toCharArray();//将字符串变为字符数组for (int i = 0; i < array.length; i++) {if(array[i] == ','|| array[i] == ' ') { //当前是“,”或“ ”if(array[i + 1] >= 97 && array[i + 1] = 65 && array[i]

相关推荐: