文档库 最新最全的文档下载
当前位置:文档库 › 浅谈程序设计语言中四种语言范型的区别

浅谈程序设计语言中四种语言范型的区别

浅谈程序设计语言中四种语言范型的区别
浅谈程序设计语言中四种语言范型的区别

浅谈程序设计语言中四种语言范型的区别

byclara

过程式程序设计语言:

?基本观点:计算实现的模型如果按冯·诺依曼原理强制改变内存中的值叫命令(或译指令、强制Imperative式)的。所有过程语言都基于这个原理。由于强制改变值,程序状态的变化没有一定规则,程序大了就很难查错,很难调试,不易证明其正确。组

织程序的范型即: 算法过程+数据结构。到目前软件开发主导语言仍是过程式语言。

近代命令式语言增加了模块强制类型检查、抽象数据类型、类属等机制可开发较安

全、可靠的大程序。命令型范式强调的是一个可以方便解决问题的过程。

?表达上的特点:面向过程就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现。

原始的程序设计范型是:

确定需要哪些过程;

采用能找到的最好的算法。

?执行效率:

执行效率最高

?程序的并发,安全,程序的控制,类型系统:

1.并发性:

支持程序的并发性处理,提供并发线程调度。

2.安全:

安全性不高。其中表现在:1.滥用goto,通过结构化程序设计和限制少量可控制的跳转,已经完全解决。2.悬挂指针,尽可能多用引用和在堆栈框架中分配指针,可消除大量悬挂指针。但引用的对象依然有时、空问题。没有完全解决。3.函数副作用,由于冯·诺依曼机的本质是改变变量的存储从而改变程序状态,但是状态时空效应不可免,副作用不可能消除。

3.程序控制:

通常的计算机程序总是由若干条语句组成,从执行方式上看,从第一条语句到最后一条语句完全按顺序执行,是简单的顺序结构;在程序执行过程当中,根据用户的输入或中间结果去执行若干不同的任务则为选择结构;如果在程序的某处,需要根据某项条件重复地执行某项任务若干次或直到满足或不满足某条件为止,这就构成循环结构。过程式程序设计语言并不是只有简单的顺序结构,而是顺序、选择、循环三种结构的复杂组合。其中,选择控制语句如:i f;s w i t c h、c a s e,循环控制语句如:f o r、w h i l e、d o...w h i l e,转移控制语句如:b r e a k、c o n t i n u

e、g o t o。

4.类型系统:

有限类型,指针类型,复合类型(数组类型),记录类型,联合类型,集合类型等类型组成的,并可以对这些类型进行操作。

?适用范围:

应用范围非常广,由于效率非常高,通常用来设计需要严格控制执行时间的系统,

同时能够准确的控制系统的存储调度等。

面向对象语言:

?基本观点:将数据和其上的操作封装于对象中。对象归属于类对象,类对象有继承,实例对象上的操作可动态决定。程序是相互发消息通信的对象集合。代表语言有

Simula-67,Smalltalk,支持此范型的典型语言还有EIFFEL,JAVA,C++等。面向对象是把构成问题事务分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描叙某个事物在整个解决问题的步骤中的行为。我们对面向对象程序设计的定义是“面向对象程序设计是一种方法,这种方法为数据和函数提供共同的独立内存空间,这些数据和函数可以作为模板以便在需要时创建类似模块的拷贝。这样的程序设计方法称为面向对象程序设计。”从以上定义可以看到,一个对象被认为是计算机内存中的一个独立区间,在这个区间中保存着数据和能够访问数据的一组操作。因为内存区间是相互独立的,所以对象可以不经修改就应用于多个不同的程序中。

?表达上的特点:在基于对象程序设计范型的基础上,加入继承和多态这两个组重要的概念就演变出了现在最流行的程序设计方法---面向对象程序设计。

其范型是:

确定需要哪些类;

为每个类提供完整的一组操作;

利用继承去明确地表示共性。

另外,面向对象程序设计的一些显著的特性包括:封装、抽象、继承、多态、动态束定。只有这五个特征全具备才是面向对象程序设计语言。

?执行效率:

由于对程序对象进行了优雅的封装,所以程序执行效率比过程式程序设计语言降低了,比如C++就比C的效率降低了很多。

?程序的并发,安全,程序控制,类型系统:

1.并发性:

并发性很好,很多面向对象的程序设计语言都支持并发性。比如JAVA语言,和EIFFEL语言,均是并发式程序设计语言。

2.安全性:

较高,由于去掉了指针引用,并引入了垃圾回收机制等特点,比过程式程序设计语言要高。

3.程序控制:

程序控制比过程式程序语言更强。

4.类型系统:

封装和继承带来可见性继承问题。原则是不因为类型扩展改变原定义类的可见性。

各语言为此设的机制不同,C++较死,Eiffel较活,Ada居中。强类型语言编译后即要束定,实现动态束定的比较麻烦,解决的办法是留出束定表,编译时只作缺省束定,每当新派生一类型即往其中注册(常指针指向该例化类型的地址),使用该操作时按结合类型特征值派送。显然,派送表要留到运行时。Ada是标签值,C++是子类(型)名,Eiffel是实体名。为此,C++设虚函数机制。

?适用范围:

面向对象程序语言以对象为基础,利用特定的软件工具直接完成从对象客体的描述到软件结构之间的转换。这是面向对象设计方法最主要的特点和成就。面向对象设

计方法的应用解决了传统结构化开发方法中客观世界描述工具与软件结构的不一致性问题,缩短了开发周期,解决了从分析和设计到软件模块结构之间多次转换映射的繁杂过程,是一种很有发展前途的系统开发方法。

但是由于有些面向对象程序语言有垃圾回收机制等特点,所以不能应用于高实时性的系统。

函数式语言:

?基本观点:程序对象是函数及高阶函数,组织程序的范型是函数定义及引用。

代表语言有LISP、FP、ML、Miranda。函数式范型使程序员集中于把问题的解决用较小的问题的解来描述。传统程序设计语言中的赋值等概念,在函数式程序设计语言中消失。函数式程序的一个最本质的特性,就是函数值唯一地由其参数值所确定。

只要使用相同的参数值,对此程序的不同的调用总是得到相同的结果。这种性质称为引用透明性,有助于程序的模块化。函数式程序设计语言具有较强的组织数据结构的能力,可以把某一数据结构(如数组)作为单一值处理;可以把函数作为参数,其结果也可为函数,这种定义的函数称为高阶函数。这些由函数表达式所表示的程序简明、紧凑和易于维护。过去,这种程序设计称为应用性程序设计。1977年,J.

巴克斯提出函数式程序设计的概念。一般认为表处理语言(LISP)是最早的函数式程序设计语言。但是,LISP的重点是将函数应用于对象,以产生新的对象,必要时再上升为函数。巴克斯所提出的函数式程序设计,则是引用函数型产生新函数,程序设计时从一般的对象空间上升到函数空间,因而具有优越的数学性质,有助于程序的理解、推理和验证。

?表达上的特点:

