软考 软件设计师 第二章 程序设计语言

一、程序设计语言基本概念

  1. 真值表检验
    在这里插入图片描述

  2. 函数调用时基本的参数传递方式有传值与传地址两种,
    1.在传值方式下是将实参的值传递给形参,因此实参可以是表达式(或常量),也可以是变量(或数组元素),这种信息传递是单方向的,形参不能再将值传回给实参。
    2.在传地址方式下,需要将实参的地址传递给形参,因此,实参必须是变量(数组名或数组元素),不能是表达式(或常量)。 这种方式下,被调用函数中对表达式参数的修改实际上就是对实际参数的修改,因此客观上可以实现数据的双向传递

  3. 一种程序设计语言规定其程序中的数据必须具有类型,好处如下:
    (1)有利于在翻译程序的过程中为数据合理分配存储单元,因为程序设计语言为不同的数据类型规定了其所占的存储空间,如果数据类型确定,其所占的存储空间也是确定的。
    (2)有利于对参与表达式计算的数据对象进行检查,因为知道数据的数据类型,我们就可以根据类型来判断该数据是否可以参与某表达式计算,如自加、自减的操作数不允许是浮点数,这只要根据数据的类型就能判断某操作数,是否能进行自加、自减运算。
    (3)有利于规定数据对象的取值范围及能够进行的运算,根据数据类型,我们可以数据的存储空间,也同时能知道数据的表示范围,如C语言中的整型数据,它占两个字节(16位),能表示的数据范围就是-216至216-1。故本题答案为B。

  4. 变量是计算机内存单元的抽象,在程序中表示数据,具有名称、类型、值、地址、作用域、存储类别等属性,其值在运行过程中由指令进行修改。
    常量也用于在程序中表示数据,但常量在程序运行过程中不能修改,常量也具有类型,如整型常量、浮点型常量、字符串常量等,也称为字面量或文字。

  5. 在源程序中,可由用户(程序员)为变量、函数和数据类型命名

  6. 程序运行时的用户内存空间一般划分为代码区、静态数据区、栈区和堆区,其中栈区和堆区也称为动态数据区全局变量的存储空间在静态数据区

  7. C/C++是编译型程序设计语言,常用于进行系统级软件的开发
    Java、Python和JavaScript都是解释型程序设计语言,
    其中Python和JavaScript脚本语言

  8. 脚本语言又被称为扩建的语言,或者动态语言,是为了缩短传统的编写-编译-链接-运行(edit-compile-link-run)过程而创建的计算机编程语言,用来控制软件应用程序。脚本通常以文本(如ASCII)保存,只在被调用时进行解释或编译。脚本语言与编程语言也有很多相似地方,其函数与编程语言比较相像一些,其也涉及到变量与编程语言之间最大的区别是编程语言的语法和规则更为严格和复杂一些。脚本语言常用于描述格式化和链接,编程效率不如编译型语言

  9. 运行时(把过程调用和响应调用所需执行的代码)结合是动态绑定编译时结合是静态绑定

  10. 链表中的结点空间需要程序员根据需要申请和释放,因此,数据空间应采用堆存储分配策略

  11. HTML (Hypertext Marked Language,超文本标记语言),用于互联网的信息表示。用HTML编写的超文本文档称为HTML文档,它能独立于各种操作系统平台(如UNIX,Windows等)。HTML文档是纯文本文档,可以使用记事本、写字板等编辑工具来编写HTML文件,其文件(文档)的扩展名是.html或.htm,它们需要通过WWW浏览器进行解释并显示出效果。
    XML (Extensible Markup Language,可扩展的标记语言)1.0 标准于1998年2月10日发布,被认为是继HTML和Java编程语言之后的又一个里程碑式的Internet技术。XML 丰富了HTML的描述功能,可以描述非常复杂的Web页面,如复杂的数字表达式、化学方程式等。XML的特点是结构化、自描述、可扩展和浏览器自适应等。
    用于WAP标记语言就是WML (Wireless Markup Language ),其语法跟XML 一样,是XML的子集
    PHP (Hypertext Preprocessor)是一种在服务器端执行的、嵌入HTML文档的脚本语言,其语言风格类似于C语言,被网站编程人员广泛运用。

  12. alink用于设置正在被击中的链接的颜色。
    vlink用于设置已使用的链接的颜色。
    background用于设置背景图片的URL。
    bgcolor用于设置文档整体背景颜色。

  13. <tr>标记用于定义表格中的一行
    <col>标记用于定义表格中一个或多个列的属性值
    <td>标记用于定义表格中的一个单元格
    <title>标记用于定义文档标题。

  14. 在HTML语言中,可以通过使用**标签定义一个指向电子邮件地址**的超级链接,通过该链接可以在Internet中发送电子邮件。

  15. XML文件第一行必须是声明该文件是XML文件以及它所使用的XML规范版本。在文件的前面不能够有其他元素或者注释。所有的XML文档必须有一个根元素。XML文档中的第一个元素就是根元素。所有XML文档都必须包含一个单独的标记来定义,所有其他元素都必须成对地在根元素中嵌套。XML文档有且只能有一个根元素。所有的元素都可以有子元素,子元素必须正确地嵌套在父元素中。在XML中规定,所有标识必须成对出现,有一个开始标识,就必须有一个结束标识,否则将被视为错误,标记之间不能交叉嵌套

  16. 1、可视化程序设计是以“所见即所得”的编程思想为原则,力图实现编程工作的可视化,即随时可以看到结果,程序与结果的调整同步。
    2、与传统的编程方式相比,“可视化程序设计”仅通过直观的操作方式即可完成界面的设计工作。
    3、可视化程序设计语言的特点主要表现在两个方面:
    一是基于面向对象的思想,引入了控件的概念和事件驱动;
    二是程序开发过程一般遵循以下步骤,即先进行界面的绘制工作,再基于事件编写程序代码,以响应鼠标、键盘的各种动作。
    4、可视化程序设计最大的优点是设计人员可以不用编写或只需编写很少的程序代码,就能完成应用程序的设计,这样就能极大地提高设计人员的工作效率。

