北京科技大学C语言程序设计,第1章_北京科技大学计算机系:C语言程序设计(李玲)_ppt_大学课件预览_高等教育资讯网...

第 1章 预备知识北京科技大学 计算机系

C 语言程序设计

2009-7-29

2说明:

本课件的配套教材为:

–,C语言程序设计教程》

–,C语言程序设计教程习题解答与实验指导》

北京人民邮电出版社 李玲等编著

如果选用本套教材,并需要完整的各章课件,请与作者联系。

– 电话,010- 62755063

– E-mail,liling@ies.ustb.edu.cn

– 通信地址,北京科技大学信息工程学院李玲 100817

2009-7-29

3本章主要内容

程序设计与算法概述

C语言概述

C程序的符号系统

2009-7-29

41.1 程序设计与算法概述

主要内容:

– 计算机语言与程序设计

– 算法

– 结构化程序设计

2009-7-29

51.1.1 计算机语言与程序设计

1,计算机语言

– 是人与计算机进行交流的工具

– 计算机语言分为:

机器语言 机器指令(由 0 和 1组成),可直接执行 难学、难记依赖机器的类型汇编语言用助记符代替机器指令,用变量代替各类地址。

克服记忆的难点其他与机器语言类似高级语言类似数学语言、接近自然语言、具有通用性和可移植性,不依赖具体的计算机类型。

2009-7-29

6例如:

0 0 1 0 0 0 1 1

1 1 1 0 1 1 0 1

0 1 1 0 0 0 0 1

0 1 1 1 0 1 1 0

机器语言程序

MOV AX,300H

ADD BX,AX

MOV [2100H],BX

HLT

汇编语言源程序

main( )

{ int a,b,c;

a=300; b=18;

c=a+b;

printf(,a+b= %d \n”,c);

}

高级语言源程序 (C)

源程序需要翻译

2009-7-29

7汇编源程序的翻译:

将汇编源程序翻译为目标程序的过程称为 汇编

汇编过程:

图 1.1 汇编过程汇编程序 连接程序汇编连接汇编语言源程序机器语言目标程序可执行程序

(.ASM) (.OBJ) (.EXE)

运行运行结果

2009-7-29

8高级语言的翻译:

编译方法图 1,2 编译过程

(.C或,PAS等 )

编译程序 连接程序编译连接高级语言源程序机器语言目标程序可执行程序

(.OBJ) (.EXE)

运行运行结果解释程序高级语言源程序解释执行运行结果图 1.3 解释过程

(.BAS)

解释方法

2009-7-29

92.程序设计

用计算机解决一个实际应用问题时的整个处理过程称为程序设计提出问题确定数据结构确定算法编写程序调试和运行程序输入程序翻译

(编译或解释 )

得到运行结果

2009-7-29

101.1.2 算法

什么是算法

– 为解决某一应用问题而采用的 解题步骤

算法的描述方式

– 用自然语言描述算法

– 用流程图描述算法

– 用 N-S结构图描述算法例如:输出两个数中的最大数

2009-7-29

11用自然语言描述算法第一步:输入 x和 y的值第二步:比较 x和 y的值,如果 x大于 y,则输出 x的值,否则输出 y的值。

易于理解,但冗长,不够精确,难于描述复杂算法。

例如当描述,输出 10个数中最大数,的算法时,

会冗长、难于理解

2009-7-29

12

图 1.5 用流程图描述算法用流程图描述算法

NY

z= yz= x

x >y?

开始输入 x和 y

结束输出 z

起止框输入 /输出框判断框处理框流程线

2009-7-29

13用 N-S结构图描述算法输入 x,y的值

x>y

T F

z = x z = y

输出 z的值图 1.7 用 N-S结构图描述的算法已经证明,任何复杂的问题都可以三种基本算法结构来描述,顺序、选择、循环。 因此用计算机语句描述的 程序也包含三种基本结构。

2009-7-29

141.1.3 结构化程序设计

程序的三种基本结构

– 顺序结构程序,按照书写顺序依次执行语句

– 选择结构程序,按照条件判断选择执行语句

– 循环结构程序,通过条件控制循环执行语句三种基本结构的共同点:

都是只有一个入口和一个出口;

结构内的每一个框都有机会被执行;

结构内没有死循环。

2009-7-29

15结构化程序设计的基本原则:

如果一个程序仅包含这三种基本结构(由这些基本结构顺序组成),则称为结构化程序。

结构化程序设计的基本原则:

– 采用 自顶向下、逐步细化 的方法进行设计;

– 采用 模块化原则和方法 进行设计。即将大型任务从上向下划分为多个功能模块,每个模块又可以划分为若干子模块,然后分别进行模块程序的编写;

– 每个模块都是用结构化程序实现,即都只能由三种基本结构组成,并通过计算机语言的结构化语句实现。

2009-7-29

161.2 C语言概述

主要内容:

– C语言的发展

