佳都新太科技股份有限公司8月招聘面试题75道202084

● 栈和队列都是线性的数据结构。以下关于栈和队列的叙述中,正确的是 (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字)。该网站应该采用哪种模式?


正确答案:B to B是Business To Business的缩写是“企业对企业”的电子商务模式指商业机构利用因特网或各种商务网络向供应商(企业或公司)订货或付款等。 B to C是Business To Consumer的缩写是“企业对消费者”的电子商务模式指企业与消费者之间通过互联网进行产品、服务及信息的交换这种交换类似于传统的商品零售商业的服务。本题中该商务网站应该采用B to C模式。
B to B是Business To Business的缩写,是“企业对企业”的电子商务模式,指商业机构利用因特网或各种商务网络向供应商(企业或公司)订货或付款等。 B to C是Business To Consumer的缩写,是“企业对消费者”的电子商务模式,指企业与消费者之间通过互联网进行产品、服务及信息的交换,这种交换类似于传统的商品零售商业的服务。本题中该商务网站应该采用B to C模式。


阅读以下说明和流程图,回答问题将解答填入对应栏。

[说明]

本流程图实现采用递归函数来求一个整数数组中从元素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)。


正确答案:(1) minInArray(an); (2) 1; (3) minA=a[n-1]; (4) minA=min(minInArray(an-1)a[n]); (5) xy?x:y;
(1) minInArray(a,n); (2) 1; (3) minA=a[n-1]; (4) minA=min(minInArray(a,n-1),a[n]); (5) xy?x:y; 解析:本题目考查流程图。
题目是利用递归来求数组中的最小值,则一定是反复的调用一个求数组最小值的函数,直到比较数组中最后只剩下两个数,则(1)中填入的应是“minlnArray(a,n)”,然后,判断n的值是否为1,如果是,则说明数组中只有一个数,则它一定就是最小值,可以直接输出,所以(2)应填入“1”,(3)应填入“minA=a[n]”;如果n的值不是1,则说明要继续递归,则再次调用求数组最小值的函数,把数组前n-1项的最小值同第n项做比较,所以(4)填入“minA=min(minInArray(a,n-1),a[n])”,由于min()是一个比较函数,返回两数中较小的数,我们可以用三元运算符直接定义为x y?x:y。


以下关于函数的叙述中,正确的是()。

A、函数形参的类型与函数返回值的类型没有关系

B、函数的返回值可以有多个

C、当数组名作函数参数时,实参既可以是数组名也可以是数组元素

D、如果不指明函数参数的类型,则该参数没有数据类型


正确答案:A


阅读下列说明,回答问题1至问题3。

【说明】

某电子商务网站在设计时充分考虑了安全问题,通过对安全性、可用性、效率、成本的分析和比较,决定采用如下的安全方案。

1.网站与用户之间采用SSL方式进行关键信息保护。

2.网站与供货商之间采用安全电子邮件传送电子合同等重要文件。

3.为了保证支付时的安全性,采用SET支付方式。

请根据SSL协议,将空(1)~(6)补齐。

1.SSL协议位于(1)协议层和(2)协议层之间。

2.SSL协议主要提供三方面的服务(3)、(4)、(5)。

3.SSL协议中用到了数字证书,数字证书包含证书所有者的(6)密钥。


