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

发布 2021-04-24 15:29:28 阅读 6557

湖北师范学院。

计算机科学系。

第1章 c语言程序设计概述。

教学目标:了解程序设计语言的发展历史及其支持环境;熟悉c语言程序上机实验操作步骤;了解c语言程序的基本结构以及学会使用库函数和用户自定义函数组装c程序。

教学重点:c语言程序上机实验操作步骤;用库函数和用户自定义函数组装c程序。

教学难点:用用户自定义函数组装c程序。

1.1 程序与程序设计语言。

程序设计语言是人与计算机进行信息交流的工具。程序设计是一种编写计算机程序的活动。由于计算机是一种专门用程序来解决特定问题的通用工具,因而程序设计是为解决某一特定问题而构造一种专用工具的活动。

程序是实体在计算机内部的表示。实体具有一个名字,一组表示该实体特征的数据以及若干作用在这些数据上的行为。实体具有的数据表示它的状态,而这些状态可由实体的行为来改变。

例如,银行帐户是实体,存款和取款是该实体的行为。

1.1.1 程序设计语言的发展。

程序设计语言伴随着计算机技术的进步而不断升级换代,通常人们将程序设计语言的发展分为以下四个阶段。

1) 机器语言。

机器语言是一种cpu的指令系统,它是该cpu可以识别的一组由0和1序列构成的指令**。下面是某cpu指令系统中的两条指令:

10000000 加。

10010000 减。

用机器语言编写程序,就是从所使用的cpu的指令系统中挑选合适的指令,组成一个指令系列。这种程序虽然可以被机器直接理解和执行,但是由于它们不直观、难记、难认、难理解、不易查错,只能被少数专业人员掌握,同时程序的生产效率很低,质量难以保证。这种繁重的手工方式与高速、自动的计算机极不相称。

2) 汇编语言。

为减轻人们在编程中的劳动强度,20世纪50年代中期人们开始用一些“助记符”代表0,1编程。例如,前面的两条机器指令可以定成:

add a,b

sub a,b

这种用助记符号描述的指令系统,称为符号语言或汇编语言。

用汇编语言编程,程序的生产率及质量都有所提高。但是汇编语言指令是机器不能直接识别、理解和执行的。用它编写的程序经检查无误后,要先翻译成机器语言程序才能被机器理解、执行。

这个翻译过程称为“代真”。代真之后得到的机器语言程序称目标程序,代真之前的程序称为源程序。

机器语言和汇编语言都依赖于具体的计算机,是一种面向机器的程序设计语言。面向机器的语言可以编制出效率极高的程序,但是需要程序员熟悉机器的内部结构,并且要“手工”地进行存储器分配。这种编程劳动强度很大,给计算机的普及推广造成很大的障碍。

3) 高级语言。

机器语言和汇编语言是面向机器的,随机器而异。1954出现的fortran语言以及随后相继再现的其它高级语言,使人们开始摆脱进行程序设计必须先熟悉机器的桎梏,把精力集中于解题思路和方法,使程序设计语言开始与解题方法相结合。其中一种方法是把解题过程看作是数据被加工的过程。

基于这种方法的程序设计语言称为面向过程的程序设计语言。c语言就是一种面向过程的程序设计语言。

使用高级语言编程可以大大地降低编程过程的劳动强度,提高编程效率。高级语言的诞生是计算机技术发展史上的一个里程碑。它使人们能摆脱具体机器指令系统的束缚,用接近人们习惯的语言来构思解题过程,从而大大提高了编程效率,使人们能够编制出越来越大的程序,以满足日益广泛而深入的应用需求。

实际上,程序是对现实世界的动态状态的模拟。面向过程的程序设计认为,每个程序都要完成一些规定的功能。每个功能的实现是通过对数据进行一系列的加工的过程而实现的。

因而程序设计包括组织数据—设计数据结构,以及设计对数据结构进行加工的过程—设计算法两个部分。给出一个著名的公式:程序=数据结构+算法。

4) 面向对象的程序设计语言。

面向对象的程序设计是一种结构模拟方法,它把现实世界看成是由许多对象组成。对象与对象之间通过相互发送和接收消息进行联系。消息激发对象本身的运动,形成对象状态的变化。

从程序结构的角度来看,每个对象都是一个数据和方法的封装体—抽象数据类型。

从分类学的观点来看,客观世界中的对象都是可以分类的。也就是说,所有的对象都属于特定的类,或者说每一个对象都是类的一个实例。因而,面向对象的程序设计的一个关键是定义类,并由类生成对象。

面向对象的程序比面向过程的程序更清晰、易懂,更适宜编写更大规模的程序,已为成为当代程序设计的主流。面向对象的程序设计语言很多,其中广泛使用的一种语言是c++。c++语言是一种多范型程序设计语言,不仅可以用它编写面向对象的程序,还可以用它编写面向过程的程序。

1.1.2 程序设计语言的支持环境。

操作系统是各种软件中最重要的一种,它是各种软件的核心与基础,所有其它软件的运行都要在操作系统的控制下进行。操作系统的作用是有效地组织和利用计算机的软、硬件资源,使各种程序都能在操作系统的管理下协调工作。p3图1.

2表示用高级语言书写的源程序必须经过高级语言编译系统处理(编译),然后在操作系统控制下才能被计算机执行。

操作系统的主要功能包括cpu管理、存储器管理、设备管理、文件管理和作业管理等。不同操作系统的功能和工作方式是不同的。目前,广泛流行的操作系统有windows和unix。

源程序的编辑、编译、连接与执行。

c语言采用编译方式将源程序转换成二进制的目标**。编写好一个c程序到完成运行一般经过以下几个步骤:

1) 编辑:编辑包括以下内容:将源程序中的字符逐个输入到计算机内存;修改源程序;将修改好的源程序保存在磁盘文件中。