– C语言的特点

– C程序的基本结构

– C程序的执行过程

2009-7-29

171.2.1 C语言的发展

发展过程

B语言,Bell实验室,1970年在 PDP机器上用其编写 UNIX系统

CPL语言,剑桥大学,1963年

BCPL语言,剑桥大学,1967年

C语言,Bell实验室,1972~ 1973年用其改写 UNIX系统经简化进一步简化保持精练,接近硬件的优点,克服数据类型过少的不足

2009-7-29

181.2.2 C语言的特点

语言简洁,表达能力强,易于理解

– 只有 32个关键字,9种控制语句

– 数据构造能力强

– 运算符丰富

– 程序书写格式自由

可直接访问物理地址,实现对硬件和低层系统软件的访问

语言生成的代码质量高

可移植性好增加学习难度

2009-7-29

191.2.3 C程序的基本结构

【例 1.1】计算并输出一个数 a的平方。

main( )

{

float a,b;

a=5.2;

b=a*a;

printf("b=%f\n",b);

}

main 为 函数名程序从这里开始运行函数体开始函数体结束函数体内定义 a,b

为 a 赋值计算并输出平方值 b

执行程序的输出结果为:

b=27.039997

2009-7-29

201.2.3 C程序的基本结构

【例 1.2】输入两个数,输出其中的大数。

int max(int x,int y) /* max函数 */

{ int z ;

if (x>y) z = x; else z = y;

return(z);

}

main( ) /* 主函数 */

{ int a,b,c;

scanf("%d,%d",&a,&b);

c = max(a,b); /* 调用 max函数,求 a和 b中大数 */

printf("max = %d\n",c);

}

2009-7-29

21C程序结构

C程序

– 由 函数 构成

– 必须有,且只能有一个 main( 主函数)

– 总是从 main函数开始执行

函数

– 由 函数首部 和 函数体 组成

– 函数首部指定 函数名、函数参数、类型

– 函数体从 { 开始,到 } 结束

– 函数内有 语句

2009-7-29

22C程序结构(续)

语句

– 包括 说明性语句,可执行语句

– 以 ; 表示语句结束

注释

– 可以出现在程序的任何位置

– 用 /* 和 */ 括起来,必须成对出现

书写格式

– C语言没有行的概念,书写格式自由。

– 习惯小写字母,缩进格式。

2009-7-29

231.2.4 C程序的执行过程

1.源程序文件的建立和编辑

– 编写源程序,形成,C文件

– 需用 编辑工具,tc.exe、记事本

2.编译

– 编译源程序,形成目标程序,Obj文件

– 需用 编译工具,tcc.exe

3.连接

– 连接 OBJ文件和调用的库函数,形成运行程序,exe 文件

– 需用 连接工具,tlink.exe

4.运行,exe 文件 运行 jc1_2

Turbo C提供集成化开发环境

2009-7-29

241.3 C程序的符号系统

主要内容:

– 基本字符

– 标识符

2009-7-29

251.3.1 基本字符

大写英文字母,A B C …… X Y Z

小写英文字母,a b c …… x y z

数字,0 1 2 …… 9

空白符,空格符、换行符、制表符

特殊字符,+ - * / < > ( ) [ ] { } _ = !

# %,,;,‘,| &? $ ^ \ ~

2009-7-29

261.3.2 标识符

由 字母,下划线 和 数字 组成的字符序列

用于程序中的变量、符号常量、数组、函数、数据类型等操作对象的 名字

1.系统定义标识符

– 具有固定名字和特定含义的标识符

– 分为 关键字 和 预定义标识符

2.用户定义标识符

– 用于对用户使用的变量、数组、函数等操作对象进行命名

2009-7-29

27关键字

数据类型:

int,char,float,double,short,long、

void,signed,unsigned,enum,struct、

union,const,typedef,volatile

存储类别:

auto,static,register,extern

语句命令字:

break,case,continue,default,do、

else,for,goto,if,return,switch、

while

运算符:

sizeof

2009-7-29

28预定义标识符

系统标准库函数

scanf,printf,putchar,getchar、

strcpy,strcmp,sqrt等

编译预备处理命令

include,define等

2009-7-29

29对标识符的规定

用户定义标识符

– 必须以 字母 或 下划线,_” 开头

– 不能含有除字母、数字和下划线,_”

外的其他字符

– 标识符中大小写字母含义不同

关键字 必须用小写字母。不允许使用关键字为变量、数组、函数等操作对象命名

预定义标识符 允许用户对它们重新定义,

当重新定义后将改变它们原来的含义

2009-7-29

30正确区分标识符

正确区分哪些是合法标识符,哪些是不合法标识符 。 其中合法标识符中哪些是关键字,哪些是预定义标识符,哪些是用户定义标识符 。

Abc define 2x double student

m+y a# b-4 _1 While

int let x%y name do

π w?tm Ctrl swicth include

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值