9.26北京亚控
来源:互联网 发布:倒排索引java 源代码 编辑:程序博客网 时间:2024/04/29 01:27
今天木有笔试,木有面试,连个通知都木有,于是就继续蛋疼的投简历和看书。下午正在投简历,群里消息说研究生活动中心3点半有北京亚控的笔试,软件的,于是就赶过去笔一把。只是想趁点笔试经验的,就没带简历。
题型主要是填空、小问答和编程。有一些是宝典上的原题。
下面说一下我能记得的题目。
1、冒泡排序、快速排序和二叉树排序的时间复杂度分别为:
这个还没复习到,果断不会答。
2、new、delete与malloc、free的联系和区别?
我的答案:都是用于分配堆上的内存,它们语法规则有些不同,前者用于C++,后者在C和C++中都可用,前者为关键字,后者为库函数。
3、CSinglock是干什么用的?
不会。
4、用winsock建立一个服务器的主要实现步骤?
我的答案:1、创建套接字;2、套接字与端口绑定;3、监听;4、通信
5、请说出static和const尽可能多的作用。
我的答案:static可定义全局静态变量和局部静态变量,可定义静态函数;const可定义常量,可实现宏定义的作用但比宏安全。
6、template有什么特点?什么时候用?
我的答案:使数据结构和算法分离,非面向对象,在多个数据类型共用一个接口时用。
7、1,11,21,1211,111221,下一个数是:
没答出来。
8、写函数实现链表的逆序。
9、有一人有400公斤水,他想运往干旱地区赚钱。他每次最多携带80公斤,并且每前进一公里须耗水1公斤(均匀耗水)。假设水的价格在出发地为0,以后,与运输路程成正比,(即在10公里处为10元/公斤,在20公里处为20元/公斤......),又假设他必须安全返回,请问,他最多可赚多少钱?
10、有5只猴子在海边发现一堆桃子,决定第二天来平分.第二天清晨,第一只猴子最早来到,它左分右分分不开,就朝海里扔了一只,恰好可以分成5份,它拿上自己的一份走了.第 2,3,4,5只猴子也遇到同样的问题,采用了同样的方法,都是扔掉一只后,恰好可以分成5份.问这堆桃子至少有多少只?
解答:
1、冒泡排序时间复杂度0(n^2);
快速排序时间复杂度0(nlogn);
二叉树排序时间复杂度0(nlogn)。
2、相同点:都可用于申请动态内存和释放内存。
不同点:
1,malloc与free是C++/C语言的标准库函数,new/delete是C++的运算符。它们都可用于申请动态内存和释放内存。
2, 对于非内部数据类型的对象而言,光用maloc/free无法满足动态对象的要求。对象在创建的同时要自动执行构造函数,对象在消亡之前要自动执行析构函数。由于malloc/free是库函数而不是运算符,不在编译器控制权限之内,不能够把执行构造函数和析构函数的任务强加于malloc/free。
3,因此C++语言需要一个能完成动态内存分配和初始化工作的运算符new,以一个能完成清理与释放内存工作的运算符delete。注意new/delete不是库函数。
4,C++程序经常要调用C函数,而C程序只能用malloc/free管理动态内存
new 是个操作符,和什么"+","-","="...有一样的地位
简单的说:
malloc,free是c的函数,new,delete是c++的运算符
此外,new是强制类型的,malloc不是,需要类型转换
当然还有很多不同
new 可以调用构造函数在声明的时候初始化
malloc只是分配空间,需要在其他地方初始化
而delete不仅会释放空间,在释放前会调用析构函数
而且malloc需要指定分配空间大小, 而new是自动计算的
3、用于线程同步
4、
服务器端:socker()建立套接字,绑定(bind)并监听(listen),用accept()等待客户端连接。
客户端:socker()建立套接字,连接(connect)服务器,连接上后使用send()和recv(),在套接字上写读数据,直至数据交换完毕,closesocket()关闭套接字。
服务器端:accept()发现有客户端连接,建立一个新的套接字,自身重新开始等待连接。该新产生的套接字使用send()和recv()写读数据,直至数据交换完毕,closesocket()关闭套接字。
1、启动Winsock:对Winsock DLL进行初始化,协商Winsock的版本支持并分配必要的
资源
2、创建套接字
3、套接字的绑定:将本地地址绑定到所创建的套接字上
4、 套接字的监听
5、套接字等待连接
6、套接字发送数据
7、中断套接字连接:通知服务器端或客户端停止接收和发送数据
8、 关闭套接字:释放所占有的资源
5、static关键字至少有下列n个作用:
(1)函数体内static变量的作用范围为该函数体,不同于auto变量,该变量的内存只被分配一次,因此其值在下次调用时仍维持上次的值;
(2)在模块内的static全局变量可以被模块内所用函数访问,但不能被模块外其它函数访问;
(3)在模块内的static函数只可被这一模块内的其它函数调用,这个函数的使用范围被限制在声明它的模块内;
(4)在类中的static成员变量属于整个类所拥有,对类的所有对象只有一份拷贝;
(5)在类中的static成员函数属于整个类所拥有,这个函数不接收this指针,因而只能访问类的static成员变量。
const关键字至少有下列n个作用:
(1)欲阻止一个变量被改变,可以使用const关键字。在定义该const变量时,通常需要对它进行初始化,因为以后就没有机会再去改变它了;
(2)对指针来说,可以指定指针本身为const,也可以指定指针所指的数据为const,或二者同时指定为const;
(3)在一个函数声明中,const可以修饰形参,表明它是一个输入参数,在函数内部不能改变其值;
(4)对于类的成员函数,若指定其为const类型,则表明其是一个常函数,不能修改类的成员变量;
(5)对于类的成员函数,有时候必须指定其返回值为const类型,以使得其返回值不为“左值”。例如:
const classA operator*(const classA& a1,const classA& a2);
operator*的返回结果必须是一个const对象。如果不是,这样的变态代码也不会编译出错:
classA a, b, c;
(a * b) = c; // 对a*b的结果赋值
操作(a * b) = c显然不符合编程者的初衷,也没有任何意义。
6、
7、
- 9.26北京亚控
- 北京亚控笔试题目(2014年10月9日)
- 亚控面试总结
- {北京亚信}Unix下C/C++职位--1月12日更新!!
- 亚信(北京)CMC项目组实习第一周总结
- 从亚控科技招聘年薪15万说起
- 亚控科技的KingSCADA多个漏洞
- 连接亚控OPC Server 遍历所有Tags
- 亚嵌
- 亚像素
- 亚像素
- 亚像素
- 北京
- 北京
- 北京
- 北京
- 北京
- 北京
- android音乐播放器——通过webview下载歌曲
- opencv中的cvSVD函数与matlab中的svd函数计算结果相反(奇异值分解问题)
- 一些常用的Live Writer插件
- 基于标准C语言的数字图像处理基本框架
- 由简至美的最佳论文
- 9.26北京亚控
- GnuWin32——Windows下的GNU工具集
- matlab求程序运行时间
- Linux系统调用
- C语言编程优化运行速度
- Android源码编译整理总结
- CV、PR方向的资源
- 用MATLAB优化工具箱解线性规划
- Matlab优化工具箱学习