Date: 2019-08-15
part one : 算法基础知识
1. 二分查找的时间复杂度() O(log(N)) 注意计算下一次比较的数字时:取 (0+(length-1))/2下标的数字
2. 当待排序记录已经从小到大排序或者已经从大到小排序时,快速排序的执行时间最省() 错
解释:在基本有序的情况下,快速排序算法的时间复杂度为O(n^2);无序时, 快排才比较省时间O(n*logn)
3. 判断下列说法是否正确:给定K值,在开放定址哈希表中进行查找,根据哈希函数求得哈希地址,若此位置.上有记录,且关键字和K值不等,但最终仍有可能查找成功。( ) 正确
解释;给定K值,在开放定址哈希表中进行查找,根据哈希函数求得哈希地址,若此位置上有记录,且关键字和K值不等,则根据处理冲突的方法寻找下一地址,直到某个位置为空(查找失败)或所填记录的关键值等于给定的K值(查找成功)为止
4. 设散列表中有 m 个存储单元,散列函数 H(key)= key % p ,则 p 最好选择( )。 小于等于m的最大素数/质数
补充::一般情况下,可以选p为质数或不包含小于20的质因数的合数。
5. 设 一组初始记录关键字序列为(50,40,95,20,15,70,60,45),则以增量d=4的一趟希尔排序结束后前4条记录关键字为()。15,40,60,20
解释:
希尔排序本质就是带增量的插入排序。本质意思为:先将整个待排元素序列由相隔的某个增量分割成若干个子序列分别进行直接插入排序,然后依次缩减增量再进行排序,当整个序列的元素基本有序时,再对全体的元素进行依次直接插入排序。故整个增量排序的变化过程为:
d=4:15,40,60,20,50,70,95,45
d=2:15,20,50,40,60,45,95,70
d=1:15,20,40,45,50,60,70,95
6. 快速排序的速度在所有排序方法中为最快,而且所需附加空间也最少() 错
解释:
它是基于比较的排序中最快的, 但是有些排序不需要比较, 比如桶排序、基数排序。
另外空间也不是最少, 堆排序就比快排的空间复杂度小
7. 有序数组1 2 3 4 5 6 7 8 9查找3的二分查找序列是: 5->2->3 注意计算下一次比较的数字时:取 (0+(length-1))/2下标的数字(当第一个数字的索引是0时)
8. 设一组初始记录关键字序列为(13,18,24,35,47,50,62,83,90,115,134),则利用二分法查找关键字90需要比较的关键字个数为()。2 次: 50 ——> 90
9. 设顺序表的长度为 n 。下列排序方法中,最坏情况下比较次数小于 n(n-1)/2 的是( ) 堆排序
堆排序
快速排序
简单插入排序
冒泡排序
10. 有n个数存放在一维数组A[1,n]中,在进行顺序查找时,这n个数的排列有序或无序其平均查找长度不同() 错误
解释:顺序查找的平均查找长度和初始序列是否有序没有任何联系
11. 有两个从小到大排好序的数组,长度分别为N和M,将这两个数组合并成一个有序数组的最小比较次数是? Min(N,M)
解释: 最好是min(m,n)最坏是M+N-1
12. 【看】 假设你只有100Mb的内存,需要对1Gb的数据进行排序,最合适的算法是? A
A. 归并排序
B. 插入排序
C. 快速排序
D. 冒泡排序
解释:1)首先肯定不能使用内存排序算法,内存根本装不下,所以需要使用外存来排序。这时候使用多路归并排序,把数据分为n段,每段小于100Mb,再使用用内存来排序,将排序结果用外存记录,然后每次从外存中来取记录,在内存中进行比较,从而获取最后的排序结果。
2)具体思路:1。 先将1G分为10个100M(这里1G可理解近似等于1000M,方便讲解思路),分别加载10个100M数据到内存中,分别对其进行排序;2 。然后10文件每个文件选取10M加载到内存进行排序,依次进行。即先分解再归并的思路。
13. 下列排序算法中时间复杂度不受数据初始状态影响,恒为 O(n2) 的是( ) C
堆排序
冒泡排序
直接选择排序
快速排序
14. 由关键字序列(12,7,36,25,18,2)构造一棵二叉排序树(初始为空,第一个关键字作为根结点插入,此后对于任意关键字,若小于根结点的关键字,则插入左子树中;若大于根结点的关键字,则插入右子树中,且左、右子树均为二叉排序树),该二叉排序树的高度(层数)为(4)。 【注意:构造二叉排序树/二叉搜索树时,必须保证左子树所有节点的值要小于右子树的最右节点的值】
所以画出来的树为:
15. 以下程序是用辗转相除法来计算两个非负数之间的最大公约数:
long long gcd(long long x, long long y) {
if (y == 0)
return x;
else
return gcd(y, x % y);
}
我们假设x,y中最大的那个数的长度为n,x>y,基本运算时间复杂度为O(1),那么该程序的时间复杂度为( ) O(logy)
简洁版解释:
根据定理:
1 2 |
|
每次递归y的变为原来的1/2不到,所以递归次数小于logn,其最坏时间复杂度为O(logn);
16. 堆排序的时间复杂度是(),堆排序中建堆过程的时间复杂度是()。O(n log n), O(n)
解释:堆排序时间复杂度为O(nlogn),初始建堆时间复杂度O(n),一次重建堆时间复杂度O(logn) ,则重建堆的时间复杂度为nlogn.
17. 京东商城plus会员的消费记录金额分别为900,512,613,700,810,若采用选择排序算法对其进行从小到大的排序,第三趟排序结果为:()512613700900810 选择排序:每趟找到最小的,放在首位
18. 下列各排序法中,最坏情况下的时间复杂度最低的是( ) C
希尔排序
快速排序
堆排序
冒泡排序
解释:堆排序一直恒定O(nlog2n) ,希尔排序最坏情况时间下的时间复杂度为 O(n^1.5) ;快速排序、冒泡排序最坏情况时间下的时间复杂度为 O(n^2)
19. 在排序算法中,哪些算法的时间复杂度与初始排序无关() 堆+归并+选择+基数
20. 下列排序算法中,在待排序数据有序的情况下,花费时间最多的是( ) 快速排序算法
解释: 快速排序是把数列按一个枢纽值分成两部分分别排序,所以效率高。但是若原数据为有序,并且选择的枢纽值为第一个数时,那在分块时会将一个第一个数前面的数(也就是没有)分为一块,将除第一个数的所有数分成了另一块。这样一来,每一次分块都只减少了一个值,而每次分块的时间为O(N),所以总时间为O(N^2)。
21. 已知表 A 中每个元素距其最终位置不远,则以下哪种排序最省时间( )。 直接插入排序法
22. 就平均查找速度而言,下列几种查找速度从慢至快的关系是___________。 顺序 分块 折半 哈希
解释:
顺序查找的时间复杂度为o(n)
分块查找的时间复杂度为o(log2n)到o(n)之间
二分查找的时间复杂度为o(log2n)
哈希查找的时间复杂度为o(1)
23. 下面是一段求最大值的程序,其中 datalist 是数据表, n 是 datalist 的长度
int GetMax(int n,int datalist[])
{
int k=0;
for(int j=1;j<n;j++)
if(datalist[j]>datalist[k])
k=j;
return k;
}
请问该程序段的 McCabe 环路复杂性为多少?() 3
解释:
1)流图G的环形复杂度V(G)=E-N+2,其中,E是流图中边的条数,N是结点数,此处:画出控制流图即可知:V(G) = 5 - 4 + 2 = 3
2)
程序的环路复杂性给出了程序基本路径集中的独立路径条数,这是确保程序中每个可执行语句至少执行一次所必需的测试用例数目的上界
McCabe复杂性程序的环路复杂性,简单的定义为控制流图的区域数。从程序的环路复杂性可导出程序基本路径集合中的独立路径条数,这是确保程序中每个可执行语句至少执行一次所必需的最少测试用例数。
判定节点法
通过控制流图中判定节点数计算。若P为控制流图中的判定节点数,则V(G)=P+1。控制流图中有3 个判定节点,因此其环路复杂性V(G)=P+1=2+1=3,所以该程序段的环路复杂性为3。
24. 就平均查找长度而言,分块查找最小,折半查找次之,顺序查找最大。() 错误,前面解释过
25. 数据的逻辑结构是指数据的各数据项之间的逻辑关系() 错误。描述的是数据元素之间的逻辑关系,并非是数据项之间的逻辑关系;简而言之,逻辑结构就是数据元素间的逻辑关系,而不是数据元素内部的数据项之间的关系
26. 将整数数组(7-6-3-5-4-1-2)按照堆排序的方式原地进行升序排列,请问在第一轮排序结束之后,数组的顺序是_____。 6-5-3-2-4-1-7 【注意:原始堆的构建直接根据提供的序列从上到下,从左到右建立进行构建,然后如果顶最大,进行删除,接着将最右节点上移到堆顶】
原数组已经是一个大顶堆,可直接开始排序。
(大顶堆:每个节点的值都不小于自己两个左右子节的完全二叉树)
每轮输出堆顶元素后,以堆中最后一个元素代替之(由于此题要求原地排序,即不产生额外的空间,堆顶元素与最后一个元素交换)。再将新的顶点元素不断与其子节点中大于该元素的较大者交换,直到该元素大于其左右两个子节点,或成为叶子节点。此时将剩余元素调整成一个新的大顶推。
7 2 6 6
/ \ / \ / \ / \
6 3 ==> 6 3 ==> 2 3 ==> 5 3
/ \ / \ / \ / / \ / / \ /
5 4 1 2 5 4 1 7 5 4 1 7 2 4 1 7
由此得出,第一轮结束后的顺序是:6,5,3,2,4,1,7。
27. 一个算法应该是() 问题求解步骤的描述
解释:算法(algorithm)是对特定问题求解步骤的一种描述,它是指令的有序序列,其中每一条指令表示一个或多个操作;此外,一个算法还具有下列5个重要特征(本部分可参考本问ocean老哥回答):(1)有穷性;(2)确定性;(3)可行性;(4)输入(>=0);(5)输出(>=1)
28. 比较排序算法和非比较排序算法:
1、基于比较的排序算法有:(1)直接插入排序;(2)冒泡排序;(3)简单选择排序;(4)希尔排序;(5)快速排序;(6)堆排序;(7)归并排序。
2、基数排序、桶排序都属于分配式排序,且都是稳定排序算法。
29. 哪种数据结构用于执行递归调用()堆栈
数组
链表
堆栈
二叉树
解释:递归的过程就是压栈的过程,先把数据压进栈,递归结束时,开始一一出栈
part two: 计算机网络基础知识
1. WWW浏览器的工作基础是解释执行用以下哪种语言书写的文件( )。 HTML
解释:超级文本标记语言(英文缩写:HTML)是万维网(Web)编程的基础,也就是说万维网是建立在超文本基础之上的。超级文本标记语言之所以称为超文本标记语言,是因为文本中包含了所谓“超级链接”点。
2. 计算机网络是一门综合技术,其主要技术是 () 。 计算机技术和通信技术
3. 计算机网络是一门综合技术,其主要技术是 () 。 HTTP协议
补充:
SMTP 简单邮件传输协议(用于发送邮件)。 POP3用于接受邮件的协议
FTP 文件传输协议
TELNET属于TCP协议族 (回顾:HTTP TCP UDP IP 等常用对比)
4. 将一个局域网连入Internet,首选的设备是 ()。 路由器
解释:用户用交换机连接,交换机连接到路由器,路由器连接到电信部门网桥,网关是相同或'不同网络连接时使用的。这里是第三步
5. 候选码中的属性可以有( )。 可以1个或者多个
解释:
候选码
能唯一决定元组的属性或属性组
主键
从候选码中选定一个作为主码,又叫主键
6. 在TCP 段头中,窗口数的大小由发送方决定这句话正确与否? 错误,由接收方决定 (窗口数的大小由接收方允许的窗口和拥塞窗口决定 )
解释:
TCP通过滑动窗口的概念来进行流量控制。设想在发送端发送数据的速度很快而接收端接收速度却很慢的情况下,为了保证数据不丢失,显然需要进行流量控制, 协调好通信双方的工作节奏。所谓滑动窗口,可以理解成接收端所能提供的缓冲区大小。TCP利用一个滑动的窗口来告诉发送端对它所发送的数据能提供多大的缓 冲区。由于窗口由16位bit所定义,所以接收端TCP 能最大提供65535个字节的缓冲。由此,可以利用窗口大小和第一个数据的序列号计算出最大可接收的数据序列号。
滑动窗口本质上是描述接受方的TCP数据报缓冲区大小的数据,发送方根据这个数据来计算自己最多能发送多长的数据。如果发送方收到接受方的窗口大小为0的TCP数据报,那么发送方将停止发送数据,等到接受方发送窗口大小不为0的数据报的到来。
关于滑动窗口协议,还有三个术语,分别是:
窗口合拢:当窗口从左边向右边靠近的时候,这种现象发生在数据被发送和确认的时候。
窗口张开:当窗口的右边沿向右边移动的时候,这种现象发生在接受端处理了数据以后。
窗口收缩:当窗口的右边沿向左边移动的时候,这种现象不常发生。
TCP就是用这个窗口,慢慢的从数据的左边移动到右边,把处于窗口范围内的数据发送出去(但不用发送所有,只是处于窗口内的数据可以发送。)。这就是窗口 的意义。窗口的大小是可以通过socket来制定的,4096并不是最理想的窗口大小,而16384则可以使吞吐量大大的增加。
A—————C—————B
如上图,A与B之间建立TCP连接,滑动窗口实现有两个作用:
由于对称性,只考虑A端发送窗口和B端接收窗口,有如下两个作用
1。B端来不及处理接收数据(控制不同速率主机间的同步),这时,A通过B端通知的接收窗口而减缓数据的发送。
2。B端来得及处理接收数据,但是在A与B之间某处如C,使得AB之间的整体带宽性能较差,此时,A端根据拥塞处理策略(慢启动,加倍递减和缓慢增加)来更新窗口,以决定数据的发送。
与固定大小的滑窗协议相比,TCP采用可变大小的滑窗协议是为了取得更好的性能。
TCP是一个广域网协议,而广域网环境下的路由器和主机,各自有着不同的性能和处理能力,在这种情况下,采用固定窗口大小的滑窗协议会引起性能上的损失。TCP规定窗口的大小是由接收方通告的,通过采取慢启动和拥塞避免算法等机制来使带宽和性能取得最佳。
7. 执行语句“ k=7>>1; ”后,变量 k 的当前值是 3
解释:'>>'是移位运算符中的的右移运算符。
将题目中的‘7’转换成二进制数为‘111’表达式'7>>1'是将7的二进制数向右移动一位;得到二进制数‘11’,将其转换成十进制为‘3’
(左移运算是将一个二进制位的 操作数 按指定移动的位数向左移位,移出位被丢弃,右边的空位一律补0。右移运算是将一个二进制位的操作数按指定移动的位数向右移动,移出位被丢弃,左边移出的空位或者一律补0,或者补符号位,这由不同的机器而定。)
8. 下列各项工作步骤,()不是创建进程所必须的步骤。 A
A. 建立一个PCB (不是创建一个PCB进程管理模块,而是申请一个)
B. 由CPU调度程序为进程调度CPU
C. 为进程分配内存等必要资源
D. 将PCB接入进程就绪队列
解释: 在系统中每当出现了创建新进程的请求后,OS便调用创建原语Creat按如下步骤创建一个新的进程:
- 申请空白PCB,为新进程申请获得唯一的数字表识符,并从PCB集合中索取一个空白PCB
- 为新进程分配其运行所需的资源,包括各种物理和逻辑资源,如内存、文件、I/O设备和CPU时间等
- 初始化进程控制块(PCB)
- 如果进程就绪队列能够接纳新进程,便将新进程插入就绪队列
9. SQL 的 DDL 语句不包括()。A 数据库定义语言
A. SELECT (选择查询语句)
B. CREATE TABLE (创建数据表)
C. DROP VIEW (删除表视图)
D. DROP INDEX (删除表索引)
解释:
DDL – Data Definition Language 数据库定义语言(执行后会自动提交):
CREATE(在数据库中创建对象), ALTER(修改数据库结构), DROP(从数据库中删除对象), TRUNCATE(截断表内容), COMMENT(为数据字典添加备注)
DML – Data Manipulation Language 数据库操作语言:
SELECT, DELETE, INSERT, UPDATE, DELETE, LOCK TABLE(为当前线程锁定表,分读锁定、写锁定) , CALL(调用存储过程), EXPLAIN PLAN(Oracle数据库下指定SQL语句的执行计划)
10. 如果事务T获得了数据项Q上的排它锁,则T对Q______。 能读能写
补充:
锁的类型有三种:
共享(S)锁:多个事务可封锁一个共享页;任何事务都不能修改该页; 通常是该页被读取完毕,S锁立即被释放。
排它(X)锁:仅允许一个事务封锁此页;其他任何事务必须等到X锁被释放才能对该页进行访问;X锁一直到事务结束才能被释放。
更新(U)锁:用来预定要对此页施加X锁,它允许其他事务读,但不允许再施加U锁或X锁;当被读取的页将要被更新时,则升级为X锁;U锁一直到事务结束时才能被释放。
11. 计算机软件分为两大类,他们是()。 系统软件和应用软件
12. 进程间通讯的方式中哪种的访问速度最快? 共享内存
补充:
进程间通讯的方式:
- 管道中还有命名管道和非命名管道之分,非命名管道只能用于父子进程通讯,命名管道可用于非父子进程,命名管道就是FIFO,管道是先进先出的通讯方式。FIFO是一种先进先出的队列。它类似于一个管道,只允许数据的单向流动。每个FIFO都有一个名字,允许不相关的进程访问同一个FIFO,因此也成为命名管。
- 消息队列:是用于两个进程之间的通讯,首先在一个进程中创建一个消息队列,然后再往消息队列中写数据,而另一个进程则从那个消息队列中取数据。需要注意的是,消息队列是用创建文件的方式建立的,如果一个进程向某个消息队列中写入了数据之后,另一个进程并没有取出数据,即使向消息队列中写数据的进程已经结束,保存在消息队列中的数据并没有消失,也就是说下次再从这个消息队列读数据的时候,就是上次的数据!!!
- 信号量, 不能传递复杂消息,只能用来同步
- 共享内存,只要首先创建一个共享内存区,其它进程按照一定的步骤就能访问到这个共享内存区中的数据,当然可读可写;
几种方式的比较:
- 管道:速度慢,容量有限
- 消息队列:容量受到系统限制,且要注意第一次读的时候,要考虑上一次没有读完数据的问题。
- 信号量:不能传递复杂消息,只能用来同步
- 共享内存区:能够很容易控制容量,速度快,但要保持同步,比如一个进程在写的时候,另一个进程要注意读写的问题,相当于线程中的线程安全,当然,共享内存区同样可以用作线程间通讯,不过没这个必要,线程间本来就已经共享了一块内存的。
13. 以下 TCP 原语,中,哪一个是属于客户端的: connect
解释:
服务器需要绑定(bind)监听(listen)端口,等待客户端连接(accept),所以只有连接(connect )是客户端的
14. 假定x和y为double型,则表达式x=2,y=x+3/2的值是 3.000000
15. 计算机网络可分为三类,它们是( ) WAN(广域网) MAN(域域网) LAN(局域网)
16. 在E-R图中,实体用( )符号表示。 矩形
解释:
在ER图中有如下四个成分:
矩形框:表示实体,在框中记入实体名。
菱形框:表示联系,在框中记入联系名。
椭圆形框:表示实体或联系的属性,将属性名记入框中。对于主属性名,则在其名称下划一下划线。
连线:实体与属性之间;实体与联系之间;联系与属性之间用直线相连,并在直线上标注联系的类型。(对于一对一联系,要在两个实体连线方向各写1; 对于一对多联系,要在一的一方写1,多的一方写N;对于多对多关系,则要在两个实体连线方向各写N,M。)
17. 在关系数据库设计中,设计关系模式是数据库设计中( 逻辑设计阶段)阶段的任务
补充:数据库设计包括六个主要步骤:
1、需求分析:了解用户的数据需求、处理需求、安全性及完整性要求;
2、概念设计:通过数据抽象,设计系统概念模型,一般为E-R模型;
3、逻辑结构设计:设计系统的模式和外模式,对于关系模型主要是基本表和视图;
4、物理结构设计:设计数据的存储结构和存取方法,如索引的设计;
5、系统实施:组织数据入库、编制应用程序、试运行;
6、运行维护:系统投入运行,长期的维护工作。
18. 银行家算法中的数据结构包括有可利用资源向量Available、最大需求矩阵Max、分配矩阵Allocation、需求矩阵Need,下列选项中表述正确的是()。Need[i,j]= Max[i,j]- Allocation[i,j]
解释:
1)可利用资源向量Available
是个含有m个元素的数组,其中的每一个元素代表一类可利用的资源数目。如果Available[j]=K,则表示系统中现有Rj类资源K个。
2)最大需求矩阵Max
这是一个n×m的矩阵,它定义了系统中n个进程中的每一个进程对m类资源的最大需求。如果Max[i,j]=K,则表示进程i需要Rj类资源的最大数目为K。
3)分配矩阵Allocation
这也是一个n×m的矩阵,它定义了系统中每一类资源当前已分配给每一进程的资源数。如果Allocation[i,j]=K,则表示进程i当前已分得Rj类资源的 数目为K。
4)需求矩阵Need。
这也是一个n×m的矩阵,用以表示每一个进程尚需的各类资源数。如果Need[i,j]=K,则表示进程i还需要Rj类资源K个,方能完成其任务。所以答案是:Need[i,j]=Max[i,j]-Allocation[i,j]
19. 【没懂,关于E-R图】在某公司所有人员的实体中,用关系模型来表示这些实体,经理这个称呼属于( )。 属性的值
20. SQL语言是()的语言。 非过程语言 结构化语言
SQL语言是非过程化语言,不要求用户指定数据的存放方法,也不需要了解具体的数据存放方式,故具有完全不同底层结构的不同数据库系统,可以使用相同的结构化查询语言作为数据输出和管理的接口。
21. 【多看,二级索引】一个采用二级索引文件系统(每块大小为2KB,每块地址占用4B)管理的最大的文件是()。 512M
解释:
因为是二级索引,所以假如第一级的索引有N个指向第二级索引的指针,而二级索引有N个指向第X块的指针,则最大的文件 = N * N * 2KB。
我们来看这个N为多少,因为每一块的地址占 4 B,第一级索引是2 KB,可以存下2 K / 4 = 512个 指向二级索引的指针,同样的道理,二级所有也是最多有512个指向块的指针,那么 512 * 512 * 2 KB = 512 MB
22. MYSQL实现主从复制的日志是哪种? BINLOG
解释:
mysql日志一般分为5种
错误日志:-log-err (记录启动,运行,停止mysql时出现的信息)
二进制日志:-log-bin (记录所有更改数据的语句,还用于复制,恢复数据库用)
查询日志:-log (记录建立的客户端连接和执行的语句)
慢查询日志: -log-slow-queries (记录所有执行超过long_query_time秒的所有查询)
更新日志: -log-update (二进制日志已经代替了老的更新日志,更新日志在MySQL 5.1中不再使用)
23. 在数据库的安全性控制中,为了保护用户只能存取他有权存取的数据。在授权的定义中,数据对象的( ),授权子系统就越灵活。 范围越小
解释: 数据对象的范围越大,涉及的面的范围就越大,就要考虑该数据对象中的某些属性(ab)被这类用户有权访问,某些属性(bc)又被那类用户有权访问。所以数据对象的范围越小,就可以考虑整体将权限开放给某类用户,不用细致化去考虑授权。所谓“尾大不掉”~
24. 【没接触过】在DHCP服务器的 配置文件中,使用( )可以进行动态分配IP地址区域 subnet声明
25. 下列几种关于进程的叙述,( )最不符合操作系统对进程的理解? A
A. 进程是在多程序并行环境中的完整的程序。
B. 进程可以由程序、数据和进程控制块描述。
C. 线程是一种特殊的进程。
D. 进程是程序在一个数据集合上运行的过程,它是系统进行资源分配和调度的一个独立单位。
解释:进程的组成是程序、数据、PCB,它是程序的执行过程或者说是状态变化过程,不是程序 ;PCB进程控制模块
26. CSCAN 磁盘调度算法可以避免磁臂粘着现象的发生,这样的说法正确吗? 不正确
解释:在SSTF、SCAN及CSCAN几种调度算法中,都有可能出现磁臂停留在某个位置不动的情况。例如,有一个或几个进程对某一磁道有着较高的访问频率,即他们反复地请求对一个磁道进行了I/O请求,从而垄断了整个磁盘设备,这一现象称为磁臂粘着。
27. 形实结合的信息传递方式中,结果调用 和值结果调用方式为形式参数分配两个存储单元,分别存放是在参数的地址和值,( 值结果调用 )和名字调用方式可使过程对参数的改变影响到实参。
28.下面有关ibatis 中的#与$的区别,描述错误的是?B
A. #将传入的数据都当成一个字符串,会对自动传入的数据加一个双引号
B. $方式能够很大程度防止sql注入。 (应该是#)
C. $方式一般用于传入数据库对象,例如传入表名
D. $将传入的数据直接显示生成在sql中
补充:
1.#是把传入的数据当作字符串,如#user_id_list#传入的是1,2,则sql语句生成是这样,in ('1,2') ,
2.$传入的数据直接生成在sql里,如$user_id_list$传入的是1,2,则sql语句生成是这样,in(1,2).
3.#方式能够很大程度防止sql注入.
4.$方式无法方式sql注入.
5.$方式一般用于传入数据库对象.例如传入表名.
6.一般能用#的就别用$.
29. 常用的信道复用技术有( ) TDM FDM CDM WDM
分别是:
信道复用技术
- 频分复用 FDM (Frequency Division Multiplexing)
- 时分复用 TDM (Time Division Multiplexing)
- 波分复用 WDM (Wavelength Division Multiplexing)
- 码分复用 CDM (Code Division Multiplexing)
30. ()不适合批处理。ABD' 【批处理不能处理需要交互类型的作业;批处理是已经写死的脚本,无法应对变化的情况】
A. 玩游戏
B. 飞行模型
C. 解大型方程组
D. 调试程序