多益网络笔试题
自己做完之后凭记忆整理出来的,填空题(数据结构、数据库)相对没那么难,所以只记了几个
选择题:
1.A,B,C栈的出栈序列可能性有几种?
2.关于队列?
3.插入数据库表(name char(20) not null,age char(2),……)的正确字段?
4.哪一个序列不可能是选择排序的第二次排序?
填空题:
1.直接插入排序和选择排序的复杂度分别为多少?
2.数据库保护分为哪几种?
安全性控制、完整性控制、并发性控制、数据恢复
3.二叉树后序输出顺序?
4.完全二叉树的结点个数为2^n-1个,则叶结点的个数为?
5.直接插入排序、选择排序,堆排序的时间复杂度分别为?
问答题:
1.静态链接库和动态链接库有什么区别?
动态链接库:动态链接库中包含了多个已经被编译、链接好的函数和数据资源,但并不包含函数的源码。动态链接库在windows下是.dll 文件,英文为Dynamic Link Library,在Linux下是.so文件。如果在你的程序中使用了动态链接库,那么在程序运行时,会动态地将该库加载,然后调用库中的函数。动态库的优点是便于维护和更新各个程序模块,比如在一个大型程序中,会有数十个甚至更多的模块。使用动态库封装每个模块后,在需要更新某模块时,只需替换该模块对应的.dll或者.so文件即可,而不需要更新整个程序,这一点是下文要讲到的静态链接库无法实现的。
静态链接库:静态链接库在windows下是.lib文件,在Linux下是.a文件。和动态链接库不同,它包含了函数的源代码,因此文件大小通常比动态库大很多。如果你的程序中依赖了某个静态库,那么在你的程序编译链接过程中,会自动从静态库中取出需要用到的函数代码,然后和当前程序进行链接,生成可执行文件。由此可见,最终的可执行文件在运行时不再需要依赖静态库,可直接运行,这一点明显区别于动态库(在动态库的情况中,程序在运行时必须能够找到相应的动态库文件)。另外和动态库不同的是,静态库中某函数更新后,整个程序需要重新编译链接。
2.进程之间的通信可以通过哪几种方式实现(至少6种)?
无名管道( pipe ):管道是一种半双工的通信方式,数据只能单向流动,而且只能在具有亲缘关系的进程间使用。进程的亲缘关系通常是指父子进程关系。高级管道(popen):将另一个程序当做一个新的进程在当前程序进程中启动,则它算是当前程序的子进程,这种方式我们成为高级管道方式。有名管道 (named pipe) : 有名管道也是半双工的通信方式,但是它允许无亲缘关系进程间的通信。消息队列( message queue ) : 消息队列是由消息的链表,存放在内核中并由消息队列标识符标识。消息队列克服了信号传递信息少、管道只能承载无格式字节流以及缓冲区大小受限等缺点。信号量( semophore ) : 信号量是一个计数器,可以用来控制多个进程对共享资源的访问。它常作为一种锁机制,防止某进程正在访问共享资源时,其他进程也访问该资源。因此,主要作为进程间以及同一进程内不同线程之间的同步手段。信号 ( sinal ) : 信号是一种比较复杂的通信方式,用于通知接收进程某个事件已经发生。共享内存( shared memory ) :共享内存就是映射一段能被其他进程所访问的内存,这段共享内存由一个进程创建,但多个进程都可以访问。共享内存是最快的 IPC 方式,它是针对其他进程间通信方式运行效率低而专门设计的。它往往与其他通信机制,如信号两,配合使用,来实现进程间的同步和通信。套接字( socket ) : 套解口也是一种进程间通信机制,与其他通信机制不同的是,它可用于不同机器间的进程通信。
3.使用sql语句将person(name,age)表中的年龄在30到40岁之间的人优先输出。
4.翻译一段英文(三句话左右)。
编程题:
1.有n个样品,第i个样品的权重对应i,权重大的个体被抽到的概率大,权重小的个体被抽到的概率小,现在要求按比重从中随机选取一个样品。(c语言)
具体解决方案查看:/FBB360JAVA/article/details/82500221?utm_medium=distribute.pc_aggpage_search_result.none-task-blog-2~aggregatepage~first_rank_ecpm_v1~rank_v31_ecpm-6-82500221.pc_agg_new_rank&utm_term=%E5%A4%9A%E7%9B%8A+%E7%AC%94%E8%AF%95&spm=1000.2123.3001.4430
如果觉得《多益网络春笔试题记忆版》对你有帮助,请点赞、收藏,并留下你的观点哦!