1.严禁破坏性赋值通过以下四种方法实现:[1]存储计算子表达式的中间结果。全局符号即按λ演算的符号,声明时给出,参数名束定于变元表达式。where子句内的是局部符号名,整个的where部分以堆栈帧实现,局部名存放中间计算结果。where 可嵌套产生块结构的名字束定。这样就可以达到存储计算子表达式的中间结果[2]条件语句的重要组成。用条件表达式完全可以代替条件语句,其返回值通过参数束定或where子句束定于名字,以此来实现[3]用于循环控制变量。实现方式如下:函数式语言都要定义表数据结构,因为归约和递归计算在表上很方便。对整个表操作实则是隐式迭代,不用循环控制变量。对于顺序值也都用表写个映射函数即可隐式迭代。即以递归来代替while_do。[4]处理复杂数据结构(增删改某个成分)。

2.完全不考虑语句顺序:用嵌套代替语义相关的顺序,用懒求值代替顺序,利用卫式进一步消除顺序性

3.全部采用懒求值

?执行效率:

执行效率较低。效率普遍认为是函数式语言的大问题,到目前为止虽然新语言版本在效率问题上作了许多改进,从过去比顺序的命令式语言慢200-1000倍到近来的

3-5倍。

原因如下:1.函数是第一类对象,局部于它的数据一般要在堆(heap)上分配,为了避免悬挂引用,要有自动重配的检查。2.无类型(如LISP)要在运行中检查类型,即使是强类型的(如ML,Miranda)减少了类型动态检查,但函数式语言天然匹配选择模式的途径也是运行低效原因。3.懒求值开销大:每次用到函数的参数,每次从复合值中选出一个值时都要进行检查,以免出现未求值的表达式。在急求值的语言中,

(如命令式的)就不需这种检查。ML也采用急求值。4.中间复合值一多费时费空间。

如本章所述复杂对象每中间修改一次就要重新生成,通过程序变换减少中间值则可

提高效率。5.无限表动态生成,计算一次增长一个元素!效率也很低。

?程序的并发,安全,程序控制,类型系统:

1.并发性好:

函数式语言被认为是非常适用于处理并发性问题的工具,共享值不需加特殊保护,因为他们不会被更新。所以在函数式语言中,显式同步结构是不必要的,并且在分

布式实现过程中能随意复制共性,因为并行进程之间不会互相干扰,而这大大简化

了推理和测试。

2.安全:

使用懒求值来保证安全性。

3.程序控制:

从数学的指称意义上对程序进行控制。命令语言程序是有破坏性赋值的。恰巧出错

都在这里。以表达式和嵌套表达式代替语句组就避免了赋值的武断性。内嵌套表达

式的结果值又作外套表达式变元,即数据一直在有规则的表达式之间传递,不涉及

具体环境和实现,这就是所谓引用透明性原理。虽然仍在同一环境的运算器、存储

器上实现,只借用它的计算和存放中间值和结果值的功能。所以可以从数学的指称

意义上控制整个程序。

4.类型系统:

以Miranda为例,基本类型有字符(char类型,加单引号的字母),真值(bool类型,值为True和False)和数(num类型,包括整数、实数)。数据结构只有表和元组,串是字符表,串字面量可以用双引号括着的字符串,也可以写作字符表。

?适用范围:

由于函数式程序设计语言的简明性和独特的表达能力,可用它来研究传统程序设计

语言的语义。一种方法是用于确定一个解释程序的定义,作为被研究的语言的语义;

另一种方法是将被研究的语言写成的程序转换成与之等价的函数式程序。在人工智

能领域中,需要用复杂的算法去处理一些复杂的(通常是符号的)数据结构。LISP

语言成功地应用于这一领域,说明了函数式程序设计的独特优越性。巴克斯分析了

传统程序设计语言的缺陷,认为这些缺陷主要是由于诺伊曼式系统结构所造成的。

他所提出的函数式程序设计(简称FP),摆脱了传统的诺伊曼计算机结构,需要一种新的非诺伊曼式的系统结构为后援。一些具有新概念的计算机,如归约机、数据流

机,以及专为某种函数式语言(如FP)设计的计算机正在研究和发展中。现代既需要研究在诺伊曼式计算机上如何更有效地实现函数式程序设计语言的问题,也需要

研究适应这种语言的新型计算机结构。

逻辑式语言:

?基本观点:程序对象是常量,变量和谓词、组织程序的范型是定义谓词并写引用谓词的公式,并构造满足谓词的事实库和约束关系库。代表语言有Prolog。逻辑程序设计的基本观点是程序描述的是数据对象之间的关系,它的抽象层次更高而不限于

函数(映射)关系。关系也是联系,对象和对象、对象和属性的联系就是我们所说的

事实。事实之间的关系以规则表述,根据规则找出合乎逻辑的事实就是推理。因此,逻辑程序设计范型是陈述事实,制定规则,程序设计就是构造证明。程序的执行就

在推理,和传统程序设计范型有较大的差异。

?表达上的特点:基于自动定理证明的逻辑语言,有其独特的程序设计风格1.证明性:因为它不描述计算过程而是描述证明过程。例如,有一个问题: 对数组A按升序排序,我们怎样编逻辑程序呢?我们只好构造一个和A那样大的数组B,而且它是排好升序的,我们证明命题:

“存在一个数组B它是数组A重排升序”。

2.描述性:这个程序是用Prolog写的,我们虽未介绍它的语法,一经简单解释我们即可读懂该程序。它的风格是: 若要A成立,做B,做C,做D,…再细化,若要B做出则要做P,做Q,做R,…这与过程式语言自顶向下描述没什么差别,且比较自由,没有严格的顺序性。当然程序执行还需有事实的陈述,以及需求证明的查询。

下面给出一个小例子:求平均成绩的逻辑程序

打开一分数文件scores,读入分数求和并用的数N除之得平均成绩。

要使求平均成绩程序正确,必先打开(see)文件,从中得到输入,得N个数的总和记以N和Sum,关闭(seen)文件后求平均值Av,打印之。至于如何得到Sum和N,细化谓词getinput(_,_)。若要getinput成立,先读入一原子X(ratom是系统提供的谓词)。若未至文件末尾,读其余分数并求和。getinput是递归定义,并相应断言Sum ,N和Sum1,N1的关系。如果已至文件结束标记eof则输入为(0,0)。这个程序为求平均分数给出三条规则,‘,’号即子句的‘∧’连接,意即所有子句为真,左端谓词才成立。

3.使用表和递归描述:逻辑程序第三个特点是大量用表和递归实现重复操作,递归特别利于谓词描述,我们只要能说明特征谓词的一步动作为真,其余如法炮制,程序就设计完了,上例中,getinput,读一数X,求和并令门数加1,其余照做。?执行效率:以经典的逻辑式程序设计语言Prolog为例,尽管由于编译技术的改进(有了编译的非解释型Prolog),Prolog程序的效率由于依靠参数束定的合一匹配,它的效率仍不及传统过程语言。也正是由于它的声明性质,程序员在优化算法时作用有限。因为它的基本推理算法是确定的,且程序正文看不出计算过程,以不变的递归下降算法应万变,当然就没有过程式语言设计精巧算法效率高。

?程序的并发,安全,程序控制,类型系统:

以典型的逻辑程序设计语言Prolog为例:

1.很高的并发性:在程序员尚不清楚如何组织数据和计算过程的应用中,Prolog 有极大优势,因为它证明的是后果而不是过程,且对程序的顺序性要求不严。只陈述应如何如何,要如何如何,并未详细安排计算过程。正是由于非过程性,它也成为潜在的并行程序设计语言的候选者,所以,当今在高度并发的连接机(Connection Machine)上,采用Prolog作为软件语言。