正确答案:(1)HTTP (2)TCP (3)用户和服务器的合法性认证 (4)加密数据 (5)保护数据的完整性 (6)公共(公开)
(1)HTTP (2)TCP (3)用户和服务器的合法性认证 (4)加密数据 (5)保护数据的完整性 (6)公共(公开) 解析:本问题考查SSL协议。
SSL安全协议最初是由Netscape Communication公司设计开发的,又叫“安全套接层(Secure Sockets Layer)协议”,主要用于提高应用程序之间的数据的安全系数。它工作于HTTP层和TCP层之间。
SSL安全协议主要提供三方面的服务。
1.用户和服务器的合法性认证
认证用户和服务器的合法性,使它们能够确信数据将被发送到正确的客户端和服务器上。客户端和服务器都有各自的识别号,这些识别号由公开密钥进行编号,为了验证用户是否合法,安全套接层协议要求握手交换数据进行数字认证,以此来确保用户的合法性。
2.加密数据
安全套接层协议所采用的加密技术既有对称密钥技术,也有公开密钥技术。在客户端与服务器进行数据交换之前,交换SSL初始握手信息,在SSL握手信息中采用了各种加密技术对其加密,以保证其机密性和数据的完整性,并且用数字证书进行鉴别。这样就可以防止非法用户进行破译。
3.保护数据的完整性
安全套接层协议采用Hash函数和机密共享的方法来提供信息的完整性服务,建立客户端与服务器之间的安全通道,使所有经过安全套接层协议处理的业务在传输过程中能完整准确地到达目的地。
SSL协议中用到了数字证书,在数字证书中一般包含证书的版本信息、证书的序列号、证书所使用的签名算法、证书的发行机构名称、证书的有效期、证书所有人的名称、证书所有人的公开密钥和证书发行者对证书的签名等。


佳都新太科技股份有限公司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:循环控制变量,表示数组元素下标


正确答案:这是一道考查快速排序算法伪代码的分析题。快速排序是对冒泡排序的一种改进其基本思想是:通过一趟排序将要排序的数据分割成独立的两部分其中一部分的所有数据都比另外一部分的所有数据都要小然后再按此方法对这两部分数据分别进行快速排序整个排序过程可以递归进行以此达到整个数据变成有序序列。快速排序最核心的处理是进行划分即PARTITION操作:根据枢轴元素的值把一个较大的数组分成两个较小的子数组一个子数组的所有元素的值小于等于枢轴元素的值一个子数组的所有元素的值大于枢轴元素的值而子数组内的元素不排序。划分时以最后一个元素为枢轴元素从左到右依次访问数组的每一个元素判断其与枢轴元素的大小关系并进行元素的交换如图2-30所示。 在[问题1]所给出的伪代码中当for循环结束后A[p..i]中的值应小于等于枢轴元素值x而A[i+1..r-1]中的值应大于枢轴元素值x。此时A[i+1]是第一个比A[r]大的元素因此A[r]与A[i+1]进行交换得到划分后的两个子数组。PARTITION操作返回枢轴元素的位置因此返回值为i+l。
这是一道考查快速排序算法伪代码的分析题。快速排序是对冒泡排序的一种改进,其基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。快速排序最核心的处理是进行划分,即PARTITION操作:根据枢轴元素的值,把一个较大的数组分成两个较小的子数组,一个子数组的所有元素的值小于等于枢轴元素的值,一个子数组的所有元素的值大于枢轴元素的值,而子数组内的元素不排序。划分时,以最后一个元素为枢轴元素,从左到右依次访问数组的每一个元素,判断其与枢轴元素的大小关系,并进行元素的交换,如图2-30所示。 在[问题1]所给出的伪代码中,当for循环结束后,A[p..i]中的值应小于等于枢轴元素值x,而A[i+1..r-1]中的值应大于枢轴元素值x。此时A[i+1]是第一个比A[r]大的元素,因此A[r]与A[i+1]进行交换,得到划分后的两个子数组。PARTITION操作返回枢轴元素的位置,因此返回值为i+l。


阅读下列说明,回答问题1至问题2,将解答填入答题纸的对应栏内。

[说明]

某地方政府投资建立了一个科委网上审批系统,完成网上申报,审批,回复等功能,网站准备采用java语言开发,采用j2ee的开发结构,请就这个项目回答以下问题。在此网站审批模板中,审批购物车模块中自定义了两个session属性:RID用来记录用户提交文件; RNUM用来记录提交的文件的数量。

如果你是网站的设计人员,请为此网站配置一个开发环境,并说明理由。


