程序设计语言.ppt_第1页
程序设计语言.ppt_第2页
程序设计语言.ppt_第3页
程序设计语言.ppt_第4页
程序设计语言.ppt_第5页
已阅读5页,还剩74页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

程序设计语言 软件水平考试程序员考试 第一部分 编程语言的描述 机器语言 计算机所使用的是由 0 和 1 组成的二进制数 二进制是计算机的语言的基础 写出一串串由 0 和 1 组成的指令序列交由计算机执行 这种语言 就是机器语言 汇编语言 为了减轻使用机器语言编程的痛苦 人们进行了一种有益的改进 用一些简洁的英文字母 符号串来替代一个特定的指令的二进制串 比如 用 ADD 代表加法 MOV 代表数据传递等等 这样一来 人们很容易读懂并理解程序在干什么 纠错及维护都变得方便了 这种程序设计语言就称为汇编语言 即第二代计算机语言 然而计算机是不认识这些符号的 这就需要一个专门的程序 专门负责将这些符号翻译成二进制数的机器语言 这种翻译程序被称为汇编程序 高级编程语言 C是一种通用程序设计语言 C作为一种较低级的语言 提供了指针和地址操作的功能 C提供书写结构良好的程序所需的控制结构 C与UNIX操作系统紧密相关 UNIX操作系统及其上的许多软件都是C编写的 逻辑型语言Prolog 逻辑型语言是一类以形式逻辑为基础的语言 Prolog是这类语言的代表 Prolog建立在关系理论和一阶谓词理论基础上 具有和传统的命令型程序设计完全不同的风格 Prolog程序由一些称为事实和规则的Horn子句组成 具有很强的推理功能 适用于书写自动定理证明 专家系统 自然语言理解等问题的程序 函数型语言LISP 函数型程序语言是一类以 演算为基础的语言 LISP是典型的函数型程序语言 函数是一种对应规则 映射 它使其定义域中每一个值和值域中唯一的值相对应 Fortran是FORmulaTRANslation的缩写 中文意思是 公式翻译 它是世界上第一个被正式采用的高级编程语言 由名字就可以看出来 它非常接近于数学公式的 自然描述 主要应用于科学和工程计算领域 他是一种结构化的语言 Smalltalk被称为面向对象语言之父 Smalltalk由AlanKay DanIngalls TedKaehler AdeleGoldberg等于70年代初在XeroxPARC开发 面向对象的编程语言 面向对象的程序设计语言主要包括几个概念 对象 类和继承 如C Java C 等 特性 抽象 封装 继承 多态 对象是人们要进行研究的任何事物 它包括状态 用数据来描述 和操作 用来改变对象的状态 两方面 面对对象语言把状态和操作封装于对象体之中 并提供一种访问机制 使对象状态的具体表示和操作的具体实现都是隐蔽的 类是面向对象语言必需提供的用户定义的数据的类型 它将具有相同状态 操作和访问机制的多个对象抽象成一个对象类 在定义了类以后 属于这种类的一个对象叫作类实例或类对象 继承是面向对象语言的另一个必备要素 类与类之间可以组成继承层次 一个类的定义 称为子类 可以定义在另一个已定义类 称为父类 的基础上 子类可以继在父类中的属性和操作 也可以定义自己的属性和操作 可视化开发环境 可视化开发工具主要为语言 其代表主要为Delphi VisualBasic PowerBuilder等语言 其特点利用可视化的开发环境进行快速编程 及见即所得的开发模式 高级语言又分为C系语言和B系语言C系的代表为C C C JAVAB系的代表为VB VB net Delphi 不是C语言的关键字 2005年上半年题目 供选择的答案 45 A doB elseC fopenD static C 是错误的描述 2007年下半年 34 A Delphi和VisualBasic都是可视化编程语言B 可视化编程中采用控件技术和事件驱动工作方式C 在可视化编程中 可以不编写程序代码来完成界面的设计工作D 使用UML UnifiedModelingLanguage 开发软件不需要编写程序 A C 语言兼容C语言 因此 2006年下半年题 28 A C 的关键字与C语言的关键字完全相同B C 的数据类型与C语言的数据类型完全相同C C 编译器能编译C语言程序D C 编译器能把C语言程序翻译成C 程序 C 语言可以编写applet并通过Script程序调用执行 2006年下半年题 34 A FORTRANB C 或CC HTMLD JAVA D 以下关于程序语言的叙述 正确的是 2006年上半年题目 29 A Java语言不能用于编写实时控制程序B Lisp语言只能用于开发专家系统C 编译程序可以用汇编语言编写D XML主要用于编写操作系统内核 C 语言不是面向对象的程序设计语言 2005年下半年题目 25 A JavaB C C SmalltalkD Fortran77 D 计算机能直接识别和执行的语言是 该语言是由 组成 2004年下半年题目 42 A 机器语言B C语言C 汇编语言D 数据库语言 43 A ASCII码B SQL语句C 0 1序列D BCD码 A C 第二部分 变量与常量 某一变化过程中可以取不同数值的量 叫做变量 变量也分为值类型的变量和引用类型的变量 值类型 常用类型 结构体引用类型 数组名 对象变量 指针在过程中保持同一数值的量或数叫做常量或常数 区别 1 效率 常量在编译的时候 可以以立即数形式编译进指令 比起使用使用内存的变量要高效 2 约束 定义成常量 可以避免程序在运行中给它错误赋值 不要小看这种约束 给常量赋值的错误是很容易犯的 编译器会立即告诉你不对 3 语法 定义数组大小等 是因为编译时候要确定分配的空间 这时必须使用常量 数据类型 数据是程序操作的对象 包括常量和变量 全局量和局部量 数据类型有基本类型 如整型 字符型等 特殊类型 空类型 构造类型 数组 结构 联合 指针类型等 运算成分指明允许使用的运算符号及运算规则 一般包括算术运算 关系运算 逻辑运算 注意C系语言中 语言一般不能连等If A B C 是错误的 全局变量和局部变量的区别主要在于生存周期不同 全局变量在整个程序生成期间可见 局部变量在自己的作用域内可见 全局变量的内存分配是静态的 如果没有初值 会被初始化为0 局部变量的内存分配是动态的 如果没有初始化的 初值视当前内存内的值而定他们的作用范围不一样 局部变量又根据作用块不同 作用域也不一样 全局变量和局部变量的作用域不同 在函数中出现变量名同全局变量同名时以函数中的变量作为操作数 就近原则 当函数返回时 函数中的变量即结束了生存期 变量值为全局变量的值 编译器是以栈结构保存信息以实现的 inti 5 main printf d n i add printf d n i voidadd inti 10 printf d n i 结果 5105 程序中将多处使用的同一个常数定义为常量 其目的是为了 2007年下半年 35 A 提高程序的运行速度B 提高程序的可读性以及可维护性C 缩短源程序代码长度D 便于进行程序测试 B 所有在函数中定义的变量都称为 2006年上半年题目 44 A 全局变量B 局部变量C 简单变量D 寄存器变 B 第三部分 程序的控制语句 控制成分指明语言允许表述的控制结构 包括顺序结构 选择结构和循环结构 各种语句或者自身可以嵌套 程序常识 程序包括声明语句和执行语句IntI i 3 注释不算程序语句 在下面的流程图中 如果标记为b的运算执行了m次 m 1 那么标记为a的运算执行次数为 2004年上半年题目 16 A 1B m 1C mD m 1 D 结构化程序中的基本结构不包括 2006年下半年题 31 A 嵌套B 顺序C 循环D 选择 A 程序语言的语句从功能上大体可分为 两大类 2005年下半年题目 39 A 声明语句和可执行语句B 简单语句和复杂语句C 顺序语句和判定语句D 程序语句和注释语句 A 在while型循环结构中 2007年下半年 33 A 循环体的执行次数等于循环条件的判断次数B 循环体的执行次数多于循环条件的判断次数C 循环体的执行次数少于循环条件的判断次数D 循环体的执行次数与循环条件的判断次数无关 D 第四部分 函数 函数的用途 函数是程序模块的主要成分 是一段具有独立功能的程序 函数的使用涉及3个概念 函数定义函数声明函数调用 实参与形参的区别 includeMAINintmain void inta 0 plus a printf a d a return0 voidplus intb b 函数声明和定义 首先 分清楚声明和定义 在一个函数声明中 你需要给出函数名 函数返回值类型 如果有的话 以及在调用这个函数时必须提供的参数个数及类型 比如 elem next elem char strcpy char to constchar from voidexit int 在声明中 只有以下三项是必需的 a 函数名b 返回值类型c 参数个数及类型 在程序调用的每个函数都应被定义 在某个地方 且仅仅定义一次 函数定义也就是一个给出了函数体的函数声明注意 同一个函数的定义和声明和定义必须一致 即 a 函数名一致b 返回值类型一致c 参数个数及类型一致并没有把参数名称作为必须一致的一部分 函数的参数传递分为 值传递与引用传递 地址传递 includeMAINintmain void inta 0 plus a printf a d a return0 voidplus intb b includeMAINintmain void inta 0 plus 注意指针的使用 用指针作为参数 数组作为参数 数组作为函数的参数 传递的是数组的首元素的地址结构体作为参数 跟一般的参数没有两样 但是属于值传递 当结构体很大时 传递可能要占用较大的空间 可以考虑只传入结构体的指针 若程序中定义了三个函数f1 f2和f3 并且函数f1调用f2 f2调用f3 那么 在程序运行时不出现异常的情况下 函数的返回方式为 2007年下半年 32 A 先从f3返回f2 然后从f2返回f1B 先从f3返回f1 然后从f1返回f2C 先从f2返回f3 然后从f3返回f1D 先从f2返回f1 然后从f1返回f3 A 函数f g 的定义如下图所示 调用函数f时传递给形参a的值为1 若采用传值 callbyvalue 的方式调用g c 则函数f的返回值为 若采用传引 callbyreference 的方式调用g c 则函数f的返回值为 2006年下半年题 29 A 7B 5C 4D 3 30 A 3B 4C 5D 7 D C 函数f g 的定义如下图所示 调用函数f时传递给形参x的值为5 若采用传值 callbyvalue 的方式调用g a 则函数f的返回值为 若采用传引用 callbyreference 的方式调用g a 则函数f的返回值为 2006年上半年题目 A C 在下面的程序代码中 a是整型全局变量 b是整型局部变量 x是整数形参 若调用com 时以引用调用的方式传递信息 则输出结果为 若调用com 进以传值的方式传递信息 则输出结果为 2005年下半年题目 43 A 8B 12C 14D 16 44 A 8B 12C 14D 16 D B 已知函数f1 f2 的定义如下图所示 如果调用函数f1时传送给形参x的值是2 若a和y以引用调用 callbyreference 的方式传递信息 则函数f1的返回值为 若a和y以值调用 callbyvalue 的方式传递信息 则函数f1的返回值为 2005年上半年题目 47 A 6B 10C 14D 随机数 48 A 4B 6C 10D 12 C B 在下面的程序中 若实参a与形参x以引用调用 callbyreference 的方式传递信息 则输出结果为 若实参a与形参x以值调用 callbyvalue 的方式传递信息 那么输出结果为 2004年上半年题目 11 A 1B 2C 3D 4 12 A 1B 2C 3D 4 D B 在下面的主程序中 实参a与形参x以引用调用 callbyreference 的方式传递信息 实参b与形参y以值调用 callbyvalue 的方式传递信息 那么 从过程 compute 返回主程序后a和b的值分别为 2003年程序员题目 16 A 5和2B 5和12C l和2D 1和12 A 在C语言中 若函数调用时实参是数组名 则传递给对应形参的是 2004年上半年题目 10 A 数组空间的首地址B 数组的第一个元素值C 数组中元素的个数D 数组中所有的元素 A 第五部分 程序的编译与异常 程序设计语言的定义涉及语法 语义和语用3个方面 语法是指由程序语言的基本符号组成程序中的各个语法成分的一组规则 包括词法规则和语法规则 由形式语言进行描述 语义是程序语言中按语法规则构成的各个语法成分的含义 可分为静态语义和动态语义 程序运行的效果反映了该程序的语义 语用表示了构成语言的各个记号和使用者的关系 涉及符号的来源 使用和影响 语言处理程序基础 汇编语言基本原理编译程序基本原理解释程序基本原理正规式 汇编语言 汇编语言是为特定的计算机或者计算机系统设计的面向机器的语言 汇编语言中的语句可以分成两大类 与机器指令相对应的可执行汇编语句 汇编控制语句 即伪指令 编译程序基本原理 编译程序的功能是把用高级语言书写的源程序翻译成与之等价的目标程序 汇编语言或者机器语言 编译程序的工作过程分为6个阶段 词法分析阶段 语法分析阶段 语义分析阶段 中间代码生成阶段 代码优化阶段和目标代码生成阶段 编译程序基本原理 编译程序基本原理 词法分析阶段词法分析的任务是对由字符组成的单词进行处理 从左至右逐个字符地对源程序进行扫描 产生一个个的单词符号 把作为字符串的源程序改造成为单词符号串的中间程序 执行词法分析的程序称为词法分析程序或扫描器 语法分析阶段编译程序的语法分析器以单词符号作为输入 分析单词符号串是否形成符合语法规则的语法单位 如表达式 赋值 循环等 最后看是否构成一个符合要求的程序 按该语言使用的语法规则分析检查每条语句是否有正确的逻辑结构 程序是最终的一个语法单位 编译程序的语法规则可用上下文无关文法来刻画 编译程序基本原理 语义分析阶段在编译过程中执行 中间代码生成阶段中间代码是源程序的一种内部表示 或称中间语言 中间代码的作用是可使编译程序的结构在逻辑上更为简单明确 特别是可使目标代码的优化比较容易实现中间代码 即为中间语言程序 中间语言的复杂性介于源程序语言和机器语言之间 中间语言有多种形式 常见的有逆波兰记号 四元式 三元式和树 编译程序基本原理 代码优化阶段代码优化是指对程序进行多种等价变换 使得从变换后的程序出发 能生成更有效的目标代码 所谓等价 是指不改变程序的运行结果 所谓有效 主要指目标代码运行时间较短 以及占用的存储空间较小 这种变换称为优化 编译程序基本原理 目标代码生成阶段目标代码生成是编译的最后一个阶段 目标代码生成器把语法分析后或优化后的中间代码变换成目标代码 解释程序基本原理 解释程序是一种语言处理程序 它直接执行源程序或源程序的内部形式 它并不产生目标程序 这是它和编译程序的主要区别 解释系统的结构可分成两个部分 1 包括通常的词法分析程序以及语法和语义分析程序 它的作用仍是把源程序翻译成中间代码 2 解释部分 用来对第一部分所产生的中间代码进行解释执行 完成真正的解释 高级语言实现语言处理有4种方案 1 源程序被直接解释执行 2 先将源程序翻译成高级中间代码 然后再扫描和解释执行高级中间代码 3 先将源程序转化成和机器代码十分接近的低级中间代码 再解释执行这种中间代码 4 源程序被最终翻译成机器语言表示的目标程序 这类系统的目标程序执行效率最高 编译系统与解释系统比较 1 编译系统在执行速度上都优于建立在解释执行基础上的系统 2 编译系统的缺点是其复杂性高 这使得它的开发和维护费用都大 3 解释系统比较简单 可移植性较好 适合于以交互方式执行程序 4 解释系统缺点是执行速度慢 5 纯粹的解释和纯粹的编译都是极端 因此一般是两种技术的结合 先将源程序编译形成中间代码 然后由解释器解释执行 正规式 正规式也称正则表达式 也是表示正规集的工具 也是我们用以描述单词符号的方便工具 编辑 在开发工具里写程序预处理 加载一些头文件 宏替换编译 将 c或者 cpp文件转化为目标文件 o 链接 将所有的 o及一些动态链接库文件 exe dll等 整合到一块装入内存 把整合好的东东放入内存执行 获取CPU的控制权 开始运行 当程序运行陷于死循环时 说明程序中存在 在C语言中 函数定义及函数调用应该遵循的原则是 以求n 为例 采用递归方式编写的程序相对于递推方式的程序执行效率较低的原因是 18 A 语法错误B 静态的语义错误C 词法错误D 动态的语义错误 19 A 可以进行函数的嵌套定义 不可以进行函数的嵌套调用B 不可以进行函数的嵌套定义 可以进行函数的嵌套调用C 既可以进行函数的嵌套定义 也可以进行函数的嵌套调用D 既不能进行函数的嵌套定义 也不能进行函数的嵌套调用 20 A 递归程序经编译后形成较长目标代码 所以需要较多的运行

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论