2.很高的安全性:Prolog程序具有自文档性,由于论域直接就是问题域,谓词清晰

描述了论域对象的特征与关系,而实现是单一的递归下降匹配算法。没有影响描述的过多实现细节,自文档性好是必然的。它的非过程性和没有“隐藏的语义”使程序更具有安全性。即程序员控制整个程序比较方便,且不需了解更多实现细节。

3.程序控制:并不关注程序控制的部分,注重程序中证明部分,将逻辑和控制分开

的正交性简化了正确性证明,因为程序员只需关注证明的逻辑部分,而优化控制提高效率并不影响证明的正确性。

4.类型系统:通常对类型要求不严格,例如:Prolog是无类型的,程序是理论,可以对应多个模型(也可以没有),因而原子在不同模型中是不同的对象。

?适用范围:

一般的逻辑程序设计语言(以prolog为例)(具有自文档性、非过程性、逻辑表达能力强。描述性使程序清晰、具有潜在的并行性。Prolog的缺点是只适合较小程序。

计算效率不高。

高级语言程序设计(VB)随堂练习答案DOC

高级语言程序设计(VB)随堂练习答案 第1章概述·1.1程序设计语言 当前页有1题,你已做1题,已提交1题,其中答对1题。 1. https://www.wendangku.net/doc/bd3288340.html,是一种( )程序设计语言。 A. 面向事件 B. 面向属性 C. 面向对象 D. 面向过程 答题: A. B. C. D. (已提交) 参考答案:C 问题解析: 第1章概述·1.2程序设计 当前页有2题,你已做2题,已提交2题,其中答对2题。 1.把源程序代码翻译为目标程序代码可以使用的翻译方式为( )。 A. 嵌入方式 B. 运行方式 C. 连接方式 D. 解释方式或编译方式 答题: A. B. C. D. (已提交) 参考答案:D 问题解析: 2.编译程序时出现的错误称为( ) 错误。 A. 语法或编译 B. 运行 C. 逻辑 D. 计算 答题: A. B. C. D. (已提交) 参考答案:A 问题解析: 第1章概述·1.3建立简单控制台应用程序 当前页有3题,你已做3题,已提交3题,其中答对3题。 1.存储数据不属于数据处理功能。

答题:对. 错. (已提交) 参考答案:× 问题解析: 2.控制台应用程序至少有一个Main过程。 答题:对. 错. (已提交) 参考答案:√ 问题解析: 3.上机时,程序编译和连接成功后,系统自动生成以.exe为扩展名的可执行文件。 答题:对. 错. (已提交) 参考答案:√ 问题解析: 第2章基本数据类型与表达式·2.1基本字符集和词汇集 当前页有3题,你已做3题,已提交3题,其中答对3题。 1.下面选项中()是算术运算符。 A. % B. & C. Mod D. And 答题: A. B. C. D. (已提交) 参考答案:C 问题解析: 2.下面不合法的标识符是()。 A. Go_To B. Integer C. 姓名 D. Int1 答题: A. B. C. D. (已提交) 参考答案:B 问题解析: 3.在程序设计语言系统中具有固定语法含义的符号串称为标识符。 答题:对. 错. (已提交) 参考答案:× 问题解析: 第2章基本数据类型与表达式·2.2 基本数据类型

c语言课程设计成绩记录簿

合肥学院 计算机科学与技术系 课程设计报告 2012~2013学年第二学期 课程面向过程综合设计 课程设计名称C语言成绩簿 学生姓名 学号 专业班级 指导教师 2013年6月

第一章需求分析 1.1 任务要求: 编制一个C语言成绩记录簿,每个学生信息包括:学号、姓名、C语言成绩。具体功能:(1)创建信息链表并以磁盘文件保存; (2)读取磁盘文件并显示输出所有学生的成绩; (3)按学号或姓名查询成绩; (4)添加成绩记录; (5)修改指定姓名或学号的学生的成绩并可存盘; (6)显示输出60分以下、60~79、80~89、90分以上各分数段的学生信息(可选项)。 1.2任务问题: 如何运用我们已学的c语言知识完成要求?如何制作相应界面?switch的应用该如何实现?如何完成相应的数组或链表的实现与应用?怎样进行相应的文件的读写? 1.3任务的解决步骤: 步骤: 1.建立一个主界面。 2.用switch语句进行分类讨论。 3.分别进入录入,查询,修改,学生分数段统计等子函数。 4.将子函数与主函数相连即可。

第二章算法设计 1、设计思想 2.1 程序结构(流程图)

2.2 重要的数据结构

2.3主要算法思想(文字描述) 本程序是非数值计算型算法设计,我设计出了通讯录管理系统的基本功能,并设计了简单的界面。本程序主要考察对自定义函数的熟悉程度,本程序主要使用的是链表的相关操作,包括结构体链表的创建、输入、输出、查找、修改等。我设计的这个通讯录系统也初步实现了人员信息的显示、修改、查找、等必要的功能,并通过子函数与主函数相连来完成相应的功能。 2.设计表示 int Student_Insert( ); (添加学生成绩) void edit( ); (修改) void Student_Search( );(查找) void WriteFile( ); (写入文件) void ReadFile( ); (读取文件) void Student_Select( );(分数段选择) void PrintMark( );(打印学生分数) void NameChange( );(按姓名修改) void NumberChange( );(按学号修改) 3.实现注释 除了没有用链表进行实验的缺点外,基本可以实现任务要求,界面简洁,程序简单,易操作。 4.算法设计中一些新的想法: 本程序主要包含了结构体与动态变量的相关知识; 其中也多次用到了循环和判断结构; 本程序还可以通过子函数实现删除,排序等操作。用链表,指针也可以实现相应的任务要求。

C语言程序设计课程设计题目

1一元稀疏多项式的运算 问题描述:设有两个带头指针的单链表表示两个一元稀疏多项式A、B,实现两个一元稀疏多项式的处理。 实现要求: ⑴输入并建立多项式; ⑵输出多项式,输出形式为整数序列:n,c1,e1,c2,e2……c n,e n,其中n 是多项式的项数,c i,e i分别为第i项的系数和指数。序列按指数降序排列; ⑶多项式A和B相加,建立多项式A+B,输出相加的多项式; ⑷多项式A和B相减,建立多项式A-B,输出相减的多项式; ⑸多项式A和B相乘,建立多项式A×B,输出相乘的多项式; ⑹设计一个菜单,至少具有上述操作要求的基本功能。 测试数据: (1) (2x+5x8-3.1x11)+(7-5x8+11x9) (2) (6x-3-x+4.4x2-1.2x9)-(-6x-3+5.4x2+7.8x15) (3)(x+x2+x3)+0 (4)(x+x3)-(-x-x-3) 2成绩排序 假设某年级有4个班,每班有45名同学。本学期有5门课程考试,每门课程成绩是百分制。假定每个同学的成绩记录包含:学号、姓名各门课程的成绩共7项,其中学号是一个10位的字符串,每个学生都有唯一的学号,并且这4个班的成绩分别放在4个数组中,完成以下操作要求: ⑴编写一个成绩生成函数,使用随机数方法,利用随机函数生成学生的各门课程的成绩(每门课程的成绩都是0∽100之间的整数),通过调用该函数生成全部学生的成绩; ⑵编写一个平均成绩计算函数,计算每个同学的平均成绩并保存在成绩数组中; ⑶用冒泡排序法对4个班的成绩按每个同学的平均成绩的以非递增方式进

行班内排序; ⑷用选择排序法对4个班的成绩按每个同学的平均成绩的以非递增方式进行班内排序; ⑸对已按平均成绩排好序的4个班的同学的构造一个所有按平均成绩的以非递增方式排列的新的单链表; ⑹设计一个菜单,至少具有上述操作要求的基本功能。 3迷宫问题 问题描述:以一个m×n的长方阵表示迷宫,0和1分别表示迷宫中的通路和障碍。设计一个程序,对任意设定的迷宫,求出一条从入口到出口的通路,或得出没有通路的结论。 实现要求: ⑴实现一个以链表作存储结构的栈类型,然后编写一个求解迷宫的非递归程序。求得的通路以三元组(i,j,d)的形式输出,其中:(i,j)指示迷宫中的一个坐标,d表示走到下一坐标的方向。 ⑵编写递归形式的算法,求得迷宫中所有可能的通路; ⑶以方阵形式输出迷宫及其通路。 [测试数据] 迷宫的测试数据如下:左上角(1,1)为入口,右下角(8,9)为出口。 1 2 3 4 5 6 7 8 实现提示:

《高级语言程序设计》答案

1. 输入两个整数,要求用两个函数求出其最大公约数和最小公倍数,最大公约数和最小公倍数都在主函数中输出。#include int main() { int i,j,t; int max(int,int); int min(int,int); scanf("%d%d",&i,&j); if(i int main() { int max4(int,int,int,int); //对max4的函数声明 int a,b,c,d; scanf("%d%d%d%d",&a,&b,&c,&d); //输入4个数 printf("max=%d\n",max4(a,b,c,d));//调用4个数中的最大者 return 0; } int max4(int a,int b,int c,int d) //定义max4函数 { int max2(int,int); //对max2的函数声明 return max2(max2(max2(a,b),c),d); //调用max2把作为函数值带回main函数} int max2(int a,int b) { return(a>b?a:b); //返回条件表达式的值,即a和b中的大者 } 3. 用递归调用的方法求5!。 #include int main() { int fac(int); int n; scanf("%d",&n);

C语言课程设计报告范例

学院C语言课程设计报告 课程名称: C语言课程设计课程编号: 报告题目 学生姓名学号 专业任课教师 成绩评阅日期

C语言课程设计报告 一、 C语言课程设计的目的 C语言的教学是学生根据课堂讲授内容,学生做相应的自主练习,消化课堂所讲解的内容;通过调试典型例题或习题积累调试C程序的经验;通过完成辅导教材中的编程题,逐渐培养学生的编程能力、用计算机解决实际问题的能力。具体来说: 1.进一步掌握和利用C语言进行程设计的能力; 2、进一步理解和运用结构化程设计的思想和方法; 3、初步掌握开发一个小型实用系统的基本方法; 4、学会调试一个较长程序的基本方法; 5、学会利用流程图或N-S图表示算法; 6、掌握书写程设计开发文档的能力(书写课程设计报告); 二、课程设计报告正文 (1)课程设计题目的原文; 假定民航机场共有n个航班:航班号、起始站、终点站、飞机号、飞机时间、乘员定额、余票量。试设计一民航订票系统,使之能提供下列服务: 航班信息录入功能(文件保存) 完成航班信息浏览功能; 查询航线(至少一种查询方式)。 (2)题目的分析(需求分析); 任务:通过此系统可以实现如下功能: 录入:可以录入航班情况(数据可以存储在一个数据文件中) 浏览:航班信息浏览功能需要提供显示操作; 查询:可提供按照航班号、起点站、终点站、飞行时间、查询,可以查询某个航线的情况(如,输入航班号,起飞抵达城市,确定航班是否满仓);另外 要提供键盘式选择菜单以实现功能选择。 要求:根据以上功能说明,设计航班信息,订票信息的存储结构,设计程序完成功能。

可以建立航班结构体,结构体成员包括航班号、起点站、终点站、飞行时间、 预售票总数、已售票数。 (3)整体设计与模块划分; 根据需求分析,该程序可分为以下四大模块: (4)代码设计; 包括——各功能模块的流程图;重要模块中关键部分的代码分析;关键函数的算法设计和分析;等等; A.主函数 (1)分析:主函数的功能比较简单,形式比较简洁,主要功能为:在系统中没有程序所要的文件时,为程序建立一个所许的文件;调用菜单函数。程序中的各模块都要用到同一个文件,如果该文件不存在,则该程序就无法正常运行,增加第一个功能就是保证文件的可用切可打开!本来只要在主函数里调用各功能模块就行了,但是为了让程序能够方便的回到主函数里,所以就建立了一个菜单函数。 菜单函数的功能是替主函数调用个功能模块函数,因而设计的基本思路很简单,即:用一个输入来接受用户的选择,加以个循环来让输入错误的用户继续输入,直到输入正确为止;用一个switch语句来选择用户所要用到的函数。 (2)程序: void menu() { int n,w; do {

8086汇编语言程序设计

实验1 简单汇编语言程序设计 一、实验目的与要求 1.熟悉汇编语言运行、调试环境及方法。 2.掌握简单汇编语言程序的设计方法。 3.熟悉调试工具DEBUG,并运用DEBUG 工具调试程序。 二、实验内容 根据下列要求,编写汇编源程序,汇编连接汇编源程序,并利用DEBUG 工具调试程序,验证程序的正确性。 1. 若X、Y、R、W 是存放8 位带符号数字节单元的地址,Z 是16 位字单元的 地址。试编写汇编程序,完成Z←((W-X) ÷5-Y)?(R+ 2) 。 2.试编写一个程序,测试某数是否是奇数。如该数是奇数,则把DL 的第0 位置1,否则将该位置0。 三、实验报告要求 1.程序算法流程图。 2.源程序清单。 3.程序运行结果。 4.调试过程中遇到的问题和解决的方法。

实验2 分支及循环程序设计 一、实验目的与要求 1.熟悉汇编语言运行、调试环境及方法。 2.掌握分支程序和循环程序的设计方法。 3.熟悉调试工具DEBUG,并运用DEBUG工具调试程序。 二、实验内容 根据下列要求,编写汇编源程序,汇编连接汇编源程序,并利用DEBUG工具调试程序,验证程序的正确性。 1.编写汇编程序,统计某存储区若干个数据中英文字母的个数,并将结果在屏幕上显示。 2.从键盘任意输入一组字符数据,请编写汇编程序将该组数据加密后在屏幕上显示。参考加密方法是:每个数乘以2。(说明:本题的加密方法,同学们可以自己拟定) 三、实验报告要求 1.程序算法流程图。 2.源程序清单。 3.程序运行结果。 4.调试过程中遇到的问题和解决的方法。

实验3 子程序程序设计 一、实验目的与要求 1.熟悉汇编语言运行、调试环境及方法。 2.掌握子程序的设计方法。 3.熟悉调试工具DEBUG,并运用DEBUG工具调试程序。 二、实验内容 根据下列要求,编写汇编源程序,并利用DEBUG工具调试程序,验证程序的正确性。 1.编程以十进制形式和十六进制形式显示AX的内容,并把两个显示功能分别封装成子程序dispDEC和dispHEX。 2.设在以EXAMSCORE为首地址的数据缓冲区依次存放某班10名同学5门功课的成绩,现要统计各位同学的总分,并将总分放在该学生单科成绩后的单元,并调用第1个程序封装好的子程序,以十进制方式显示统计情况,显示格式自行设计。请编程完成此功能。数据缓冲区参考数据定义如下: EXAMSCORE DB 01 ;学号 DB 89,76,54,77,99 ;单科成绩 DW ? ;该学生的总分 DB 02 ;学号 DB 79,88,64,97,92 ;单科成绩 DW ? ;该学生的总分 三、实验报告要求 1.程序算法流程图。 2.源程序清单。 3.程序运行结果。 4.调试过程中遇到的问题和解决的方法。

C语言程序设计课程设计报告

C语言程序设计课程设 计报告 内部编号:(YUUT-TBBY-MMUT-URRUY-UOOY-DBUYI-0128)

《C语言程序设计》课程设计报告 (2013— 2014学年第 3 学期) 题目: C语言课程设计 专业:软件工程 班级:软件工程技术2班 姓名学号: 1 林燕萍 指导教师:吴芸 成绩: 计算机科学与技术系 2014 年6月23日

目录 一、课程设计的目的与要求 (1) 二、方案实现与调试 (3) 2.1 掷骰子游戏 (5) 2.2 射击游戏 (7) 2.3 计算存款本息之和 (8) 2.4肇事逃逸 (10) 2.5 礼炮 (12) 2.6 汽车加油 (14) 2.7 大优惠 (16) 2.8 金币 (19) 三、课程设计分析与总结 (23) 附录程序清单 (25) 一、课程设计的目的与要求(含设计指标) C语言是一种编程灵活,特色鲜明的程序设计语言。C语言除了基知识,如概念,方法和语法规则之外更重要的是进行实训,以提高学习者的动手和编程能力,从应试课程转变为实践工具。这是学习语言的最终目的。结合多年来的教学经验,根据学生的学习情况,为配合教学过程,使“项目教学法”能在本质上促使学生有更大进步,特编写了该《C 语言程序设计任务书》,以在实训过程中给学生提供帮助。达到如下目的: 1.在课程结束之前,让学生进一步了解C程序设计语言的编程功能;

2.让学生扎实掌握C程序设计语言的相关知识; 3.通过一些有实际意义的程序设计,使学生体会到学以致用,并能将程序设计的知识与专业知识有效地结合,更全面系统地了解行业知识。 编写程序要求遵循如下基本要求: ①模块化程序设计 ②锯齿型书写格式 ③必须上机调试通过 二、方案实现与调试 2.1掷骰子游戏 2.1.1 题目内容的描述 1) 两人轮流掷骰子,每次掷两个,每人最多掷10次。 2) 将每人每次的分值累加计分 3) 当两个骰子点数都为6时,计8分;当两个点数相等且不为两个6时,计7分;当两个点数不一样时,计其中点数较小的骰子的点数。4) 结束条件:当双方都掷10次或经过5次后一方累计分数多出另一方的30%及以上。最后显示双方分数并判定优胜者。 2.1.2输入数据类型、格式和内容限制和输出数据的说明 数据类型:整型;内容限制:随机数的产生;输入数据结果:胜利的一方 2.1.3主要模块的算法描述

