黑马程序员_基础测试题

------- android培训java培训、期待与您交流! ----------
1、判断一个字符串是否是对称字符串,例如"abc"不是对称字符串,"aba"、"abba"、"aaa"、"mnanm"是对称字符串
package cn.itheima;

public class Test01 {

	/**
	 *第一题: 判断一个字符串是否是对称字符串,例如"abc"不是对称字符串,
	 *		"aba"、"abba"、"aaa"、"mnanm"是对称字符串
	 * @param args
	 */
	/*
	 * 1.定义字符串
	 * 2.定义方法symm判断字符串是否对称
	 * 3.调用symm方法
	 */
	public static void main(String[] args) {
		String str = "mnanm";
		if(symm(str)){
			System.out.println("对称");
		}else{
			System.out.println("不对称");
		}
	}	
	//判断字符串是否是对称字符串的方法
	public static boolean symm(String str){
		//定义一个变量n存储字符串长度
		int n=str.length();
		//遍历数组,判断数组内是否是对称的
		for(int i=0;i
    
    
2、 什么情况下适合用UDP协议,什么情况下适合用TCP协议?
package cn.itheima;

public class Test02 {

	/**
	 * 第二题:什么情况下适合用UDP协议,什么情况下适合用TCP协议?
	 * @param args
	 */
	/**
	 * 答案: UDP --  面向无连接协议(如寄东西)
				  通信双方不需要连接
				  不需要连接,不可靠,丢数据
				  连接效率很高
				  不允许传输大数据,限制在64KB以内
				
		 	TCP --  面向连接协议(如打电话)
				  通信双方需要建立连接,三次握手,效率比UDP底下
				  连接,安全可靠协议,不丢失数据
				  适合于大数据传输
	 */

}
3、 编写程序计算12+22+32+....+1002的和
package cn.itheima;

public class Test03 {

	/**
	 * 第三题:编写程序计算12+22+32+....+1002的和
	 * @param args
	 */
	public static void main(String[] args) {
		//调用sum方法
		System.out.println(sum(12,1002));
	}
	//定义sum方法,定义两个参数a,b
	private static int sum(int a,int b){
		//定义sum做最后返回值的结果
		int sum = 0;
		//for循环,用累加计算最后结果
		for (int i = a; i <=b; i+=10) {
			sum += i;
		}
		//返回sum
		return sum;
	}

}
4、 编写一个函数,函数内输出一个字符串,并在主函数内调用它
package cn.itheima;

public class Test04 {

	/**
	 * 第四题:编写一个函数,函数内输出一个字符串,并在主函数内调用它
	 * @param args
	 */
	/*
	 * 1.定义一个方法func
	 * 2.使用主函数调用方法func
	 */
	public static void main(String[] args) {
		//调用函数
        func();
        }
    public static void func()
    {	//定义函数
    	System.out.println("Hello");
     }
}
5、 用控制台程序倒着输出九九乘法表;输出结果按下图所示:
1*9=9    2*9=18    3*9=27    4*9=36    5*9=45    6*9=54    7*9=63    8*9=72    9*9=81
……
1*3=3   2*3=6   3*3=9

1*2=2   2*2=4

1*1=1

package cn.itheima;

public class Test05 {

	/**
	 * 第五题:用控制台程序倒着输出九九乘法表;输出结果按下图所示:
     1*9=9  2*9=18  3*9=27  4*9=36  5*9=45  6*9=54  7*9=63  8*9=72  9*9=81
    	……
	 1*3=3  2*3=6   3*3=9
	 1*2=2  2*2=4
     1*1=1
	 * @param args
	 */
	/*	1.定义一个方法mult
	 * 	2.方法内用for循环
	 * 	3.调用方法mult
	 */
	public static void main(String[] args) {
		
		mult();
	}
	public static void mult(){
		//嵌套循环
		for (int i = 9; i >= 1; i--) {
			for (int j = 1; j <= i; j++) {
				//输出结果
				System.out.print(j+"*"+i+"="+i*j+"	");
				//换行操作
			}System.out.println();
		}
	}

}
6、 编程打印所有的3位质数,质数特点:只能被1和其本身整除
package cn.itheima;

public class Test06 {

	/**
	 * 第六题:编程打印所有的3位质数,质数特点:只能被1和其本身整除
	 * @param args
	 */
	/*
	 * 1.所有的数都可以被1和其本 身整除
	 * 2.遍历所有可以被整除的数然后判断整除的次数小于2次的就是质数
	 */
	public static void main(String[] args) {
		zhishu(100,999);
	}
	public static void zhishu(int a,int b){
		//三位质数从100开始到999结束。
		for(int i = a; i <= b; i++ ) {  
			int count = 0;  
			for(int j = 1; j < (i + 2)/2; j++ ) {  
	        // 将 i 依次除以 1 到 [(i + 2)/2]  
	        // 计算其整除的次数  
	        if((i % j) == 0) count++;               
			}  
			// 如果只有一次整除,那么该数为素数  
			if(count < 2)   
				System.out.println(i + "是质数");  
		}  
	}

}
7、 编写一个可以获取文件扩展名的函数,形参接收一个文件名字符串,返回一个扩展名字符串
package cn.itheima;

import java.io.*;
public class Test07 {

	/**
	 * 第七题:编写一个可以获取文件扩展名的函数,形参接收一个文件名字符串,返回一个扩展名字符串
	 * @param args
	 */
	/*
	 * 分析:
	 * 	1、定义一个静态的getName方法,形参File类型 ,参数file
	 * 	2、获取到文件扩展名之前的.的位置
	 * 	3、使用substring(int beginIndex)
	 * 	       
	 */
	public static void main(String[] args)throws  Exception {
		File file=new File("D:\\yays.jsjs.txt");
		getName(file);
	}
	//定义函数返回文件扩展名
	public static void getName(File file){
		//获取接收到的文件的名字
		String name=file.getName();
		//使用lastIndexof获取文件的扩展名
		String tz=name.substring(name.lastIndexOf(".")+1);
		System.out.println("文件名为"+name+"拓展名为:"+tz);
	}

}
8、 编写一个延迟加载的单例设计模式
package cn.itheima;

public class Test08 {
	/**
	 * 第八题:编写一个延迟加载的单例设计模式
	 * @param args
	 */
	/*
	 * 	1.给该类构造函数用private修饰,保证用户不能通过new()的方式创建对象。
	 *	2.在类中,创建一个私有并且静态的对象,保证用户不能通过直接访问,但类中的静态函数可以访问。
	 *  3.创建一个public的静态函数,返回该对象,供使用。
	 */
	public static void main(String[] args) {//主函数
		//定义变量s1,s2,并调用学生类中方法
		Student s1 = Student.getInstance();
		Student s2 = Student.getInstance();
		
		s1.setAge(5);
		
		System.out.println(s2.getAge());
	}
}
	class Student{
		//自定义对象,并私有化
		private static Student s = null; 
		//私有化构造函数,避免多建对象
		private Student(){}						
		private int age;	
		//setAge getAge方法
		public void setAge(int age){
			this.age = age;
		}
		public int getAge(){
			return age;
		}
		//访问方式并双重IF判断
		public static Student getInstance(){	
			if(s==null){
				//同步代码块,确保只new了一个对象
				synchronized(Student.class) {	
					if(s==null)	
						//创建对象
						s = new Student();		
				}
			}
			//返回S
			return s;
		}
}
9、 求1000!的结果中包含多少个0?注:1000! = 1×2×3×4×5×...×999×1000
package cn.itheima;

public class Test09 {

	/**
	 * 第九题:求1000!的结果中包含多少个0?注:1000! = 1×2×3×4×5×...×999×1000
	 * @param args
	 */
	/*	1.用递归自身调用函数除以5
	 * 	2.算出5的个数
	 * 
	 */
        public static void main(String ars[]){
        	//定义变量num计算5 的个数
        	int num = getZero(1000);
        	//输出结果
        	System.out.println(num);
        	
        }
        //定义方法
        public static int getZero(int num) {
        	//使用判断语句并使用递归自身调用方法求出5的个数
            if(num >= 1 && num <= 4) {
                    return 0;
            }else {
                    return num / 5 + getZero(num / 5);                

            }

    }


}
10、 小明的妈妈每天会给他20元零花钱。平日里,小明先花掉一半,再把一半存起来。每到周日,小明拿到钱后会把所有零花钱花掉一半。请编程计算,从周一开始,小明需要多少天才能存够100元?
package cn.itheima;
public class Test10 {
	/** 第十题:	小明的妈妈每天会给他20元零花钱。
	 * 		  	平日里,小明先花掉一半,再把一半存起来。
	 * 		  	每到周日,小明拿到钱后会把所有零花钱花掉一半。
	 * 		  	请编程计算,从周一开始,小明需要多少天才能存够100元?
	 */
	//思路: 1、if语句判断
	public static void main(String[] args) {
		int d = day(100);//调用方法
		System.out.println(d);
	}
	//定义方法,使用if()else并返回天数
	private static int day(int sum){
		int m = 0;//定义变量m做判断条件
		int d = 0;//定义天数做累加
		while(m
     
     

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
黑马程序员训练营入学考试 1、方法中的内部类能不能访问方法中的局部变量,为什么? 2、编写一个类,在main方法中定义一个Map对象(采用泛型),加入若干个对象,然后遍历并打印出各元素的key和value。 3、取出一个字符串中字母出现的次数。如:字符串:"abcdekka27qoq" ,输出格式为:a(2)b(1)k(2)... 4、有五个学生,每个学生有3门课(语文、数学、英语)的成绩,写一个程序接收从键盘输入学生的信息,输入格式为:name,30,30,30(姓名,三门课成绩),然后把输入的学生信息按总分从高到低的顺序写入到一个名称"stu.txt"文件中。要求:stu.txt文件的格式要比较直观,打开这个文件,就可以很清楚的看到学生的信息。 5、编写一个程序,获取10个1至20的随机数,要求随机数不能重复。 6、编写三各类Ticket、SealWindow、TicketSealCenter分别代表票信息、售票窗口、售票中心。售票中心分配一定数量的票,由若干个售票窗口进行出售,利用你所学的线程知识来模拟此售票过程。 7、写一方法,打印等长的二维数组,要求从1开始的自然数由方阵的最外圈向内螺旋方式地顺序排列。 如: n = 4 则打印: 1 2 3 4 12 13 14 5 11 16 15 6 10 9 8 7 ? 8、编写一个程序,它先将键盘上输入的一个字符串转换成十进制整数,然后打印出这个十进制整数对应的二进制形式。这个程序要考虑输入的字符串不能转换成一个十进制整数的情况,并对转换失败的原因要区分出是数字太大,还是其中包含有非数字字符的情况。提示:十进制数转二进制数的方式是用这个数除以2,余数就是二进制数的最低位,接着再用得到的商作为被除数去除以2,这次得到的余数就是次低位,如此循环,直到被除数为0为止。其实,只要明白了打印出一个十进制数的每一位的方式(不断除以10,得到的余数就分别是个位,十位,百位),就很容易理解十进制数转二进制数的这种方式。 9、28人买可乐喝,3个可乐瓶盖可以换一瓶可乐,那么要买多少瓶可乐,够28人喝?假如是50人,又需要买多少瓶可乐?(需写出分析思路) 10、有100个人围成一个圈,从1开始报数,报到14的这个人就要退出。然后其他人重新开始,从1报数,到14退出。问:最后剩下的是100人中的第几个人?

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值