华数校招的部分笔试题(Java开发类)
一.选择题
1.下面对硬磁盘平均读写速度的描述______是正确的.
A. 是硬磁盘的寻道时间. B. 是磁头由某一磁道移动到相邻磁道的时间
C. 是磁道在某一磁道等待记录扇区的时间 D. 是硬盘的寻道时间加磁道在某一磁道等待记录扇区的时间
2.相联存储器的访问方式是______________.
A. 先入先出访问 B.按地址访问 C.按内容访问 D.先入后出访问
相联存储器是把存储单元所存内容的某一部分作为检索项(即关键字项),用来检索存储器,并读出或写入存储器中与该检索项相符的存储单元的内容。
3.采用美国数据加密标准DES进行数据加密时,加密算法中的基本运算不包括_____
A.置换运算 B.模加运算 C.模乘运算 D.移位运算
DES是一种对称式加密算法,使用 16 个循环,使用异或,置换,代换,移位操作四种基本运算
4.关于RSA算法下列说法不正确的是______
A. 是一种对称的加密算法 B.运算速度比DES慢 C.可用于某种数字签名方案 D.安全性主要基于素因子分解的难度
常见的对称加密算法有DES、3DES、Blowfish、IDEA、RC4、RC5、RC6和AES;常见的非对称加密算法有:RSA、ECC(移动设备用)、Diffie-Hellman、El Gamal、DSA(数字签名用);常见的Hash单向加密算法有MD2、MD4、MD5、HAVAL、SHA
5.为了保证网络的安全,常常使用防火墙技术,防火墙是____
A. 为控制网络访问而配置的硬件设备 B.为防止病毒攻击而编制的软件
C.建立在内、外网络边界上的过滤封锁机制 D.为了避免发生火专门为机房建立的隔离墙
6.在高级程序设计语言中,使用参数是函数(过程、子程序)之间传递信息的一种手段,引用调用是指把实在参数的____传递给相应的形式参数,在函数中对形参的引用和赋值被处理成是对实在参数间接地访问.
A.地址 B.名 C.值 D.地址和值
7.假设某操作系统采用非剥夺法来分配资源,且对资源的申请和释放可以在任何时候进行,当进程X请求资源得不到满足时,若没有因等待资源而阻塞的其他进程,则进程X______________
A.可直接阻塞 B.释放其他进程已占有的资源,并撤消相关进程
C.释放申请进程已占有的资源,并撤消该进程 D.不可直接阻塞
因为是非剥夺式的,请求资源没有得到满足,则会进入阻塞状态。
8.假设某操作系统采用非剥夺法来分配资源,且对资源的申请和释放可以在任何时候进行,若有因等待资源而阻塞的其他进程,则_____________检查所有由于等待资源而被阻塞的进程的资源占有情况.
A.申请进程 B.系统进程 C.用户进程 D.设备管理程序
由操作系统来做这事
9.假设某操作系统采用非剥夺法来分配资源,且对资源的申请和释放可以在任何时候进行,若有因等待资源而阻塞的其他进程,则检查所有由于等待资源而被阻塞的进程的资源占用情况,若占有了进程X所需的资源,则将资源取出并分配给进程X,那么该策略_____________
A.会导致死锁 B.不会导致死锁 C.采用的是资源静态分配法 D.采用的是资源顺序分配法
死锁的四个必要条件:
(1) 互斥条件:一个资源每次只能被一个进程使用。
(2) 请求与保持条件:一个进程因请求资源而阻塞时,对已获得的资源保持不放。
(3) 不剥夺条件:进程已获得的资源,在末使用完之前,不能强行剥夺。
(4) 循环等待条件:若干进程之间形成一种头尾相接的循环等待资源关系。
该策略破坏了其中的请求和保持条件。
10.概要设计是系统结构的总体设计,一下选项中不属于概要设计的是_______________
A.把软件划分成模块 B.确定模块之间的调用关系 C.确定各个模块的功能 D.设计各个模块的伪代码
概要设计就是系统设计的说明书,不需要每个模块的伪代码。
11.原型化(Prototyping)方法是一类动态定义需求的方法,__________不是原型化方法所具有的特征.
A.提供严格定义的文档 B.加快需求的确定 C.简化项目管理 D.加强用户参与和决策
原型化方法是为了破除阶段性严格定义的方案,它向用户提供以界面为主导的解决方案,是一种自外向内的设计过程。
12.TCP/IP的体系结构分为应用层、传输层、网络层和网络接口层,其中传输层的协议主要有TCP和___________
A.ICMP B.FTP C.UDP D.EGP
13.计算机网络拓扑主要是指通信子网的拓扑结构,网络拓扑影响这网络的性能以及__________
A.系统可靠性和通信费用 B.系统可靠性和层次结构 C.层次结构和通信费用 D.安全性和系统可靠性
像星型,网型,总线型,环型这些拓扑结构对网速影响不大,不同点在于拓扑的可靠性和费用。
14.堡垒主机防火墙上装有___________
A.一块网卡且有一个IP地址 B.两个网卡且有两个不同的IP地址
C.两个网卡且有相同的IP地址 D.多个网卡且动态获得IP地址
多数情况下,一个堡垒主机使用两块网卡,每个网卡连接不同的网络。一块网卡连接你公司的内部网络用来管理、控制和保护,而另一块连接另一个网络,通常是公网也就是Internet。
15.MPEG-4主要有音频编码、视频编码、数据平面、___________、缓冲区管理和实时识别等部分构成.
A.对象基表达 B.场景描述 C.合成编码 D.描述符接口
参考维基百科http://zh.wikipedia.org/zh/MPEG-4
16.一个有124个叶子节点的完全二叉树,最多有__________个节点
A.247 B.248 C.249 D.250
124个叶结点的完全二叉树,最多的情况是1+2+4+8+16+32+64+120+1(可补一个左结点)=248
以4层为例得出的结论,叶子结点数每少一个,最多结点数就多少一个.
17.面向对象程序设计语言具有数据抽象、信息隐蔽、消息传递的____________等特征.
A.对象调用 B.对象变换 C.并发性 D.信息继承
面向对象三大特征:封装、继承、多态。
18.采用面向对象技术开发的应用系统的特点是__________
A.重用性更强 B.运行速度更快 C.占用存储量小 D维护更复杂
19.list是一个ArrayList的对象,哪个选项的代码填写到//todo delete处,可以在Iterator遍历的过程中正确并安全的删除一个list中保存的对象?_____________
Iterator it = list.iterator(); int index = 0; while(it.hasNext()){ Object obj = it.next(); if(needDelete(obj)){ //needDelete 返回boolean ,决定是否删除 //todo delete } index ++; }
A. list.remove(obj); B.list.remove(index); C.list.remove(it.next()); D.it.remov();
20.关于以下程序代码的说明正确的是___________
class HasStatic{ private static int x = 100; public static void main(String[] args) { HasStatic hs1 = new HasStatic(); hs1.x++; HasStatic hs2 = new HasStatic(); hs2.x++; hs1 = new HasStatic(); hs1.x++; HasStatic.x--; System.out.println("x="+x); } }
A. 5行不能通过编译,因为引用了私有静态变量
B. 10行不能通过编译,因为x是稀有静态变量
C. 程序通过编译,输出结果为: x=103
D. 程序通过编译,输出结果为: x=102
x是static静态变量,存放在静态存储区中,无论直接访问和实例化访问,都是同一对象。
21.给出下面代码段,哪行将引起一个编译时错误?_____________
public class Test{ int n = 0; int m = 0; public Test(int a ){m=a;} public static void main(String[] args) { Test t1,t2; int j,k; j=3,k=5; t1 = new Test(); t2 = new Test(k); } }
A. 行1 B.行4 C.行6 D.行9
没有无参的默认构造函数。
22.What is the output of the following code?_________
public class Note { public static void main(String[] args) { String name[] = {"Killer","Miller"}; String name0 = "Killer"; String name1 = "Miller"; swap(name0,name1); System.out.println(name0 + "," + name1); swap(name); System.out.println(name[0] + "," + name[1]); } public static void swap(String name[]){ String temp; temp = name[0]; name[0] = name[1]; name[1] = temp; } public static void swap(String name0,String name1){ String temp; temp = name0; name0 = name1; name1 = temp; } }
A. Killer,Millter followed by Killer,Miller
B. Millter,Killer followed by Killer,Miller
C. Killer,Millter followed by Millter,Killer
D. Millter,Killerfollowed by Millter,Killer
String是final类型的不可变量,字符串数组是对对象的引用进行操作。
23.What is the result?____________
public class Foo { public static void main(String[] args) { StringBuffer a = new StringBuffer("A"); StringBuffer b = new StringBuffer("B"); operate(a,b); System.out.println(a + "." + b); } static void operate(StringBuffer x, StringBuffer y){ x.append(y); y=x; } }
A. The code compiles and prints “A.B”
B. The code compiles and prints “A.A”
C. The code compiles and prints “AB.B”
D. The code compiles and prints “AB.AB”
StringBuffer是可变的字符串类,operate方法接受的是StringBuffer对象引用的复制,原始引用并未改变(基本类型传递是值的复制,对象传递是引用的复制),方法运行完后该复制自动消失,打印的是原始引用的对象信息,这里对引用a的对象添加b,而引用b的对象不变。故结果为AB,B。
x.append时操作的是x所引用的对象,y=x是吧y的引用指向了x,但b的引用还是指向B,而a的引用也还是指向A,不过在A的后面被添加了一个append了一个B罢了.
24.对象使用时,下面描述错误的是____________
A. 通过”.”运算符调用成员变量和方法
B. 通过成员变量的访问权限设定限制自身对这些变量方法的调用
C. 将一个对象申明为类的成员时,必须在使用前为其分配内存
访问权限并不是为自己访问而设置的,大多是不同类之间的相互引用限制。
二.数据库题
26.请写出SQL分页查询语句(可选ORACLE,SQL Sserver,MySQL任意一种数据库均可)
MySQL分页可直接通过limit实现:select * from 表名 limit m,size;从m+1条查询size条记录。SQLServer可以使用Top和not in实现:select top 10 * from 表名 where 主键 not in(select top 10 主键 from 表名);–查询显示11-20条记录(10条)。
27.设有如下4个关系模式:
S(SN,SNAME,CITY)
P(PN,PNAME,COLOR,WEIGHT)
J(JN,JNAME,CITY)
SPJ(SN,PN,JN,QTY)
其中:
S表示供应商,SN为供应商编码,SNAME为供应商名字,CITY为供应商所在城市
P表示零件,PN为零件编码,PNAME为零件名字,COLOR为零件颜色,WEIGHT为零件重量
J表示工程,JN为工程编码,JNAME为工程名字,CITY为工程所在城市
SPJ表示供应关系,QTY表示供应的零件数量
写出实现一下各题功能的SQL语句
(1)查出所在城市为南京的所有工程的全部细节.
select * from J where CITY=’南京’;
(2)取出所在城市为上海的工程提供零件的供应商编码
select SPJ.SN from SPJ,J where SPJ.JN=J.JN AND J.CITY=’上海’;
(3)取出所在城市为上海或北京的工程提供红色零件的供应商的编码
SELECT SPJ.JN FROM SPJ,J,P WHERE SPJ.JN=J.JN AND SPJ.PN=P.PN AND J.CITY=’上海’or J.CITY=’北京’AND P.COLOR=’红色’;
(4)取出供应商与工程所在城市相同的供应商提供的零件编码
SELECT SPJ.PN FROM SPJ,J WHERE SPJ.JN=J.JN AND SPJ.SN=S.SN AND J.CITY=S.CITY;
(5)取出至少由一个和工程不在同一城市的供应商提供零件的工程编码.
SELECT SPJ.JN FROM SPJ,J,S WHERE SPJ.JN=J.JN AND SPJ.SN=S.SN AND J.CITY <>S.CITY
(6)取出上海供应商不提供任何零件的工程编码
SELECT SPJ.JN FROM SPJ,S WHERE SPJ.SN=S.SN AND SPJ.QTY=0 AND S.CITY =‘上海’
(7)取出所有这样的一些<CITY,CITY>二元组,使得第一个城市的供应商为第二个城市的工程提供零件.
SELECT S.CITY,J.CITY FROM SPJ,J,S WHERE SPJ.JN=J.JN AND SPJ.SN=S.SN;
三.Android题
28.Android的四大组件是哪些,他们的作用?
Android四大组件:http://www.eoeandroid.com/thread-33435-1-1.html
Activity:Activity是Android程序与用户交互的窗口,是Android构造块中最基本的一种,它需要为保持各界面的状态,做很多持久化的事情,妥善管理生命周期以及一些跳转逻辑
service:后台服务于Activity,封装有一个完整的功能逻辑实现,接受上层指令,完成相关的事务,定义好需要接受的Intent提供同步和异步的借口
Content Provider:是Android提供的第三方应用数据的访问方案,可以派生Content Provider类,对外提供数据,可以像数据库一样进行选择排序,屏蔽内部数据的存储细节,向外提供统一的借口模型,大大简化上层应用,对数据的整合提 供了更方便的途径
BroadCast Receiver:接受一种或者多种Intent作触发事件,接受相关消息,做一些简单处理,转换成一条Notification,统一了Android的事件广播模型。
29.请介绍下Android中常用的五种布局.
Android五大布局:http://mobile.51cto.com/android-229801.htm
四.Java题
30.用java写一个冒泡排序
常见的七种排序算法:快速、归并、堆、选择、冒泡、插入和希尔。
31.使用jdbc进行数据库查询操作的步骤,比如有一个职工信息表(Staff),它有以下几个field(ID,NAME,PHONE,ADDRESS,AGE),请查询ID为001的雇员的信息并且打印出来,数据库的driver为”sun.jdbc.odbc.JdbcOdbcDriver”,数据库的url使用jdbc:odbc:people
32.请用自己的理解简单描述一下面向对象的三个特点:封装、继承、多态
封装:就是用一个自主式框架把对象的数据和方法连在一起形成一个整体。对象是封装的基本单位,相互之间通过接口访问。目的是隐藏细节,代码模块化。
继承:子类拥有父类非private的属性和功能,通过继承的代码复用是一种“白盒式代码复用”,重写和覆盖会破坏封装性。目的是扩展代码模块,实现代码复用。
多态:允许父类声明指向子类对象。即同一方法获得不同的行为特征(重载和覆盖)。目的是接口重用,是面向对象的核心。
本文出自 纳百川,转载时请注明出处及相应链接。
本文永久链接: https://www.bicner.com/866.html