2020年10月全国高级语言程序设计(一)自考试题及答案解析.docx

??????????????????????精品自学考料推荐?????????????????? 全国 2018 年 10 月高等教育自学考试 高级语言程序设计(一)试题 课程代码: 00342 一、单项选择题(本大题共20 小题,每小题 1 分,共 20 分) 在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括 号内。错选、多选或未选均无分。 1.下列不正确的转义字符是() . A. ′ ′ B. ′ ″ C. ′ \086′ D. ′ \0′ 2.下列运算符中,优先级最高的是() A. [] B.++ C.% D.&& 是 C 语言保留字的是 () 3.下列标识符中,不. A. char B. while C. min D. default 4.下列数据中,不.是 C 语言常量的是 () A. ′ \n′ B. ″ a″ C. e-2 D. 012 5.若定义了 int a; char b; float c ;,则表达式a*b-c 的类型是 () A. float B. int C. char D. double 6.若定义了 int a, x,y;,则下列语句中不.正确的是 () A. x=3 ,y=5 ; B. ++x ; C. x=y+=x*30 ; D. a=y+x=30 ; 7.调用函数时,若实参是一个数组名,则向函数对应的形参传送的是() A. 数组的长度 B.数组的首地址 C. 数组第一个元素的值 D. 整个数组元素的值 8.在 C 语言中,函数返回值的类型是由() A. 定义的函数类型决定 B.return 语句中表达式的类型决定 C.调用该函数的主调函数类型决定 D. 调用该函数时系统状态决定 9.若定义了 int b [][ 3]={ 1,2, 3,4, 5, 6, 7};,则 b 数组第一维的长度是 () A. 2 B. 3 C. 4 D.无确定值 1

