C语言程序设计基本概念
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
ave=average(a,b);
2020/4/18
//主 //声 //输入a、b两个数 //调用 21
4、逐步求精:设计averag(float x,float y)函数的算法(设两个参数为float x, float y)
S2.1 :把x加y的和除2的值送给aver
5、SC2.语2 言:实把现avaevre的ra值g返(f回lo给at主函x,数f。loat y)函数的 编程
连接:利用连接器,将C已编译的目标程序和 库函数连接之后,生成可执行文件,并以 文件形成存入到磁盘上,文件扩展名 为 .exe。
运行: 在操作系统下运行可执行文件。
2020/4/18
32
上机实践
运行环境——turbo C (2.0或3.0)
编辑——录入、修改
编译——翻译为二进制代码(obj)
连接——连接各模块的二进制代码,
THEN max=a
ELSE max=b
IF max>c
THEN 输出 max
2020/4/18
ELSE 输出 c
16
【例】酱油与醋的问题:试用自然语言描述 如何将酱油与醋互换位置的过程。
➢ 流程图: 传统图语言表示法 ANSI规定了一些常用的流程图符号:
起止框 输入输出框 判断框 线 连接圈
2020/4/18
25
【例】对于一个大于3的整数,判断它是不是 素数(循环之例)
算法如下:
1. 输入n
2. i=2
3. n被i除,得余数r
4. 若r=0,则输出n“不是素数”,算 法结束
5. i=i+1
6. 若i<n/2,则重新执行3. ;否则执
行7. 2020/4/18
26
➢ 结构化程序的三种基本控制结构: 顺序结构
处理框
流程
17
三个数中最大值问题的流程图(图1-4)
Y
N
a>b
max=b
max=a
N
Y
max>c
c
2020/4/18
max
18
➢N-S图(结构化流程图): 图语言表示法 三个数中最大值问题的 N-S图(图1-5)
a>b
成立
不成立
max=a
max=b
max>c
成立
max
不成立
C
2020/4/18
19
选择结构(if_else)
循环结构(while, repeat_until)
顺序结构:
A
A B N-S图
B
流程图
先执行A操作, 再执行B操作。
2020/4/18
27
选择结构:
成立
A
不成立
P B
TP F AB
百度文库
流程图 当P 条件成立 行B 2020/4/18
N-S图
(为真T)执行A 否则 (为假 F)执
2020/4/18
C语言程序设计
任课教师介绍
许 创 副教
授
(工学院计算机系)
手机:692211
E-mail: cxu@stu.edu.cn
网站:
1
上机习题
CH1EX3: 调试程序,找出其中错误并改正。 CH2ABS: a, b是任意输入的两个整数,计
算 a+|b|,并显示计算结果。
CH2CVS: 输入一个华氏温度F,输出对应 的摄氏温度。公式为:c=5/9(F-32)
float average(float x, float y) { float z, aver;
为实型变量 aver=(x+y)/2; 的平均值赋给aver return (aver); 为函数的的返回值 } void main() 函数 { float a, b, ave; 明a、b和ave为实型变量 scanf("%f%f", &a, &b); 的值 2020/4/18
伪代码
流程图
NS图 等等
2020/4/18
15
【例】求三个数中最大值问题 ➢ 自然语言: 日常使用的语言
先将a,b进行比较,找出其中的大数;然后 再把它和第三个数c进行比较,如果它比c大, 则它就是最大数,否则c是最大数。
➢ 伪代码: 介于自然语言和计算机语言之间的文 字和符号进行描述 IF a>b
的4相加
停特机点:繁1琐11、1 难01记00、难读、难写、不可移植
2020/4/18
6
➢ 汇编语言
1、与计算机硬件的设计密切相关 2、计算机不能直接识别 3、计算机基本操作是采用英语缩写 的助记符来编写程序
【例】计算 4+8
MOVE AL, 4
将4 送累加器
ADD AL, 8 的 4相加
HLT
2020/4/18
2020/4/18
24
➢ 两数交换的另一个奇特难懂的算法:
S1: 输入两个整数x, y
S2: 将x+y赋给x
S3: 将x-y赋给y
S4: 将x-y赋给x
➢ 相应的程序段:
scanf("%d%d", &x, &y); 入x、y
x=x+y; //交换x、y
y=x-y; x=x-y;
2020/4/18
//输
main( )后面花括号内的部分叫函数体
函数体含“说明部分”和“执行部分”
说明部分和执行部分各由若干语句组成
语句以分号为结束标记
2020/4/18
12
C函数的一般形式
函数类型 函数名(形式参数表) {
说明、定义部分 函数执行部分 }
2020/4/18
13
算法
➢ Niklaus Wirth 提出的著名公式: 数据结构+算法 = 程序
^QR--移到文件首
^QC--移到文件尾
2020/4/18
37
^QF--查找
^I--查找下一个
^QA--查找并替换
^Y--删除一行
^N或<Enter>--插入一行
<BackSpace>--向前删一个字符
<Del>--向后删一个字符
2020/4/18
38
^QY--从光标删到行尾 <Insert>--插入状态开关 ^KS--存盘不退出 <Esc>--将本次操作作废或退回
头文件
#include"stdio.h"
void main()
/* 函数头 主*函/ 数、注释
{
printf("Welcome to C programming.\n");
}
运行结果:
Welcome to C programming.
系统提供的 输出函数
2020/4/18
10
【例1-2】编写求三数中最大值问题的程序
➢ 什么是算法?
—— 对特定问题求解方法和步骤的一种描 述。
➢ 算法的两大要素:① 操作 ② 控制结构
➢ 算法解决的问题:① 做什么 ② 如何做
2020/4/18
14
➢ 算法的特性:
1. 有穷性 2. 确定性 3. 有效性 4. 有零个或多个输入 5. 有一个或多个输出
➢ 描述算法的工具:
自然语言
练习:2.6
2.7
2.8
2020/4/18
2
第1章 C语言程序设计基本概念
学习目标
➢ 了解C语言的历史和特点 ➢ 熟悉计算机语言的不同类型 ➢ 了解C语言的结构 ➢ 理解C语言程序的开发过程 ➢ 了解算法的概念 ➢ 了解结构化程序设计方法
2020/4/18
3
C语言的特点
语言简洁、紧凑,使用方便、灵活
生成可执行文件(exe)
运行——运行程序
2020/4/18
33
Turbo C 2.0上机环境简介
四个最主要菜单
File
创建新文件、打开文件、
保存文件、改变目录、退出系统
Edit
切换到编辑状态
Compile
编译、连接成目标
文件或可执行文件
Run 自动编译、连接并运行
2020/4/18
34
Turbo C 3.0上机环境简介
File/Change dir
先编译、后保存、再运行
在3.0版本,可用鼠标,在多程序
窗口环境下可选[Windows]-[Next]
命令作窗口切换
2020/4/18
36
Turbo C 常用编辑命令
<PgUp>--上翻一屏
<PgDn>--下翻一屏
<Home>--移到行首
<End>--移到行尾
max=c; return (max); }
maxx=max_value(x, y, z); printf("max=%d\n", maxx); }
输入:8 5 7
2020/4/18
输出:max=8
11
C语言程序的构成
C程序由函数组成
每个函数完成相对独立的功能
C提供了丰富的库函数
每个C程序都有一个叫做main的主函数
2020/4/18
30
➢三种基本结构的共同特点:
1)单入口 2)单出口 3)无死语句 4)无死循环
A
成立
不成立
P
B
A
B
顺序
2020/4/18
选择
A
A
P
真
假
假
P 真
循环 31
C程序的编辑、编译和执行
编辑:利用编辑器,通过键盘将C源程序输入 到计算机,并以文件形成保存到磁盘。
编译:利用编译器,将C源程序编译成目标程 序。
28
循环结构1(while ):
A
P
真
假
P为真时 A
N-S图
流程图
当P条件成立 (为真 T)反复执行A, 直到P为 ‘假
’时结束。
2020/4/18
29
循环结构2(repeat_until)
A 假
P 真
流程图
A 直到P为真时
N-S图
先执行A操作,再判断P,若为‘假’,再执行A ,直到P为 ‘真’时结束。
#include<stdio.h>
int max_value(int a, int b, int c)
{ int max; if(a>b) max=a;
void main() { int x, y, z, maxx;
else
scanf("%d%d%d",&x,&y,&z);
max=b; if(max<c)
(C、PASCAL等)
面向对象语言 (JAVA、C++等)
甚高级语言 (尚在开发)
2020/4/18
5
➢ 机器语言
1、与计算机硬件的设计密切相关 (无移
植性)
2、是计算机能直接识别的语言
【例3、】由计一算组4+二8 进制0和1序列构成
取数 1011 0000 0000 0100 将4送累加器
加 0000 0100 0000 1000 8与累加器中
结构化程序设计方法
➢ 结构化程序设计的基本方法:
自顶向下,逐步求精,将复杂问题分解为若 干的独立的小问题(小模块)。
【例】求解两个数的平均值
1、分解:问题分解为三个模块 : S1: 输入两个数a, b S2: 求两个数的平均值赋给aver S3:输出平均值
2020/4/18
20
2、实现方法,算法细化
运算符丰富,具有多种运算功能
有丰富的数据类型
生成代码质量高,程序执行效率高
C程序的可移植性好
是一种结构化程序设计语言
语法限制不严,程序设计自由度大
C提供的位运算可直接对硬件操作
2020/4/18
4
程序设计语言
——人与计算机进行信息交流的工具
机器语言
汇编语言
高级语言
面向过程语言
//求两个数的平均值 //声明aver
//计算两个数 //aver的值作
//主 //声 //输入a、b两个数
23
【例1-3】设计两整数交换的算法
➢ 用自然语言描述:
S1: 输入两个整数x, y
S2: 交换x, y
细化S2:
S2.1:将x赋给t S2.2:将y赋给x S2.3:将t赋给y
➢相应的程序段: //输入x、y scanf("%d%d", &x, &y); //交换x、y t=x; x=y; y=t;
S1: 调用输入函数,完成输入 S2: 设计一个求解平均值的函数averge( ) S3: 调用输出函数,完成输出
3、C 语言实现主函数的编程
//求两个数的平均值 void main() 函数 { float a, b, ave; 明a、b和ave为实型变量
scanf("%f%f",&a,&b); 的值
#include<stdio.h>
float average(float x, float y) //求两个数的
平均值
{ float aver;
//声明
aver为实型变量
aver=(x+y)/2; 2020/4/18
//计算两个数的平均值22
6、两模块连接成一个完整的求解程序
#include<stdio.h>
8 与累加器中 停机
7
汇编程序:
将汇编语言程序转换为计算机能识 别的机器语言
2020/4/18
8
➢ 高级语言
基本与计算机的硬件设备无关
【例】计算4+8(用C语言编写) sum=4+8;
编译程序: 高级语言转换为机器语言的翻译程序
2020/4/18
9
简单的C程序实例
【例1-1】
注释
//第一个C程序
五个最主要菜单
File
创建新文件、打开文件、
保存文件、改变目录、退出系统
Edit
常用编辑命令
Compile
编译、连接成目标文件
或可执行文件
Run
自动编译、连接并运行
Windows
窗口切换
2020/4/18
35
可用快捷键打开菜单
如按<Alt>+F 可打开文件菜单
输入程序前一般应先改变好目录
上级菜单
2020/4/18
39
Turbo C 常用块操作命令
^KB--定义块首
^KK--定义块尾
^KC--块复制
^KV--块移动
^KY--块删除
^KH--隐藏/显示块
^KW--写块
^KR--读块
2020/4/18
2020/4/18
//主 //声 //输入a、b两个数 //调用 21
4、逐步求精:设计averag(float x,float y)函数的算法(设两个参数为float x, float y)
S2.1 :把x加y的和除2的值送给aver
5、SC2.语2 言:实把现avaevre的ra值g返(f回lo给at主函x,数f。loat y)函数的 编程
连接:利用连接器,将C已编译的目标程序和 库函数连接之后,生成可执行文件,并以 文件形成存入到磁盘上,文件扩展名 为 .exe。
运行: 在操作系统下运行可执行文件。
2020/4/18
32
上机实践
运行环境——turbo C (2.0或3.0)
编辑——录入、修改
编译——翻译为二进制代码(obj)
连接——连接各模块的二进制代码,
THEN max=a
ELSE max=b
IF max>c
THEN 输出 max
2020/4/18
ELSE 输出 c
16
【例】酱油与醋的问题:试用自然语言描述 如何将酱油与醋互换位置的过程。
➢ 流程图: 传统图语言表示法 ANSI规定了一些常用的流程图符号:
起止框 输入输出框 判断框 线 连接圈
2020/4/18
25
【例】对于一个大于3的整数,判断它是不是 素数(循环之例)
算法如下:
1. 输入n
2. i=2
3. n被i除,得余数r
4. 若r=0,则输出n“不是素数”,算 法结束
5. i=i+1
6. 若i<n/2,则重新执行3. ;否则执
行7. 2020/4/18
26
➢ 结构化程序的三种基本控制结构: 顺序结构
处理框
流程
17
三个数中最大值问题的流程图(图1-4)
Y
N
a>b
max=b
max=a
N
Y
max>c
c
2020/4/18
max
18
➢N-S图(结构化流程图): 图语言表示法 三个数中最大值问题的 N-S图(图1-5)
a>b
成立
不成立
max=a
max=b
max>c
成立
max
不成立
C
2020/4/18
19
选择结构(if_else)
循环结构(while, repeat_until)
顺序结构:
A
A B N-S图
B
流程图
先执行A操作, 再执行B操作。
2020/4/18
27
选择结构:
成立
A
不成立
P B
TP F AB
百度文库
流程图 当P 条件成立 行B 2020/4/18
N-S图
(为真T)执行A 否则 (为假 F)执
2020/4/18
C语言程序设计
任课教师介绍
许 创 副教
授
(工学院计算机系)
手机:692211
E-mail: cxu@stu.edu.cn
网站:
1
上机习题
CH1EX3: 调试程序,找出其中错误并改正。 CH2ABS: a, b是任意输入的两个整数,计
算 a+|b|,并显示计算结果。
CH2CVS: 输入一个华氏温度F,输出对应 的摄氏温度。公式为:c=5/9(F-32)
float average(float x, float y) { float z, aver;
为实型变量 aver=(x+y)/2; 的平均值赋给aver return (aver); 为函数的的返回值 } void main() 函数 { float a, b, ave; 明a、b和ave为实型变量 scanf("%f%f", &a, &b); 的值 2020/4/18
伪代码
流程图
NS图 等等
2020/4/18
15
【例】求三个数中最大值问题 ➢ 自然语言: 日常使用的语言
先将a,b进行比较,找出其中的大数;然后 再把它和第三个数c进行比较,如果它比c大, 则它就是最大数,否则c是最大数。
➢ 伪代码: 介于自然语言和计算机语言之间的文 字和符号进行描述 IF a>b
的4相加
停特机点:繁1琐11、1 难01记00、难读、难写、不可移植
2020/4/18
6
➢ 汇编语言
1、与计算机硬件的设计密切相关 2、计算机不能直接识别 3、计算机基本操作是采用英语缩写 的助记符来编写程序
【例】计算 4+8
MOVE AL, 4
将4 送累加器
ADD AL, 8 的 4相加
HLT
2020/4/18
2020/4/18
24
➢ 两数交换的另一个奇特难懂的算法:
S1: 输入两个整数x, y
S2: 将x+y赋给x
S3: 将x-y赋给y
S4: 将x-y赋给x
➢ 相应的程序段:
scanf("%d%d", &x, &y); 入x、y
x=x+y; //交换x、y
y=x-y; x=x-y;
2020/4/18
//输
main( )后面花括号内的部分叫函数体
函数体含“说明部分”和“执行部分”
说明部分和执行部分各由若干语句组成
语句以分号为结束标记
2020/4/18
12
C函数的一般形式
函数类型 函数名(形式参数表) {
说明、定义部分 函数执行部分 }
2020/4/18
13
算法
➢ Niklaus Wirth 提出的著名公式: 数据结构+算法 = 程序
^QR--移到文件首
^QC--移到文件尾
2020/4/18
37
^QF--查找
^I--查找下一个
^QA--查找并替换
^Y--删除一行
^N或<Enter>--插入一行
<BackSpace>--向前删一个字符
<Del>--向后删一个字符
2020/4/18
38
^QY--从光标删到行尾 <Insert>--插入状态开关 ^KS--存盘不退出 <Esc>--将本次操作作废或退回
头文件
#include"stdio.h"
void main()
/* 函数头 主*函/ 数、注释
{
printf("Welcome to C programming.\n");
}
运行结果:
Welcome to C programming.
系统提供的 输出函数
2020/4/18
10
【例1-2】编写求三数中最大值问题的程序
➢ 什么是算法?
—— 对特定问题求解方法和步骤的一种描 述。
➢ 算法的两大要素:① 操作 ② 控制结构
➢ 算法解决的问题:① 做什么 ② 如何做
2020/4/18
14
➢ 算法的特性:
1. 有穷性 2. 确定性 3. 有效性 4. 有零个或多个输入 5. 有一个或多个输出
➢ 描述算法的工具:
自然语言
练习:2.6
2.7
2.8
2020/4/18
2
第1章 C语言程序设计基本概念
学习目标
➢ 了解C语言的历史和特点 ➢ 熟悉计算机语言的不同类型 ➢ 了解C语言的结构 ➢ 理解C语言程序的开发过程 ➢ 了解算法的概念 ➢ 了解结构化程序设计方法
2020/4/18
3
C语言的特点
语言简洁、紧凑,使用方便、灵活
生成可执行文件(exe)
运行——运行程序
2020/4/18
33
Turbo C 2.0上机环境简介
四个最主要菜单
File
创建新文件、打开文件、
保存文件、改变目录、退出系统
Edit
切换到编辑状态
Compile
编译、连接成目标
文件或可执行文件
Run 自动编译、连接并运行
2020/4/18
34
Turbo C 3.0上机环境简介
File/Change dir
先编译、后保存、再运行
在3.0版本,可用鼠标,在多程序
窗口环境下可选[Windows]-[Next]
命令作窗口切换
2020/4/18
36
Turbo C 常用编辑命令
<PgUp>--上翻一屏
<PgDn>--下翻一屏
<Home>--移到行首
<End>--移到行尾
max=c; return (max); }
maxx=max_value(x, y, z); printf("max=%d\n", maxx); }
输入:8 5 7
2020/4/18
输出:max=8
11
C语言程序的构成
C程序由函数组成
每个函数完成相对独立的功能
C提供了丰富的库函数
每个C程序都有一个叫做main的主函数
2020/4/18
30
➢三种基本结构的共同特点:
1)单入口 2)单出口 3)无死语句 4)无死循环
A
成立
不成立
P
B
A
B
顺序
2020/4/18
选择
A
A
P
真
假
假
P 真
循环 31
C程序的编辑、编译和执行
编辑:利用编辑器,通过键盘将C源程序输入 到计算机,并以文件形成保存到磁盘。
编译:利用编译器,将C源程序编译成目标程 序。
28
循环结构1(while ):
A
P
真
假
P为真时 A
N-S图
流程图
当P条件成立 (为真 T)反复执行A, 直到P为 ‘假
’时结束。
2020/4/18
29
循环结构2(repeat_until)
A 假
P 真
流程图
A 直到P为真时
N-S图
先执行A操作,再判断P,若为‘假’,再执行A ,直到P为 ‘真’时结束。
#include<stdio.h>
int max_value(int a, int b, int c)
{ int max; if(a>b) max=a;
void main() { int x, y, z, maxx;
else
scanf("%d%d%d",&x,&y,&z);
max=b; if(max<c)
(C、PASCAL等)
面向对象语言 (JAVA、C++等)
甚高级语言 (尚在开发)
2020/4/18
5
➢ 机器语言
1、与计算机硬件的设计密切相关 (无移
植性)
2、是计算机能直接识别的语言
【例3、】由计一算组4+二8 进制0和1序列构成
取数 1011 0000 0000 0100 将4送累加器
加 0000 0100 0000 1000 8与累加器中
结构化程序设计方法
➢ 结构化程序设计的基本方法:
自顶向下,逐步求精,将复杂问题分解为若 干的独立的小问题(小模块)。
【例】求解两个数的平均值
1、分解:问题分解为三个模块 : S1: 输入两个数a, b S2: 求两个数的平均值赋给aver S3:输出平均值
2020/4/18
20
2、实现方法,算法细化
运算符丰富,具有多种运算功能
有丰富的数据类型
生成代码质量高,程序执行效率高
C程序的可移植性好
是一种结构化程序设计语言
语法限制不严,程序设计自由度大
C提供的位运算可直接对硬件操作
2020/4/18
4
程序设计语言
——人与计算机进行信息交流的工具
机器语言
汇编语言
高级语言
面向过程语言
//求两个数的平均值 //声明aver
//计算两个数 //aver的值作
//主 //声 //输入a、b两个数
23
【例1-3】设计两整数交换的算法
➢ 用自然语言描述:
S1: 输入两个整数x, y
S2: 交换x, y
细化S2:
S2.1:将x赋给t S2.2:将y赋给x S2.3:将t赋给y
➢相应的程序段: //输入x、y scanf("%d%d", &x, &y); //交换x、y t=x; x=y; y=t;
S1: 调用输入函数,完成输入 S2: 设计一个求解平均值的函数averge( ) S3: 调用输出函数,完成输出
3、C 语言实现主函数的编程
//求两个数的平均值 void main() 函数 { float a, b, ave; 明a、b和ave为实型变量
scanf("%f%f",&a,&b); 的值
#include<stdio.h>
float average(float x, float y) //求两个数的
平均值
{ float aver;
//声明
aver为实型变量
aver=(x+y)/2; 2020/4/18
//计算两个数的平均值22
6、两模块连接成一个完整的求解程序
#include<stdio.h>
8 与累加器中 停机
7
汇编程序:
将汇编语言程序转换为计算机能识 别的机器语言
2020/4/18
8
➢ 高级语言
基本与计算机的硬件设备无关
【例】计算4+8(用C语言编写) sum=4+8;
编译程序: 高级语言转换为机器语言的翻译程序
2020/4/18
9
简单的C程序实例
【例1-1】
注释
//第一个C程序
五个最主要菜单
File
创建新文件、打开文件、
保存文件、改变目录、退出系统
Edit
常用编辑命令
Compile
编译、连接成目标文件
或可执行文件
Run
自动编译、连接并运行
Windows
窗口切换
2020/4/18
35
可用快捷键打开菜单
如按<Alt>+F 可打开文件菜单
输入程序前一般应先改变好目录
上级菜单
2020/4/18
39
Turbo C 常用块操作命令
^KB--定义块首
^KK--定义块尾
^KC--块复制
^KV--块移动
^KY--块删除
^KH--隐藏/显示块
^KW--写块
^KR--读块
2020/4/18