一、 单选题
1. 下面排序算法中,初始数据集的排列顺序对算法的性能无影响的是
A. 堆排序
B. 插入排序
C. 冒泡排序
D. 快速排序
2. 一个栈的入栈序列式ABCDE则不可能的出栈序列是
A. DECBA
B. DCEBA
C. ECDBA
D. ABCDE
3. 某进程在运行过程中需要等待从磁盘上读入数据,此时进程的状态将:
A. 从就绪变为运行
B. 从运行变为就绪
C. 从运行变为阻塞
D. 从阻塞变为就绪
4. 下面算法的时间复杂度为:
int f(unsigned int n)
{
if(n==0 || n==1)
return 1;
else
return n*f(n-1);
}
A. O(1)
B. O(n)
C. O(N*N)
D. O(n!)
5. 一个洗牌程序的功能是将n张牌的顺序打乱,以下关于洗牌程序的功能定义说法最恰当的是:
A. 每张牌出现在n个位置上的概率相等
B. 每张牌出现在n个位置上的概率独立
C. 任何连续位置上的两张牌的内容独立
D. n张牌的任何两个不同排列出现的概率相等
6. 在数据库系统中,产生不一致的根本原因是
A. 数据存储量太大
B. 没有严格保护数据
C. 未对数据进行完整性控制
D. 数据冗余
7. 15L 和 27L 两个杯子可以精确地装( ) L水?
A. 53
B. 25
C. 33
D. 52
8. 路由器工作在网络模型中的哪一层( )?
A. 数据链路层
B. 物理层
C. 网络层
D. 应用层
9. 对于满足 SQL92 标准的 SQL 语句:selectfoo,count(foo) from pokes where foo>10 group by foo having count(*)>5order by foo,其执行顺序应该是( )
A. FROM ->WHERE -> GROUP BY -> HAVING -> SELECT ->ORDER BY
B. FROM ->GROUP BY ->WHERE -> HAVING -> SELECT ->ORDER BY
C. FROM ->WHERE -> GROUP BY -> HAVING ->ORDER -> BYSELECT
D. FROM ->WHERE ->ORDER BY -> GROUP BY -> HAVING -> SELECT
10. 使用深度优先算法遍历下面的图,遍历的顺序为( )
A. ABCDEFGHI
B. BCEHIFGDA
C. ABCDEFHIG
D. HIFEGBCDA
二、不定项选择题(少选、错选、多选均不得分)
1. 下列哪两个数据结构,同时具有较高的查找和删除性能?( )
A. 有序数组
B. 有序链表
C. AVL树
D. Hash表
2. 当n=5时,下列函数的返回值是:( )
int foo(int n)
{
if(n<2)return n;
return foo(n-1)+foo(n-2);
}
A. 5
B. 7
C. 8
D. 10
3. S市A,B共有两个区,人口比例为3:5,据历史统计A的犯罪率为0.01%,B区为0.015%,现有一起新案件发生在S市,那么案件发生在A区的可能性有多大?( )
A. 37.5%
B. 32.5%
C. 28.6%
D. 26.1%
4. Unix系统中,哪些可以用于进程间的通信?( )
A. Socket
B. 共享内存
C. 消息队列
D. 信号量
5. 下列程序的输出是:( )
#define add(a+b) a+b
int main()
{
printf(“%d\n”,5*add(3+4));
return 0;
}
A. 23
B. 35
C. 16
D. 19
6. 浏览器访问某页面,HTTP协议返回状态码为403时表示:( )
A. 找不到该页面
B. 禁止访问
C. 内部服务器访问
D. 服务器繁忙
7. 如果某系统15*4=112成立,则系统采用的是( )进制。
A. 6
B. 7
C. 8
D. 9
8. TCP和IP分别对应了OSI中的哪几层?( )
A. Application layer
B. Presentation layer
C. Transport layer
D. Network layer
9. 递归函数最终会结束,那么这个函数一定?( )
A. 使用了局部变量
B. 有一个分支不调用自身
C. 使用了全局变量或者使用了一个或多个参数
D. 没有循环调用
10. 编译过程中,语法分析器的任务是( )
A. 分析单词是怎样构成的
B. 分析单词串是如何构成语言和说明的
C. 分析语句和说明是如何构成程序的
D. 分析程序的结构
三、简答题
1. A,B两个整数集合,设计一个算法求他们的交集,尽可能的高效(用你熟悉的程序设计语言或伪代码实现)。
2. 给定int a与int b,实现函数 int divide(int a, int b,int& quo, int& rem); 不使用/与%运算符的基础上,实现a除以b的除法运算,quo是商,rem是余数
3. 一个有 N 个正数元素的一维数组(A[0],A[1], A[2]...,A[N-1]), 求连续子数组和的最大值(用你熟悉的程序设计语言或伪代码实现)。