IT面试经验:CC++程序员需要掌握哪些知识

IT面试经验:CC++程序员需要掌握哪些知识,第1张

概括来说,开发中常用到的功能:串口通信、网口通信、数据库访问、数据加解密处理等等。这些方面的知识都要掌握的,细说的话主要有以下几个方面:

一、语言相关 

1、基础(Basic)

(1)变量与基本类型:语言内置类型、常量、变量的初始化、变量的作用域、变量的      限定符、变量引用、枚举; (2)typedef 和#define;

(3)数值与指针:数组定义与初始化、多维数值、指针 *** 作;

(4)表达式:算术/逻辑计算、位运算、优先级、类型转换;

(5)语句:简单语句、声明/定义语句、复合语句、条件/循环控制语句、异常处理语      句;

(6)函数:函数声明、参数传递、堆栈概念、函数重载;

(7)标准IO:条件状态、缓冲区、文件流、字符流、本地化;

(8)类和数据抽象:类的定义与声明、类的构造函数、静态成员、拷贝构造函数、 ***      作符重载、类型转换;

(9)面向对象编程:数据(封装)抽象、继承、多态(动态绑定);

2、进阶(Advance)

(1)模板与泛型编程:模板定义、实例化、类模板成员、重载、特化; (2)智能指针:auto_ptr、shared_ptr、scoped_ptr;

(3)STL容器:顺序容器(vector、list、deque、queue、priority_queue、string)和关      联容器(map、set、multimap、multiset); (4)STL算法:迭代器、算法; (5)常用复杂数据结构:hash_map、boost.any、boost. array、boost. regex、boost. variant、      boost. multi_array、boost. pointer_container;

3、高级(Expert)

(1)高级泛型编程:表达式模板、模板元编程、Concept编程;

(2)程序架构,内存池,线程池;

(3)高级抽象:boost.mpl、boost.lambda、boost.fusion、boost.proto;

(4)范式应用:boost.spirit;

(5)应用程序库:boost.asio 、boost.graph、blitz++、Loki、CGAL、uBLAS;

二、系统相关 

1、基础(Basic)

(1)Windows API之基础服务:文件系统、注册表、内存管理、DLL、多媒体;

(2)Windows API之内核对象:句柄、信号、线程、进程、互斥、事件、文件映射、      命名管道、邮槽、计时器、完成端口;

(3)Windows API之图形设备接口:设备上下文、打印、字体、笔/刷、路径、区域、      位图;

(4)Windows API之图形用户界面:窗口、标题、菜单、状态栏、消息、图标、按钮、 编辑框、组合框、列表框、滚动条、通用对话框;

(5)环境配置及Shell编程:环境变量、右键菜单、属性、关联; (6)Socket编程; (7)Web相关API; 2、进阶(Advance)

(1)MFC/ATL:文档视图结构、对话框、通用控件、OleDB、WinInet; (2)COM、自动化、ActiveX:Office开发、IE插件、VBA; (3)高级图形系统:OpenGL、DirectX; (4)二次开发:ObjectArx;

三、计算相关 

1、计算机图形学

(1)向量:点积、叉积、求模、单位化、复合运算;(basic)

(2)矩阵:算术运算、平移/旋转/缩放/错切等变换、求逆、特征值;(basic) (3)四元组合欧拉角:与其他表示转换;(advance) (4)参数曲线/曲面:贝塞尔、(非)均匀有理样条;(advance) (5)三维几何体的构造与描述;(expert) 2、计算几何

(1)几何查找与判断:点与线、线与线、点与多边形;(basic) (2)多边形:简单多边形、凸多边形、多边形三角剖分;(advance) (3)凸壳及其应用;(advance) (4)Voronoi图/三角剖分及其应用;(advance) (5)多边形的交与并;(expert) (6)平面图;(expert) 3、数值计算

(1)数值计算的三大任务:求值、解方程(组)、函数逼近;(basic) (2)数值计算的误差、适定性、稳定性;(basic)

(3)解线性方程组直接方法:Gauss消元法、三角分解法;(basic)

(4)解线性方程组一般迭代方法:基本迭代、Jacobi迭代、G-S迭代、SOR/SSOR迭代;     (advance)

(5)解线性方程组的变分迭代法:共轭梯度、预处理共轭梯度法;(expert) (6)解非线性方程组迭代方法:Newton迭代法、Newton-Raphson迭代法、同伦算法;     (expert)

(7)求解矩阵特征值:乘幂法与反乘幂法、Rayleigh商迭代法、QR法、Krylov子空间      法;(expert)

(8)插值:多项式插值、样条插值;(advance) (9)数值积分:Simpson公式、Gauss积分;(basic) (10)解常微分方程:欧拉法、Runge-Kutta法;(advance) (11)解椭圆方程:有限单元法、有限差分法、边界元法;(expert)

希望可以帮到您,谢谢!

先一一解答:

stl 是标准模板库,起个简化作用(也就是程序员可以偷懒,直接调用用别人的代码

MFC=Microsoft Foundation Classes(微软基础类):作用是快速可以快速开发软件,可以去这看看http://baike.baidu.com/view/10918.htm

控件:在图形用户界面(GUI)中屏幕上的一种对象,用户可 *** 作该对象来执行某一行为。 控件是用户可与之交互以输入或 *** 作数据的对象。控件通常出现在对话框中或工具栏上(我COPY过来算了,)(http://baike.baidu.com/view/185331.htm

视频有孙鑫的http://www.bccn.net/shipin/Special/vc6crmdjt/Index.html 从基础c++一直MFC 数据库也有所涉及

不过目前还是先尽量熟悉C++和数据结构,再看这些会少吃力很多,因为这些东西都是在C++的基础上建立的。基础很重要。《C++ PRIMER PLUS》《effective C++》《高质量C++_C开发教程》这些书籍看了会受益不少,只要有恒心,没有什么是看不完的,NND.

C++ 世界的话, C++之父Bjarne Stroustrup和标准委员会的Herb Sutter与Andrei Alexandrescu,还有STL之父Alexander Stepanov都算是当世绝顶的高手。

还有《C++ Primer》的作者,微软C++编译器的主要设计者Stanley B.Lippman以及当年一起在bell实验室做CFront的Andrew Koenig也算绝顶的高手。

C语言的世界的话顶尖高手就太多了,数也数不清了,Ken Thompson和

Richard Stallman、Guy L. Steele Jr、Tim Joy 可能算是最高的高手了吧。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11077413.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-13
下一篇 2023-05-13

发表评论

登录后才能评论

评论列表(0条)

保存