黑马程序员 基础测试题

这是一个包含多个Java编程基础测试题的集合,涵盖了时间计算、排序算法(选择排序)、TCP与UDP协议适用场景、继承原理、构造方法、字符串组合与文件操作等知识点。题目涉及从键盘接收数字并转化为时间表达、实现选择排序算法、分析继承机制的工作原理、讨论TCP和UDP的特性以及如何在不同场景下选择,还包含了如何在类中创建成员变量并使用set和get方法、在嵌套类中访问变量、列出字符串全字符组合以及编写文件拷贝和扩展名转换的程序。这些题目旨在考察和巩固Java编程基础。
摘要由CSDN通过智能技术生成
public class Test1 {


/**
* 第1题:求斐波那契数列第n项,n<30,斐波那契数列前10项为 1,1,2,3,5,8,13,21,34,55

* @param args
*/
public static void main(String args[]) {
int n, fun;// n为第n项,fn为第n项的值
java.util.Scanner in;
while (true) {//循环输出数字
in = new Scanner(System.in);
n = in.nextInt();
if(n==0){//输入0跳出循环结束输入
break;
}
while (n >= 30 || n <= 0) {//输入范围0-30之间
System.out.println("请重新输入n的范围为  0<n<30");
in = new Scanner(System.in);
n = in.nextInt();
}
fun = function(n);
System.out.println("斐波那契数列第" + n + "项为:" + fun);
}
}


public static int function(int n) {
if (n == 1 || n == 2)
return 1;
return function(n - 1) + function(n - 2);
}


}

-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------

public class Test2 {


/**

* 从键盘接受一个数字,打印该数字表示的时间,最大单位到天,例如:

* 键盘输入6,打印6秒;//
* 键盘输入60,打印1分; //
* 键盘输入66,打印1分6秒; //
* 键盘输入666,打印11分6秒;//
* 键盘输入3601,打印1小时1秒//

* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println(function(60*60*24+1));// 调用函数并打印
}


// 计算时间函数
public static String function(int number) {
String strDate = "键盘输入" + number + ",打印";
int final_day = 60 * 60 * 24;// 天
int final_h = 60 * 60;// 小时
int day = number / final_day;
int h = (number % final_day) / final_h;
int min = ((number % final_day) % final_h) / 60;// 分钟
int s = ((number % final_day) % final_h) % 60;// 秒
if (day > 0) {
strDate = strDate + day + "天";
}
if (h > 0) {
strDate = strDate + h + "小时";
}
if (min > 0) {
strDate = strDate + min + "分钟";
}
if (s > 0) {
strDate = strDate + s + "秒";
}
return strDate + ";";
}
}

-------------------------------------------------------------------------------------------------------------------------------------------------------------

public class Test3 {


/**
* 3、 请列举您了解的一些排序算法,并用Java语言实现一个效率较高的。
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
int arr[] = {1,3,5,7,9,8,6,4,2};
print(function(arr));


}
/**
* 对数组进行排序 :选择排序
* @param arr无须数组
* @return 排好序的数组
*/
public static int[] function(int[] arr) {
int len = arr.

黑马程序员训练营入学考试题 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、付费专栏及课程。

余额充值