摘要:
设有关系R(S,D,M),其函数依赖集F={S→D,D→M}。则关系R至多满足______。[美国某著名搜索引擎公司面试题] A.1NFB.2NFC.3NFD.BCNF解析:数据库模式的4个范式问题。1NF:第一范式。如果关系模式R的所有属性的值域中每一个值都是不可再分解的值,则称R属于第一范式模式 阅读全文
摘要:
答案:进程是程序的一次执行。线程可以理解为进程中执行的一段程序片段。在一个多任务环境中下面的概念可以帮助我们理解两者间的差别。进程间是独立的,这表现在内存空间、上下文环境上;线程运行在进程空间内。一般来讲(不使用特殊技术),进程无法突破进程边界存取其他进程内的存储空间;而线程由于处于进程空间内,所以 阅读全文
摘要:
答案:现在最常用的进程间通信的方式有信号、信号量、消息队列、共享内存。所谓进程通信,就是不同进程之间进行一些“接触”。这种接触有简单,也有复杂。机制不同,复杂度也不一样。通信是一个广义上的意义,不仅仅指传递一些message。它们的使用方法是基本相同的,所以只要掌握了一种使用方法,然后记住其他的使用 阅读全文
摘要:
答案: 作业:用户在一次解题或一个事务处理过程中要求计算机系统所做工作的集合。它包括用户程序、所需要的数据及控制命令等。作业是由一系列有序的步骤组成的。 进程:一个程序在一个数据集合上的一次运行过程。所以一个程序在不同数据集合上运行,乃至一个程序在同样数据集合上的多次运行都是不同的进程。 线程:线程 阅读全文
摘要:
已知strcpy函数的原型是char *strcpy(char *strDest, const char *strSrc);,其中strDest是目的字符串,strSrc是源字符串。 (1)Write the function strcpy, don't call C/C++ string libr 阅读全文
摘要:
编程实现字符串数转化成整数的办法。[中国某著名IT培训企业公司2005年面试题]解析:字符串转化成整数,可以采用减'0'再乘10累加的办法,字符串减'0'就会隐性转化成int类型的数。答案:程序代码如下: 阅读全文
摘要:
怎样将整数转化成字符串数,并且不用函数itoa? 解析:整数转化成字符串,可以采用加'0',再逆序的办法,整数加'0'就会隐性转化成char类型的数。答案:程序代码如下 如果可以使用itoa函数的话,则十分简单,答案如下: 阅读全文
摘要:
有1千万条短信,有重复,以文本文件的形式保存,一行一条,有重复。请用5分钟时间,找出重复出现最多的前10条。[中国某著名互联网公司2010年5月笔试题] 解析:对于本题来说,某些面试者想用数据库的办法实现:首先将文本导入数据库,再利用select语句某些方法得出前10条短信。但是实际上用数据库是绝对 阅读全文
摘要:
用二进制来编码字符串“abcdabaa”,需要能够根据编码,解码回原来的字符串,最少需要多长的二进制字符串? A.12B.14C.18D.24解析:哈夫曼编码问题:字符串“abcdabaa”有4个a、2个b、1个c、1个d。构造哈夫曼树如下图所示。a编码0(1位),b编码10(2位),c编码110( 阅读全文
摘要:
在百度或淘宝搜索时,每输入字符都会出现搜索建议,比如输入“北京”,搜索框下面会以北京为前缀,展示“北京爱情故事”、“北京公交”、“北京医院”等等搜索词。实现这类技术后台所采用的数据结构是什么?[中国某著名搜索引擎B公司2012年6月笔试题] 答案:Trie树,又称单词查找树、字典树,是一种树形结构, 阅读全文
摘要:
前序遍历二叉树值为abcdefg,下面哪个不可能是中序遍历)[美国著名软件公司M2013年11月笔试题]A.abcdefgB.gfedcbaC.bcdefgaD.bceadfg解析:二叉树遍历原则如下:前序遍历是根左右,中序遍历是左根右,后序遍历是左右根。如果前序遍历二叉树值为abcdefg,那么a 阅读全文
摘要:
有一个二叉搜索树用来存储字符'A', 'B', 'C','D','E','F','G','H'下面哪个结果是后序树遍历结果)[美国著名软件公司M2009年11月笔试题] A.ADBCEGFHB.BCAGEHFDC.BCAEFDHGD.BDACEFHG解析:二叉搜索树(Binary Search Tr 阅读全文
摘要:
接触过编程的人都知道,高级语言都能通过变量名访问内存中的数据。那么这些变量在内存中是如何存放的呢?程序又是如何使用这些变量的呢?首先,来了解一下C语言的变量是如何在内存分布的。C语言有全局变量(Global)、本地变量(Local)、静态变量(Static)和寄存器变量(Register)。每种变量 阅读全文
摘要:
请讲述heap与stack的差别。 在进行C/C++编程时,需要程序员对内存的了解比较精准。经常需要操作的内存可分为以下几个类别。● 栈区(stack):由编译器自动分配和释放,存放函数的参数值、局部变量的值等。其操作方式类似于数据结构中的栈。● 堆区(heap):一般由程序员分配和释放,若程序员不 阅读全文
摘要:
编程实现栈的入栈/出栈操作。[中国著名网络企业XL公司2007年12月面试题]答案:完整代码如下: 如下C++程序: 请问刚进入func函数时,参数在栈中的形式可为以下哪种?(左侧为地址,右侧为数据。)[中国著名网络企业XL公司2007年11月面试题] A.0x0013FCF0 0x61616161 阅读全文
摘要:
编程实现队列的入队/出队操作。[美国某著名计算机嵌入式公司2005年面试题] 答案:完整代码如下: 阅读全文
摘要:
已知n个人(以编号1,2,3,…,n分别表示)围坐在一张圆桌周围。从编号为k的人开始报数,数到m的那个人出列;他的下一个人又从K开始报数,数到m的那个人又出列;依此规律重复下去,直到圆桌周围的人全部出列。试用C++编程实现。[中国著名门户网站W公司2008年面试题] 解析:本题就是约瑟夫环问题的实际 阅读全文
摘要:
双链表的情况与单链表类似,只是增加了一个前置链而已。 编程实现双链表的建立。答案:完整代码如下: 阅读全文
摘要:
编程实现单链表的排序。 答案:完整代码如下: 编程实现单链表的逆置。[美国某著名分析软件公司2005年面试题] 解析:单链表模型如下图所示。 进行单链表逆置,首先要让p2的next指向p1,如下图所示。 再由p1指向p2,p2指向p3,如下图所示。 然后重复p2的next指向p1,p1指向p2,p2 阅读全文
摘要:
编程实现一个单链表的建立/测长/打印。[日本某著名家电/通信/IT企业面试题]答案:完整代码如下: 编程实现单链表删除节点。[美国某著名分析软件公司面试题] 解析:如果删除的是头节点,如下图所示。 则把head指针指向头节点的下一个节点。同时free p1,如下图所示。 如果删除的是中间节点,如下图 阅读全文