华数校招的部分笔试题(Java开发类)

作者: 大海 分类: 校招 发布时间: 2015-10-02 23:01 ė1875 views 6Comments Off on 华数校招的部分笔试题(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层为例得出的结论,叶子结点数每少一个,最多结点数就多少一个.

image

 

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罢了.

image

 

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写一个冒泡排序

常见的七种排序算法:快速、归并、堆、选择、冒泡、插入和希尔。

Github代码

 

31.使用jdbc进行数据库查询操作的步骤,比如有一个职工信息表(Staff),它有以下几个field(ID,NAME,PHONE,ADDRESS,AGE),请查询ID为001的雇员的信息并且打印出来,数据库的driver为”sun.jdbc.odbc.JdbcOdbcDriver”,数据库的url使用jdbc:odbc:people

Github代码

 

32.请用自己的理解简单描述一下面向对象的三个特点:封装、继承、多态

封装:就是用一个自主式框架把对象的数据和方法连在一起形成一个整体。对象是封装的基本单位,相互之间通过接口访问。目的是隐藏细节,代码模块化。

继承:子类拥有父类非private的属性和功能,通过继承的代码复用是一种“白盒式代码复用”,重写和覆盖会破坏封装性。目的是扩展代码模块,实现代码复用。

多态:允许父类声明指向子类对象。即同一方法获得不同的行为特征(重载和覆盖)。目的是接口重用,是面向对象的核心。

来源

本文出自 纳百川,转载时请注明出处及相应链接。

本文永久链接: http://www.bicner.com/866.html

Ɣ回顶部