ImageVerifierCode 换一换
格式:DOCX , 页数:14 ,大小:25.89KB ,
资源ID:8729771      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/8729771.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(软考程序员常考知识点汇总.docx)为本站会员(b****7)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

软考程序员常考知识点汇总.docx

1、软考程序员常考知识点汇总20XX年软考程序员考试知识点FoxPro程序设计 1.命令文件的建立、修改和运行 (1)命令文件的建立与修改MODIFYCOMMAND/?INWINDOW/SCREEN (2)命令文件的执行DO 其中SETDEVELOPMENTON/OFF,处于ON状态是默认,执行新的版本,处于OFF状态,则执行旧版本。 (3)命令文件的注释NOTE*& 2.顺序结构程序设计 (1)CLEAR是清屏命令,SETTALKON为默认,每执行一条命令就给出回应,RETURN是一条返回命令。 (2)非格式化输入命令 ACCEPTTO接受从键盘输入的字符型数据,输入的字符串不必用引号括起来。只

2、是提示作用。 INPUTTO接受从键盘输入的C,N,D,L等,若是字符串则必须用引号括起来。 WAITTO等待从键盘输入一个字符,只能是提示作用。 SETCONSOLEON(默认,所有非格式化输入数据都显示)/OFF(相反) (3)格式化输入输出命令 格式化输出命令SAYPICTUREFONT,SETDEVICETOSCREEN屏幕输出 SETDEVICETOPRINT打印机输出 格式化输入输出命令SAYGET|PICTURERANGE,与READ合用,才能修改变量,一个READ可以修改前面多个GET的变量值,通常SAY只是提示作用。 定义文本编辑区 EDITSIZE,FONT,SCROLL通

3、过READ编辑,主要是对备注字段起作用。 清屏命令 CLEAR清除整个屏幕 行1,列1)CLEAR|CLEARTO清除屏幕局部区 3.分支语句IF ELSE ENDIF 多分支选择语句DOCASE CASE CASE CASE OTHERWISE ENDCASE 4.循环结构程序设计 DOWHILE LOOP EXIT ENDDO FOR=TOSETEP LOOP EXIT ENDFOR SCANFORWHILE LOOP EXIT ENDSCAN 5.过程及自定义函数 (1)过程PROCEDURE PARAMETERS RETURNTOMASTER 其中TOMASTER在嵌套中使用,含有PA

4、RAMETERS为有参过程。 (2)过程文件建立PROCEDURE RETURN 过程文件的打开和关闭SETPROCEDURETO CLOSEPROCEDURE (3)过程的调用DOWITH (4)变量的作用域 全局变量PUBLIC 局部变量:未经PUBLIC定义的 PRIVATE PRIVATEALLLIKE|EXCEPT隐藏指定的内存变量,避免同名变量 (5)定义自定义函数FUNCTION PARAMETERS RETURN 自定义函数的调用:函数名() 参数传递方式SETUDFPARMSTOVALUE|REFERENCE若选用VALUE为值传递(默认),不会改变变量的值,若REFEREN

5、CE,则为引用方式。 数据库的基本操作 库文件结构建立CREAT|?其中A-J作为工作区代码 在把记录输入完后,按CTRL+W或CTRL+END存盘。 追加记录APPENDBLANK 记录显示LIST/DISPLAYFIELDSFORWHILEOFFTOPRINTER/FILE 数据库文件打开USE/?ALIAS 关闭数据库文件:关闭当前工作区打开的数据库文件USE 关闭当前打开的所有的库文件CLOSEDATABASES 数据库文件结构的显示:LIST/DISPLAYSTRUCTURETOPRINTER/TOFILE 数据库文件结构的修改:MODIFYSTRUCTURE*不能同时修改字段名和宽

6、度指针的移动 绝对移动 1.GO/GOTORECORDIN/ 2.GO/GOTOTOP/BOTTOMIN/ 相对移动SKIPIN/ 插入记录INSERTBEFOREBLANK 删除记录DELETEFORWHILE SETDELETEDOFF/ON(取OFF,逻辑删除无效,反之,则有效) 恢复逻辑删除RECALLFORWHILE 物理删除PACK 理删除所有记录ZAP(只有结构无记录) 记录的修改 编辑修改EDIT.CHANGFIELDS条件 浏览编辑修改BROWSE 替换修改REPLACEWITH 数据库文件的排序与索引 排序:SORTTOON/A/C/D,FIELDSFOR 关键字只能是C,