二、文法分析

  1. 软件开发小组的沟通路径受到小组组织形式和规模的影响。若任意小组成员之间均可能有沟通路径,则可用完全连通图来对开发小组的沟通路径建模,最多的沟通路径为完全连通图的边数,即n个成员的开发小组的沟通路径是n(n-1)/2,因此8个成员的开发小组的沟通路径有28条。

  2. 沟通渠道公式如下:M=n(n-1)/ 2*。M表示沟通渠道数,n表示项目中的成员数

  • aa * bb * 表示的字符串特点是:若干个a之后跟若干个b,a和b都至少出现1次。
  • a * bb * 表示的字符串特点是:若干个a之后跟若干个b,a可以不出现,b至少出现1次。
  • aa * b * 表示的字符串特点是:若干个a之后跟若干个b,a至少出现1次,b可以不出现。
  • a * b * 表示的字符串特点是:若干个a之后跟若干个b,a和b都可以不出现。
  1. 语言L={ambn|m≥0,n≥1} 中,若干个a之后跟若干个b,a可以不出现,b至少出现1次。

  2. (b|ab)* b表示的字符串集合为{b,bb,abb,bbb,abab,bbbb,abbb,babb,… },除了以b结尾,还要求每个a后面至少有1个b。
    (ab * )* b表示的字符串集合为{b,ab,abb,aab,abbb,aaab,abab,…},除了以b结尾,还要求以a开头(除了仅有1个b的情形)。
    a *b *b 表示的字符串集合为{b,ab,bb,abb,aab,bbb,abbb,aabb,aaab,bbbb,… },除了以b结尾,还要求若干个a之后连接若干个b,b只能出现在a之后。
    (a|b)*b表示的字符串集合为{b,ab,bb,aab,abb,bab,bbb,aaab,aabb,aba),abbb,baab,babb,bbab,… }

  3. L = {anbn|n>=l}中的字符串特点是a的个数与b的个数相同,且所有的a都在b之前,该集合不是正规集,不能用正规式表示,也不能通过有限自动机识别。 正规集可用正规式描述,用有限自动机识别。

  4. 在这里插入图片描述
    非确定有限状态自动机与确定有限状态自动机的最大区别是它们的转移函数不同。
    确定有限状态自动机每一个可能的输入只有一个状态的转移
    非确定有限状态自动机每一个可能的输入可以有多个状态转移,接受到输入时从这多个状态转移中非确定地选择一个。在本题中给出的图M1中,我们可以看到当在状态A输入0时,它可以转移到它自己,也可以转移到状态B,所以M1是非确定的。而M2中不存在这样的情况,因此是确定的有限自动机。