编辑的对象是源程序,它是以ascii**的形式输入和存储的,不能被计算机执行。

2) 编译:编译就是将已编辑好的源程序翻译成二进制的目标**。在编译时,还要对源程序进行语法(用来刻划什么样的符号串可组成一个有效的程序)检查,如果发现有错,则在屏幕上显示出错提示信息,此时应重新进入编辑状态,对源程序进行修改后再重新编译,直到通过编译为止。

应当指出,经过编译之后得到的二进制**还不能直接执行,因为每一个模块往往是单独编译的,必须把经过编译的各个模块的目标**与系统提供的标准模块(例如,c语言中的标准函数)连接后才能执行。

3) 连接:将各模块的二进制目标**与系统标准模块经过连接处理后,得到具有绝对地址的可执行文件,它是计算机能够直接执行的文件。

4) 执行:执行一个经过编译和连接的可执行的目标文件。只有在操作系统的支持和管理下才能执行可执行的目标文件。

集成化的工具环境已将编辑、编译、连接、调试工具集于一身(例如,turbo c 2.0),用户可以很方便地在窗口下连续进行编辑、编辑、连接、调试、运行的全过程。

1.2 c语言的历史和特点。

1.2.1 c语言的历史。

algol 60 → cpl → bcpl → b → c → 旧标准c → ansi c → c++ visual c++新标准c)

语言的诞生与发展:在c语言诞生以前,系统软件主要是用汇编语言编写的。由于汇编语言程序依赖于计算机硬件,其可读性和可移植性都很差;但一般的高级语言又难以实现对计算机硬件的直接操作(这正是汇编语言的优势),于是人们盼望有一种兼有汇编语言和高级语言特性的新语言。

c语言是贝尔实验室于70年代初研制出来的,后来又被多次改进,并出现了多种版本。80年代初,美国国家标准化协会(ansi),根据c语言问世以来各种版本对c语言的发展和扩充,制定了ansi c标准(2023年再次做了修订)。

algol60(1960,面向问题的高级语言,不宜用来编写系统程序)

cpl(1963,英国剑桥大学,规模较大)

bcpl(1967,剑桥大学matin richards,作了简化)

b(1970,美国贝尔实验室ken thompson,进一步简化,又过于简单,功能有限)

c(1972-1973,贝尔实验室保持了精练,接近硬件的优点,克服了b语言过于简单的缺点)

2023年,和合作用c改写unix(第5版)。

2023年出的的unix第6版使人们普遍注意c语言。

以2023年发表的unix第7版中的c编译程序为基础,brian 和dennis 合著了影响深远的《the c programming language》,书中介绍的c语言称为标准c。

2023年,美国国家标准化协会(ansi)制定了新的标准,称为ansi c。

现在微机上常用的c语言编译系统有microsoft c,turbo c,quick c。

我们的教材选用的是turbo c 2.0版本。

1.2.2 c语言的特点。

1.语言简洁,表达能力强。

语言简洁、紧凑,使用方便、灵活。一共只有32个关键字,9种控制语句;

运算符丰富。共有34种运算符;

数据结构丰富,便于数据的描述与存储;

具有结构化的控制语句;

强大的库函数,用函数作为程序模块以实现程序的模块化;

语法限制不太严格,程序设计自由度大。

2.融合高、低级语言的中级语言。

具有高级语言基本结构;

可直接对硬件进行操作,允许直接访问物理地址;

生成的**质量高,生成目标程序运行速度高,占有内存少,程序执行效率高。

3.可移植性好:独立于具体机器。

1.3 用库函数组装c程序。

从语言学的角度来看,通常语言都具有如下的体系结构:

符号=>字=>词=>短语=>句子=>段落=>篇章。

计算机语言属于语言范畴,当然满足这种普遍规律。但是与自然语言相比,由于其受到使用环境的约束,计算机语言在语义(描述的是用这种语言编写程序的含义)上要简单得多。例如,单词词汇相对较少,句子类型相对较少等等。

但是麻雀虽小,五脏俱全。c语言的体系结构如下:

字符=>标识符、常量、运算符、分界符=>表达式=>语句=>函数(库函数和用户自定义函数)=>程序。

可见c语言的结构和自然语言的结构基本保持一致。

c语言本身提供的语句很少,许多功能都是通过函数来实现的。例如输入输出功能并不是c语言本身提供的,而是c的库函数所提供的。这样做的目的是使c语言的核心部分规模较小,而外围(函数)可以做得丰富,并且可以根据需要增加新的函数,使c语言具有较大的灵活性和多方面的功能。

在编写c程序时应尽量使用c的库函数所提供的函数功能来实现自己的目的。

高级语言程序设计

总分 100.00,做题时间 90分钟 一 单项选择题 总题数 15,分数 30.00 语言早期规定建立文件缓冲区采用的形式是 分数 2.00 a.缓冲文件系统。b.非缓冲文件系统。c.分页文件系统。解析 2.以下是对二维数组的正确说明的是 分数 2.00 a 3,4 a 1 4 a 3 4 解析 ...

高级语言程序设计

班级学号 021110212 姓名 卢荼 同组同学。成绩。时间 2011.6 28 题目 班级档案管理系统。一 设计任务与目标。对一个有n个学生的班级,通过该系统实现对该班级学生的基本信息进行录入 显示 修改 删除 保存等操作的管理。功能要求 1 本系统采用一个包含n个数据的结构体数组,每个数据的结...

高级语言程序设计

36.下面程序的运行结果是。include void main int a 2,b 1,c 2 if aif b 0 c 0 else c printf c d c 参 考察知识点 if语句的嵌套。运行结果 c 2 下面程序的运行结果是。include void main int a,b,c a 3...