7、N,D.*/A(升序,默认)/D(降序)/C(不区分大/小写) 需要临时文件做周转 索引:INDEXONTOFORUNIQUEADD 备注字段不能作为关键字 字段索引只能是C,N,D,多字段索引只能是C UNIQUE进行唯一索引(在记录相同,只取第一个) 未指定ADDITIVE,关闭先打开的索引文件,反之,就不关闭。 索引文件的打开USEINDEX (允许打开25个)SETINDEXTO 索引文件的关闭SETINDEXTO/CLOSEINDEX 指定主索引SETORDERTO/数据查询 顺序查询:LOCATEFORWHILE它总是把指针定位到第一个满足条件的记录上,想继续查找,则用CONTIN

8、UE 索引查询:FIND/当设置为SETEXACTOFF时,查询时不需要精确比较,反之,则需要精确比较。 SEEK它可以查询包括字符型,数值型,日期型和逻辑型在内的各种数据类型,也可以是内存变量或者是表达式 数据统计 计数命令COUNTFORWHILETO 求和命令SUMFORWHILETO/TOARRAY 求平均值命令AVERAGEFORWHILETO/TOARRAY 分类汇总命令TOTALONTOFIELDSFORWHILE要求首先对库文件进行排序或索引 数据库文件的复制 (1)库文件的复制COPYTOFIELDSFORWHILE将当前库文件中的数据(包括结构)一起复制到指定的库文件中。

9、(2)库文件结构的复制COPYSTRUCTURETOFIELDS (3)库文件与文本数据文件的转换复制 库文件复制成文本数据文件COPYTOSDF.DELIMITEDWITH/BLABKFIELDSFORWHILE 文本数据文件中的数据复制到库文件APPENDFROMSDF.DELIMITEDWITH/BLABKFORFIELDS (4)任何类型文件的复制COPYFILETO不能复制已经打开的库文件,且,必须包括主文件名和扩展名。 多重数据库文件的操作 (1)最多达225个工作区,且前十个工作区110还规定了别名AJ. (2)工作区选择命令SELECT/,从当前工作区访问其它工作区打开库文件中

10、的某个字段时,要表示为别名。字段名或者别名-字段名 (3)库文件之间的关联SETRELATIONTO/INTO/ADDITIVE其中若选,而被关联库没有建立索引,则作为记录号进行关联。 指定ADDITIVE保留以前关联。SETRELATIONTO将删除当前工作区与所有其他工作区连接 (4)库文件的连接JOINWITHTOFIELDSFOR (5)库文件的更新UPDATEONFROMREPLACEWITHRANDOM其中 网标准,于1995年由原来制定的以太网标准的IEEE802.3工作组完成。快速以太网正式名为100Base-T。 共享介质快速以太网和传统以太网采用同样的介质访问控制协议CSM

11、A/CD所有的介质访问控制算法不变,只是将有关的时间参量加速10倍。 快速以太网的三种标准:100Base-4、100Base-TX、100Base-FX 快速以太网的产品: 适配器:一边是总线结构,将数据传送至主机、中继器或HUB;另一边接到所选的介质,可以是双绞线、光纤,或者是一个介质独立接口MII,MII是用来连接外部收发器用的,其功能类似于以太网的AUI。 HUB:可分为共享机制的中继器和交换机制的交换器。数据结构 数据结构中对象的定义,存储的表示及操作的实现.线性:线性表、栈、队列、数组、字符串 树:二叉树 集合:查找,排序 能力:分析,解决问题的能力 过程: 确定问题的数据。 确定