C语言课程设计报告电子生词库软件

程序设计基础实训任务书 题目:电子生词库软件 学生姓名:学号:班级: 题目类型:软件工程(R)指导教师: 一、设计目的 1.进一步掌握和利用C语言进行程序设计的能力; 2.进一步理解和运用结构化程序设计的思想和方法; 3.初步掌握开发一个小型实用系统的基本方法; 4.学会调试一个较长程序的基本方法; 5.学会利用流程图或N-S图表示算法; 6.掌握书写实训开发文档的能力(书写实训报告); 二、设计任务及内容 根据需要,建立属于自己的生词库,这样使用起来很方便。生词选自本人经常需要的单词,对于英文单词,给出中文含义,对于中文单词给出英文含义。功能要求: (1)创建生词库。用文件建立一个单词库,中英文单词均有,对于英文单词,给出中文含义,对于中文单词给出英文含义。 (2)显示词库。显示所有单词和单词数、所有中文单词和单词数、所有英文单词和单词数,显示英文单词时按字母从小到大顺序排列。

(3)编辑词库。首先确认密码后允许添加新词、删除旧词和修改旧词。 (4)查找生词。显示所要查找的单词其及含义 主菜单和子菜单能够循环出现,每一项菜单执行之后,询问用户是否继续进行。从子菜单可以返回主菜单。 三、设计要求 1.用C语言实现系统; 2.系统具有统计、查询、排序等基本功能; 3.系统的各个功能模块要求用函数的形式实现; 4.文档:实训说明书每个学生一份,并装在统一的资料盒中; 5.光盘:每个学生文档和程序资料分别建在一个以自己学号和姓名命名的文件夹下,并要求每班负责人汇总每个学生的文件放在以班级姓名命名的文件夹下,刻录成一张光盘,放在一个专门的资料袋中。 四、提交的成果 1. 设计任务书一份(学校统一格式) 2. 设计说明书一份,内容包括: 1) 中文摘要100字,关键词3-5个。 2) 实训题目、内容、要求。 3)总体设计(包含几大功能模块)。 4)详细设计(各功能模块的具体实现算法——流程图) 5)数据结构设计描述,各模块(函数)的功能介绍,参数说明等。

新版汇编语言程序设计钱晓捷第1章习题答案

