您的位置:首页 > 职场人生

黑马程序员-JAVA基础测试题(6-10)

2015-08-20 14:33 357 查看
————– android培训、java培训、java学习型技术博客、期待与您交流! ———–

6、 在打印语句中如何打印这3个x变量?

class  Test6
{
public static void main(String[] args)
{
//创建内部类B的对象
A.B ab = new A().new B();
//调用内部类B的方法输出结果
ab.func();
}
}
class A {
int x = 1;
class B {
int x = 2;
void func() {
int x = 3;
System.out.println("内部类B的局部变量x="+x+"\n内部类B的成员变量x="+this.x+"\n外部类A的成员变量x="+A.this.x);
}
}
}


7、 编程打印所有的3位质数,质数特点:只能被1和其本身整除

public class Test7
{
public static void main(String[] args)
{
int num;//定义变量num和x
int x;
for (num = 1; num < 1000; num++)//遍历1到999所有的数
{
for (x = 2; x <= num / 2; x++) //遍历所有的除数。除数只取到被除数一半
{
if (num % x == 0)//如果有能被整除的跳过打印这个数
break;
}
if (x > num / 2) //如果除数到遍历完了则说明这个数是质数
System.out.print(num + ",");//打印,为了方便阅读中间用“,”分割
}
}
}


8、 数组去重复,例如: 原始数组是{4,2,4,6,1,2,4,7,8},得到结果{4,2,6,1,7,8}

import java.util.Arrays;
import java.util.LinkedHashSet;
public class Test8 {
public static void main(String[] args) {
//1.创建一个数组
Integer[] arr ={4,2,4,6,1,2,4,7,8};
//2.利用LinkedHashSet的"元素不可重复"特性去除重复元素(使用链表结构的集合主要是为了让数组元素的前后位置关系不发生变化)
LinkedHashSet<Integer> set = new LinkedHashSet<Integer>();
for(Integer temp:arr){
set.add(temp);
}
//3.把集合转换成数组
arr = set.toArray(new Integer[0]);
//4.输出去除重复元素后的数组元素
System.out.print(Arrays.toString(arr));
}
}


9、 求1000!的结果中包含多少个0?注:1000! = 1×2×3×4×5×…×999×1000

import java.math.BigInteger;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Test9 {
public static void main(String ars[]) {
Test9 test9 = new Test9();
test9.jieCheng(1000);
}
//将阶乘的数学运算原理封装成对象
public void jieCheng(int number) {
//创建一个大数对象
BigInteger res = new BigInteger("1");
//利用循环计算1000!的值
for (int i = 1; i <= number; i++) {
BigInteger num = new BigInteger(String.valueOf(i));
// 相当于res * = num;,但是大数不是基本数据类型,不能使用*运算符,用独有的方法
res = res.multiply(num);
}
//将获得的值转成字符串
String str = res.toString();
//调用方法,获取res中一共有多少个0
int zeroNum = zeroNum(str);
//输出结果
System.out.println(number + "的阶乘为:" + "\n" + str);
System.out.println(number + "的阶乘中所有的0的个数:" + zeroNum);
}
// 求阶乘结果所有的0的个数
public int zeroNum(String str) {
int count = 0;
String regex = "0";
Pattern p = Pattern.compile(regex);
Matcher m = p.matcher(str);
while (m.find()) {
count++;
}
return count;
}
}


10、声明类Student,包含3个成员变量:name、age、score,创建5个对象装入TreeSet,

按照成绩排序输出结果(考虑成绩相同的问题)。

import java.util.*;
//定义一个Student类
class Student implements Comparable{
String name;
int age;
int score;
//构造方法
Student(String name,int age,int score){
this.name=name;
this.age=age;
this.score=score;
}
//按顺序输出时的比较方法
public int compareTo(Object o){
Student stu = (Student) o;
//先按照分数比较,分数相同按照名字
if(this.score>stu.score)
return 1;
else if(this.score<stu.score)
return -1;
else if(this.name.compareTo(stu.name)>0)
return 1;
else if(this.name.compareTo(stu.name)<0)
return -1;
return 0;
}
//覆写toString方法
public String toString(){
return this.name+','+this.age+','+this.score+'\n';
}
}
public class Test10 {
public static void main(String[] args){
//声明TreeSet
TreeSet tr = new TreeSet();
tr.add(new Student("A",21,89));
tr.add(new Student("B",27,88));
tr.add(new Student("C",23,95));
tr.add(new Student("D",20,84));
tr.add(new Student("E",25,88));
System.out.print(tr);
}
}


————– android培训、java培训、java学习型技术博客、期待与您交流! ———–
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  黑马程序员