常见的Java上机面试题

相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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[]) {

相关文档
最新文档