黑马程序员技术交流社区

标题: 入学测试题分享 [打印本页]

作者: 小轩丶卍    时间: 2016-1-27 19:11
标题: 入学测试题分享
分享做的测试题。不知道可以不可以分享。


1、ArrayList<Integer> list = new ArrayList<Integer>(); 在这个泛型为Integer的ArrayList中存放一个String类型的对象。
2、写一个方法,此方法可将obj对象中名为propertyName的属性的值设置为value.
public void setProperty(Object obj, String propertyName, Object value){
}
3、假如我们在开发一个系统时需要对员工进行建模,员工包含 3 个属性:姓名、工号以及工资。经理也是员工,除了含有员工的属性外,另为还有一个奖金属性。请使用继承的思想设计出员工类和经理类。要求类中提供必要的方法进行属性访问。
4、分析运行结果,说明原理。(没有分析结果不得分)
import java.util.ArrayList;

class Data {

   int val;

}

public class Test {

    public static void main(String args[]) {
        Data data = new Data();
        ArrayList<Data> list = new ArrayList<Data>();
   
        for (int i = 100; i < 103; i++) {
            data.val = i;
            list.add(data);
        }
   
        for (Data d : list) {
            System.out.println(d.val);
        }
    }
}
5、将字符串中进行反转。abcde --> edcba
6、定义一个文件输入流,调用read(byte[] b)方法将exercise.txt文件中的所有内容打印出来(byte数组的大小限制为5)。
7、在一个类中编写一个方法,这个方法搜索一个字符数组中是否存在某个字符,如果存在,则返回这个字符在字符数组中第一次出现的位置(序号从0开始计算),否则,返回-1。要搜索的字符数组和字符都以参数形式传递传递给该方法,如果传入的数组为null,应抛出IllegalArgumentException异常。在类的main方法中以各种可能出现的情况测试验证该方法编写得是否正确,例如,字符不存在,字符存在,传入的数组为null等。

8、编写一个程序,它先将键盘上输入的一个字符串转换成十进制整数,然后打印出这个十进制整数对应的二进制形式。这个程序要考虑输入的字符串不能转换成一个十进制整数的情况,并对转换失败的原因要区分出是数字太大,还是其中包含有非数字字符的情况。提示:十进制数转二进制数的方式是用这个数除以2,余数就是二进制数的最低位,接着再用得到的商作为被除数去除以2,这次得到的余数就是次低位,如此循环,直到被除数为0为止。其实,只要明白了打印出一个十进制数的每一位的方式(不断除以10,得到的余数就分别是个位,十位,百位),就很容易理解十进制数转二进制数的这种方式。

9、有100个人围成一个圈,从1开始报数,报到14的这个人就要退出。然后其他人重新开始,从1报数,到14退出。问:最后剩下的是100人中的第几个人?

10、金额转换,阿拉伯数字转换成中国传统形式。

例如:101000001010   转换为   壹仟零壹拾亿零壹仟零壹拾圆整
作者: 不是大师    时间: 2016-1-27 22:39
不是一路人
作者: 小轩丶卍    时间: 2016-1-27 22:45
不是大师 发表于 2016-1-27 22:39
不是一路人

额。。什么意思= = 不明白= =
作者: 西贝    时间: 2016-1-28 00:31
好难啊,学到一半发现自己还是一水货,得再努努力
作者: yifengyouren    时间: 2016-1-28 00:58
先在此做个标记,现在刚开始学javaEE基础第四天的视频, 等学完27天再来看学的效果。
第2.3题感觉较简单,是定义类和方法问题,是对象建模问题吧。
第5用栈实现,第9题用循环链表或循环数组实现,或者递归?
其余的题好像与API有很大关系, 现在学的太少,

作者: 小轩丶卍    时间: 2016-1-28 09:32
西贝 发表于 2016-1-28 00:31
好难啊,学到一半发现自己还是一水货,得再努努力

是啊、里面有些都是需要用到反射的内容的。而反射、如果是看视频学习的话,是最后一天才讲的。。
作者: 小轩丶卍    时间: 2016-1-28 09:35
yifengyouren 发表于 2016-1-28 00:58
先在此做个标记,现在刚开始学javaEE基础第四天的视频, 等学完27天再来看学的效果。
第2.3题感觉较简单, ...

加油加油
作者: the_way    时间: 2016-1-28 10:03
  这么全 收藏了
作者: yifengyouren    时间: 2016-1-29 01:30
yifengyouren 发表于 2016-1-28 00:58
先在此做个标记,现在刚开始学javaEE基础第四天的视频, 等学完27天再来看学的效果。
第2.3题感觉较简单, ...

