昕悦阁丶风雪 发表于 2015-7-17 10:35

黑马程序员基础测试题-大家来测试下哈


黑马程序员训练营基础测试



1、 从键盘接受一个数字,打印该数字表示的时间,最大单位到天,例如:
键盘输入6,打印6秒;
键盘输入60,打印1分;
键盘输入66,打印1分6秒;
键盘输入666,打印11分6秒;
键盘输入3601,打印1小时1秒

2、 定义一个二维int数组,编写代码获取最小元素。

3、 以下代码哪个是正确的?为什么?

a. byte b = 1 + 1;   
b. byte b = 1; b = b + 1;
c. byte b = 1; b = b += 1;   
d. byte b = 1; b = ++b;
4、 什么情况下适合用UDP协议,什么情况下适合用TCP协议?

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

6、 编写程序,打印1到100之内的整数,但数字中包含7的要跳过,例如:17、27、71、72

7、 用代码证明,在try中写了return,后面又写了finally,是先执行return还是先执行fianlly?

8、 使用带缓冲功能的字节流复制文件。

小明的妈妈每天会给他20元零花钱。

平日里,小明先花掉一半,再把一半存起来。

每到周日,小明拿到钱后会把所有零花钱花掉一半。

请编程计算,从周一开始,小明需要多少天才能存够100元?

10、 使用TCP协议完成一个客户端一个服务器。客户端从键盘输入读取一个字符串,发送到服务器。

服务器接收客户端发送的字符串,反转之后发回客户端。客户端接收并打印。




我是10分通过的。。

这里只提供第十题的源代码(有些小问题:就是当客户端输入 over 结束标志时,客户端结束了,但是引起了服务端的结束,希望大神能解释下哈。){:1_937:}
package com.itheima;
/*
* 10、 使用TCP协议完成一个客户端一个服务器。客户端从键盘输入读取一个字符串,发送到服务器。

服务器接收客户端发送的字符串,反转之后发回客户端。客户端接收并打印。

*问题分析:
*使用TCP协议:那么则要用到ServerSocket 和Socket对象,并且循环接收客户端传过来的字符串,
*                                那么客户端和服务端均要循环执行。
*/
import java.net.*;
import java.io.*;
public class Test10 {

        public static void main(String[] args) {
                // TODO Auto-generated method stub
        }

}
class TCPServer
{
        ServerSocket ss = null;
        public static void main(String[] args)
        {
                ServerSocket ss = null;
                Socket s = null;
                try
                {
                        try {
                                ss = new ServerSocket(9999);//创建监听9999端口的服务端对象
                        } catch (IOException e) {
                                // TODO Auto-generated catch block
                                System.out.println("服务端开启失败!");//抛出失败异常
                        }
                        s = ss.accept();//阻塞,获取客户端连接请求
                        InputStream in = s.getInputStream();//获取客户端的输入流
/*                        BufferedReader bufr =
                                        new BufferedReader(new InputStreamReader(in));//将流封装到缓冲区中
*/                        OutputStream os = s.getOutputStream();//获取输出流对象
                        while(true)
                        {
                                System.out.println("ip:"+s.getInetAddress().getHostAddress()+"连接了");//输出连接过来的IP地址
                                byte[] buf =new byte;
                                int len = in.read(buf);
                                String line = new String(buf,0,len);//将独到的字节流转换为字符串
                                System.out.println("客户端发送了数据:"+line);
                                PrintWriter pw = new PrintWriter(os,true);//创建一个带自动刷新的PrintWriter对象。
                                pw.println(fanzhuan(line));//调用反转函数计算结果并打印到客户端
                               
                        }
                }catch(Exception e)
                {
                       
                }finally{
                        try{
                                if(s!=null)
                                        s.close();//关闭客户端
                        }catch(IOException e){
                                System.out.println("客户端关闭失败!");
                        }
                }
                        try{
                                if(ss!=null)
                                        ss.close();//关闭服务端
                        }catch(IOException e){
                                System.out.println("服务端关闭失败!");
                        }
                }
        public static String fanzhuan(String str)
        {
                StringBuilder sb = new StringBuilder();
                for(int i = str.length()-1;i>=0;i--)//倒序循环
                {
                        sb.append(str.charAt(i));//将结果附加到StringBuilder中
                }
                return sb.toString();
               
        }
       
}
class TCPClient
{
        public static void main(String[] args)
        {
                Socket s = null;
                try{
                        s = new Socket("127.0.0.1",9999);//创建客户端对象
                        OutputStream out = s.getOutputStream();//获取输出流对象
                        InputStream in = null;//获取输入流对象
                        BufferedReader bufr =
                                        new BufferedReader(new InputStreamReader(System.in));//将控制台输入流封装到缓冲区中                               
                        String line = null;
                        while(!(line=bufr.readLine()).equals("over"))//如果输入的不是over,则发送到服务端上
                        {
                                out.write(line.getBytes());
                                in = s.getInputStream();
                                byte[] buf = new byte;//定义缓冲区
                                int len = in.read(buf);//读取服务端返回的数据
                                System.out.println(s.getInetAddress().getHostAddress()+":"+new String(buf,0,len));                       
                        }
                }catch(IOException e){
                        System.out.println("客户端发送数据失败!");
                }finally{
                        try{
                                if(s!=null)
                                        s.close();//关闭客户端
                        }catch(IOException e){
                                System.out.println("客户端关闭失败!");
                        }
                }
        }
}

morigin 发表于 2016-10-14 17:12

小明的问题 不知道对不对
public static void main(String[] args) {
                double money = 0.0;
                int day = 0;
                while (true) {
                        if (money >= 100) {
                                break;
                        } else {
                                day++;
                                if (day % 7 == 0) {
                                        money = (money+20) / 2;
                                } else {
                                        money = money + 20 / 2;
                                }
                        }
                        System.out.println("第"+day+"天,共有"+money+"元钱!");
                }
        }

wuaixuexioen 发表于 2015-7-17 11:22

数学老师死得早= =                                                

Very_good 发表于 2015-7-17 10:42

额表示不玩着东西

SeriousSnow 发表于 2015-7-17 11:10

4 10 不会~~~~(>_<)~~~~

昕悦阁丶风雪 发表于 2015-7-17 22:04

wjdxs1 发表于 2015-7-17 11:10
4 10 不会~~~~(>_

第十题给源码 和注释了。第四题不是写代码的,,就是问答题

learndozen 发表于 2015-7-18 08:51

初学者过来学习一下~~~~~~

SeriousSnow 发表于 2015-7-18 09:42

昕悦阁丶风雪 发表于 2015-7-17 22:04
第十题给源码 和注释了。第四题不是写代码的,,就是问答题

主要是网络不懂

2016_小蚂蚁 发表于 2016-10-13 09:39

您在黑马程序员?毕业了吗?

zxcuper 发表于 2016-10-16 14:35

额表示不玩着东西
页: [1] 2
查看完整版本: 黑马程序员基础测试题-大家来测试下哈