腾讯2014软件开发笔试题
- 格式:doc
- 大小:39.00 KB
- 文档页数:7
一些腾讯笔试题及其答案声明:题目来自网络,答案大部分来自网络并经过整理;有些是自己查资料和请教他人得来的。
题外话:曾经有一个很好的进入腾讯工作的机会摆在我面前,但是我没有珍惜,虽然谈不上“后悔莫及”,但是...1.1有A、B、C、D四个人,要在夜里过一座桥。
他们通过这座桥分别需要耗时1、2、5、10分钟,只有一支手电,并且同时最多只能两个人一起过桥。
请问,如何安排,能够在17分钟内这四个人都过桥?答案:A & B -->2 mins1 mins <-- AC &D -->10 mins2 mins <-- BA &B --> 2 mins一共 2 + 1 +10 + 2 + 2 =17 mins1.2 1-20的两个数把和告诉A,积告诉B,A说不知道是多少,B也说不知道,这时A说我知道了,B接着说我也知道了,问这两个数是多少?答案:2和3答案有3个:1 2和22 2和33 2和4第一个大概是(2,2)吧A得到的是2+2=4,B得到的是2*2=4开始A当然不知道,因为有可能是(2,2)或(1,3)这时B也不知道,因为有可能是(2,2)或(1,4),而且这两种情况A无均会答"不知道"这时,我就已经知道了,因为如果是(1,3),B得到的是3,只有(1,3)这种情况,就不会回答"不知道" 由B的答案,A可以肯定是(2,2)同样,A说"知道"了以后,B也就知道了因为如果是(1,4),A得到的是5,只凭第二步B说"不知道",A不可能在第三步便"知道"所以B可以断定,是(2,2)逻辑推理:这两个数是多少? 两个人A,B。
数字为2-100之间的自然数。
现找出两个数,把其和告诉A,把其积告诉B。
然后问A知道不知道是哪两个数,A 说:“虽然我不知道,但是肯定B也不知道。
腾讯2014校园招聘软件开发类笔试试题考试时长:120分钟一不定项选择题(共25题,每题4分,共100分,少选、错选、多选均不得分)1 已知一棵二叉树,如果先序遍历的节点顺序是:ADCEFGHB,中序遍历是:CDFEGHAB,则后序遍历结果为:(D)A.CFHGEBDA B.CDFEGHBA C.FGHCDEBA D.CFHGEDBA2 下列哪两个数据结构,同时具有较高的查找和删除性能?(CD)A.有序数组 B.有序链表 C.AVL树 D.Hash表3 下列排序算法中,哪些时间复杂度不会超过nlogn?(BC)A.快速排序 B.堆排序 C.归并排序 D.冒泡排序4 初始序列为1 8 6 25 4 7 3一组数采用堆排序,当建堆(小根堆)完毕时,堆所对应的二叉树中序遍历序列为:(A)A.8 3 2 5 1 6 4 7B.3 2 8 5 1 4 6 7C.3 8 2 5 1 6 7 4D.8 2 3 5 1 4 7 65 当n=5时,下列函数的返回值是:(A)int foo(int n){if(n<2)return n;return foo(n-1)+foo(n-2);}A.5 B.7 C.8 D.106 S市A,B共有两个区,人口比例为3:5,据历史统计A的犯罪率为0.01%,B区为0.015%,现有一起新案件发生在S市,那么案件发生在A区的可能性有多大?(C)A.37.5% B.32.5% C.28.6% D.26.1%7 Unix系统中,哪些可以用于进程间的通信?(BCD)A.Socket B.共享内存 C.消息队列 D.信号量8 静态变量通常存储在进程哪个区?(C)A.栈区 B.堆区 C.全局区 D.代码区9 查询性能(B)A.在Name字段上添加主键B.在Name字段上添加索引C.在Age字段上添加主键D.在Age字段上添加索引10 IP地址131.153.12.71是一个(B)类IP地址。
腾讯测试类实习笔试题及分析18、在开发一个系统时,如果用户对系统的目标不很清楚,难以定义需求,这时最好使用〔A 〕。
A.原型法B.瀑布模型C.V-模型D.螺旋模型19、软件开发中的瀑布模型典型的刻画了软件存在周期的阶段划分,与其最相适应的软件开发方法是〔B〕。
A.构件化方法B.结构化方法C.面向对象方法D.快速原型法20、软件设计的主要任务是设计软件的结构、过程和模块,其中软件结构设计的主要任务是要确定〔 C 〕。
A.模块间的操作细节B.模块间的相似性C.模块间的组成关系D.模块的具体功能21、在面向数据流的设计方法中,一般把数据流图中的数据划分为〔C〕两种。
A.数据流和事务流B.变换流和数据流C.变换流和事务流D.控制流和事务流22、造成软件危机的主要原因是〔D〕:①用户使用不当②硬件不可靠③对软件的错误认识④缺乏好的开发方法和手段⑤软件本身特点⑥开发效率低A.〔①②③〕B.〔②③④〕C.〔③⑤⑥〕D.〔④⑤⑥〕23、以下要素中,不属于DFD的是〔D〕。
当使用DFD对一个工资系统进行建模时,〔A〕可以被确定为外部实体。
〔1〕A.加工B.数据流C.数据存储D.联系〔2〕A.接收工资单的银行B.工资系统源代码程序C.工资单D.工资数据库的维护24、软件开发模型用于指导软件开发。
其中演化模型用于在快速开发一个〔C〕的基础上逐渐演化成最终的软件。
螺旋模型综合了〔A〕的优点,并增加了〔D〕。
〔1〕A.模块B.运行平台C.原型D.主程序〔2〕A.瀑布模型和演化模型B.瀑布模型和喷泉模型C.演化模型和喷泉模型D.原型和喷泉模型〔3〕A.质量评价B.进度控制C.版本控制D.风险分析25、在选择开发方法时,有些情况不适合使用原型法,以下选项中不能使用快速原型法的情况是〔D〕:A.系统的使用范围变化很大B.系统的设计方案难以确定C.用户的需求模糊不清D.用户数据资源缺乏组织和管理26、原型化方法是一类动态定义需求的方法,〔A〕不是原型化方法所具胡的特征。
腾讯校园招聘软件开发类笔试试题考试时长:分钟一不定项选择题(共题,每题分,共分,少选、错选、多选均不得分)已知一棵二叉树,如果先序遍历地节点顺序是:,中序遍历是:,则后序遍历结果为:()个人收集整理勿做商业用途....下列哪两个数据结构,同时具有较高地查找和删除性能?().有序数组.有序链表.树.表下列排序算法中,哪些时间复杂度不会超过?().快速排序.堆排序.归并排序.冒泡排序初始序列为一组数采用堆排序,当建堆(小根堆)完毕时,堆所对应地二叉树中序遍历序列为:()个人收集整理勿做商业用途....当时,下列函数地返回值是:()( ){(<) ;()();}....个人收集整理勿做商业用途市,共有两个区,人口比例为:,据历史统计地犯罪率为,区为,现有一起新案件发生在市,那么案件发生在区地可能性有多大?()个人收集整理勿做商业用途....个人收集整理勿做商业用途系统中,哪些可以用于进程间地通信?()..共享内存.消息队列.信号量静态变量通常存储在进程哪个区?().栈区.堆区.全局区.代码区查询性能().在字段上添加主键.在字段上添加索引.在字段上添加主键.在字段上添加索引地址是一个()类地址.....个人收集整理勿做商业用途下推自动识别机地语言是:().型语言.型语言.型语言.型语言下列程序地输出是:()()(){(“\”*());;}....个人收集整理勿做商业用途浏览器访问某页面,协议返回状态码为时表示:()找不到该页面禁止访问内部服务器访问服务器繁忙如果某系统*成立,则系统采用地是()进制.....个人收集整理勿做商业用途某段文本中各个字母出现地频率分别是{,,,,},使用哈夫曼编码,则哪种是可能地编码:()个人收集整理勿做商业用途() () () () ()() () () () ()() () () () ()() () () () ()和分别对应了中地哪几层?()一个栈地入栈序列是,则栈地不可能地输出序列是?()....个人收集整理勿做商业用途同一进程下地线程可以共享以下?()....个人收集整理勿做商业用途对于派生类地构造函数,在定义对象时构造函数地执行顺序为?():成员对象地构造函数:基类地构造函数:派生类本身地构造函数....个人收集整理勿做商业用途如何减少换页错误?()进程倾向于占用访问局部性()满足进程要求进程倾向于占用使用基于最短剩余时间()地调度机制递归函数最终会结束,那么这个函数一定?()使用了局部变量有一个分支不调用自身使用了全局变量或者使用了一个或多个参数没有循环调用编译过程中,语法分析器地任务是()分析单词是怎样构成地分析单词串是如何构成语言和说明地分析语句和说明是如何构成程序地分析程序地结构同步机制应该遵循哪些基本准则?().空闲让进.忙则等待.有限等待.让权等待进程进入等待状态有哪几种方式?()调度给优先级更高地线程阻塞地线程获得资源或者信号在时间片轮转地情况下,如果时间片到了获得未果设计模式中,属于结构型模式地有哪些?()状态模式装饰模式代理模式观察者模式二、填空题(共题个空,每空分,共分)设有字母序列{},请写出按二路归并方法对该序列进行一趟扫描后地结果为.个人收集整理勿做商业用途关键码序列(),要按照关键码值递增地次序进行排序,若采用初始步长为地地排序法,则一趟扫描地结果是;若采用以第一个元素为分界元素地快速排序法,则扫描一趟地结果是.个人收集整理勿做商业用途二进制地址为,大小为()和()块地伙伴地址分别为:,.个人收集整理勿做商业用途设是给定地一棵二叉树,下面地递归程序()用于求得:二叉树中具有非空地左、右两个儿子地结点个数;只有非空左儿子地个数;只有非空右儿子地结点个数和叶子结点个数.,、都是全局量,且在调用()之前都置为.个人收集整理勿做商业用途{;*,*;};;( *){(>)(>) ;;(>) ;;(>) (>);(>) (>);}* () ();*三、其他方向简答题(共题,每题分),选作题,不计入总分)请设计一个排队系统,能够让每个进入队伍地用户都能看到自己在队列中所处地位置和变化,队伍可能随时有人加入和退出;当有人退出影响到用户地位置排名时需要及时反馈到用户.个人收集整理勿做商业用途,两个整数集合,设计一个算法求他们地交集,尽可能地高效.。
2014年腾讯校园招聘C语言笔试题含答案1.输入一个链表的头结点,从尾到头反过来输出每个结点的值。
链表结点定义如下:struct ListNode{int m_nKey;ListNode*m_pNext;};A:递归方法逆序输出,栈方法逆序输出。
(任意实现一种既可)void PrintListUsingRecursicve(pListNode head){if(head!=NULL){PrintListUsingRecursicve(head->m_pNext);printf("%d/n",head->m_nKey);}}void PrintListUsingStack(pListNode head){Stack s;s.top=0;pListNode p=head;do{push(&s,p->m_nKey);p=p->m_pNext;}while(p!=NULL);while(!IsEmpty(&s)){printf("%d/n",pop(&s));}}2.二元树的深度题目:输入一棵二元树的根结点,求该树的深度。
从根结点到叶结点依次经过的结点(含根、叶结点)形成树的一条路径,最长路径的长度为树的深度。
#include<stdio.h>#include<stdlib.h>#include<string.h>#include<time.h>#define MAXLEN100#define MAXNUM10typedef int Tree[MAXLEN];Tree bt;int GetDeep(int i){int l=0,r=0;if(bt[i*2]!=-1){l=GetDeep(i*2)+1;}if(bt[i*2+1]!=-1){r=GetDeep(i*2+1)+1;}return l>r?l:r;}int main(){int i=0;memset(bt,-1,sizeof(bt));for(i=1;i<=MAXNUM;i++)bt[i]=i;bt[(i-1)*2]=i*2;printf("%d/n",GetDeep(1));return0;}3.整数的二进制表示中1的个数题目:输入一个整数,求该整数的二进制表达中有多少个1。
腾讯2014软件开发笔试题目-----9月21日,腾讯2014软件开发校招-简答题-广州简答题:1、请设计一个排队系统,能够让每个进入队伍的用户都能看到自己在中所处的位置和变化。
队伍可能随时有人加入和退出,当有人退出影响到用户的位置排名时需要即时反馈到用户。
2、A、B两个整数集合,设计一个算法求他们的交集,尽可能的高效。
(博主能力有限,不是所有题目都会求解,第1题不是我的擅长,这里贴出来让大家知道腾讯的考题。
我的重点放在第2题上面!)第2题题解(个人见解,仅供参考!)思路1:排序法对集合A和集合B进行排序(升序,用快排,平均复杂度O(N*logN)),设置两个指针p和q,同时指向集合A和集合B的最小值,不相等的话移动*p和*q中较小值的指针,相等的话同时移动指针p和q,并且记下相等的数字,为交集的元素之一,依次操作,直到其中一个集合没有元素可比较为止。
优点:操作简单,容易实现。
缺点:使用的排序算法不当,会耗费大量的时间,比如对排好序的集合使用快排,时间复杂度是O(N2)这种算法是大家都能比较快速想到的办法,绝大多数时间放在了对集合的排序上,快排的平均复杂度是O(N*logN),对排好序的集合做查找操作,时间复杂度为O(N),当然这种算法肯定比遍历要快多了。
code:[cpp]view plaincopy1.#include <stdio.h>2.#include <stdlib.h>3.#define M 84.#define N 55.int cmp(const void *a, const void *b)6.{7.int *x = (int *)a;8.int *y = (int *)b;9.return (*x) - (*y);10.}11.12.int main(void)13.{14.int A[] = {-1, 2 ,39 ,10, 6, 11, 188, 10};15.int B[] = {39 ,8 , 10, 6, -1};16.//对数组A和数组B进行快排17. qsort(A, M, sizeof(int), cmp);18. qsort(B, N, sizeof(int), cmp);19.//FindIntersection(A, B);20.int i = 0, j = 0;21.int cnt = 0;22.int result[M > N ? M : N];//保存集合的结果23.//设置i、j索引,分别指向数组A和B,相等则同时移动,不相等则移动较小值的索引24.while(i < M && j < N)25. {26.if(A[i] == B[j])27. {28. result[cnt] = A[i];29. i++;30. j++;31. cnt++;32. }33.else if(A[i] < B[j])34. {35. i++;36. }37.else38. {39. j++;40. }41. }42.for(i = 0; i < cnt; i++)43. {44. printf("%4d", result[i]);45. }46.return 0;47.}思路2:索引法以空间换时间,把集合(感谢网友的指正,集合里面的元素是不重复的!)中的元素作为数组下表的索引。
tencent笔试题目及部分答案一些腾讯笔试题及其答案声明:题目网络,答案大部分网络并经过;有些是自己查资料和请教他人得来的。
题外话:曾经有一个很好的进入腾讯工作的机会摆在我面前,但是我没有珍惜,虽然谈不上“后悔莫及”,但是...1.1有A、B、C、D四个人,要在夜里过一座桥。
他们通过这座桥分别需要耗时1、2、5、10分钟,只有一支手电,并且同时最多只能两个人一起过桥。
请问,如何安排,能够在17分钟内这四个人都过桥?答案:A & B -->2 mins 1 mins <-- A C & D -->10 mins 2 mins <-- B A & B --> 2 mins 一共 2 + 1 + 10 + 2 + 2 = 17 mins1.2 1-20的两个数把和告诉A,积告诉B,A说不知道是多少, B 也说不知道,这时A说我知道了,B接着说我也知道了,问这两个数是多少?答案:2和31.3 爸爸,妈妈,妹妹,小强,至少两个人同一生肖的概率是多少? 1-12*11*10*9/12*12*12*12 = 1-55/96 = 41/96 1.4 某人去玩具店买小熊,单价30元. 付给玩具店老板100元玩具店老板没零钱, 去水果店换了100元零钱回来找给那人70元. 那人走后, 水果店老板找到玩具店老板说刚才的100元是假币, 玩具店老板赔偿了水果店老板100元 ?? 问:玩具店老板损失了多少钱? 答案: 70+小熊的进价 2 请定义一个宏,比较两个数a、b的大小,不能使用大于、小于、if语句答案: #define max(a,b)((((long)((a)-(b)))&0x80000000)?b:a) 若a > b ,则a-b的二进制最高位为0,与上任何数还是0,所以大数为a;否则,a-b为负数,二进制最高位为1,与上0x80000000(最高位为1其他为0)之后为1,所以此时的大数为b.3 计算 a^b << 2 答案:运算符优先级:括号,下标,->和.(成员)最高;单目的比双目的高;算术双目的比其他双目的高;位运算高于关系运算;关系运算高于按位运算(与,或,异或);按位运算高于逻辑运算;三目的只有一个条件运算,低于逻辑运算;赋值运算仅比 , (顺序运算)高。
腾讯测试开发笔试题下面是小编整理提供的腾讯测试开发笔试题,欢迎阅读。
腾讯测试开发笔试题(一)第一部分职业能力测评(共40分钟)10道行政职业能力测试110道性格测试第二部分技术笔试题(好像是60分钟)选择题涉及C++ delete函数,虚函数、结构体和类的关系、二叉树遍历、排序算法、网络协议(TCP/IP协议、SNMP协议、http协议)、软件工程填空题涉及遍历、进程间通信方式、http协议格式、面向过程集成方法、软件测试方法、软件工程包含哪些步骤、jsp标签(注释标签有哪些) 问答题1. Jsp 创建cookie的原理2. 程序填空(C++),输入一数字型字符串自动转换成对应的数字,如输入“123”转成数字123,输入“-123”转成-1233. 编写程序两个大数据相加,两个大数据按字符串的方式输入腾讯测试开发笔试题(二)一、单项选择题。
(每个选项3分,20个选项,共60分)1. 在一个单链表中,若p所指的结点不是最后结点,在p所指结点之后插进s所指结点,则应执行操纵( B )。
A. s->next=p;p->next=sB. s->next=p->next;p->next=sC. s->next=p->next;p=sD. p->next=s;s->next=p2. 在下列排序方法中,不稳定的方法有( C )。
A. 回并排序与基数排序B. 插进排序与希尔排序C. 堆排序与快速排序D. 选择排序与冒泡排序3. 在多级存储体系中,“Cache-主存”结构的作用是解决( D )的题目。
A. 主存容量不足B. 辅存与CPU 速度不匹配C. 主存与辅存速度不匹配D. 主存与CPU速度不匹配4. 在需要经常查找结点的先驱与后继的场合中,使用( B )比较合适。
A. 单链表B. 循环链表C. 链栈5. 带头结点的单链表head为空的判定条件( B )。
腾讯软件测试笔试题篇一:腾讯研究院软件测试试题机密文件禁止外泄腾讯项目软件测试笔试试题本卷满分100分考试时间总计1小时(请将答案填在答题卡上请勿直接填写在试卷上)一、单选题题(共10题,每题2分,共计20分)1.测试用例是测试使用的文档化的细则,其规定如何对软件某项功能或功能组合进行测试。
测试用例应包括下列(B)内容的详细信息。
①测试目标和被测功能。
②测试环境和其他条件。
③测试数据和测试步骤。
④测试记录和测试结果。
A.①③B.①②③C.①③④D.①②③④2.下面关于防火墙功能的说法中,不正确的是(A)。
A.防火墙能有效防范病毒的入侵B.防火墙能控制对特殊站点的访问C.防火墙能对进出的数据包进行过滤D.防火墙能对部分网络攻击行为进行检测和报警3.下面关于漏洞扫描系统的叙述,错误的是(C)。
A.漏洞扫描系统是一种自动检测目标主机安全弱点的程序B.黑客利用漏洞扫描系统可以发现目标主机的安全漏洞1机密文件禁止外泄C.漏洞扫描系统可以用于发现网络入侵者D.漏洞扫描系统的实现依赖于系统漏洞库的完善4.瀑布模型表达了一种系统的、顺序的软件开发方法。
以下关于瀑布模型的叙述中,正确的是(D)。
A.瀑布模型能够非常快速地开发大规模软件项目B.只有很大的开发团队才使用瀑布模型C.瀑布模型已不再适合于现今的软件开发环境D.瀑布模型适用于软件需求确定,开发过程能够采用线性方式完成的项目5.某公司采用的软件开发过程通过了CMM2认证,表明该公司(C)。
A.开发项目成效不稳定,管理混乱B.对软件过程和产品质量建立了定量的质量目标C.建立了基本的项目级管理制度和规程,可对项目的成本、进度进行跟踪和控制D.可集中精力采用新技术新方法,优化软件过程6.关于汇编语言,以下叙述中正确的是(D)。
A.汇编语言源程序可以直接在计算机上运行B.将汇编语言源程序转换成目标程序的软件称为解释程序C.在汇编语言程序中,不能定义符号常量D.将汇编语言源程序翻译成机器语言程序的软件称为汇编程序7.对高级语言源程序进行编译时,可发现源程序中的(B)错误。
腾讯2014校园招聘软件开发类笔试试题
考试时长:120分钟
一不定项选择题(共25题,每题4分,共100分,少选、错选、多选均不得分)
1 已知一棵二叉树,如果先序遍历的节点顺序是:ADCEFGHB,中序遍历是:CDFEGHAB,则后序遍历结果为:(D)
A.CFHGEBDA B.CDFEGHBA C.FGHCDEBA D.CFHGEDBA
2 下列哪两个数据结构,同时具有较高的查找和删除性能?(CD)
A.有序数组 B.有序链表 C.AVL树 D.Hash表
3 下列排序算法中,哪些时间复杂度不会超过nlogn?(BC)
A.快速排序 B.堆排序 C.归并排序 D.冒泡排序
4 初始序列为1 8 6 2
5 4 7 3一组数采用堆排序,当建堆(小根堆)完毕时,堆所对应的二叉树中序遍历序列为:(A)
A.8 3 2 5 1 6 4 7
B.3 2 8 5 1 4 6 7
C.3 8 2 5 1 6 7 4
D.8 2 3 5 1 4 7 6
5 当n=5时,下列函数的返回值是:(A)
int foo(int n)
{
if(n<2)return n;
return foo(n-1)+foo(n-2);
A.5 B.7 C.8 D.10
6 S市A,B共有两个区,人口比例为3:5,据历史统计A的犯罪率为0.01%,B区为0.015%,现有一起新案件发生在S市,那么案件发生在A区的可能性有多大?(C)
A.37.5% B.32.5% C.28.6% D.26.1%
7 Unix系统中,哪些可以用于进程间的通信?(BCD)
A.Socket B.共享内存 C.消息队列 D.信号量
8 静态变量通常存储在进程哪个区?(C)
A.栈区 B.堆区 C.全局区 D.代码区
9 查询性能(B)
A.在Name字段上添加主键
B.在Name字段上添加索引
C.在Age字段上添加主键
D.在Age字段上添加索引
10 IP地址131.153.12.71是一个(B)类IP地址。
A.A B.B C.C D.D
11 下推自动识别机的语言是:(C)
A. 0型语言 B.1型语言 C.2型语言 D.3型语言
12 下列程序的输出是:(D)
#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
13 浏览器访问某页面,HTTP协议返回状态码为403时表示:(B)
A 找不到该页面
B 禁止访问
C 内部服务器访问
D 服务器繁忙
14 如果某系统15*4=112成立,则系统采用的是(A)进制。
A.6 B.7 C.8 D.9
15 某段文本中各个字母出现的频率分别是{a:4,b:3,o:12,h:7,i:10},使用哈夫曼编码,则哪种是可能的编码:(A)
A a(000) b(001) h(01) i(10) o(11)
B a(0000) b(0001) h(001) o(01) i(1)
C a(000) b(001) h(01) i(10) o(00)
D a(0000) b(0001) h(001) o(000) i(1)
16 TCP和IP分别对应了OSI中的哪几层?(CD)
A Application layer
B Presentation layer
C Transport layer
D Network layer
17 一个栈的入栈序列是A,B,C,D,E,则栈的不可能的输出序列是?(C)A.EDCBA B.DECBA C.DCEAB D.ABCDE
18 同一进程下的线程可以共享以下?(BD)
A. stack B.data section C.register set D.file fd
19 对于派生类的构造函数,在定义对象时构造函数的执行顺序为?(D)1:成员对象的构造函数
2:基类的构造函数
3:派生类本身的构造函数
A.123 B.231 C.321 D.213
20 如何减少换页错误?(BC)
A 进程倾向于占用CPU
B 访问局部性(locality of reference)满足进程要求
C 进程倾向于占用I/O
D 使用基于最短剩余时间(shortest remaining time)的调度机制
21 递归函数最终会结束,那么这个函数一定?(B)
A 使用了局部变量
B 有一个分支不调用自身
C 使用了全局变量或者使用了一个或多个参数
D 没有循环调用
22 编译过程中,语法分析器的任务是(B)
A分析单词是怎样构成的
B 分析单词串是如何构成语言和说明的
C 分析语句和说明是如何构成程序的
D 分析程序的结构
23 同步机制应该遵循哪些基本准则?(ABCD)
A.空闲让进 B.忙则等待 C.有限等待 D.让权等待
24 进程进入等待状态有哪几种方式?(D)
A CPU调度给优先级更高的线程
B 阻塞的线程获得资源或者信号
C 在时间片轮转的情况下,如果时间片到了
D 获得spinlock未果
25 设计模式中,属于结构型模式的有哪些?(BC)
A 状态模式
B 装饰模式
C 代理模式
D 观察者模式
二、填空题(共4题10个空,每空2分,共20 分)
1 设有字母序列{Q,D,F,X,A,P,N,B,Y,M,C,W},请写出按二路归并方法对该序列进行一趟扫描后的结果为DQFXAPBNMYCW。
2 关键码序列(Q,H,C,Y,Q,A,M,S,R,D,F,X),要按照关键码值递增的次序进行排序,若采用初始步长为4的Shell的排序法,则一趟扫描的结果是QACSQDFXRHMY;若采用以第一个元素为分界元素的快速排序法,则扫描一趟的结果是FHCDQAMQRSYX。
3 二进制地址为011011110000,大小为(4)10和(16)10块的伙伴地址分别为:_________,_________。
4 设t是给定的一棵二叉树,下面的递归程序count(t)用于求得:二叉树t中具有非空的左、右两个儿子的结点个数N2;只有非空左儿子的个数NL;只有非空右儿子的结点个数NR和叶子结点个数N0。
N2,NL,NR、N0都是全局量,且在调用count(t)之前都置为0。
typedef struct node
{
int data;
struct node *lchild,*rchild;
}node;
int N2,NL,NR,N0;
void count(node *t)
{
if (t->lchild!=NULL)
if (t->rchild!=NULL) N2++;
else NL++;
else if (t->rchild!=NULL) NR++;
else N0++;
if(t->lchild!=NULL) count(t->lchild);
if(t->rchild!=NULL) count(t->rchild);
}/* call form :if(t!=NULL) count(t);*/
三、其他方向简答题(共2题,每题20分),选作题,不计入总分)
1 请设计一个排队系统,能够让每个进入队伍的用户都能看到自己在队列中所处的位置和变化,队伍可能随时有人加入和退出;当有人退出影响到用户的位置排名时需要及时反馈到用户。
2 A,B两个整数集合,设计一个算法求他们的交集,尽可能的高效。