联想2018秋招java笔试题目,牛客奖品向我招手~
分享试题,赢奖品啦,希望自己可以获得牛客网的礼物~
单选题
1.在数据结构中,从逻辑上可以把数据结构分为()
A.动态结构和静态结构
B.紧凑结构和非紧凑结构
C.线性结构和非线性结构
D.内部结构和外部结构
2.在顺序表(3,6,8,10,12,15,16,18,21,25,30)中,用二分法查找关键码值11,所需的关键码比较次数为()
A.4
B.5
C.2
D.3
参考答案:A
解析:
正确的二分查找应该是一次折半后,high=middle-1 或者 low=middle+1;
所以第一次查找时 high=10,low=0; middle= 0+10/2 = 5,即15,比较一次发现大了,记1次;
第二次查找时 high=5-1=4, low =0; middle = 0+(5-1-0)/2 = 2,即8,比较一次发现小了,记1次;
第三次查找时 high=4, low = 2+1=3; middle = 3+(4-3)/2 = 3,即10,比较一次发现小了,记1次;
-
若进栈序列为1,2,3,4,进栈过程中可以出栈,则下列不可能的一个出栈序列是()
A.3,1,4,2
B.1,4,3,2
C.3,4,2,1
D.2,3,4,1
参考答案:A
-
以下程序输出的结果为()
main()
{Char* alpha[6]={"ABCD","EFGH","IJKL","MNOP","QRST","UVwX"}; char**p; int i; p=alpha; for(i=0;i<4;i++){ printf("%s",p[i]); }
}
A.AEIM
B.ABCDEFGHIJKLMNOP
C.ABCD
D.ABCDEFGHIJKL
5.对于n个结点的单向链表(无表头结点),需要指针单元的个数至少为()
A.n-1
B.n+1
C.n
D.2n
参考答案:B
简答题
1.ArrayList和LinkedList有什么区别?
答:ArrayList和LinkedList在性能上各有优缺点,都有各自所适用的地方,总的说来可以描述如下:
1)对ArrayList和LinkedList而言,在列表末尾增加一个元素所花的开销都是固定的。对ArrayList而言,主要是在内部数组中增加一项,指向所添加的元素,偶尔可能会导致对数组重新进行分配;而对LinkedList而言,这个开销是统一的,分配一个内部Entry对象。
2)在ArrayList的中间插入或删除一个元素意味着这个列表中剩余的元素都会被移动;而在LinkedList的中间插入或删除一个元素的开销是固定的。
3)LinkedList不支持高效的随机元素访问。
4)ArrayList的空间浪费主要体现在在list列表的结尾预留一定的容量空间,而LinkedList的空间花费则体现在它的每一个元素都需要消耗相当的空间
2.简单叙述JDBC连接数据库核心步骤。
答:
1)加载JDBC驱动程序
2)提供JDBC连接的URL
3)创建数据库的连接
4)创建一个Satement
5)执行SQL语句
6)处理返回结果
3.简单描述你对java的认识,从语言,平台,框架方面。
答:语法简单,面向对象,稳定,与平台无关,多线程,动态等特点,而与平台无关是java风靡全球的重要原因。(与平台无关是指软件的运行不因操作系统、处理器的变化而无法运行或出现运行错误)
4.什么是进程(Process)和线程(Thread)?有何区别?
答:
1)含义
进程是具有一定独立功能的程序关于某个数据集合上的一次运行活动,进程是系统进行资源分配和调度的一个独立单位.
线程是进程的一个实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位.线程自己基本上不拥有系统资源,只拥有一点在运行中必不可少的资源(如程序计数器,一组寄存器和栈),但是它可与同属一个进程的其他的线程共享进程所拥有的全部资源.
2)区别
(1)一个程序至少有一个进程,一个进程至少有一个线程.
(2)线程的划分尺度小于进程,使得多线程程序的并发性高。
(3)进程在执行过程中拥有独立的内存单元,而多个线程共享内存,从而极大地提高了程序的运行效率。
(4)线程在执行过程中与进程还是有区别的。每个独立的线程有一个程序运行的入口、顺序执行序列和程序的出口。但是线程不能够独立执行,必须依存在应用程序中,由应用程序提供多个线程执行控制。
5.介绍编译系统核心主要步骤。
答:
1)下载新内核源代码
2)解压内核源代码
3)配置内核参数
4)编译内核
5)启动新内核