牛客网中选择题目及知识详解

1.若有说明:int a[][3]={1,2,3,4,5,6,7};,则数组 a 的第一维的大小是()

2
3
4
无确定值
解析:默认情况下初始化时,若无特别说明,则元素按行顺序存储,将该行所在的列存储完,再存储下一行,一个直观的运行结果如下:

牛客网中选择题目及知识详解_第1张图片

2.SRAM 需要动态刷新才能保持存储的数据信息。

正确
错误
解析: RAM有两种,SRAM是静态存储,不需要刷新,DRAM是动态存储,需要刷新。

3.DOS 状态下能将样板行中所有字符一次复制到命令行上的功能键是(  )

F1
SHIFT
F3
F5
4. 通用多态是指

强制多态和包含多态
重载多态和强制多态
参数多态和重载多态
包含多态和参数多态
5.32位系统中,定义**a[3][4],则变量占用内存空间为()。

4
48
192
12

解析:题目中**a[3][4]指的是二维数组,同时数组中存储的都是指针,每个指针占用4byte,因此一共占用4*3*4=48个byte。

6.以下排序算法中,哪些是稳定的排序算法?

冒泡
插入
合并
希尔
快速排序
解析:

排序算法的稳定性指的是能保证排序前2个相等的数其在序列的前后位置顺序和排序后它们两个的前后位置顺序相同。在简单形式化一下,如果Ai = Aj,Ai原来在位置前,排序后Ai还是要在Aj位置前。堆排序、快速排序、希尔排序、直接选择排序不是稳定的排序算法,而基数排序、冒泡排序、直接插入排序、折半插入排序、归并排序是稳定的排序算法。(这部分可参考博客 http://www.cnblogs.com/codingmylife/archive/2012/10/21/2732980.html)

7.在linux编程中,以下哪个TCP的套接字选项与nagle算法的开启和关闭有关?

TCP_MAXSEG
TCP_NODELAY
TCP_SYNCNT
TCP_KEEPALIVE
解析:这题竟然和通信网相关,
Nagle算法的规则:
(1)如果包长度达到MSS,则允许发送;
(2)如果该包含有FIN,则允许发送;
(3)设置了TCP_NODELAY选项,则允许发送;
(4)未设置TCP_CORK选项时,若所有发出去的小数据包(包长度小于MSS)均被确认,则允许发送;
(5)上述条件都未满足,但发生了超时(一般为200ms),则立即发送。
当有一个TCP数据段不足MSS,比如要发送700Byte数据,MSS为1460Byte的情况。nagle算法会延迟这个数据段的发送,等待,直到有足够的数据填充成一个完整数据段。也许有人会问,这有什么影响呢?没有太大的影响,总体上来说,这种措施能节省不必要的资源消耗。但是要发送的总体数据很小时,这种措施就是拖后腿了。比如,用户请求一个网页,大约十几KB的数据,TCP先发送了八九个数据包,剩下几百字节一直不发送,要等到另一个RTT才发送,这时候前面发送数据的ACK已经返回了。这样的用户体验是很不好的。 所以,现在很多服务器都选择主动关闭nagle算法,因为带宽够大,资源消耗不是问题,速度反而是个大问题。 从上述描述中,禁用 nagle,实质就是不在延迟  TCP_NODELAY

你可能感兴趣的:(牛客网)