三、汇编、编译、解释系统

  1. 编译和解释方式是翻译高级程序设计语言的两种基本方式。 解释程序也称为解释器,它或者直接解释执行源程序,或者将源程序翻译成某种中间表示形式后再加以执行;
    编译程序(编译器)则首先将源程序翻译成目标语言程序, 然后在计算机上运行目标程序。
    这两种语言处理程序的根本区别是:
    编译方式下,机器上运行的是与源程序等价的目标程序,源程序和编译程序都不再参与目标程序的执行过程;
    而在解释方式下,解释程序和源程序(或其某种等价表示)要参与到程序的运行过程中,运行程序的控制权在解释器。解释器翻译源程序时不产生独立的目标程序,而编译器则需将源程序翻译成独立的目标程序。

  2. 记号流,词法分析的输出是记号流,也就是语法分析的输入。
    字符流,在Java中,根据处理的数据单位不同,分为字节流和字符流。字符流是由字符组成的,例如 FileReader、FileWriter、BufferedReader、BufferedWriter、InputStreamReader、OutputStreamWriter 等。
    源程序,词法分析的任务是把源程序的字符串转换成单词符号序列。
    分析树,如果没有语法错误,语法分析后就能正确的构造出其语法树。

  3. 编译是将高级语言源程序翻译成机器语言程序(汇编形式或机器代码形式),反编译是编译的逆过程。反编译通常不能把可执行文件还原成高级语言源代码只能转换成功能上等价的汇编程序

  4. 中间代码”是一种简单且含义明确的记号系统与具体的机器无关,可以有若干种形式。可以将不同的高级程序语言翻译成同一种中间代码。由于与具体机器无关,使用中间代码有利于进行与机器无关的优化处理,以及提高编译程序的可移植性。

  5. 中间代码是源程序的一种内部表示,或称中间语言。中间代码的作用是可使编译程序的结构在逻辑上更为简单明确,使用中间代码可提高编译程序的可移植性,常见的有逆波兰记号、四元式、三元式和树

  6. 编译过程中为变量分配存储单元所用的地址是逻辑地址程序运行时再映射为物理地址

  7. 编译过程需要进行出错处理和符号表管理。符号表的作用是记录源程序中各个符号的必要信息,以辅助语义的正确性检查和代码生成,在编译过程中需要对符号表进行快速有效地査找、插入、修改和删除等操作符号表的建立可以始于词法分析阶段,也可以放到语法分析和语义分析阶段,但符号表的使用有时会延续到目标代码的运行阶段。

  8. 程序已经开始运行,说明编译时无错误,因此不是语法错误和词法错误,
    编译时发现的语义错误称为静态的语义错误
    运行时陷入死循环属于动态语义错误

  9. 语法分析方法分为两类:自上而下(自顶向下)分析法和自下而上(自底向上)分析法,
    递归下降分析法和预测分析法属于自上而下分析法
    移进-归约分析法属于自下而上(自底向上)分析法

  10. 语法错误是指由于编程中输入不符合语法规则而产生的,例如:表达式不完整、缺少必要的标点符号、关键字输入错误、数据类型不匹配、循环语句或选择语句的关键字不匹配等。通常,
    编译器对程序进行编译的过程中,会把检测到的语法错误以提示的方式列举出来,又称为编译错误。
    语法错误的调试,则可以由集成开发环境提供的调试功能来实现,在程序进行编译时,编译器会对程序中的语法错误进行诊断。编译正确的程序必然不包含语法错误。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值