c 程序设计
DESCRIPTION
C 程序设计. 教材、参考书与课时安排. 教材 C 高级实用程序设计 王士元 清华大学出版社 C 程序设计 谭浩强编著 清华大学出版社 参考书 C 语言程序设计教程 谭浩强 高等教育出版社 课时安排 授课 : 58 学时 C 综合编程训练: 18 学时. 课前请做好预习 保持课堂安静,头脑清醒,思维活跃 认真、独立、按时完成并提交作业 重视上机实践,有效利用宝贵的上机时间. 课程要求. ★ C 语言出现的历史背景. ★ C 语言的特点. ★ C 程序的上机步骤. ★ 简单的 C 程序介绍. ★ 习 题. - PowerPoint PPT PresentationTRANSCRIPT
20:41:32 20:41:32
教材、参考书与课时安排– 教材
C 高级实用程序设计 王士元 清华大学出版社C 程序设计 谭浩强编著 清华大学出版社
– 参考书C 语言程序设计教程 谭浩强 高等教育出版社
– 课时安排授课 : 58 学时C 综合编程训练: 18 学时
20:41:33 20:41:33
课程要求
课前请做好预习
保持课堂安静,头脑清醒,思维活跃
认真、独立、按时完成并提交作业
重视上机实践,有效利用宝贵的上机时间
20:41:33 20:41:33
第一章 C 语 言概述
★ C语言出现的历史背景
★ C语言的特点
★ 简单的 C程序介绍
★ C程序的上机步骤
★ 习 题
20:41:33 20:41:33
以前的操作系统等系统软件主要是用汇编语言编写的。由于汇编语言依赖于计算机硬件,程序的可读性和可移植性都比较差。为了提高可读性和可移植性,最好改用高级语言,但是一般高级语言难以实现汇编语言的某些功能。人们设想能否找到一种既具有一般高级语言特性,又具有低级语言特性的语言。于是,介于高级语言和低级语言之间的 c 程序设计语言(简称 c 语言)就在迅速发展起来。 它适合于作为系统描述语言,既可以用来写系统软件,也可用来写应用软件。
1. 汇编语言的可读性和可移植性都比较差。2.高级语言无法对硬件进行直接操作。
C 语言出现的历史背景
20:41:33 20:41:33 C 不仅仅是系统描述语言,而且是一种通用的程序设计语言, C 出现于 1972 年至 1973 年间,是 BCPL 语言和B 语言的后继,故命名为 C 。 ALGOL 60 ( 1960 年) | CPL ( 1963 年)(剑桥和伦敦大学) |BCPL ( 1967 年)( Martine Richards, 剑桥) | B 语言( 1970 年)( Ken Thompson, 贝尔实验室) | C 语言( Dennis Ritchie, 贝尔实验室) (与 UNIX 在发展过程中相辅相成 )
C 语言的发展历程
20:41:33 20:41:33
程序设计语言有许多种类,每一种类都有其特殊功能和其应用范围。 C语言之所以成为当今世界上最流行的几种语言之一 ,其特点如下:1 、语言简洁、紧凑,使用方便、灵活, 32 种关键字(附录 II ), 9 种控制语句。2 、运算符丰富,有 34 种运算符(附录 III )。3 、数据类型丰富,具有现代化语言的各种数据类型。4 、具有结构化的控制语句(见目录),用函数实现程序的模块化,标准函数(附录 V )。
C 语 言 的 特 点(一)
20:41:33 20:41:33
5 、语法限制不太严格。6 、允许直接访问物理地址,能进行位操作,能实现汇编语言的大部分功能, 可以直接对硬件进行操作。7 、生成目标代码的质量高,程序执行效率高。8 、与汇编语言相比,用C编写的程序可移植性好
。
C 语 言 的 特 点(二)
20:41:33 20:41:33
C 程序 的上 机步 骤
1. 分析问题
2. 解题步骤
3. 选择语言工具编码
4. 目测正确性
5. 上机输入与编辑
6. 编译
7. 调试
8. 与库函数等连接
9. 运行
* 本课程以 Turbo C 为语言环境
源程序exp1.c
目标程序exp1.obj
库函数和其他目
标程序
开始
编辑
编译
连接
执行
有错
结果正确
结束
可执行目标程序exp1.exe
Y
Y
N
N
20:41:33 20:41:33
/*sample 1_1*/main() /* 输出字符串 */{printf(“Hello!\n”); /* 输出字符串 */}
简 单的 C程 序介 绍
( 一 )
其中:1. main() 表示“主函数”,每一个 c 程序都必须有
main 函数函数体由 { } 括起来。2. printf 是 c 语言中的输出函数,双引号中的字符
串原样输出。3. “\n” 是换行符。4. 每个语句最后要有一个 分号 ;。
20:41:33 20:41:33
/* Sample 1_2 */main() /* 求和程序 1*/
{int a,b,sum; /* 定义变量 2*/
a=123;b=456; /* 给 a , b 分别赋值 3*/
sum=a+b; /* 求出 a 和 b 的和,把和放在变 sum中 4*/
printf(“sum is %d\n”,sum); /* 输出结果 5*/
} /*6*/
简 单的 C
程 序介 绍
( 二 )
1. 本程序的作用是求两个整数 a 和 b 之和 sum 。 /*……*/ 表示注释部分,起说明的作用,不影响 编译和运行。注释可以加在程序的任何位置。2. 第 2 行是声明部分,定义变量 a 和 b;
3. 第 3 行是两个赋值语句 ;4. 第 4 行是求和 , 并保存值
5. 第 5 行中 %d 是输入输出的“格式字符串”,用来指定输入输出 时的数据类型和格式。(见第 4章)
20:41:33 20:41:33
简 单的 C程 序介 绍
( 三 )
/* Sample 1_3*/
int max(int x,int y) /*max 子函数 */
{int z; if (x>y) z=x; else z=y; return(z); /* 返回值放在 z 中 */
}main(){int a,b,c; scanf("%d,%d",&a,&b); /* 分别输入数到 a 和 b中 */
c=max(a,b); /* 调用子函数求出最大数 */
printf("max=%d",c); }
20:41:33 20:41:33
1. 本程序包括两个函数:主函数 main 和被调用的函数 max 。
2. max 函数的主要功能是将 x 和 y 中的较大者的值赋给变量 z 。
3. return 语句将 z 的值返回给主调函数 main 。返回值是通过 max 带回到调用处。
4. scanf 是“输入函数”的名字。
20:41:33 20:41:33
小结---
C程序的结构
C 程序的组成和形式简单总结如下:
1 、 C程序由函数构成:一个程序至少包含一个函数,是函数式的语言, 其函数库非常丰富。容易实现程序的模块化。
2 、函数由两部分组成: 函数的说明部分 ------ 包括函数名、类型、形参名、形参类型等。函数名后必须跟一对圆括函数参数可以没有。 函数体 ------即最外层大括号括起的部分。
20:41:33 20:41:33
函数体一般包括: 变量定义:定义所要使用的变量的类型等。 执行部分:由若干语句组成。 * 允许没有变量定义部分,甚至允许没有 执行部分,即一个空函数。 如: kong () { }
20:41:33 20:41:33
小 结--- C 程序 的结 构
3、在一个函数中可以调用其他的函数。4、总是从main函数开始执行。5、书写格式自由。6、每个语句和数据定义的后面必须有一个分号。7、对输入输出实行函数化。8、可以用 /* */ 形式作注释。
20:41:33 20:41:33
注:1. main 表示主函数2. 每个 C 程序都必须有 main 函数3. 大括号 { } 表示函数体的开始和结束4. 分号表示语句的结束5. 一行可以写一个语句或几个语句6. C 语言本身没有输入输出语句,而是调用库函
数来实现数据的输入输出7. 可以用 /* */形式作注释。
20:41:33 20:41:33
习
题
(1)
一、选择题
1 . 一个 c 程序的执行是从( )A. 本程序的 main 函数开始到 main 函数结束B. 本程序的第一个函数开始到本程序的最后一个函数
结束C. 本程序的 main 函数开始到本程序的最后一个函数结
束D. 本程序的第一个函数开始到 main 函数结束
2 . 以下叙述正确的是( )A. 在 c 程序中, main 函数必须位于程序的最前头B. C 程序的每行中只能写一条语句C. C 语言本身没有输入输出语句D. 在对一个 c 程序进行编译的过程中,可发现注释中
的拼写错误
A
C
20:41:33 20:41:33
3 、以下叙述不正确的是( )A 、一个 c 源程序可由一个或者多个函数组成B 、一个 c 源程序必须包含一个 main 函数C 、 C 程序的基本组成单位是函数D 、在 c 程序中,注释说明只能位于一条语句的后面4 、 c 语言规定:在一个源程序中, main 函数的位
置 ( )A. 必须在最开始B. 必须在系统调用的库函数的后面C. 可以任意D. 必须在最后
D
C
20:41:33 20:41:33
返回
习
题
( 2)
5. 一个 c 语言程序是由( )A. 一个主程序和若干子程序组成B. 函数组成C. 若干过程组成D.若干子程序组成二、填空题1. C 源程序的基本单位是( )2. 一个 c 程序中至少包含一个(
)3. 在一个 c 源程序中,注释部分两侧的分界符分
别为( )和( )4. 在 c 语言中,输入操作是由库函数( )完成的,输出操作是由库函数( )完成的
B
函数 主函数或 main 函数
/* */
printf scanf