- 华为Java上机考试题 推荐度:
- 相关推荐
华为JAVA考试试题
在平平淡淡的日常中,只要有考核要求,就会有试题,试题是用于考试的题目,要求按照标准回答。什么样的试题才是好试题呢?下面是小编精心整理的华为JAVA考试试题,欢迎阅读,希望大家能够喜欢。
华为JAVA考试试题 1
1.程序实现目标: 输入一个字符串,将其各个字符对应的ASCII值加5后,输出结果。
程序要求:该字符串只包含小写字母,若其值加5后的字符值大于z,将其转换成从a开始的字符。
package com.xcbeyond;
/**
* @author xcbeyond
* 2015-5-7下午10:37:43
* 1.程序实现目标: 输入一个字符串,将其各个字符对应的ASCII值加5后,输出结果。
* 程序要求:该字符串只包含小写字母,若其值加5后的字符值大于z,将其转换成从a开始的字符。
*/
public class StringParseASCII {
public static void main(String[] args) {
System.out.print(stringParseASCII("abx"));
}
public static String stringParseASCII(String str){
StringBuffer result = new StringBuffer();
char tmp;
for(int i = 0;i
tmp = (char)(str.charAt(i)+5);
if(tmp > z) {
result.append(a);
}else {
result.append(tmp);
}
}
return result.toString();
}
}
2.程序实现目标:求一个整型数组中元素的平均值,并统计其中大于和小于此平均值的元素的个数。
程序要求:输入:整型数组中的元素个数及各个元素。
输出:整型数组中元素的平均值,大于和小于此平均值的元素的个数。
package com.xcbeyond;
import java.util.Arrays;
/**
*
* @author xcbeyond
* 2015-5-7下午11:06:29
*2.程序实现目标:求一个整型数组中元素的平均值,并统计其中大于和小于此平均值的元素的个数。
*程序要求:
* 输入:整型数组中的元素个数及各个元素。
* 输出:整型数组中元素的平均值,大于和小于此平均值的元素的个数。
*/
public class CountAvg {
public static void main(String[] args) {
int[] array = {1,23,4,13,6};
System.out.println(Arrays.toString(array)+"的平均值:"+avg(array)+"\n" +
"大于和小于平均值元素的个数分别为:"+Arrays.toString(countAvg(array)));
}
public static int[] countAvg(int[] array) {
int gt = 0; //grater than
int lt = 0; //less than
int[] result = {0,0};
int average = avg(array);
for(int i = 0;i
if(array[i]>average) {
gt++;
}else if(array[i]
lt++;
}
}
result[0] = gt;
result[1] = lt;
return result;
}
/**
* average
* @param array
* @return
*/
public static int avg(int[] array) {
int average = 0;
int sum = 0;
for(int i = 0 ;i
sum += array[i];
}
average = sum/array.length;
return average;
}
}
3、手动输入一个存储整数的数组,要求输出数组里面的2个最大值。
实例:
输入:1,2,5,9,84,3,2
输出:84,9
package com.xcbeyond;
import java.util.Arrays;
/**
* @author xcbeyond
* 2015-5-7下午11:35:13
*3、手动输入一个存储整数的数组,要求输出数组里面的2个最大值。
* 实例:
* 输入:1,2,5,9,84,3,2
* 输出:84,9
*/
public class FindMaxTwoNum {
public static void main(String[] args) {
int[] array = {1,2,5,9,84,3,2};
System.out.println("数组"+Arrays.toString(array)+"里面最大的2个数为:");
findMaxTwoNum(array);
//方法二:
//
}
public static void findMaxTwoNum(int[] array) {
int[] result = {0,0};
for(int i = 0 ;i
for(int j = 0;j
if(array[j]
int tmp;
tmp = array[j];
array[j] = array[j+1];
array[j+1] = tmp;
}
}
}
System.out.println(array[0]+"、"+array[1]);
}
}
4、回文数字判断。
题目描述:
有这样一类数字,他们顺着看和倒着看是相同的数,例如:121,656,2332等,这样的数字就称为:回文数字。编写一个函数,判断某数字是否是回文数字。
要求实现方法:
public String isPalindrome(String strIn);
【输入】strIn: 整数,以字符串表示;
【返回】true: 是回文数字;
false: 不是回文数字;
【注意】只需要完成该函数功能算法,中间不需要有任何IO的输入输出
package com.xcbeyond;
import java.util.Scanner;
/**
* @author xcbeyond
* 2015-5-10下午03:46:56
*4、回文数字判断。
*题目描述:
* 有这样一类数字,他们顺着看和倒着看是相同的数,例如:121,656,2332等,这样的数字就称为:
* 回文数字。编写一个函数,判断某数字是否是回文数字。
*/
public class IsPalindrome {
public static void main(String[] args) {
System.out.print("请输入一个回文数字:");
Scanner console = new Scanner(System.in);
String numStr = console.nextLine();
if(isPalindrome(numStr)) {
System.out.println(numStr+"是回文数字!");
}else{
System.out.println(numStr+"不是回文数字!");
}
}
public static boolean isPalindrome(String str){
boolean result = false;
for(int i = 0 ;i
if(str.charAt(i) == str.charAt(str.length()-1-i)) {
result = true;
}
}
return result;
}
}
5、要求:随机打印50个随机(4-10长度)的字符串,要求字符串包含的范围是所有的英文字母包含大小写和数字,按照编码顺序排序,每行打印4个,要求首字符对齐
package com.xcbeyond;
import java.util.HashSet;
import java.util.Set;
/**
*
* @author xcbeyond
* 2015-5-10下午04:05:42
*5、要求:随机打印50个随机(4-10长度)的字符串,要求字符串包含的范围是
* 所有的英文字母包含大小写和数字,按照编码顺序排序,每行打印4个,要求首字符对齐
*/
public class RandomStr {
public static void main(String[] args) {
SetsetStr = new HashSet();
for(int i = 0 ;i<50;i++) {
setStr.add(randomStr(5));
}
int count = 1;
for(String i:setStr){
System.out.print(i+" ");
if(count%4 == 0) {
System.out.println();
}
count++;
}
}
/**
* @param strLen:随机字符串的长度
*/
public static String randomStr(int strLen) {
char[] str = new char[strLen];
int i = 0;
while(i
int f = (int)Math.random()*3;
if(f == 0) {
str[i] = (char)(a + Math.random()*26);
}else if(f == 1) {
str[i] = (char)(A + Math.random()*26);
}else {
str[i] = (char)(0 + Math.random()*10);
}
i++;
}
return new String(str);
}
}
6.手动输入一个字符串,仅限小写字母,统计并输出每个字符在字符串中出现的次数,并输出。提示(可以用Map)
实例:
输入:aaabbbccc
输出:a 3
b 3
c 3
package com.xcbeyond;
import java.util.HashMap;
import java.util.Map;
/**
*
* @author xcbeyond
* 2015-5-10下午04:47:45
* 6.手动输入一个字符串,仅限小写字母,统计并输出每个字符在字符串中出现的次数,并输出。
* 提示(可以用Map)
* 实例:
* 输入:aaabbbccc
* 输出: a 3
* b 3
* c 3
*/
public class GetCharCount {
public static void main(String[] args) {
String str = "aaabbbrcc";
String reg = "^[a-z]*$";
if (str.matches(reg)) {
Mapmap = getCharCount(str);
for (Map.Entrye : map.entrySet()) {
System.out.println(e.getKey() + ": " + e.getValue());
}
}else {
System.out.println("输入的字符不合法,不是小写字母");
}
}
public static MapgetCharCount(String str) {
Mapmap = new HashMap();
char[] arr = str.toCharArray();
for(int i = 0;i
if(!map.containsKey(arr[i])) {
map.put(arr[i], new Integer(1));
}else {
map.put(arr[i],map.get(arr[i])+1);
}
}
return map;
}
}
7、要求实现方法public String addTwoBigNumber(String s1,string s2)
大数相加,注意处理异常
public class Test{
public String addTwoBigNumber(String s1,string s2)
{
return "";
}
public static void main(String[] args)
{
Test test = new Test();
test.addTwoBigNumber("123456789","987654321")
}
}
8、比较二维数组列最小值,组成一个新数组返回。(实现核心算法,不需要使用IO)
输入:intArr = {{5,6,1,16},{7,3,9}}
输出:intArrs ={1,3}
package com.xcbeyond;
import java.util.Arrays;
/**
* @author xcbeyond
* 2015-5-10下午09:09:20
*8、比较二维数组列最小值,组成一个新数组返回。(实现核心算法,不需要使用IO)
* 输入:intArr = {{5,6,1,16},{7,3,9}}
* 输出:intArrs ={1,3}
*/
public class GetColMin {
public static void main(String[] args) {
int[][] arr = {{5,6,1,16},{7,3,9}};
System.out.println(Arrays.toString(getColMin(arr)));
}
public static int[] getColMin(int[][] arr) {
int[] minArr = new int[arr.length];
for(int i = 0;i
int[] tmp = arr[i];
Arrays.sort(tmp);
minArr[i] = tmp[0];
}
return minArr;
}
}
9. 输入:a aa,cat tiger.123dd
输出: tiger
功能描述:键盘输入一句话
输出一句话中最常的单词,如果最长的出现多次,返回第一个。
这句话只包含数字字母和标点。
package com.xcbeyond;
import java.util.ArrayList;
import java.util.Scanner;
/**
*
* @author xcbeyond
* 2015-5-10下午09:45:03
*9. 输入:a aa,cat tiger.123dd
* 输出: tiger
* 功能描述:键盘输入一句话
* 输出一句话中最常的单词,如果最长的出现多次,返回第一个。
* 这句话只包含数字字母和标点。
*/
public class GetLongString {
public static void main(String[] args) {
System.out.println("请输入一句话:");
Scanner console = new Scanner(System.in);
String str = console.nextLine();
System.out.println("最长的单词为:"+getLongString(str));
}
public static String getLongString(String str) {
String[] wordStr = str.split("[ ,.0-9]");
int sum = 0;
ArrayListresult = new ArrayList();
for(int i = 0;i
if(sum
sum = wordStr[i].length();
result.add(wordStr[i]);
}
}
return result.get(result.size()-1);
}
}
10. 功能描述:将字符串中的字母全部替换成字母的下一个字母,
要是最后一位是z或Z则替换为a或A。
输入:aBxyZ
输出:bCyzA
package com.xcbeyond;
/**
*
* @author xcbeyond
* 2015-5-10下午10:11:02
*10. 功能描述:
* 将字符串中的字母全部替换成字母的下一个字母,要是最后一位是z或Z则替换为a或A。
* 输入:aBxyZ
* 输出:bCyzA
*/
public class NextString {
public static void main(String[] args) {
String str = "aBxyZ";
System.out.println(nextString(str));
}
public static String nextString(String str) {
String result = "";
char[] arr = str.toCharArray();
for(int i = 0;i
if(arr[i] == z || arr[i] == Z) {
arr[i] = (char)(arr[i]-25);
}else if(arr[i]<=z&&arr[i]>=a || arr[i]<=z&&arr[i]>=A) { 1+2+3 = 6
运行时间限制: 无限制
内存限制: 无限制
输入: 0xff ff ff ff以内的整数
输出: NA
样例输入: 123
样例输出: 6
package com.xcbeyond;
/**
*
* @author xcbeyond
* @date 2015/05/12 15:23:16
*/
public class Demo36 {
public static void main(String[] args) {
int num = 123;
System.out.println(bitSum(num));
}
public static int bitSum(int num) {
int res = 0;
if(num<10) {
res = num;
}else {
res = num%10 + bitSum(num/10);
}
return res;
}
}
37.提取不重复的整数
描述: 输入一个int型32位整数,按照从右向左的阅读顺序,返回一个不含重复数字的新的整数。
运行时间限制: 10 Sec
内存限制: 无限制
输入: 整数,如9876673
注意:
1、整数最后的0,请忽略,例如:输入1750,输出:571
2、负数,保留-在前面,例如:输入-175,输出:-571
输出: 整数,如37689
样例输入: 9876673
样例输出: 37689
package com.xcbeyond;
/**
*
* @author xcbeyond
* @date 2015/05/12 15:50:34
*/
public class Demo37 {
public static void main(String[] args) {
int num = -12310;
System.out.println(getConvertInt(num));
}
public static int getConvertInt(int num) {
String str = String.valueOf(num);
StringBuffer sb = new StringBuffer();
boolean flg = true;
if(str.charAt(0) == -) {
flg = false;
sb.append(str.charAt(0));
}
if(str.charAt(str.length()-1) != 0) {
sb.append(str.charAt(str.length()-1));
}
for(int i = str.length()-2;i>0;i--) {
sb.append(str.charAt(i));
}
if(flg) {
sb.append(str.charAt(0));
}
return Integer.parseInt(sb.toString());
}
}
华为JAVA考试试题 2
1、Collection 和 Collections的区别?
Collection是集合的根接口,其下有set及list
Collections是集合的算法。
2、Set里的元素是不能重复的,那么用什么方法来区分重复与否呢? 是用==还是equals()? 它们有何区别?用contains来区分是否有重复的对象。还是都不用?
在比较时先调用hashCode方法,如果不相同,证明不相等。
如果相同,再调用equals方法,如果equals方法相同,证明相等,不相同,证明不相等。
==:主要用在基本数据类型及引用
equals:主要是对象或对象引用的比较。
集合中是否包含某一个元素用contains来判断。
3、List,Set,Map是否继承自Collection接口?
List,set继承于Collection
Map没有继承于Collection,其相对是独立的。
属于Collection类型的对象,可以通过构造函数将一个集合构造成另外一个集合。
4、面向对象的特征有哪些方面?
1.抽象:
找共性,将共有的属性、方法放到父类中
2.继承:
子类继承于父类,具有父类的所有属性与方法,可以重用,也可以覆盖。
3.封装:
一个类包括多个属性及方法。
4. 多态性:
5、String是最基本的数据类型吗?
基本数据类型包括byte、int、char、long、float、double、boolean和short。
java.lang.String类是final类型的,因此不可以继承这个类、不能修改这个类。为了提高效率节省空间,我们应该用StringBuffer类
6、int 和 Integer 有什么区别?
int 是基本数据类型,不是对象,占一个内存空间,没有方法。与其同类的有long,char,doble
Integer是封装类,具有方法及属性。与其同类的有Long,Double.Float
7、运行时异常与一般异常有何异同?
运行时异常:JVM抛出的异常,代码中不用处理。
一般异常:用户抛出的异常,如果用throws 声明了,调用这个方法的代码必须对其处理。
8、&和&&的区别?
&:与: 左边若为false右边还执行。
&&:短路与,左边若为false右边不执行。
9、final,finally,finalize的区别?
final 用于声明属性,方法和类,分别表示属性不可变,方法不可覆盖,类不可继承。
finally是异常处理语句结构的一部分,表示总是执行。
finalize是Object类的一个方法,在垃圾收集器执行的时候会调用被回收对象的此方法,可以覆盖此方法提供垃圾收集时的其他资源回收,例如关闭文件等。
10、heap和stack有什么区别?
栈是一种线形集合,其添加和删除元素的操作应在同一段完成。栈按照后进先出的方式进行处理。堆是栈的一个组成元素
11、Static Nested Class 和 Inner Class的不同?
Static Nested Class是被声明为静态(static)的内部类,它可以不依赖于外部类实例被实例化。而通常的内部类需要在外部类实例化后才能实例化。
12、GC是什么? 为什么要有GC?
GC是垃圾收集的意思(Gabage Collection),内存处理是编程人员容易出现问题的地方,忘记或者错误的内存回收会导致程序或系统的不稳定甚至崩溃,Java提供的GC功能可以自动监测对象是否超过作用域从而达到自动回收内存的目的,Java语言没有提供释放已分配内存的显示操作方法。
13、short s1 = 1; s1 = s1 + 1;有什么错? short s1 = 1; s1 += 1;有什么错?
short s1 = 1; s1 = s1 + 1; (s1+1运算结果是int型,需要强制转换类型)
short s1 = 1; s1 += 1;(可以正确编译)
14、Math.round(11.5)等於多少? Math.round(-11.5)等於多少?
Math.round(11.5)==12
Math.round(-11.5)==-11
round方法返回与参数最接近的长整数,参数加1/2后求其floor.
15、Java有没有goto?
java中的保留字,现在没有在java中使用。
16、给出一个你最常见到的runtime exception ArithmeticException,ArrayStoreException,BufferOverflowException,BufferUnderflowException,CannotRedoException,CannotUndoException,ClassCastException,CMMException,ConcurrentModificationException,DOMException,EmptyStackException,IllegalArgumentException,IllegalMonitorStateException,IllegalPathStateException,IllegalStateException,ImagingOpException,IndexOutOfBoundsException,MissingResourceException,NegativeArraySizeException,NoSuchElementException,NullPointerException,ProfileDataException,ProviderException,RasterFormatException,SecurityException,SystemException,UndeclaredThrowableException,UnmodifiableSetException,UnsupportedOperationException
一般异常:
IOException
FileNotFoundException
SqlException
17、数组有没有length()这个方法? String有没有length()这个方法?
数组没有length()这个方法,有length这个属性
String有length()这个方法.
18、构造器Constructor是否可被override?
构造器Constructor不能被继承,因此不能重写Overriding,但可以被重载Overloading。
19、是否可以继承String类?
String类是final类故不可以继承。
20、swtich是否能作用在byte上,是否能作用在long上,是否能作用在String上?
switch(expr1)中,expr1是一个整数表达式。因此传递给 switch 和 case 语句的.参数应该是 int、 short、 char 或者 byte。long,string 都不能作用于swtich。
21、try {}里有一个return语句,那么紧跟在这个try后的finally {}里的code会不会被执行,什么时候被执行,在return前还是后?
会执行,在return前执行。
22、两个对象值相同(x.equals(y) == true),但却可有不同的hash code,这句话对不对?
不对,有相同的 hash code
这是java语言的定义:
1) 对象相等则hashCode一定相等;
2) hashCode相等对象未必相等
23、四种会话跟踪技术?
Cookie
Session
Hidden
url 重写
24、写一个Singleton出来。
Singleton模式主要作用是保证在Java应用程序中,一个类只有一个实例存在。
一般Singleton模式通常有几种种形式:
第一种形式: 定义一个类,它的构造函数为private的,它有一个static的private的该类变量,在类初始化时实例话,通过一个public的getInstance方法获取对它的引用,继而调用其中的方法。
public class Singleton {
private Singleton(){}
//在自己内部定义自己一个实例,是不是很奇怪?
//注意这是private 只供内部调用
private static Singleton instance = new Singleton();
//这里提供了一个供外部访问本class的静态方法,可以直接访问
public static Singleton getInstance() {
return instance;
}
}
第二种形式:
public class Singleton {
private static Singleton instance = null;
public static synchronized Singleton getInstance() {
//这个方法比上面有所改进,不用每次都进行生成对象,只是第一次
//使用时生成实例,提高了效率!
if (instance==null)
instance=new Singleton();
return instance; }
}
其他形式:
定义一个类,它的构造函数为private的,所有方法为static的。
一般认为第一种形式要更加安全些
25、Java中的异常处理机制的简单原理和应用。
原理: 有错直接转到异常处理部分或向上抛出。
应用:JAVA的异常就是错误,有两种,一种是运行时,编码可以不用捕捉。一种是一般异常,如果throws声明了,必须进行处理。
26、描述一下JVM加载class文件的原理机制?
JVM中类的装载是由ClassLoader和它的子类来实现的,Java ClassLoader 是一个重要的Java运行时系统组件。它负责在运行时查找和装入类文件的类。
【华为JAVA考试试题】相关文章:
华为Java上机考试题03-29
java考试试题及答案10-25
Java考试格林模拟试题03-23
华为认证考试试题及答案03-05
2017年java考试模拟试题03-06
java认证考试试题及答案03-04
2017年JAVA考试试题及答案02-26
2016年Java认证考试题03-08
2017年Java认证考试试题03-04