第1章汇编语言基础知识(全) 2010-10-18 19:32:40| 分类:答案集锦| 标签:|字号大中小订阅 第1章汇编语言基础知识 〔习题1.1〕简述计算机系统的硬件组成及各部分作用。 〔解答〕 CPU:包括运算器、控制器和寄存器组。运算器执行所有的算术和逻辑运算;控制器负责把指指令逐条从存储器中取出,经译码分析后向机器发出各种控制命令,并正确完成程序所要求的功能;寄存器组为 处理单元提供所需要的数据。 存储器:是计算机的记忆部件,它用来存放程序以及程序中所涉及的数据。 外部设备:实现人机交换和机间的通信。 〔习题1.2〕明确下列概念或符号: 主存和辅存,RAM和ROM,存储器地址和I/O端口,KB、MB、GB和TB 〔解答〕 主存又称内存是主存储器的简称,主存储器存放当前正在执行的程序和使用的数据,CPU可以直接存取,它由半导体存储器芯片构成其成本高、容量小、但速度快。辅存是辅助存储器的简称,辅存可用来长期保存大量程序和数据,CPU需要通过I/O接口访问,它由磁盘或光盘构成,其成本低、容量大,但速 度慢。 RAM是随机存取存储器的英语简写,由于CPU可以从RAM读信息,也可以向RAM写入信息,所以RAM也被称为读写存储器,RAM型半导体存储器可以按地址随机读写,但这类存储器在断电后不能保存信息;而ROM中的信息只能被读出,不能被修改,ROM型半导体通常只能被读出,但这类存储器断电 后能保存信息。 存储器由大量存储单元组成。为了区别每个单元,我们将它们编号,于是,每个存储单元就有了一个存储地址,I/O接口是由一组寄存器组成,为了区别它们,各个寄存器进行了编号,形成I/O地址,通常 称做I/O端口。 KB是千字节、MB是兆字节、GB是吉字节和TB是太字节,它们都是表示存储器存储单元的单位。 〔习题1.3〕什么是汇编语言源程序、汇编程序、目标程序? 〔解答〕 用汇编语言书写的程序就称为汇编语言源程序;完成汇编工作的程序就是汇编程序;由汇编程序编 译通过的程序就是目标程序。

C语言程序设计课程设计

《C语言程序设计》课程设计 1课程设计目的 C语言课程设计是在“C语言程序设计”课程后集中安排的1周相关的实践技能训练环节。它的目的是通过实践环节的训练,培养学生查阅资料的能力、分析与解决问题的能力、应用C语言开发与设计程序的能力。 2课程设计选题 2.1 题目1 必做题目,其余题目任选一题完成 题目1:年历显示。 功能要求: (1)输入一个年份,输出是在屏幕上显示该年的日历。假定输入的年份在1940-2040年之间。 (2)输入年月,输出该月的日历。 (3)输入年月日,输出距今天还有多少天,星期几,是否是公历节日。 题目2:小学生测验 面向小学1-2年级学生,随机选择两个整数和加减法形成算式要求学生解答。 功能要求: (1)电脑随机出10道题,每题10分,程序结束时显示学生得分; (2)确保算式没有超出1-2年级的水平,只允许进行50以内的加减法,不允许两数之和或之差超出0-50的范围,负数更是不允许的; (3)每道题学生有三次机会输入答案,当学生输入错误答案时,提醒学生重新输入,如果三次机会结束则输出正确答案; (4)对于每道题,学生第一次输入正确答案得10分,第二次输入正确答案得7分,第三次输入正确答案得5分,否则不得分; (5)总成绩90以上显示“SMART”,80-90显示“GOOD”,70-80显示“OK”,60-70显示“PASS”,60以下“TRY AGAIN” 题目3:学生学籍管理系统(可以2人合作完成) 用数据文件存放学生的学籍,可对学生学籍进行注册,登录,修改,删除,查找,统计,学籍变化等操作。 功能要求: (1)系统以菜单方式工作。 (2)登记学生的学号,姓名,性别,年龄,籍贯,系别,专业,班级;修改已知学号的学生信息; (3)删除已知学号的学生信息; (4)查找已知学号的学生信息; (5)按学号,专业输出学生籍贯表。 (6)查询学生学籍变化,比如入学,转专业,退学,降级,休学,毕业。 题目4:通讯录程序设计 设计一个实用的小型通讯录程序,具有添加,查询和删除功能。由姓名,籍贯,电话号码1,电话号码2,电子邮箱组成,姓名可以由字符和数字混合编码。电话号码可由字符和数字组成。实现功能:(1)系统以菜单方式工作 (2)信息录入功能 (3)信息浏览功能

c语言课程设计_菜单设计

C语言课程设计_菜单设计 调试环境为TC2.0或者3.0。运行这个程序需要tc提供的几个头文件。建议修改options菜单中的include 目录项到tc的include的目录下(具体方法可以参见本书第一章的讲解);或者把源程序拷贝到tc目录下运行。 #include #include #include #include #include /*定义一些常数*/ #define NO 0 #define YES 1 #define NONE -1 #define MAX_MENU 7/*根据情况改变可以在菜单显示的最大项*/ /*全局参数*/ int X,Y; int Selection; int button,x,y; void *p; size_t area; /*菜单结构*/ struct MENU { /*左上角*/ int x; int y; /*右下角*/ int x1; int y1; unsigned char Active[MAX_MENU];/* 菜单项是否激活的标志*/ char *head;/* 菜单的名字(可选项)*/ }; int MouseOn(struct MENU *t); void Process(); void Xorbar(int sx,int sy,int ex,int ey,int c); void Show(); void Hide(); void Status(); /* 通过下面的参数用户可以改变按钮的位置。*/ struct MENU File={200,110,250,130}; struct MENU Edit={295,110,345,130}; struct MENU Help={390,110,440,130}; struct MENU Close={600,10,620,30}; struct MENU Neeraj={380,300,460,315}; void main() { int gd = DETECT,gm;

高级语言程序设计答案

《高级语言程序设计答案 一、选择题(每题2分,共30分,请将答案写在后面的答题栏...上) 1-5 BDBBB 6-10 BBDCC 11-15 CDBAB 二、填空题(1-3题每空1分,4-8题每空2分,共20分) 1、对象,事件驱动 2、frm ,vbp 3、函数 过程 4、31 5、9 6、countn<5 n mod 3=1 and n mod 5=1 and n mod 7=1 8、7 7、*n s+1/f 三、综合题(每题5分,共25分) 1、 (2*y)/(a*x+b*y)(a*x-c*z) 2、(x+sqr(x^2+1))^(1/3) 3、30 60 4、7 5、1)建立界面。先建立窗体,再利用控件在窗体上创建各种对象。 2)设置属性。设置窗体或控件等对象的属性。 3)编写代码。编写对象的事件代码。 四、程序设计题(8+8+9,共25分) 1:x 的值由文本框输入,计算分段函数的值:y=???????≥<≤<≤<2 ,321,210,10,0x x x x 。 private sub command1_click( ) Dim x% x=text1.text if x>=2 then y=3 elseif x>=1 then y=2 elseif x>=0 then y=1 2:统计100以内被3整除的数比被5整除的数多多少。 Private Sub Command1_Click() Dim i%, s1%, s2% For i = 1 To 100 If i Mod 3 = 0 Then s1 = s1 + 1 If i Mod 5 = 0 Then s2 = s2 + 1 Next i

C语言课程设计图书管理系统课程设计报告

