恒生历年笔试题

更新时间:2024-05-07 11:06:02 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

单选

1、 采用面向对象技术开发的应用系统的特点是()。 A. 重用性更强 B. 运行速度更快 C. 占用存储量小 D. 维护更复杂

2、 已经获得除CPU以外的所有所需资源的进程处于()状态。 A. 运行状态 B. 就绪状态 C. 自由状态 D. 阻塞状态

3、 Linux文件权限一共10位长度,分成四段,第三段表示的内容是()。 A. 文件类型

B. 文件所有者权限

C. 文件所有者所在组的权限 D. 其他用户权限

4、 栈和队列的共同特点是()。 A. 都是先进先出 B. 都是先进后出

C. 只允许在端点处插入和删除元素 D. 没有共同点

5、 一下关于排序算法的叙述中,正确的是()。

A. 冒泡排序法中,元素的交换次数与元素的比较次数一定相同 B. 冒泡排序法中,元素的交换次数不少于元素的比较次数

C. 简单选择排序中,关键字相同的记录在排序前后的相对位置一定不变 D. 简单选择排序中,关键字相同的记录在排序前后的相对位置可能交换

6. 在一个单链表HL中,若要在指针q所指结点的后面插入一个由指针p所指向的结点,则执行()

A.q->next=p->next;p->next=q; B. p->next=q->next;q=p;

C . q->next=p->next;p->next=q; D. p->next=q->next;q->next=p;

7.下列关于线程优先级别的说法中,正确的是() A. 线程的优先级是不能改变的

B.线程的优先级在创建线程时设定 C.在创建线程后的任何时候都可以设置 D.B,C

8.已知二叉树前序遍历序列是FBEADC,中序遍历序列是EABDFC,它的后序遍历序列() A.CDAEBF B.AEDBCF C.EADBCF D.EBACFD

1

9.数据库的概念模型独立于() A.E-R图

B.具体的机器和DBMS C.现实世界 D.用户需求

10.以下关于主键的描述正确的是() A.标识表中唯一的实体

B.创建唯一的索引,允许空值 C. 只允许以表中第一字段建立

11.若某线性表中最常用的操作是在最后一个元素之后插入一个元素和删除第一个元素,则采用( )存储方式最节省运算时间。 (A) 单链表 (B) 仅有头指针的单循环链表 (C) 双链表 (D) 仅有尾指针的单循环链表

12.数据库连接查询,要使连接查询的记录全部在查询结果中属于( )查询。 A、左连接 B、右连接 C、完全连接 D、内连接

不定选择题

不定选择:基础理论知识

1. 下列函数中时间复杂度最小的是 A.nlogn+1000logN B.n[logn]-1000logN C.n*n-1000logN D.2nlogn-1000logN

2. 以下数据结构中不属于线性数据结构的是 A.队列 B.线性表 C.二叉树 D.栈

3. 下列关于SQL描述错误的是 A.SQL是一种过程化语言 B.SQL采用集合操作方式

C.SQL不能嵌入到高级语言程序中 D.SQL是一种DBMS

4. 下列对进程地描述中,错误的是 A.进程是动态的概念 B.进程执行需要处理机 C.进程始有生命期的 D.进程是指令的集合

5. 下列中断中,属于强迫性中断的是 A.设备出错 B.掉电

2

C.时间片到了 D.执行print语句

6. 一台主机的IP是172.18.14.137,掩码是255.255.255.224,那么该主机的广播地址是

A.172.18.14.159 B.172.18.14.255 C.172.18.14.128 D.172.18.14.224

7. 代码生成阶段的主要任务是 A.把汇编语言翻译成机器语言

B.把中间代码变换成依赖具体机器的目标代码 C.把高级语言翻译成汇编语言 D.把高级语言翻译成机器语言 8. 敏捷开发方法是一种轻量级、高效、低风险、可预测、科学的软件开发方法,其特性包含在12个最佳实践中。系统的设计要尽可能的早交付,属于___最佳实践。 A.隐喻 B.重构 C.小型发布 D.持续集成

9. 有六个元素6,5,4,3,2,1 的顺序进栈,问下列哪些不是合法的出栈序列

A.5 4 3 6 1 2 B.4 5 3 1 2 6 C.3 4 6 5 2 1 D.4 3 5 2 1 6

10.关于静态变量,下面说法不正确的是 A.静态变量在堆栈中分配

B.静态变量的作用域一定是局部的

C.静态变量可分为静态局变量和静态全局变量 D.静态变量存在于数据中

11.整个软件生命周期中时间最长的阶段是( )。 A.需求分析 B.设计 C.编码测试 D.运行维护 12.在设计测试用例时,( )是用得最多的一种黑盒测试方法。 A.等价类划分 B.边界值分析 C.因果图 D.判定表 13.为了使模块尽可能独立, 要求( )。

A.模块的内聚程度要尽量高 B.模块的内聚程度要尽量低 C.各模块间的耦合成都要尽量弱 D.各模块间的耦合成都要尽量弱 14.下列选项中,父进程与子进程共享的是( )。

