第一篇:项目经理(C/C++)岗位职责
1.参与软件架构设计工作,负责系统设计。
2.协助软件架构师实现影响系统架构的关键用例。
3.负责核心模块的编码工作。
4.指导开发员的编码工作。
第二篇:C/C++软件工程师岗位职责
1.设计并实现高效的算法和数据结构。
2.开发一个或多个关键软件组件并且负责它们的接口定义,实现优化调试和维护。
3.与本地和海外的项目组成员交流。
第三篇:C、C++总结
1、类:类是一种抽象的数据结构,用来描述对象的属性,是将不同数据类型的数据以及与这些数据相关的操作封装在一起的集合体。(封装性)
一个类的对象所占空间的大小由它的数据成员所占据的空间总和决定;当类有virtual函数时,再加上4个字节的大小。
2、面向过程与面向对象程序设计的不同:
(1)过程是基于算法的,而对象是基于类的;
(2)过程是以函数(过程)的设计来实现的,而对象是以类的设计来实现的;
(3)过程通过数据流图(流程图)来体现的,而对象是通过类图(用例图)来体现的;(4)过程需要将步骤一步一步的具体化,而对象则只注重类的设计,不管实现方法。
3、面向对象的四大特点:抽象、封装、继承、多态
4、访问控制权限:
(1)public公有型:外部可以访问
(2)protected 保护型:除了本类、子类与友元可访问外其它的都不能访问(3)private 私有型:除了本类外,外部的都不能访问
5、类与对象的区别:
(1)二者的定义不同:类是不同类型数据及其相关操作的集合,对象则是类的实例化(2)类是个类型,不占空间,但对象占空间。
(3)类是类型而不是数据对象,每个类的对象都是该类数据成员的拷贝
6、继承与派生的目的:(1)实现代码的重用
(2)使已存在的类不需修改地适应新应用 7.继承的特点:
(1)每个派生类代表基类的特定版本
(2)基类的属性和方法,派生类必须拥有(构造与析构不会被继承)8.继承的3种方式:public,private,protected
9、多态:是指发出同样的消息被不同类型的对象接收后导致完全不同的行为(1)多态的条件:
○1有两个是父子关系的类 ○2有同名的虚函数
○3有父类指针或引用调用子类对象(2)多态的实现:
函数的重载 运算符重载 虚函数
1、static有什么用途?(请至少说明两种)关键字static的作用是什么?
定义静态变量 1.限制变量的作用域 2.设置变量的存储域
C和C++中static用法(1)C中:
○1当一个变量被定义成static型时,表明该变量是一个静态变量,存储在静态存储区中,只能被定义初始化一次;特别的当全局变量被定义成static型时,还表明该变量不能被外部文件所引用
○2当一个函数被声明为static型时,表明该函数是一个静态函数,不能被外部文件所调用
1(2)C++的类中:
○1当类的数据成员被声明为static型时,表明该成员是一个能被所有对象共享的数据成员,不与任何具体对象挂勾
○2 当类的成员函数被声明为static型时,表明该成员是静态成员函数。
2、引用与指针有什么区别? 1)引用必须被初始化,指针不必。
2)引用初始化以后不能被改变,指针可以改变所指的对象。2)不存在指向空值的引用,但是存在指向空值的指针。
3、描述实时系统的基本特性
在特定时间内完成特定的任务,实时性与可靠性
4、全局变量和局部变量在内存中是否有区别?如果有,是什么区别? 全局变量储存在静态数据库,局部变量在堆栈 5 什么是平衡二叉树?
左右子树都是平衡二叉树 且左右子树的深度差值的绝对值不大于1
6、堆栈溢出一般是由什么原因导致的? 没有回收垃圾资源
7、什么函数不能声明为虚函数? constructor 8 冒泡排序算法的时间复杂度是什么? O(n^2)
9、Internet采用哪种网络协议?该协议的主要层次结构? tcp/ip 应用层/传输层/网络层/数据链路层
10、Internet物理地址和IP地址转换采用什么协议? ARP(Address Resolution Protocol)(地址解析協議)
11、.IP地址的编码分为哪俩部分?
IP地址由两部分组成,网络号和主机号。不过是要和“子网掩码”按位与上之后才能区分哪些是网络位哪些是主机位。
12、分别给出BOOL,int,float,指针变量 与“零值”比较的 if 语句(假设变量名为var)
BOOL型变量:if(!var)int型变量: if(var==0)float型变量:
const float EPSINON = 0.00001;
if((x >=-EPSINON)&&(x <= EPSINON)
指针变量:
if(var==NULL)
13、不能做switch()的参数类型是: switch的参数不能为实型/
14、局部变量能否和全局变量重名?
答:能,局部会屏蔽全局。要用全局变量,需要使用“::” /
15、如何引用一个已经定义过的全局变量? 答:extern
16、全局变量可不可以定义在可被多个.C文件包含的头文件中?为什么? 答:可以,在不同的C文件中以static形式来声明同名全局变量。
17、语句for(;1 ;)有什么问题?它是什么意思?
答:和while(1)相同。
18、do„„while和while„„do有什么区别?
答:前一个循环一遍再判断,后一个判断以后再循环
18、static全局变量与普通的全局变量有什么区别?static局部变量和普通局部变量有什么区别?static函数与普通函数有什么区别?
static全局变量与普通的全局变量有什么区别:static全局变量只初使化一次,防止在其他文件单元中被引用;static局部变量和普通局部变量有什么区别:static局部变量只被初始化一次,下一次依据上一次结果值;
static函数与普通函数有什么区别:static函数在内存中只有一份,普通函数在每个被调用中维持一份拷贝。
程序的局部变量存在于(堆栈)中,全局变量存在于(静态区)中,动态申请数据存在于(堆)中。
19、sizeof(...)是运算符,它的功能是:获得保证能容纳实现所建立的最大对象的字节大小;strlen(...)是函数,要在运行时才能计算。参数必须是字符型指针(char*)。它的功能是:返回字符串的长度。20、队列和栈有什么区别? 队列先进先出,栈后进先出
21、在c语言库函数中将一个字符转换成整型的函数是atool()吗,这个函数的原型是什么?
函数名: atol 功 能: 把字符串转换成长整型数
用 法: long atol(const char *nptr);
22、对于一个频繁使用的短小函数,在C语言中应用什么实现,在C++中应用什么实现? c用宏定义,c++用inline
25、直接链接两个信令点的一组链路称作什么? PPP点到点连接
26、软件测试都有那些种类? 黑盒:针对系统功能的测试
白合:测试函数功能,各函数接口
27.确定模块的功能和模块的接口是在软件设计的那个队段完成的? 概要设计阶段
28/TCP/IP通信建立的过程怎样,端口有什么作用? 三次握手,确定是哪个应用程序使用该协议 29/进程和线程的差别。
线程是指进程内的一个执行单元,也是进程内的可调度实体.与进程的区别:(1)调度:线程作为调度和分配的基本单位,进程作为拥有资源的基本单位
(2)并发性:不仅进程之间可以并发执行,同一个进程的多个线程之间也可并发执行
(3)拥有资源:进程是拥有资源的一个独立单位,线程不拥有系统资源,但可以访问隶属于进程的资源.(4)系统开销:在创建或撤消进程时,由于系统都要为之分配和回收资源,导致系统的开销明显大于创建或撤消线程时的开销。30、测试方法
人工测试:个人复查、抽查和会审
机器测试:黑盒测试和白盒测试
31、Heap与stack的差别。Heap是堆,stack是栈。
Stack的空间由操作系统自动分配/释放,Heap上的空间手动分配/释放。Stack空间有限,Heap是很大的自由存储区
C中的malloc函数分配的内存空间即在堆上,C++中对应的是new操作符。
1、软件测试(英语:software testing),描述一种用来促进鉴定软件的正确性、完整性、安全性和质量的过程。换句话说,软件测试是一种实际输出与预期输出间的审核或者比较过程。软件测试的经典定义是:在规定的条件下对程序进行操作,以发现程序错误,衡量软件质量,并对其是否能满足设计要求进行评估的过程。流程:1.软件测试流程 :需求了解--测试计划--测试设计--测试用例编写--测试执行--bug管理跟踪--测试报告生成
2.bug就是测试过程中发现的程序缺陷,可以指需求上的,也可以指功能、性能上的
3.bug提交有多种方式,可以通过测试管理工具来管理bug,比如QC等 4.bug的生命周期: 发现bug(open)--修复bug(fixed)--关闭bug(closed)4.软件测试方法:是指测试软件性能的方法。包括有:白盒测试、黑盒测试、动态测试(单元测试、集成测试、系统测试、验收测试、回归测试等。)
5.测试工具:三类软件测试工具: Mercury测试工具,Rational测试工具,Segue测试工具,qtp自动化测试工具和AutoRunner工具
6.测试内容:负载压力、功能测试、白盒测试、测试管理、测试辅助。
2、算法(Algorithm)是一系列解决问题的清晰指令,即能够对一定规范的输入,在有限时间内获得所要求的输出。图像处理算法工程师
1、一个算法的优劣可以用空间复杂度与时间复杂度来衡量。
2、一个算法应该具有以下五个重要的特征: 有穷性、确定性、输入、输出、可行性。
3、冒泡排序(BubbleSort)一次比较两个元素,如果他们的顺序错误就把他们交换过来。基本概念是:依次比较相邻的两个数,将小数放在前面,大数放在后面。即在第一趟:首先比较第1个和第2个数,将小数放前,大数放后。然后比较第2个数和第3个数,将小数放前,大数放后,如此继续,直至比较最后两个数,将小数放前,大数放后。此第一趟结束,将最大的数放到了最后。在第二趟:仍从第一对数开始比较(因为可能由于第2个数和第3个数的交换,使得第1个数不再小于第2个数),将小数放前,大数放后,一直比较到倒数第二个数(倒数第一的位置上已经是最大的),第二趟结束,在倒数第二的位置上得到一个新的最大数(其实在整个数列中是第二大的数)。如此下去,重复以上过程,直至最终完成排序。由于在排序过程中总是小数往前放,大数往后放,相当于气泡往上升,所以称作冒泡排序。
4快速排序:基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。
算法的时间复杂度是一个函数,它定量描述了该算法的运行时间。一个程序的空间复杂度是指运行完一个程序所需内存的大小。
第四篇:C和C++总结
1C中分为这几个存储区: 栈,堆,全局区(静态区)—静态变量,常量区
C++中分为这几个存储区:栈,堆(new创建,delete结束或者操作系统自动回收),全局区(静态区),自由存储区-(malloc创建,free结束),常量存储区,2看到一本书上写了进程通信方式有如下:
1)信号 ——软中断,2)管道
3)文件和记录锁定
4)消息队列
5)信号量
6)共享内存
Unix的启动顺序排序。
第一步:通过/boot/vm进行启动 linux内核
第二步:init /etc/inittab
第三步:启动相应的脚本,并且打开终端
rc.sysinit
rc.d(里面的脚本)
rc.local
第四步:启动login登录界面 login
第五步:在用户登录的时候执行sh脚本的顺序:每次登录的时候都会完全执行的/etc/profile.d/file
/etc/profile
/etc/bashrc
/root/.bashrc
/root/.bash_profile
Linux中查看目录大小的命令:du –sh filename
修改文件属性的命令是:chmod 777 file-R
切换为其他用户身份的命令是:du
第一次:第一次握手:建立连接时,客户端发送syn包(syn=j)到服务器,并进入SYN_SEND状态,等待服务器确认;SYN:同步序列编号(Synchronize Sequence Numbers)。
第二次:第二次握手:服务器收到syn包,必须确认客户的SYN(ack=j+1),同时自己也发送一个SYN包(syn=k),即SYN+ACK包,此时服务器进入SYN_RECV状态;
第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包
ACK(ack=k+1),此包发送完毕,客户端和服务器进入established状态,完成三次握手
指令用途
#空指令,无任何效果
#include包含一个源代码文件
#define定义宏
#undef取消已定义的宏
#if如果给定条件为真,则编译下面代码
#ifdef如果宏已经定义,则编译下面代码
#ifndef如果宏没有定义,则编译下面代码
#elif如果前面的#if给定条件不为真,当前条件为真,则编译下面代码
#endif结束一个#if……#else条件编译块
#error停止编译并显示错误信息
static全局变量与普通的全局变量有什么区别:static全局变量只初使化一次,防止在其他文件单元中被引用;
static局部变量和普通局部变量有什么区别:static局部变量只被初始化一次,下一次依据上一次结果值;
static函数与普通函数有什么区别:static函数在内存中只有一份,普通函数在每个被调用中维持一份拷贝
第五篇:C C++程序设计大赛策划
曲阜师范大学IT协会
C语言程序设计大赛活动策划书
一、活动背景:
C语言是当今世界使用最为广泛的语言,小到家用电器,大到航空航天,无处不见C语言的身影。我校理科生及部分文科生均已开设C语言课并报名参加NCRE(全国计算机等级考试)二级C语言的考试,但成绩不甚理想。
因此,我们本着“以赛促学,全面提升”的原则,开展此次竞赛活动。希望是进一步提高大家的编程水平。为以后更深入地学习C语言和C类语言,以及参加更高层次的有关编程的竞赛活动(如数学建模、电子设计,ACM/ICPC等)做好准备。
二、活动地点:机房
三、活动目的及意义:
1.以赛促学,全面提升。推动全校科技活动发展,继承学校科技节学术文化节精神,培养学生创新和实践能力,提高全校学生的科学素养。
2.为学生的个性发展搭设平台,使学生在全面发展的基础上,展现个性,探索科学奥秘,体验创造与成功的快乐,激发对科学的求知欲望。
3.以本次活动为载体培养科技人才,加大协会宣传及建设力度,践行协会宗旨,促进科学普及。
四、活动对象:全校学生
五、人员安排:
组委会成员:协会会长、副会长,各部部长 裁判组成员:技术指导中心,出题及评分。宣传成员:
协会秘书处负责宣传文案、策划资料的整理工作。协会宣传部负责展板制作,海报制作,宣传资料打印; 学生会干部联系相关部门配合工作(场地、资金支持等等); 外联部协助进行校外宣传,争取活动资金。组织、监督人员:协会组织部,负责赛前培训报名、赛中、颁奖场地的组织,监考及收卷工作。
六、比赛方式:
组委会统计好报名名单后,把众多报名者进行分组(具体分组情况根据总报名人数和可利用的电脑数目而定),方便比赛的顺利进行。
参赛选手分批次到实验室参加上机比赛。附注:
1、根据人数多少确定是否举办初赛-决赛,或者仅举办一次比赛。
2、决赛评出一等奖 名,二等奖 名,三等奖 名,优秀奖若干。
3、程序设计大赛相关题型为上机题
七、活动流程
1、赛事准备(9月 日): 组建赛事组委会,明确分工。
与校方协商活动的具体事宜(各方面取得校方的支持),选定比赛场地。进行校内宣传(包括以展板、海报、横幅以及各班委等形式的宣传)。制定比赛题目、比赛规则和评分标准,开始报名并分组。进行校外宣传,争取活动资金。
2、赛前培训(9月 日):
由技术指导中心进行。培训时间为一下午。
3、活动开展(9月 日): 组委会连同协会其他成员全面做好赛事组织工作(包括每场比赛的组织和监督以及对突发事件的应对),与参赛选手保持联系,组织做好赛事报道工作
4、活动后继(9月 日): 解题大会暨颁奖典礼。届时将分析题目,进一步有针对性的对NCRE进行辅导。
八、经费预算
宣传横幅:30 元 展板展示:30 元
资料打印:5 元
奖金:一等奖 1 名 奖金 元
二等奖 2 名 奖金 元
三等奖 5 名 奖金 元 优秀奖 若干
九、技术参数及评奖办法
1.校级的程序设计大赛,难度适中,定位于初中级编程爱好者。2.本次程序设计大赛所有题目由组委会制定,采用黑盒测试与白盒测试相结合的评测方式。
3.本次活动均采取上机答题的方式,在规定时间内完成竞赛题目,提交试卷方可离开。
4.使用C/C++语言,只要能解决题目提出的问题,给出答案,均算通过。5.组委会阅题将根据所编程序的具体情况(如实现难易程度,代码耗时长短,是否有出错判断等)给分,从而选出优胜者。
十、赛场守则
1.竞赛者在比赛过程中不得交头接耳、左顾右盼,抄袭他人答案,一经发现此类情况,取消竞赛资格。
2.竞赛者不可携带相关文字、书籍资料,程序清单,不可携带任何电子存储介质和电子资料,不可连接互联网,一经发现立刻取消竞赛成绩。3.竞赛者不得将任何通讯工具带入竞赛现场,一经发现立刻取消竞赛成绩。4.竞赛过程中如出现计算机故障和相关疑问,请竞赛者及时联系我们负责当场比赛的裁判员。
5.参加竞赛者需保持比赛现场的情节卫生。
6.每位工作人员一定要注意自己的一言一行,注意礼貌;合理安排人员,认真执行任务,井然有序;活动资料整理后交由办公室存档。7.竞赛后安排协会干事打扫比赛现场
主办单位:学生社团联合会 协办单位:信传学院学生会 承办单位:IT协会
年 月 日