12、数据间的关系。 确定存储结构(顺序数组、链表指针) 确定算法 编程 算法评价(时间和空间复杂度,主要考时间复杂度) 一、数组 1、存放于一个连续的空间 2、一维多维数组的地址计算方式 已知data00的内存地址,且已知一个元素所占内存空间求dataij在内存中的地址。 公式:(add+(i*12+j)*S)(假设此数组为data1012) 注意:起始地址不是data00时候的情况。起始地址为data-3和情况; 3、顺序表的定义 存储表示及相关操作 4、顺序表操作中时间复杂度估计 5、字符串的定义(字符串就是线性表),存储表示 模式匹配算法(简单和KMP(不考) 6、特殊矩阵:存储方法(压缩存

13、储(按行,按列) 三对角:存储于一维数组 三对角问题:已知Aij能求出在一维数组中的下标k;已知下标k求Aij。 稀疏矩阵:定义,存储方式:三元组表、十字链表(属于图部分,不考) 算法 数组中元素的原地逆置;对换 在顺序表中搜索值为X的元素; 在有序表中搜索值为X的元素;(折半查找) 在顺序表中的第i个位置插入元素X; 在顺序表中的第i个位置删除元素X; 两个有序表的合并;算法? 时间复杂度计算: 确定基本操作 计算基本操作次数 选择T(n) lim(F(n)/T(n)=c 0(T(n)为时间复杂度程序员:算法分析基础学习 在计算机解决问题的过程中,数据结构和算法是程序的两大要素,二者相辅相成

14、,缺一不可。算法与数据结构的好坏直接相关,一种数据结构的优劣是由实现其各种运算的算法体现的。对数据结构的分析实质上也表现为对实现其多种运算的算法分析。算法分析是一个复杂的问题,它首先涉及到优劣准则的确定。判断一个算法的优劣主要有以下几个标准: 1正确性。要求算法能够正确地执行规定的功能。这是最重要也是最基本的准则; 2可使用性。算法应当是可读的,即可读性好。为了达到这个要求,算法的逻辑必须是清晰的、简单的和结构化的; 3健壮性。要求算法具有很好的容错性,即提供例外处理,能够对不合理的数据进行检查,不会经常出现异常中断或死机现象; 4效率。算法的效率主要指算法执行时计算机资源的消耗,包括存储和运

15、行时问的开销,前者叫做算法的空间代价,后者叫做算法的时间代价。 时间代价是常用的评价指标,往往用时间复杂度来衡量。当一个算法转换成程序并在计算机上执行时,其运行所需要的时间总是取决于下列因素: 硬件的速度。CPu速度和存取数据的速度越快,则程序的执行时间越短; 所选用的程序设计语言。程序设计语言的级别越高,其执行效率就越低。 编译程序所生成目标代码的质量。对于代码优化较好的编译程序,其所生成的程序质量较高。 问题的规模。很显然,大规模的问题求解过程比小规模的问题更耗费时间。 显然,在各种因素都不能确定的情况下,很难比较算法的执行时间。也就是说,使用执行算法的绝对时间来衡量算法的效率是不合适的。

16、为此,可以将上述各种与计算机相关的软、硬件因素都确定下来,这样一个特定算法的运行工作量的大小就只依赖于问题的规模,或者说它是问题规模的函数。另一方面,要全面地评价一个算法的优劣,不仅要考虑时间的耗费,还要考虑算法对存储器的耗费。特别是对于大规模问题,对空间耗费的分析是必不可少的。因此,分别有基于时间和空间的算法分析,即算法的时间复杂度分析和空间复杂度分析。 所选用的程序设计语言。程序设计语言的级别越高,其执行效率就越低。 编译程序所生成目标代码的质量。对于代码优化较好的编译程序,其所生成的程序质量较高。 问题的规模。很显然,大规模的问题求解过程比小规模的问题更耗费时间。 显然,在各种因素都不能

17、确定的情况下,很难比较算法的执行时间。也就是说,使用执行算法的绝对时间来衡量算法的效率是不合适的。为此,可以将上述各种与计算机相关的软、硬件因素都确定下来,这样一个特定算法的运行工作量的大小就只依赖于问题的规模,或者说它是问题规模的函数。另一方面,要全面地评价一个算法的优劣,不仅要考虑时间的耗费,还要考虑算法对存储器的耗费。特别是对于大规模问题,对空间耗费的分析是必不可少的。因此,分别有基于时间和空间的算法分析,即算法的时间复杂度分析和空间复杂度分析。程序员C语言知识点 C语言的基本语句 C语言的语句主要分以下几种: (l)数据定义语句-用来定义程序中使用的各种数据,及能存放数据的对象的名称和

18、特性。 (2)表达式语句-任何在有意义的表达式之后接上分号(;)构成的语句。最常见的有 赋值表达式和函数调用表达式后加分号构成的表达式语句,分别称为赋值语句和函数调用语句。 (3)流程控制语句-用来控制程序执行过程的语句。它们有选择控制语句、循环控制语句、break语句。continue语句、return语句和goto语句等。 (4)复合语句-用花括号括住一个语句序列,即构成复合语句。复合语句用来表示其中的语句序列是一个整体,在逻辑上是单个语句,并且强调其中的语句按顺序逐一执行。 (5)空语句-只有单个分号(;)构成的语句。空语句表示没有任何操作,用于选择控制或循环控制没有特别被控制的成分语句

19、,或在复合语句的末尾放置语句标号等。 (6)其它语句-如类型定义语句等。程序员:数组与链表 数组和链表的优缺点 数组,在内存上给出了连续的空间。链表,内存地址上可以是不连续的,每个链表的节点包括原来的内存和下一个节点的信息。 数组优于链表的: 1.内存空间占用的少,因为链表节点会附加上一块或两块下一个节点的信息。 但是数组在建立时就固定了。所以也有可能会因为建立的数组过大或不足引起内存上的问题。 2.数组内的数据可随机访问,但链表不具备随机访问性。这个很容易理解,数组在内存里是连续的空间,比如如果一个数组地址从100到200,且每个元素占用两个字节,那么100-200之间的任何一个偶数都是数组

20、元素的地址,可以直接访问。 链表在内存地址可能是分散的。所以必须通过上一节点中的信息找能找到下一个节点。 3.查找速度上。这个也是因为内存地址的连续性的问题,不罗索了。 链表优于数组的: 1.插入与删除的操作。如果数组的中间插入一个元素,那么这个元素后的所有元素的内存地址都要往后移动。删除的话同理。只有对数据的最后一个元素进行插入删除操作时,才比较快。链表只需要更改有必要更改的节点内的节点信息就够了。并不需要更改节点的内存地址。 2.内存地址的利用率方面。不管你内存里还有多少空间,如果没办法一次性给出数组所需的要空间,那就会提示内存不足,磁盘空间整理的原因之一在这里。而链表可以是分散的空间地址

21、。 3.链表的扩展性比数组好。因为一个数组建立后所占用的空间大小就是固定的,如果满了就没法扩展,只能新建一个更大空间的数组;而链表不是固定的,可以很方便的夸张。程序员:软件设计规范 概述 软件设计是把需求转化为软件系统的最重要的环节,系统设计的优劣在根本上决定了软件系统的质量。 一般把设计过程划分为两个阶段:概要设计阶段和详细设计阶段。 体系结构 目前业界比较流行的软件结构模式有C/S(客户/服务器)、B/S(BROWSE/SERVER)、层次结构(上下级层次结构、顺序相邻的层次结构、含中间件的层次结构) 体系结构设计原则 合适性 即体系结构是否适合于软件的“功能性需求”和“非功能性需求”。高

22、水平的设计师高就高在“设计出恰好满足客户需求的软件,并且使开发方和客户方获取最大的利益,而不是不惜代价设计出最先进的软件。 结构稳定性 详细设计阶段的工作如用户界面设计、数据库设计、模块设计、数据结构与算法设计等等,都是在体系结构确定之后开展的,而编程和测试则是更后面的工作,因此体系结构应在一定的时间内保持稳定。 软件开发最怕的就是需求变化,但“需求会发生变化”是个无法逃避的现实。人们希望在需求发生变化时,最好只对软件做些皮皮毛毛的修改,可千万别改动软件的体系结构。如果当需求发生变化时,程序员不得不去修改软件的体系结构,那么这个软件的系统设计是失败的。 高水平的设计师应当能够分析需求文档,判断

23、出哪些需求是稳定不变的,哪些需求是可能变动的。于是根据那些稳定不变的需求设计体系结构,而根据那些可变的需求设计软件的“可扩展性”。 可扩展性 可扩展性是指软件扩展新功能的容易程度。可扩展性越好,表示软件适应“变化”的能力越强。 可扩展性越来越重要,这是由现代软件的商业模式决定的: 社会的商业越发达,需求变化就越快。需求变化必将导致修改软件的功能,现代软件的规模和复杂性要比十年前的大得多,如果软件的可扩展性比较差的话,那么修改功能的代价会很高。 现代软件产品通常采用“增量开发模式”,开发商不断地推出软件产品的新版本,从而不断地获取增值利润。如果软件的可扩展性比较差的话,每次开发新版本的代价就会很

24、高。虽然开发商抓住了商机,但却由于设计水平差而导致没有赚取多少利润,真是要活活气死。 可复用性 由经验可知,通常在一个新系统中,大部分的内容是成熟的,只有小部分内容是创新的。一般地可以相信成熟的东西总是比较可靠的,而大量成熟的工作可以通过复用来快速实现。 可复用性是设计出来的,而不是偶然碰到的。要使体系结构具有良好的可复用性,设计师应当分析应用域的共性问题,然后设计出一种通用的体系结构模式,这样的体系结构才可以被复用。程序员:C+内存泄漏的解决办法 以下三种解决方法: Parent对象。 每一个对象,都要有唯一的parent,当parent析构时,要带动他所有的children析构。 好处:实

25、现简单,且具有逻辑性。 坏处:不可以有复制构造函数。 这个也很好理解。A-B-C中,a是b的parent,b是c的parent,如果允许复制,B复制了个D,那C就有两个parent,究竟怎么析构呢? 开源库的实现: Qt实现了这种方式的内存管理,尤其是对GUI框架,十分适用。 引用计数的SharedPtr 指针,进行复制操作的时候,引用计数+1,析构的时候引用计数-1,当引用计数为0的时候,释放空间。 好处:实现简单 坏处:具有循环引用的情况。要引入WeakPtr 开源库的实现:Qt同时实现了这种技术,Boost也有相关实现。 评述:这是C+中最通用的实现手段,如果你要做一套类库,尝试使用Sh

26、aredPtr,会让事情变得更加简单。 重载new,实现GC 直接重载C+操作符,实现垃圾回收。初始化一个内存池,当内存池满的时候,进行垃圾回收操作。 好处:一劳永逸 坏处:实现困难,占用内存大,对已有的环境,不一定会有很好的支持。 评述:内存池也许不一定要做垃圾回收,如果是静态的内存池,可以加速内存分配的过程。程序员:c+学习体会 我是从c语言开始的,后来学习c+,现在使用java,刚开始接触面向对象的概念时跟你现在的情况一样,不过经过一段时间的实际编程后,现在回头再认真读一下这两个定义,发现自己有了许多深入的理解,感觉自己开始体会到当初那么多c语言的大牛为什么要转到面向对象上来了。实际编程

27、会对你的理解起到很大帮助作用的。 如果只是做些1000行以下的小程序,C+的优势倒真体现不出来,现在的程序已经到了几万行,十几万行(已经不能称为程序,是一个软件系统),编写的话需要很成熟的软件工程来控制,C+的优势就在于此,你所提到的继承,虚拟,摸版,每一个概念都有软件工程的基础。 真正的想理解C+,你应该先学OOA和OOD,因为首先面向对象是一种思想,是一种程序分析和程序设计的思想。面向对象可以可以很好的体现现实之间事务的关系。因而它是一种比较好的程序分析和设计方法。而C+语言不过是可以很好的实现这些方法的成果的一种语言,如果你愿意,你也可以用C来实现实现这些设计,一样可以做到,只是难度更大一点。国内的程序员大多只注重编程,不注重分析和设计的能力,所以到最后学到了C+的时候就感到很迷茫。所以我建议你看看北大的翻译过的一本面向对象分析和

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1