A.程序段 B.堆栈 C.数据段 D.进程控制块 15.下列不属于Unix进程间通讯机制的是( )。 A.信号 B.管道 C.全局变量 D.共享内存

16.时间复杂度为0(nlog2n)的排序算法有( )。 A.快速排序 B.堆排序 C.冒泡排序 D.折半插入排序

3

17.执行文件a.out以及文件file1的权限信息如下: a.out user1 r-sr-xr-x

file1 user1 r-s------- a.out的C代码如下: #include #inclede main() {

FILE*fp;

if(access(“file1”,R_OK)!=0) printf(“error1”); else

printf(“OK1”);

if(fopen(“file1”,”r”==NULL) printf(“error2”); else

printf(“OK2”); }

如果使用user2用户执行a.out ,其执行结果是( ) A.error1 error2 B.error1 OK2 C.OK1 error2 D.OK1 OK2 18.关于内存正确的是( )。

A.内存的存取速度不能低于cpu速度,否则会造成数据丢失 B.程序只有在数据和代码等被调入内存后才能运行 C.采用虚拟内存技术后程序可以在硬盘上直接运行

D.某计算机的内存容量为16GB,那么他的地址总线为24位

19.开发一个逻辑模型:公司有10个部门,每个部门有6-7名员工,但每个员工可能会为不止一个部门工作。下面所给的模型正确的是( ). A.部门和员工之间是一种确定的一对多的关系 B.建立一个关联表,从该关联表到员工建立一个一对多的关系,然后再从该关联表到部门表建立一个一对多的关系 C.建立一个关联表,从员工表到该关联表建立一个一对多的关系,然后再从部门到该关联表建立一个一对多的关系 D.这种情况不能建立正常的数据库模型

10.如图所示,两个关系R1和R2,它们进行( )运算后得到关系R3。 R1 A B C A 1 X C 2 Y D 1 y R2

D E M 4

1 2 5 R3

A A C C M N M I J K B 1 1 2 C X Y y D M M N E I I J A.交 B.并 C.笛卡尔积 D.连接

二、不定项选择:语言知识

不定项选择题

1、表 达 式 a+b* (c-d)-e/f是 一个二叉树的中序遍历;则其后序遍历可能为( )

A.-+a*b-cd/ef B. abcd-*+ef/- C . cdb*- aef+/ D. ab*cd-ef/- 2、下列排序算法是稳定的有( )

A.冒泡排序 B. 希尔排序 C. 堆序 D. 归并排序 3、下列属于TCP/IP协议的应用层协议的有() A.TCP B.IP C.SMTP D.HTTP 4、构造函数在()被调用?

A.创建对象是 B 类定义时 C 使用对象的方法是 D 使用对象的属性时 5、匹配正则表达式[0-9]{4}\\-?[A-Z]+[a-z]*un的字符串有() A 0571-Hundsun B 0571-hunsun C 0080-Sun D 0080Sun 6、在c语言中,关于静态变量的说法,正确的有() A、静态变量和常量的作用相同。

B、函数中的静态变量,在函数退出后不能被释放。 C、静态变量只可以赋值一次,赋值后则不能改变。

D、静态全局变量的作用域为一个程序的所有资源文件。

7、单链表的每一次的结点中包括一个指针link,它指向该结点。现要将指针q指向的新结点插入到指针p指向的单链表结点之后,下面的操作序列中哪一个是正确的()

A、q:=p^.link;p^.link:=q^.link; B、p^.link:=q^.link;q:=p^.link; C、q^.link:=p^.link;p^.link:=q; D、p^.link:q;q^.link:=p^.link;

8、执行数据库操作时,下列可以激活触发器的操作有() A、SELECT B、INSERT

5

6、SQL语言集数数据查询、_____、_____、_____功能于一体,充分体现了关系数据语言的特点和优点。

数据库

1.有一个银行客户资金数据库,包括客户信息、资金流水、表结构如下: 客户号 客户姓名 客户年龄 帐户资金余额 CID CName CAge CBalance 资金流水Currents,每发生一次业务(资金存取),就记录一条记录 业务日期 业务时间 流水号 客户号 业务类型 发生金额 BDate BTime BID CID BType BAmount 1. 存入 2. 支取 注:业务日期2011年1月10日用字符串“20110110”表示 写出完成以下要求的SQL语句:

1) 找出资金余额大于1000万的客户,并按资金余额从大到小排序 2) 找出2011年没有发生任何业务的客户号、客户姓名 3) 对于业务类型为支取的,把发生金额改成用负数表示 4) 找出平均发生金额大于等于1000元的客户号 5) 资金流水表中建立客户号的索引

2.某银行信贷子系统有如下关系表:

A. 客户信息表(客户编码、客户姓名、银行卡号、客户状态、客户级别)主键:客户编码

B. 贷款信息表(合同编码、客户编码、贷款金额、贷款余额、贷款利率、合同生效日期)主键:合同编号

C. 还款明细表(合同编码、客户编码、还款期次、还款金额、还款日期)主键:合同编号,还款期次 请根据以上信息,完成如下题目:

