1.下列叙述中正确的是(A)
A.顺序存储结构的存储一定是连续的,链式存储结构的存储空间不一定是连续的
B.顺序存储结构只针对线性结构,链式存储结构只针对非线性结构
C.顺序存储结构能存储有序表,链式存储结构不能存储有序表
D.链式存储结构比顺序存储结构节省存储空间
解释:链式存储结构既可以针对线性结构也可以针对非线性结构,所以B与C错误。链式存储结构中每个结点都由数据域与指针域两部分组成,增加了存储空间,所以D错误
2.IP协议属于(网络互联层)
知识补充:
OSI-RM层级结构——七层抽象模型
自下向上分别为:物理层、数据链路层、网络层、运输层、会话层、表示层、应用层。
各层的代表协议与技术:
物理层 | IEEE 802.3(以太网)、IEEE 802.11(无线局域网/WIFI)、USB、DSL |
数据链路层 | 以太网、PPP(点对点协议)、ARP(地址解析协议) |
网络层 | IP、ICMP、IGMP、RIP、OSPF、BGP |
运输层 | TCP、UDP |
会话层 | RPC、PPTP(点对点隧道协议) |
表示层 | SSL/TLS |
应用层 | HTTP、FTP、SMTP、POP3、DNS |
3.若元素a,b,c,d,e,f依次进栈,允许进栈 、 退栈操作交替进行。但不允许连续三次进行退栈操作,则不可能得到的出栈序列是(D)
A. d, c, e, b, f, a
B. c, b, d, a, e, f
C. b, c, a, e, f, d
D. a, f, e, d, c, b
4.mysql 数据库有选课表 learn(student_id int,course_id int),字段分别表示学号和课程编号, 现在想获取每个学生所选课程的个数信息,sql 语句正确的是
(select student_id,count(course_id)from learn group by student_id)
5.设哈希表长为8,哈希函数为Hash (key)=key%7。初始记录关键字序列为(32,24,15,27,20,13),用链地址法作为解决冲突方法的平均查找长度是(1.5)
解释:链地址法如下
核心思想:对某个元素的查找,如果冲突那么查找次数+1
32%7=4(查一次)24%7=3(查一次)15%7=1(查一次)
27%7=6(查一次)20%7=6(查两次)13%7=6(查三次)
ASL=(1*4+2*1+3*1)/6=1.5
6.有B+Tree、Hash_Map、STL Map三种数据结构。对于内存中数据,查找性能较好的数据结构是(Hash_Map),对于磁盘中数据,查找性能较好的数据结构是(B+Tree)
解释:
Hash操作能根据散列值直接定位数据的存储地址,设计良好的hash表能在常数级时间下找到需要的数据,但是更适合于内存中的查找。
B+树是一种是一种树状的数据结构,适合做索引,对磁盘数据来说,索引查找是比较高效的
STL_Map的内部实现是一颗红黑树,但是只是一颗在内存中建立二叉树树,不能用于磁盘操作,而其内存查找性能也比不上Hash查找。
7.数据库中,事务的持续性是指(B)
A.事务中包括的所有操作要么都做,要么不做
B.事务一旦提交,对数据库的改变时永久的
C.一个事务内部的操作及使用的数据对并发的其他事务是隔离的
D.事务必须是使数据库从一个一致性状态变到另一个一致性状态
解释:考察的事务的ACID特性
- 原子性(ATOMIC)整个事务中的所有操作,要么全部完成,要么全部不完成,不可能停滞在中间某个环节
- 一致性(Consistency)在事务开始之前和事务结束以后,数据库的完整性约束没有被破坏
- 隔离性(Isolation)两个事务的执行是互不干扰的,一个事务不可能看到其他事务运行时中间某一时刻的数据
- 持久性(Durability)在事务完成以后,该事务所对数据库所作的更改便持久的保存在数据库之中,并不会被回滚。
8.下面(B)组命令,将变量count值赋值为1
A.DIM@count=1 count=1
B.DECLARE @count SELECT @count=1
C.DECLARE count SELECT count=1
D.DIM @count SELECT @count=1
解释:
@表示声明一个局部变量,@@表示声明一个全局变量(比如已经定义好的系统变量)
申明局部变量语法:declare @变量名 数据类型;例如:declare @num int;
赋值:有两种方法式(@num为变量名,value为值)
set @num=value; 或 select @num=value;
9.B+树是(B)
A.一种AVL树
B.索引表的一种组织形式
C.一种高度不小于1的树
D.一种与二进制Binary有关的树
解释:
AVL是平衡二叉排序树的缩写,B+树不一定是二叉树。
B+树可以是空树,C错误。
B+中的B是balanced(平衡的)首字母,与binary无关。
10.下面关于 Cookie 与 Session 的说法中,正确的是(C)
A.Session 数据保存在客户端浏览器
B.会话 Cookie 关闭浏览器之后会存在一段时间
C.Session 的安全性比 Cookie 高
D.Cookie 被禁止时没有办法将 session id 传递回服务器
解释:
A选项,Cookie数据保存在浏览器客户端,而Session数据保存在服务器端。
B选项,Cookie分为会话Cookie与持久Cookie,会话Cookie会话结束就会销毁,而持久Cookie会在关闭浏览器后存在一段时间。
C选项,因为Session保存在服务器端,不容易被截获,所以比Cookie 更安全。
D选项,由于cookie可以被人为的禁止,必须有其它的机制以便在cookie被禁止时仍然能够session id传递回服务器,经常采用的一种技术叫做 URL重写,就是把session id附加在URL路径的后面,附加的方式也有两种,一种是作为URL路径的附加信息,另一种是作为查询字符串附加在 URL后面。网络在整个交互过程中终保持状态,就必须在每个客户端可能请求的路径后面都包含这个session id。
11.解析XML时,需要校验节点是否闭合,如必须有与之对应,用(栈)数据结构实现比较好
解析XML类似于<p></p>、<xml></xml>,总而言之就是需要一一配对,自然联想到括号匹配使用的是栈的结构。稍微扩展一下:
栈的常见应用:浏览器历史纪录,Android中的最近任务,Activity的启动模式,CPU中栈的实现,Word自动保存,解析计算式,解析xml/json
12.在 OSI 参考模型中能实现路由选择,拥塞控制与互联功能的层是(网络层)
13.主机甲向主机乙发送一个(SYN=1, seq=11220)的 TCP 段,期望与主机乙建立 TCP 连接,若主机乙接受该连接请求,则主机乙向主机甲发送的正确的 TCP 段可能是
( SYN=1, ACK=1, seq=11221, ack=11221)
14.下列关于数据库特点的说法中正确的是(A)
A.数据能共享且独立性高
B.数据能共享但数据冗余很高
C.能保证数据完整性但降低了安全性
D.数据独立性高但不能实现共享
解释:数据库管理系统的特点:共享性高,冗余度小;具有高度的物理独立性和逻辑独立性;整体结构化,用数据模型描述。
15.以下那种操作是专门用于完成对数据库数据的查询的?(D)
A.DCL
B.DDL
C.DML
D.DQL
DML (data manipulation language):
它们是SELECT、UPDATE、INSERT、DELETE,就象它的名字一样,这4条命令是用来对数据库里的数据进行操作的语言
DDL (data definition language):
DDL比DML要多,主要的命令有CREATE、ALTER、DROP等,DDL主要是用在定义或改变表(TABLE)的结构,数据类型,表之间的链接和约束等初始化工作上,他们大多在建立表时使用
DCL (Data Control Language):
是数据库控制功能。是用来设置或更改数据库用户或角色权限的语句,包括(grant,deny,revoke等)语句。在默认状态下,只有sysadmin,dbcreator,db_owner或db_securityadmin等人员才有权力执行DCL
DQL( Data Query Language)
数据查询语言,数据查询语言DQL基本结构是由SELECT子句,FROM子句,WHERE字句。
16.主机甲和乙已建立了 TCP 连接,甲始终以 MSS=1KB 大小的段发送数据,并一直有数据 发送;乙每收到一个数据段都会发出一个接收窗口为 10KB 的确认段。若甲在 t 时刻发生超 时时拥塞窗口为 8KB,则从 t 时刻起,不再发生超时的情况下,经过 10 个 RTT 后,甲的发送窗口是(10KB)
解释:按拥塞窗口规则进行计算:当超时后,拥塞窗口减半变为4KB,发送窗口变为1KB,两次RTT后,发送窗口变为4KB,进入拥塞避免,每收到1次进行+1KB;得到结果12KB,但因为接收端传回10KB的确认,因此发送端窗口不能超过10KB;因此选A;
无论在慢开始阶段还是在拥塞避免阶段,只要发送方判断网络出现拥塞(其根据就是没有按时收到确认),就要把慢开始门限 ssthresh 设置为出现拥塞时的发送方窗口值的一半(但不能小于2)。
然后把拥塞窗口 cwnd 重新设置为 1,执行慢开始算法。
所以,过程为
1—>2—>4—>8(产生拥塞,门限缩小一半,变为4,cwnd重设为1,此时为t时刻) —>1
—>2—>4(到了门限,不再执行慢开始,执行拥塞避免)—>5—>6—>7—>8—>9—>10(到达接收窗口最大值,保持不变)—>10
17.给出数据表score(stu_id,name,math,english,chinese),下列语句正确的是(D)
A.select *,sum(english) from score
B.delete * from score
C.select stu_id,sum(math) from score
D.select sum(math),avg(chinese) from score
解释:
首先select操作得到的从形式上是一张二维表,实际上可以认为是元组的集合。那么如果想要满足形式上的二维表,在用select进行投影操作时必须要同行同列。
对于A,select sum(english)得到的是所有english列的总和,应该得到的是一行一列的元组。而select *显然得到的是多行多列,这两者显然只能进行笛卡尔积操作,而不能进行连接操作,更不用说连接之后的投影了。
对于B.delete *这个“*”的使用是不合法的,因为delete是以元组为单位进行删除的。select用是为了代表所有的列,delete这样使用会造成*使用的歧异。
对于C,还是来自于A的问题,由于没有显示指明where,也没有进行group by,导致stu_id投影后是一个多行一列的表,而sum(math)则是一个一行一列的表,导致连接操作无法使用,而之后select投影就无从做起。
对于D,两个一行一列的数据拼一起,没有问题。
18.用不带头结点的单链表存储队列,其队头指针指向队头结点,队尾指针指向队尾结点,则在进行出队操作时(队头、队尾指针都可能要修改)
解释:多于一个元素时,只需要修改对头指针就行了,head->next;但当只有一个元素时,head==rear,此时出队的话,队列就会变成空,需要同时修改对头和队尾指针,不然会超出边界
19.在一个多道批处理系统中有P1、P2、P3三个作业,三个作业的I/O操作顺序如下,假设从时刻0ms开始进行作业调度,且同一作业中存在数据相关,下列选项中正确的是(ABC)
P1:计算60ms,I/O 80ms,计算20ms
P2:计算120ms,I/O 40ms,计算40ms
P3:计算70ms,I/O 60ms,计算 60ms
A.假设系统仅有P1、P2两个作业,且P2比P1后到达10ms,则完成P1,P2两个作业大约需要260ms
B.假设系统仅有P1、P3两个作业,且P3比P1后到达10ms,则完成P1,P3两个作业大约需要260ms
C.假设系统仅有P2、P3两个作业,且P3比P2后到达10ms,则完成P2,P3两个作业大约需要310ms
D.假设系统仅有P1一个作业,则完成作业P1大约需要80ms
核心:由于作业存在数据相关,则同一个作业在进行I/O时,不能进行CPU计算。
以A选项为例
20.下列关于正向代理和反向代理描述正确的是?(BCD)
A.Nginx只能用于反向代理
B.正向代理主要用于客户端代理
C.反向代理主要用于服务端代理
D.反向代理可以向用户屏蔽服务端细节
解释:Nginx既可以用于正向代理也可以用于反向代理。正向代理主要用于客户端代理,需要为客户端配置一个代理服务器,进一步通过代理服务器去访问外部资源。反向代理接收外部请求后,转发至内部服务器进行处理,可以屏蔽内部服务器细节。
正向代理(Forward Proxy)
定义: 正向代理是客户端通过代理服务器来间接访问目标服务器。代理服务器位于客户端和目标服务器之间。
反向代理(Reverse Proxy)
定义: 反向代理是代理服务器位于客户端和目标服务器之间,但代理的目的是代表一个或多个服务器而不是客户端。
安全性: 它可作为对内部服务器的保护层,不公开内部服务器的真实地址给外部用户,从而提高安全性。
标签:软件开发,Day2,代理,牛客,拥塞,Cookie,数据,id,select From: https://blog.csdn.net/Cchengzu/article/details/143340909