常见的Java上机面试题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
常见的Java上机面试题
在程序员面试中,主要的考试形式分为笔试和上机编程考试两部分。笔试主要考查面试者的基础是否牢固;上机考试主要考查面试者的实际开发能力和技术技巧。
上机编程考试,要求面试者能够根据题目的要求,使用一种编程工具,编写全部代码并调试运行。这主要是考查面试者代码书写和编程的熟练程度。值得注意的是,这类面试题要求能够正确运行,往往要求面试者使用比较原始的JDK编译方式也就是使用DOS命令提示符,而不是提供Eclipse或者JBuilder等快速开发环境。本章将经常出现的上机编程题进行分类,希望能够给读者带来帮助和启示。
17.1 Java基础编程试题(1)
在上机编程类的面试题中,大部分涉及基础编程,例如算法、语法、常用的类等知识点。
面试题1 怎样截取字符串
考题题干
编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串。但是要保证汉字不被截半个,如"我ABC"4,应该截为"我AB",输入"我ABC汉DEF"6,应该输出"我ABC",而不是"我ABC+汉的半个"。
试题分析
本面试题容易产生困惑的是中文字符和英文字符,在这里需要考虑汉字和英文字符的占用字节数问题,中文字符占两个字节,英文字符占一个字节,理解了这个,就很容易完成本题了。
参考答案
具体代码实现如下:
1.package core_java;
2.import java.util.Scanner;
3.public class InterceptionStr {
4.static String ss;
//要进行截取操作的字符串
5.static int n;
//截取的字符串的字节数
6.public static void main(String[] args) {
7. System.out.println("请输入字符串:");
8. Scanner scStr = new Scanner(System.in);
//从键盘获取字符串
9. ss = scStr.next(); //
将Scanner对象中的内容以字符串的形式取出来
10. System.out.println("请输入字节数:");
11. Scanner scByte = new Scanner(System.in);
//从键盘获取字符串
12. n = scByte.nextInt();
//将Scanner对象中的内容以数值的形式取出来
13. Interception(setValue());
//方法与方法间的套用
14. }
15.public static String[] setValue() {
//此方法的作用是将字符串转换成字符串数组
16. String[] string = new String[ss.length()];
//创建一个字符数组string
17.for (int i = 0; i < string.length; i++) {
18. string[i] = ss.substring(i, i + 1);
19.//将字符串ss中的
第i个字符取出,放入字符数组中string中
20. }
21.return string;
//将这个字符数组返回
22. }
23.public static void Interception(String[] string) {
24.int count = 0;
25. String m = "[\u4e00-\u9fa5]";
//汉字的正则表达试
26. System.out.println("以每" + n + "字节
划分的字符串如下所示:");
27.for (int i = 0; i < string.length; i++) {
28.if (string[i].matches(m)) {
29.//将字符数组中的每一
个元素与表则表达式进行匹配,如果相同则返回true
30. count = count + 2;
//如果当前字符是汉字,计数器count就加2
31. } else {
32. count = count + 1;
//如果当前字符不是汉字,计数器count就加1
33. }
34.if (count < n) {
//如果当前计数器count的值小于n,则输出当前字符
35. System.out.print(string[i]);
36. } else if (count == n) {
//如果当前计数器count的值等于n,则输出当前字符
37. System.out.print(string[i]);
38. count = 0;
39. System.out.println();
//内循环结果,则需要换行,起到控制打印格式的作用
40. } else {
41. count = 0;//如果当前计数器count的
值大于n,则计数器count清零,接着执行外部循环
42. System.out.println();
43. }
44. }
45. }
46.}
程序的输出结果如图17.1所示。
17.1 Java基础编程试题(2)
面试题2 怎样实现元素互换
考题题干
从键盘上输入10个整数,并将其放入一个一维数组中,然后将其前5个元素与后5个元素对换,即:第1个元素与第10个元素互换,第2个元素与第9个元素互换…第5个元素与第6个元素互换。分别输出数组原来各元素的值和对换后各元素的值。
试题分析
由于本题的要求是实现头尾元素互换,所以可以釆用取利用临时变量的方法来进行元素交换。
参考答案
具体代码实现如下:
1.package programe;
2.
3.import java.io.BufferedReader;
4.import java.io.IOException;
5.import java.io.InputStreamReader;
6.
7.public class HuHuanDemo {
8.public static void main(String args[]) {