本想27天学完再来做题, 可自己耐不信性子, 刚才在地库鼓捣半个多小时,明知道粗糙不堪,还是给第9题写了段代码。先记下, 明天百度下,看对不对。
//2016年1月28日23时38分21秒
/*
        从100中排除14, 直到不够14,输出剩余.
        利用循环结构,
        第一次从1开始, 每到14就作标记为0,
        计数器到达100就停止, 记下本次最后一个序数,
        以这个序数为第1个数,继续下一轮循环,
        直到剩余数不到14.
*/
//import java.util.Scanner;
class ExcepF{
        public static void main(String[] args) {
                //System.out.println("Hello World!");
                int arr[] = new int[ 101 ];                        //使用数组标记100个数, 其第一个元素不使用
                initial( arr );                       
                output( arr );                       
                excepFourteen( arr );       
                output( arr );                       
        }
//初始化数组
        public static void initial( int[] a ){
                for( int i = 0; 101 > i; i ++ ){
                        a[ i ] = i;
                }
        }
//输出原始数组
        public static void output( int[] a ){
                for (int i = 1; 101 > i  ; i ++  ){
                        System.out.print( a + " ");
                        if ( 0 == i % 10 ){
                                System.out.println();
                        }
                }
                System.out.println("*************************");
/*
                Scanner sc = new Scanner( System.in );
                sc.nextInt();
*/
        }
//主功能函数
        public static void excepFourteen( int[] a){
                int sequence = 0;                                        //序数计数器
                int count = 0;                                                //未被排除元素个数

                while( true ){        //在内层循环中,序数计数器是轮回使用的,元素个数计数器每个轮回都清零.
                        count = 0;
                        for( int i = 1; 101 > i ; i ++ ){
                                if( !isZero( a) ){                        //没有作过标记
                                        count ++;                                               
                                        sequence ++;                                        //序数增一
                                        if( 14 == sequence ){                        //符合要求作标记
                                                a = 0;
                                                sequence = 0;                               
                                        }
                                }
                        }
                        //output( a );
                        if( 14 >= count ){
                                break;
                        }
                }
        }
//判断是否打过标记
        public static boolean isZero( int a ){
                return 0 == a;
        }

}

作者: 小轩丶卍    时间: 2016-1-29 09:10
yifengyouren 发表于 2016-1-29 01:30
本想27天学完再来做题, 可自己耐不信性子, 刚才在地库鼓捣半个多小时,明知道粗糙不堪,还是给第9题写 ...

你得到的结果是什么
作者: yifengyouren    时间: 2016-1-29 10:38
小轩丶卍 发表于 2016-1-29 09:10
你得到的结果是什么

有100个人围成一个圈,从1开始报数,报到14的这个人就要退出。然后其他人重新开始,从1报数,到14退出。问:最后剩下的是100人中的第几个人?
刚才百度了下, 我觉得解题思路大致是对的,但原题问的是剩下的最后一人,我理解为"从其他人重新开始",不能一人重复数两次以上(这样就最终剩下13人),把原代码改了下测试条件,得到了现在的结果. 但只学了前几天的课, 还不会用集合类实现, 只用了数组实现.结果 是92, 请指正.
class ExcepF{
        public static void main(String[] args) {
                int arr[] = new int[ 101 ];                       
                initial( arr );                       
                output( arr );                       
                excepFourteen( arr );       
                output( arr );                       
        }

        public static void initial( int[] a ){
                for( int i = 0; 101 > i; i ++ ){
                        a[ i ] = i;
                }
        }

        public static void output( int[] a ){
                for (int i = 1; 101 > i  ; i ++  ){
                        System.out.print( a + " ");
                        if ( 0 == i % 10 ){
                                System.out.println();
                        }
                }
                System.out.println("*************************");
        }

        public static void excepFourteen( int[] a){
                int sequence = 0;                                       
                int count = 0;               
                               
                while( true ){               
                        count = 0;
                        for( int i = 1; 101 > i ; i ++ ){
                                if( !isZero( a) ){                       
                                        count ++;                                               
                                        sequence ++;                                       
                                        if( 14 == sequence ){                       
                                                a = 0;
                                                sequence = 0;                               
                                        }
                                }
                        }

                        if( 1 >= count ){
                                break;
                        }
                }
        }

        public static boolean isZero( int a ){
                return 0 == a;
        }
}

l获.PNG (65.49 KB, 下载次数: 8)

l获.PNG

作者: 15266913109    时间: 2016-1-29 12:09
表示看蒙了
作者: mj000    时间: 2016-1-29 15:17
自我测试一下




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2