C语言课程设计 图书管理系统 Books Management System 学生姓名张朝柱 学院名称徐州工程学院学号140 班级13计转本 专业名称计算机科学与技术 指导教师李子龙 2016年5月10日

一、需求分析 为了满足图书管理的要求,通过计算机技术给图书管理人员和读者借、还书带来便利。使用c语言编写了图书管理系统。本系统主要实现图书信息管理的功能,通过此系统可对图书馆库存图书信息进行管理和维护操作。实现了图书馆内管理的一般功能,包括查询、借书、还书、添加、删除、修改图书信息等。所设计的系统以菜单方式工作,为用户提供清晰的使用提示,依据用户的选择来进行各种处理,并且在此过程中能够尽可能的兼容用户使用过程中可能出现的异常情况。图书信息包括编号、书名、作者、数量、在库状态等。图书信息的录入和显示要求有一定的规范格式,录入的图书信息用文件形式保存,并可以对其进行浏览、查询、借阅、还书等基本操作。整个程序实现顺序表操作,对图书信息的操作逐个地进行,一个图书信息的更改不应影响其他的图书记录。 二、算法设计: 1.设计思想: 整个系统制造的而过程中,涉及了较多C语言知识点,对于不同的数据类型、程序控制结构、数据结构作以分析和总结,并结合这个课题进行综合的应用,在一定程度上做到了对所学知识融会贯通。进一步加深、巩固了所学的专业的基本理论知识,培养了综合分析问题、解决问题的能力。在设计程序时,实现了程序的模块化、结构化。在主函数中调用各种子函数,操作界面简单,易操作。 2,设计表示: (1)、整个系统除了主函数外,另外还有各种功能子函数,利用无限次循环语句while()和选择语句swithch()实现各个子函数的调用,系统根据输入的数字选项来调用相应的函数,以实现相应的功能。主要实现了图书的录入、存储、查询、借书、还书、显示库存等功能。 (2)、void Book_Entering(struct SqList &SL);这是一个录入图书信息的函数,它主要实现了顺序表的创建,并且在创建过程中从文件读取信息到顺序表中,以用于后面其他函数的操作。它引用了一个顺序表SL。其他函数调用时只需传入顺序表头即可。 (3)、int main(void);这五个函数时整个图书管理系统的全部菜单函数,Book_Entering();为系统主界面,进入时可选择进入程序和退出程序。menu1();为进入程序时显示的功能菜单,在此菜单可以选择录入、保存图书信息,也可选择进入其他子系统。Book_Inquire();此菜单为进入图书管理系统的菜单,在此可以选择添加、删除、修改图书等操作。cxmenu();为查询系统的菜单,在此可以选择按书名、编号、作者等方式进行查询图书。jhmenu();为借书还书的子菜单,在此可以选择借书还书操作。操作完成后按提示信息进行文件的保存操作。 (4)、void Book_Inquire(struct SqList &SL);这个函数为顺序表的输出函数,把顺序表的头传给函数后,可输出整个顺序表的所有信息。、

C语言程序课程设计猜数字游戏

C语言程序设计课程设计 : 自 动 化 级 : 名: 学号: 指导教师: 兰州交通大学自动化与电气工程学院 2015年07月21日

一.引言 设计目的 复习和巩固C语言基础知识,进一步加深对C语言的理解和掌握。提高同学将课本上的理论知识和实际结合的能力,锻炼同学的分析解决实际问题的能力,提高同学团队合作的能力。使同学们善于观察和思考,善于合作,具备实践编程的基础素质,和实际问题分析的思考方式。 设计要求 在设计时充分地分析和理解问题本身,综合考虑系统功能,怎样使系统结构清晰、合理、简单和易于调试。然后详细设计,确定每个过程和函数的简单功能,以及过程(或函数)之间的调用关系。最后认真完成课程设计说明书,并对设计方法,结果等进行总结。 充分地分析和理解问题本身,弄清要求做什么(What to do)。在确定解决方案框架过程中(How to do),综合考虑系统功能,考虑怎样使系统结构清晰、合理、简单和易于调试。最后确定每个过程和函数的简单功能,以及过程(或函数)之间的调用关系。 确定算法的主要流程,在此基础上进行代码设计(Coding),每个明确的功能模块程序一般不超过60行,否则要进一步划分。 上机前程序静态检查可有效提高调试效率,减少上机调试程序时的无谓错误。静态检查主要有两种途径:(1)用一组测试数据手工执行程序;(2)通过阅读或给别人讲解自己的程序而深入全面地理解程序逻辑。 二.基础题 题目 用选择法对10个数进行排序。 有一个已排好序的数组。现输入一个数,要求按原来的规律插入到原数组中。解题思路 程序的主要功能是对数组元素用排序函数按从小到大的顺序进行排序。 先定义一个10个元素的一维数组a[10],然后从电脑输入10个数(也就是对数组赋值),然后使用一次fun()函数,对这10个数进行排序;然后再定义一个11个元素的一维数组b[11],同时再从电脑输入一个数同a[10]一起赋值给b[11],然后再使用fun()函数,重新排序的到最后的有顺序的一组数据。 流程图 子函数流程图如图1所示:

程序设计基础试题(附答案)

程序设计基础复习题 一、单选 1、一个完整的计算机系统应该包括() A、系统软件和应用软件 B、计算机及其外部设备 C、硬件系统和软件系统 D、系统硬件和系统软件 2、“裸机”的概念是指() A、正在进行设计还没有组装好的计算机 B、已经组装好但还没有安装任何软件的计算机 C、仅安装了操作系统的计算机系统 D、安装了文字处理软件但没有安装专用数据处理系统的计算机 3、世界上第一台电子数字计算机研制成功的时间是() A、1936年 B、1946年 C、1956年 D、1970年 4、CASE的含义是() A、计算机辅助设计 B、计算机辅助制造 C、计算机辅助教学 D、计算机辅助软件工程5、当前广泛使用的微型计算机是() A、第一代 B、第二代 C、第三代 D、第四代 6、当代计算机的体系结构称为是() A、冯·诺依曼机 B、非冯·诺依曼机 C、图灵机 D、比尔盖茨机 7、硬盘是() A、输入设备 B、输出设备 C、存储设备 D、计算设备 8、下面4句话中,最准确的表述是() A、程序=算法+数据结构 B、程序是使用编程语言实现算法 C、程序的开发方法决定算法设计 D、算法是程序设计中最关键的因素

9、计算机能直接执行的语言是() A、机器语言 B、汇编语言 C、高级语言 D、目标语言 10、解释程序的功能是() A、将高级语言程序转换为目标程序 B、将汇编语言程序转换为目标程序 C、解释执行高级语言程序 D、解释执行汇编语言程序 11、下面4种程序设计语言中,不是面向对象式语言的是() A、JAVA B、Object Pascal C、Delphi D、C 12、不是C语言的基本数据类型是() A、int B、double C、char D、bool 13、在C语言中,为了求两个整数相除之后得到的余数,可以使用运算符() A、/ B、% C、* D、++ 14、数据的逻辑结构分为() A、纯属结构和非线性结构 B、顺序结构和非顺序结构 C、树型结构和图型结构 D、链式结构和顺序结构 15、用链表表示纯属表的优点是() A、便于随机存取 B、便于插入和删除操作 C、花费的存储空间较顺序存储少 D、元素的物理顺序与逻辑顺序相同 16、栈的最主要特点是() A、先进先出 B、先进后出 C、两端进出 D、一端进一端出 17、下面4句结论只有一句是错误的,它是()

