● 栈和队列都是线性的数据结构。以下关于栈和队列的叙述中,正确的是 (37) 。
(37)A. 栈适合采用数组存储,队列适合采用循环单链表存储
B. 栈适合采用单链表存储,队列适合采用数组存储
C. 栈和队列都不允许在元素序列的中间插入和删除元素
D. 若进入栈的元素序列确定,则从栈中出来的序列也同时确定
答案:B
顺序表示的栈和队列,必须预先分配空间,并且空间大小受限,使用起来限制比较多。而且,由于限定存取位置,顺序表示的随机存取的优点就没有了,所以,链式结构应该是首选。
阅读下列说明,回答问题1至问题3。
[说明]
某公司计划建立一个商务网站,该网站主要面对消费者,功能是完成网上购物、信息查询、广告宣传、用户需求调查等。已知服务器采用Windows 2000 Server + IIS5.0,网页编程语言采用ASP,数据库采用SQLServer,数据库名为CJB,数据库管理员的用户名为User,密码为Test。
请简要说出B to B、B to C两种电子商务模式的含义(不超过150字)。该网站应该采用哪种模式?
阅读以下说明和流程图,回答问题将解答填入对应栏。
[说明]
本流程图实现采用递归函数来求一个整数数组中从元素0到元素n中的最小值。该算法思想是这样的,首先我们假设有一个求数组中最小元素的函数,然后,在求某一具有n的元素的数组的最小值时,只要求将前n-1的元素的最小值与第n个元素比较即可。不断地重复这一过程,直到数组中只剩下一个元素,那么它必定是最小值。
注:int min(int X,int y)为返回两数中最小数的函数。
int minInArray(int a[],int n)为返回数组中最小数的函数。
minA为数组中最小值。
[问题l]
将流程图的(1)~(4)处补充完整。
[问题2]
min()函数的定义为(5)。
A、函数形参的类型与函数返回值的类型没有关系
B、函数的返回值可以有多个
C、当数组名作函数参数时,实参既可以是数组名也可以是数组元素
D、如果不指明函数参数的类型,则该参数没有数据类型
阅读下列说明,回答问题1至问题3。
【说明】
某电子商务网站在设计时充分考虑了安全问题,通过对安全性、可用性、效率、成本的分析和比较,决定采用如下的安全方案。
1.网站与用户之间采用SSL方式进行关键信息保护。
2.网站与供货商之间采用安全电子邮件传送电子合同等重要文件。
3.为了保证支付时的安全性,采用SET支付方式。
请根据SSL协议,将空(1)~(6)补齐。
1.SSL协议位于(1)协议层和(2)协议层之间。
2.SSL协议主要提供三方面的服务(3)、(4)、(5)。
3.SSL协议中用到了数字证书,数字证书包含证书所有者的(6)密钥。
佳都新太科技股份有限公司8月招聘面试题面试题面试官常问到的一些题目整理如下:问题 Q1:如何将数字转换为字符串?可用的回答 :要将数字转换为字符串,请使用内置函数str()。如果需要八进制或十六进制表示,请使用内置函数oct()或hex()问题 Q2:django 中当一个用户登录 A 应用服务器(进入登录状态),然后下次请求被 nginx 代理到 B 应用服务器会出现什么影响?可用的回答 :如果用户在A应用服务器登陆的session数据没有共享到B应用服务器,那么之前的登录状态就没有了。问题 Q3:如何提高爬取效率?可用的回答 : 爬虫下载慢主要原因是阻塞等待发往网站的请求和网站返回 1,采用异步与多线程,扩大电脑的cpu利用率; 2,采用消息队列模式 3,提高带宽 问题 Q4:如何删除python数组的值?可用的回答 :可以使用pop()或remove()方法删除数组元素。这两个函数之间的区别在于前者返回已删除的值,而后者则不返回。问题 Q5:如果让你来防范网站爬虫,你应该怎么来提高爬取的难度?可用的回答 : 1. 判断headers的User-Agent; 2. 检测同一个IP的访问频率; 3. 数据通过Ajax获取; 4. 爬取行为是对页面的源文件爬取,如果要爬取静态网页的html代码,可以使用jquery去模仿写html。 问题 Q6:数据库的优化?可用的回答 : 1. 优化索引、SQL 语句、分析慢查询; 2. 设计表的时候严格根据数据库的设计范式来设计数据库; 3. 使用缓存,把经常访问到的数据而且不需要经常变化的数据放在缓存中,能节约磁盘IO; 4. 优化硬件;采用SSD,使用磁盘队列技术(RAID0,RAID1,RDID5)等; 5. 采用MySQL 内部自带的表分区技术,把数据分层不同的文件,能够提高磁盘的读取效率; 6. 垂直分表;把一些不经常读的数据放在一张表里,节约磁盘I/O; 7. 主从分离读写;采用主从复制把数据库的读操作和写入操作分离开来; 8. 分库分表分机器(数据量特别大),主要的的原理就是数据路由; 9. 选择合适的表引擎,参数上的优化; 10. 进行架构级别的缓存,静态化和分布式; 11. 不采用全文索引; 12. 采用更快的存储方式,例如 NoSQL存储经常访问的数据 问题 Q7:为什么使用* args,* kwargs?可用的回答 :当我们不确定将多少个参数传递给函数,或者我们想要将存储的列表或参数元组传递给函数时,我们使用* args。*当我们不知道将多少关键字参数传递给函数时使用kwargs,或者它可以用于将字典的值作为关键字参数传递。标识符args和kwargs是一个约定,你也可以使用其他名称问题 Q8::-1表示什么?可用的回答 ::-1用于反转数组或序列的顺序。问题 Q9:django 中当一个用户登录 A 应用服务器(进入登录状态),然后下次请求被 nginx 代理到 B 应用服务器会出现什么影响?可用的回答 :如果用户在A应用服务器登陆的session数据没有共享到B应用服务器,那么之前的登录状态就没有了。问题 Q10:如何提高爬取效率?可用的回答 : 爬虫下载慢主要原因是阻塞等待发往网站的请求和网站返回 1,采用异步与多线程,扩大电脑的cpu利用率; 2,采用消息队列模式 3,提高带宽 算法题面试官常问到的一些算法题目整理如下(大概率会机考):算题题 A1:有效的二叉搜索树题目描述如下:Given a binary tree, determine if it is a valid binary search tree (BST).Assume a BST is defined as follows:The left subtree of a node contains only nodes with keys less than the nodes key.The right subtree of a node contains only nodes with keys greater than the nodes key.Both the left and right subtrees must also be binary search trees.Example 1:Input: 2 / 1 3Output: trueExample 2: 5 / 1 4 / 3 6Output: falseExplanation: The input is: 5,1,4,null,null,3,6. The root nodes value is 5 but its right childs value is 4.验证是否为有效的 二叉搜索树。二叉搜索树的定义是:右边的小于父节点,左边的大于父节点,对于每一个节点都是同样的规则。思路:直接中序遍历,中序遍历的二叉搜索树会以排序好的形式返回,返回的同时判断是否比上一个要大,若小于或相等,那么就表示这不是一颗二叉搜索树。递归.O(n) 时间复杂度。测试链接:https:/ 100% 36ms.可做参考的解答如下:class TreeNode(object):# def _init_(self, x):# self.val = x# self.left = None# self.right = Noneclass Solution(object): def isValidBST(self, root): :type root: TreeNode :rtype: bool if not root: return True self.prev = -float(inf) def inOrderTraversal(root): if root.left: if inOrderTraversal(root.left) = -1: return -1 if root.val = self.prev: return -1 self.prev = root.val if root.right: if inOrderTraversal(root.right) = -1:
阅读以下算法说明,根据要求回答问题1~问题3。
[说明]
快速排序是一种典型的分治算法。采用快速排序对数组A[p..r]排序的3个步骤如下。
1.分解:选择一个枢轴(pivot)元素划分数组。将数组A[p..r]划分为两个子数组(可能为空)A[p..q-1]和A[q+1..r],使得A[q]大于等于A[p..q-1]中的每个元素,小于A[q+1..r]中的每个元素。q的值在划分过程中计算。
2.递归求解:通过递归的调用快速排序,对子数组A[p..q-1]和A[q+1..r]分别排序。
3.合并:快速排序在原地排序,故无需合并操作。
下面是快速排序的伪代码,请将空缺处(1)~(3)的内容填写完整。伪代码中的主要变量说明如下。
A:待排序数组
p,r:数组元素下标,从p到r
q:划分的位置
x:枢轴元素
i:整型变量,用于描述数组下标。下标小于或等于i的元素的值,小于或等于枢轴元素的值
j:循环控制变量,表示数组元素下标
阅读下列说明,回答问题1至问题2,将解答填入答题纸的对应栏内。
[说明]
某地方政府投资建立了一个科委网上审批系统,完成网上申报,审批,回复等功能,网站准备采用java语言开发,采用j2ee的开发结构,请就这个项目回答以下问题。在此网站审批模板中,审批购物车模块中自定义了两个session属性:RID用来记录用户提交文件; RNUM用来记录提交的文件的数量。
如果你是网站的设计人员,请为此网站配置一个开发环境,并说明理由。
试题三(共15分)
阅读下列说明,回答问题1至问题3,将解答填入答题纸的对应栏内。
【说明】
某门户网站提供在线视频点播服务,用户可以通过web浏览器软件实现实时在线观看视频内容。网站对用户采用会员制管理,只有经过注册的用户在正确登录网站之后才能得到正常服务。
【问题1】(6分)
①该系统采用的是C/S工作模式还是B/S工作模式?②简要解释这两种工作模式并指出其主要的区别。
【问题2】(3分)
在用户登录页面上,除了要求输入用户名和密码外,该网站还要求用户输入一个由服务器生成的用加扰图像显示的验证码字符串。简要说明设置该验证码的主要目的。
【问题3】 (6分)
①为了保证用户在线实时观看视频,需要采用什么技术?②简要解释其工作特点。③请说明此类应用通常采用的传输层协议以及采用该协议的原因。
试题三参考答案(共15分)
【问题1】(6分)
①系统采用的是B/S工作模式。
②B/S模式是指浏览器/服务器( Browser/Server)工作模式,即用户通过通用浏览器软件和服务器进行交互。
C/S模式是指客户机/服务器(Client/Server)工作模式,即用户通过专门的客户端软件和服务器进行交互。
其主要区别就是用户访问服务器使用的客户端软件不同。
【问题2】(3分)
通过设立服务器生成的验证码图像,可以有效地防止通过页面提交的穷举法攻击,由于验证码是由服务器随机生成的,属于动态验证信息,同时以加扰图像方式传给客户机,要求用户按照图像显示的字符串内容通过手工输入,避免使用软件进行自动提取,这样可以有效防止恶意软件进行的穷举法攻击。
【问题3】(6分)
①需要采用流媒体技术。
②流媒体的工作特点是可以实现编码的媒体内容边下载边解码边播放,从而可以实现实时在线观看媒体内容,而无需全部下载媒体内容后才能解码播放。
③流媒体技术的传输层协议通常采用UDP,主要是因为UDP为无连接的传输协议,可以效实现允许一定误码率的无延迟的实时性应用,比如实时的视频、音频播放。
关于函数返回值,以下叙述正确的是( )。
A.函数可以返回整个结构体,即使结构体中有数组
B.函数只能返回基本数据类型的数值或指针
C.函数不可以返回一个数组
D.函数不能没有返回值
请编写函数fun,函数的功能是:删去一维数组中所有相同的数,使之只剩一个。数组中的数已按由小到大的顺序排列,函数返回删除后数组中数据的个数。
例如,一维数组中的数据是:2 2 2 3 4 4 5 6 6 6 6 7 7 8 9 9 10 10 10。
删除后,数组中的内容应该是:2 3 4 5 6 7 8 9 10。
注意:部分源程序在文件PROGl.C中。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。