1. 请列出客户编号为“123456”客户的贷款余额和合同号; 2. 请列出有两笔贷款的客户信息; 3. 请将A类客户的贷款利率优惠10%; 4. 请列出本期(加入期次为“201210”)暂未还款的贷款明细; 5. 请列出2012年生效的合同明细。

3.设有如下表结构: 表明:g_cardapply

字段(字段名/类型/长度):

g _applyno varchar 8; //申请单号(关键字)

16

g _applydate bigint 8; //申请日期 g _state varchar 2; //申请状态 表明:g_cardapplydetail 字段(字段名/类型/长度):

g _applyno varchar 8; //申请单号(关键字) g _name bigint 30; //申请人姓名

g _idcard varchar 18; //申请人身份证号 g _state varchar 2; //申请状态 其中,两个表的关联字段为申请单号。

基于以上关系模式完成下列要求的SQL语句: 1.创建表g _cardapply

2.查询身份证号码为440401430103082的申请日期

3.查询同一个身份证号码有两条以上记录的身份证号码及记录个数

4.将身份证号码为440401430103082的记录在两个表格的申请状态均改为07 5.删除g _cardapplydetail表中所有姓李的记录

程序设计

一.由1-9九个不同的自然数可以组成3个3位数,寻找并输出满足3个数的比是1:2:3的全部可能的组合。请先写出程序实现的逻辑,然后用程序实现。(请用C或JAVA语言实现)

请对输入的一组数字(0-9)进行排序,排序的规则是:出现的次数越多、数字越大排序越靠前。比如输入:

(1) 1 3 4 5 6 结果:6 5 3 2 1 (2) 1 3 3 6 2 1结果:3 1 6 2

1、 输入整形数98765,输出是56789,写出设计思路再编写程序。

---解答提示:采用数据结构栈结构,从尾数字开始依次压栈,再依次把栈中数据取出来。采用循环结构,先把数字,再把数字/10,把商作为下一次循环。

2、 两个自小到大的整形数组,找出两个数组的交集的元素。

二.判断一个int数组中的元素是否存在重复,方法声明如下: boolean isRepeat(int[] m){ } 解答:

public boolean isRepeat2(int[] m){

Set h =new HashSet(m.length);

for (int i = 0; i < m.length; i++) {

h.add(new Integer(m[i]));

17

}

if (h.size()==m.length ){

return false; }else {

return true; }

}

三. 采用了冒泡进行排序编写一个字符界面的Java Application 程序,接受用户输入的10个整数,并输出这10个整数的最大值和最小值。 解答:采用了冒泡进行排序

import java.util.Scanner; import java.util.Scanner; public class MaxAndMin {

public static void main(String[] args) { Scanner scanner = new Scanner(System.in); int[] arr = new int[10];

for (int i = 0; i < arr.length; i++) { int next = scanner.nextInt(); arr[i] = next; }

int[] after=Arrays.sort(arr);

System.out.println(\最小值:\最大值:\} }

算法题

一.设有n位选手参加网球循环赛,n=2^k,循环赛共进行n-1天,每位选手要与其他n-1位选手比赛一场,且n位选手每天比赛一场,不能轮空,按以下要求位比赛安排日程:

(1) 每位选手必须与其他n-1位选手格赛一场; (2) 每个选手每天只能赛一场; (3) 循环赛一共进行n-1天;

请按此要求将比赛日程表设计成n行和n-1列的一个表。在表中的第i行和第j列处填入第i个选手在第j天所遇到得选手,其中1<=i<=n,1<=j<=n-1.

简答题

1. 什么是Web容器?

解答:容器就是一种服务程序,在服务器一个端口就有一个提供相应服务的程序,而这个程序就是处理从客户端发出的请求,如JAVA中的Tomcat容器,ASP的IIS或PWS都是这样的容器。

2. 请说明SQLServer中delete from tablea & truncate table tablea的区别

18

解答:两者都可以用来删除表中所有的记录。区别在于:truncate是DDL操作,它移动HWK,使HWK值为0,不需要 rollback segment .而Delete是DML操作需要rollback segment 且花费较长时间. 3. 类有哪三个基本特性?各特性的优点?

解答:类具有封装性、继承性和多态性。

封装性:类的封装性为类的成员提供公有、缺省、保护和私有等多级访问权限,目的是隐藏类中的私有变量和类中方法的实现细节。 继承性:类的继承性提供从已存在的类创建新类的机制,继承(inheritance)使一个新类自动拥有被继承类(父类)的全部可继承的成员。

多态性:类的多态性提供类中方法执行的多样性,多态性有两种表现形式:重载和覆盖。

4、Collection 和 Collections的区别?

解答:Collection是java.util下的接口,它是各种集合的父接口,继承于它的接口主要有Set 和List;Collections是个java.util下的类,是针对集合的帮助类,提供一系列静态方法实现对各种集合的搜索、排序、线程安全化等操作。

19

本文来源:https://www.bwwdw.com/article/9kxg.html

Top