正确答案:选择Windows2000 Server+Jbulid10+Weblogic8+Oracle。 Weblogic支持JSP、EJB等强大功能是支持JAVA编程的首选服务器。Oracle数据库是一款功能及其强大的数据库可以用于处理大型复杂的数据结构具有很高的安全性和加密性。在开发时可以把Weblogic8融于Jbulid10中组成一款强大的开发编程工具。
选择Windows2000 Server+Jbulid10+Weblogic8+Oracle。 Weblogic支持JSP、EJB等强大功能,是支持JAVA编程的首选服务器。Oracle数据库是一款功能及其强大的数据库,可以用于处理大型,复杂的数据结构,具有很高的安全性和加密性。在开发时,可以把Weblogic8融于Jbulid10中,组成一款强大的开发编程工具。


试题三(共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.函数不能没有返回值


正确答案:A
函数返回值可以整型、实型、字符型、指针和结构类型,也可以没有返回值。因此选项A正确,可以返回数组指针,因此可知选项8,c,D错误。故答案为A选项。


请编写函数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的花括号中填入你编写的若干语句。


正确答案:
解析:该程序功能是删去一维数组中所有相同的数,使之只剩一个。解题思路是,首先在函数中定义临时变量指向每一个元素,然后在循环过程中将临时值和其他元素进行比较,如果相同,那么跳过相同字符。

更多 “佳都新太科技股份有限公司8月招聘面试题75道202084” 相关考题
考题 第四题 阅读以下说明、C函数和问题,回答问题1和问题2将解答填入答题纸的对应栏内。 【说明】 当数组中的元素已经排列有序时,可以采用折半查找(二分查找)法查找一个元素。下面的函数biSearch(int r[],int low,int high,int key)用非递归方式在数组r中进行二分查找,函数biSearch_rec(int r[],int low,int high,int key)采用递归方式在数组r中进行二分查找,函数的返回值都为所找到元素的下标;若找不到,则返回-1。【C函数1】 int biSearch(int r[],int low,int high,int key) //r[low..high] 中的元素按非递减顺序排列 //用二分查找法在数组r中查找与key相同的元素 //若找到则返回该元素在数组r的下标,否则返回-1 {int mid;while((1)) {mid = (low+high)/2 ;if (key ==r[mid])return mid;else if (key (2);else(3);}/*while*/return -1; }/*biSearch*/【C 函数 2】 int biSearch_rec(int r[],int low,int high,int key) //r[low..high]中的元素按非递减顺序排列 //用二分查找法在数组r中查找与key相同的元素 //若找到则返回该元素在数组r的下标,否则返回-1 {int mid;if((4)) {mid = (low+high)/2 ;if (key ==r[mid])return mid;else if (key return biSearch_rec((5),key);elsereturn biSearch_rec((6),key);}/*if*/return -1; }/*biSearch_rec*/ 问题:4.1 (12分) 请填充C函数1和C函数2中的空缺,将解答填入答题纸的对应栏内。 问题:4.2 (3分) 若有序数组中有n个元素,采用二分查找法查找一个元素时,最多与( )个数组元素进行比较,即可确定查找结果。 (7)备选答案: A.[log2(n+1)] B.[n/2] C.n-1 D.n 答案:解析:low(2)high=mid-1 (3)low=mid+1 (4)low(5)low,mid-1 (6)mid+1,high (7)A 【解析】本题考察折半查找。二分查找又称折半查找,优点是比较次数少,查找速度快,平均性能好,占用系统内存较少;其缺点是要求待查表为有序表,且插入删除困难。因此,折半查找方法适用于不经常变动而查找频繁的有序列表。首先,假设表中元素是按升序排列,将表中间位置记录的关键字与查找关键字比较,如果两者相等,则查找成功;否则利用中间位置记录将表分成前、后两个子表,如果中间位置记录的关键字大于查找关键字,则进一步查找前一子表,否则进一步查找后一子表。重复以上过程,直到找到满足条件的记录,使查找成功,或直到子表不存在为止,此时查找不成功。 二分查找的基本思想是将n个元素分成大致相等的两部分,取a[n/2]与x做比较,如果x=a[n/2],则找到x,算法中止;如果xa[n/2],则只要在数组a的右半部搜索x。 总共有n个元素,渐渐跟下去就是n,n/2,n/4,....n/2^k(接下来操作元素的剩余个数),其中k就是循环的次数。

考题 下列给定程序中,函数fun的功能是:把形参a所指数组中的奇数按原顺序依次存放到a [0][2] .....中,把偶数从数组中删除,奇数个数通过函数值返回。 例如:若a所指数组中的数据最初排列为:9、1、4,2、3、6、5、8、7,删除偶数后a所指数组中的数据为:9、1、 3、5、7,返回值为5。 请在下画线处填入正确的内容并将下画线删除,使程序得出正确的结果。 注意:部分源程序在文件BLANKl.C中。 不得增行或删行,也不得更改程序的结构!正确答案:【考点分析】 本题考查:if语句条件表达式;自增/自减运算符;函数返回值。 【解题思路】 填空1:根据题目要求,需要进行奇偶数的判定,可以通过if条件语句来判断数组元素是否是奇数,如果元素不能被2整除,则为奇数,所以填人if(a[i]%2==1)。 填空2:将为奇数的元素重新存放到数组的前面,同时下标增1。 填空3:函数返回值需要返回数组中奇数的个数,因此返回变量j。 【解题宝典】 奇数和偶数的判定方法,通过if条件语句完成,对2求余运算,结果为0是偶数,结果为1是奇数。 自增1、自减1运算符:自增l运算符记为”++”,其功能是使变量的值自增l。自减1运算符记为”一一”,其功能是使变量值自减1。自增1、自减1运算符均为单目运算,都具有右结合性。有以下几种形式:

考题 以下关于Array数组对象的说法不正确的是()。A、对数组里数据的排序可以用sort函数,如果排序效果非预期,可以给sort函数加一个排序函数的参数B、reverse用于对数组数据的倒序排列C、向数组的最后位置加一个新元素,可以用pop方法D、unshift方法用于向数组删除第一个元素正确答案:C,D

考题 应用服务器在基于Web的数据库应用系统中已经得到了广泛的应用。如今,各大主要软件厂商纷纷将应用服务器作为其电子商务平台的基础。由于应用服务器本身是一个正在不断发展的概念,不同的产品之间有很大的差别,但是其核心结构,以及需要解决的主要问题都是相近的,区别仅在于各个产品解决的具体方法不同。下面是应用服务器共同需要解决的部分问题。(1)负载均衡:应用服务器实现负载均衡的方法很多,比如在应用服务器本身的实现上,有基于进程的方式和基于线程的方式。(2)数据库连接池:在应用服务器系统中,一般都会采用数据库连接池的技术。(3)高速缓存机制:为了提高性能,许多应用服务器都采用了高速缓存机制。【问题1】请用150字以内文字,说明什么是数据库连接池技术?在应用服务器中使用这种技术的优点是什么?【问题2】请用200字以内文字,叙述在应用服务器中可有哪些高速缓存?这些高速缓存是如何改进系统性能的?【问题3】某公司希望实现一个电子商务系统,要求该系统必须符合工业标准且支持多种操作平台,请选择一种应用服务器产品,并用200字以内文字简要列举出该类产品能提供的主要的技术支持特征。答案:解析:一、试题分析由于本题中,题面中提供的信息相对较简单,对答案的构思不能够起到很大的帮助作用。因此关键还在于考生对应用服务器基础知识的掌握程度。【问题1】使用应用服务器环境的一个重要原因就是为了最小化数据库连接,并且尽力减少在数据库服务器上的加载次数。在传统的两层环境中,每个用户至少要建立一个到其他各个数据库的连接。这种通过Driver Manager(例如ODBC、JDBC等)和基本实现DataSource进行连接(例如ADO等)的方法,一个数据库连接对象均对应一个物理数据库连接。一方面,会造成连接数的数量猛增,并很快用光数据库服务器的资源;另一方面,数据库连接的建立(通常需要1~3s,包括服务器通信和认证所花费的时间),以及关闭对系统而言是耗费系统资源的操作,这种耗费资源的动作对系统的性能影响尤为明显。而当引入了应用服务器之后,管理数据库连接的责任就落在应用服务器中。如果应用服务器为每个客户端的数据访问建立一个数据库连接,那么问题仍然不能够得以解决。因此对于具有高数据访问量的应用来说,一个更好的策略就是管理一个连接池。启动时,可以创建一个预定编号的连接,并以矢量或阵列的形式进行存储。在调用表对象的方法之前,得到下一个连接对象的请求;然后,把这个连接连同这个数据请求一起传递给表格。随着每个顺序请求的加入,这个连接不断地循环,并自动平衡连接中的加载。一旦连接对象失败,就会放弃这个循环,并在一定程度上自动恢复。通俗地说,就是将每次创建的数据库连接放在一个“池”里,并且在连接使用完成时并不急于关闭这个连接。当应用程序需要调用一个数据库连接时,数据库相关的接口返回一个通过重用数据库连接(就是那些已使用完,但未关闭的、空闲的数据库连接)而非重新创建一个数据库连接,只在没有可用的数据库连接时,才重新创建一个。通过这种方式,应用程序可以减少对数据库连接操作,尤其在多层环境中多个客户端可以通过共享少量的物理数据库连接来满足系统需求。当使用了数据库连接池技术之后,由于可以有效地减少数据库连接的建立和关闭操作,从而能够节省大量的系统消耗,同时明显地提升系统的性能。另外,由于使用了数据库连接后,应用系统所需的数据库连接在一段时间后就会稳定在一定的数量范围之内,从而也提高了系统的可测量性。【问题2】为了达到最佳的性能,许多应用服务器都采用了高速缓存机制。在应用服务器中使用高速缓存一般包括三个地方,即页面的缓存、数据库的缓存、动态页面的缓存。页面的缓存是指将特定的URL对应的页面在缓存中予以记录,以便在未来再次访问同一个URL时,直接使用。这里的缓存可以达到最佳的缓存性能,任何后面的操作都不需要进行,只需将缓存读出,然后输出即可。但是,由于大多数URL对应的页面中,往往都有少量需要变动的信息,这些页面不能使用这种方法进行缓存。数据库的缓存是指系统对数据库的访问结果进行缓存,这样,相同的SQL再次去访问数据库时,就不需要进行真正的数据库操作,而只需读取缓存即可。这种缓存能够达到良好效果的前提是系统的主要开销在于数据库访问。由于系统依然需要进行有关页面生成等工作,所以缓存效果不如页面缓存,但是适用面比较广。为了能够进一步减少页面生成工作,现在许多应用服务器针对各种动态网页技术和构件技术提供了相应的高速缓存机制,也就是将页面的生成结果进行缓存,当处理以后的页面请求时,可以直接使用缓存结果,从而进一步减少开销,提高访问性能。但是这种技术也有很多局限性,当用户所访问的信息集不同时,缓存里的信息并不能够被利用,还是需要另外生成。【问题3】应用服务器被誉为“Internet上的操作系统”,其在IT技术中的重要程序不言而喻,因此众多IT公司都纷纷重金投入开发自己的应用服务器产品,甚至开源组织也不例外,各种有竞争力的应用服务器产品层出不穷。另一方面,由于应用服务器在基于Internet的企业应用中,起着十分重要的作用。因此,作为系统分析师来说,了解各种主流的应用服务器产品,并根据实际的需要正确地选择是一个十分重要的知识基础。回到本题,它要求选择一种应用服务器产品,该产品符合工业标准,支持多种操作平台,适合于电子商务应用。要想做出正确的选择必须能够对以下这几个要求有正确的理解。— 符合工业标准:主要是指应用服务器中采用的中间件技术符合工业标准,如J2EE、CORBA、XML等。— 支持多种操作系统:也就是能够在Windows系列、UNIX系列等多种操作系统环境中使用,基于CORBA和J2EE的都能够满足这个要求。而微软的MTS则只能够运用于Windows系列操作系统平台,显然无法满足这个要求。— 适合于电子商务应用:根据电子商务的应用特点,要求应用服务器能够提供诸如事务管理、组建容器等一系列适合分布式应用的技术,另外还应该具有高扩展性、伸缩性的特点,以满足电子商务发展的业务扩展需要。根据上面的分析,结合各种主流应用服务器的特色,我们会发现应用服务器产品中符合这些要求的比较多,考生可以根据自己的熟悉情况来选择。比较适合的选择包括BEA的WebLogic、IBM的Websphere、Sun和Netscape联手的产品iPlanet Application Server等。当然类似于JBoss这样的应用服务器也是正确的选择。二、参考答案【问题1】数据库连接池技术是指在系统初期,或者初次使用时,完成数据库的连接,而后不再释放此连接,在处理后面的请求时,反复使用这些已经建立的连接。这种方式可以大大减少数据库的处理时间,有利于提高系统的整体性能、可测量性和扩展性。【问题2】在应用服务器中有页面的缓存和数据库的缓存。页面的缓存是指将特定的URL对应的页面在缓存中予以记录,以便在未来再次访问同一个URL时,直接使用。这里的缓存可以达到最佳的缓存性能,任何后面的操作都不需要进行,只需将缓存读出,然后输出即可。数据库的缓存是指系统对数据库的访问结果进行缓存,这样,相同的SQL再次访问数据库时,就不需要进行真正的数据库操作,而只需读取缓存即可。【问题3】可以选择J2EE应用服务器(例如,WebLogic,Websphere等),它支持多种操作系统,如Windows,UNIX,Linux等,同时也是工业标准。— 数据库操作支持:JDBC数据源,通过缓冲数据库连接,提供高效、可靠的数据库操作。— 安全性控制:J2EE提供声明性安全控制,用户在部署描述符中通过声明的方式来控制应用系统的安全性(例如,可以控制如何进行身份认证,控制那些角色可以访问哪些资源或执行哪些操作等)。— 事务控制:J2EE应用服务器支持将事务控制交给容器自动管理,或者利用JTA在代码中自己控制事务。— 与其他系统交互:基于JCA或者JMS,另外可以直接访问CORBA构件。

考题 多选题以下关于Array数组对象的说法不正确的是()。A对数组里数据的排序可以用sort函数,如果排序效果非预期,可以给sort函数加一个排序函数的参数Breverse用于对数组数据的倒序排列C向数组的最后位置加一个新元素,可以用pop方法Dunshift方法用于向数组删除第一个元素正确答案:C,D解析:暂无解析

考题 15.循环队列采用数组data()来存储元素的值,并用front和rear分别作为其头尾指针。为区分队列的满和空,约定队列中能够存放的元素个数最大为n—1,也即至少有一个元素空间不用,则在任意时刻,至少可以知道一个空的元素的下表是()。入队时,可用语句()切除新元素在数组data中的下标。正确答案:front;rear=rear+1;mod n

考题 从队列数组队头删除数据可以使用()函数。A、array_push()B、array_pop()C、array_shift()D、array_unshift()正确答案:A

考题 array_search()与in_array()函数均可用来查询数组中元素的值。()正确答案:错误

考题 单选题从队列数组队头删除数据可以使用()函数。A array_push()B array_pop()C array_shift()D array_unshift()正确答案:C解析:暂无解析

考题 多选题某话务员在运行座席台时发现注册应用服务器失败,而其他的座席没有反应这个问题,由此问题可以大致定位在:()。A网络问题B座席台上ICDCONFIG、EXE配置程序中主备用应用服务器IP地址配置不对C此座席在登录WINDOWS时,没有以域用户登录D应用服务器配置问题正确答案:B,C解析:暂无解析