《C语言程序设计》课程设计

《C语言程序设计》课程设计 刘力斌 一、意义和目的 C语言是光信息科学与技术专业的重要专业基础课。在很多后续课程中,都要使用到C语言。 学生通过对C语言的学习,已经具备了使用C语言编写简单的应用程序的能力。为了加强程序设计基础,开设课程设计课,使学生对C语言有更全面的理解,进一步提高运用C语言编程解决实际问题的能力,同时,为后续课程的学习夯实基础。 课程设计目的: 提高用程序设计解决实际问题的能力。 通过提出算法、指定输入输出来设计一个解决方案。 用C语言合理地开发两个简洁有效的程序代码来实现该设计。 测试程序是否工作且满足设计指标并评价其效率。 二、目标 完成本课程设计的学生应能在以下几方面证明你们的能力: A、分析问题。各种简单的与计算机有关的案例中所需要的输出结果,把大问题分解成小问题,使用自顶向下或类似设计方法给出模块化或计划。 B、提出算法执行特定任务。模块表示为算法,使用自顶向下或伪代码等设计手段将模块细化成更详细的成分,清楚地表明顺序、选择和重复等到控制结构。 C、把一个算法变为用C语言编写的结构化程序。 D、用合适的测试方法检查程序是否符合最初的要求,为不合适数据设计错误陷阱,并提供错误信息来帮助用户。 E、写出清晰的用户文档,确保用户或者通过遵循程序中的指示或者使用程序设计者编写的文档能成功地运行程序。 F、写出技术文档,对程序中主要标示符的含义或作用加以说明,并提供一个完整的程序流程图。 G、调试程序、测试数据过程成功。

三、要求 参加本课程设计的学生,应当认真完成本课程设计的全部过程。并以最终课程设计成果来证明其独立完成各种实际任务的能力。从而,反映出理解和运用本课程知识的水平和能力。 完成课程设计应提交如下文档: ①程序的总体设计和算法分析。 ②技术文档 ③用户文档 ④源程序代码清单。 ⑤测试数据和测试过程记录。 ⑥遇到的问题及解决方法分析。 四、选题 每人一个题,具体题目可以参考附录。 第一题:链表操作题(包括建立、插入、删除、打印等)(参考教材); 第二题:文件操作,具体题目最好是自拟。 如果选题确实有困难的同学,可参考后面参考题目来完成本课程设计(成绩要影响)。 五、评价 评价是检测学生理解问题和解决问题能力的一个重要手段,教师将根据学生提交的一套文件中,严格检查以下各项任务完成情况: 1、课程设计文档是否齐全。 2、程序的用户文档 如果在程序执行期间有足够的指导信息显示在屏幕上显示,这些用户文档可以是很简要的,也许只限于解释如何装入并运行程序。 3、问题或任务的陈述(描述问题,而且问题是合理原始的、应当包括输 入、输出及其预期范围。)是否正确。 4、问题的解决方案采取由顶向下设计的形式,在适当的地方使用伪代 码,把整个解决方案划分成若干模块。 5、程序完成后的代码应当加以注解。最少应清楚指出每一个模块。 6、用于检查程序的测试数据,或者对一个控制程序给出测试的例程。测 试应考虑探索通过程序的几条路径,在合适的地方选择打印输出来。 7、程序的技术文档

《高级语言程序设计》期末考试试卷附答案

《高级语言程序设计》期末考试试卷附答案 一、选择题(共20题,每题3分,共60分) 1. 下列四个选项中,均是合法的整型常量的选项是() A.160 –0XFFFF 011 B. -0XCDF 01A 0XE C. -01 986,012 0688 D. -0X48a 2e5 0x 2. 下列四个选项中,均是不合法的浮点数的选项是() A.160.0.12 e3 B. 123 2e4.2 .e5C.18 0.0 123e4 D. e3. 234 1e3 3. 合法的C语言字符常数是() A.'\t' B. "A"C.54 D. A 4. 在C语言中,要求运算数一定是整型的运算符是() A./ B. ++C.!= D. % 5. 字符串常量”mine”的字符个数是() A.4 B. 5C.6 D. 7 6. 以下属于非法的C语言转义字符的是() A.'\b' B. '0xf'C.'\037' D. '\' 7. 若x、y、z均为int型变量,则执行以下语句后的输出是() x=(y=(z=10)+5)-5; printf("x=%d, y=%d, z=%d\n",x,y,z); y=(z=x=0,x+10); printf("x=%d, y=%d, z=%d\n",x,y,z); A. x=10, y=15, z=10 B.x=10, y=10, z=10 x=0, y=10, z=0x=0, y=10, z=0 C.x=10, y=15, z=10 D. x=10, y=10, z=10 x=10, y=10, z=0 x=10, y=10, z=0 8. 在以下一组运算符中,优先级最高的运算符是() A.<= B. =C.% D. && 9. 已知:int x; float y; 所用的scanf调用语句格式为: scanf( “x=%d, y=%f”, &x, &y ); 为了将数据10和66.6分别赋给x和y,正确的输入应当是() A.x=10, y=66.6<回车> B. 10, 66.6<回车> C.10<回车>66.6<回车> D. x=10<回车>y=66.6 <回车> 10. 已有如下定义的输入语句,若要求A1,A2,C1,C2的值分别为10,20,A和B,当从第一列开

C语言课程设计

课程设计任务书 课程设计题目:学生成绩管理 课程设计时间:2012年03月19日起——至 2012年03月30日止教研室主任年月日批准

一、课程设计的性质和任务 《程序设计基础课程设计》是软件工程专业的实践性教学环节之一,是《程序设计基础》课程的辅助教学过程,是软件工程专业的一门必修课。 本课程设计通过利用C语言实现一个小型的应用系统,使学生加深理解《程序设计基础》课程中的各种基本概念、理论和原理,掌握C语言的语法、语句和程序设计的思想,巩固课堂教学内容,锻炼学生编写程序和调试程序的能力,提高应用软件设计的能力,提高分析问题和解决问题的能力,培养创新和团队的意识,从而为后续课程学习、毕业设计以及将来更好地走向工作岗位打好坚实的基础。 二、课程设计的原始资料 随着计算机技术的飞速发展,计算机早已经从单纯的数值计算功能中解脱出来,利用计算机完成的功能越来越多,如信息的存储、多媒体应用、信息管理等。在现代的管理技术中,利用计算机来完成过去只能通过纸质手工管理的智能管理模式已经变得越来越广泛。 本题目就是利用计算机来完成学生成绩管理程序。 学生可查阅有关程序设计的案例资料,进一步理解结构化程序设计的模块化程序设计思想,并利用此思想,根据对程序设计课程的学习,编写一个比较完整的简单软件系统。通过本设计,可以加深理解利用传统程序设计思想开发一个软件系统的整个流程,提高分析问题、解决问题和软件设计、编程的实际动手能力。 三、课程设计的主要内容及要求; 1.认真阅读材料,掌握程序设计模块化的思想。 2.要求在设计的过程中,建立清晰的层次结构。 3、画出主要的功能结构图和主要模块的流程图。 4.完成一简单学生成绩管理程序。 5.实现学生管理。 6.实现成绩管理。

相关文档
相关文档 最新文档