C语言程序设计教程课件:5_b_Function_a
合集下载
C语言程序设计第五版谭浩强 ppt课件
Ctrl+KV--------块移动
Ctrl+KY-------块删除 Ctrl+KH--------块隐藏
窗口操作:
F5-----窗口缩放 F6-----窗口切换
程序调试:
<>
F8-----Step over
F7-------Trace into
/* example1.1 calculate the sum of a and b*/
#include <stdio.h>
预处理命令
/* This is the main program */
void main() { int a,b,sum; /*定义变量*/ 函数
注释
的
a=10;
和
b=24;
sum=add(a,b);
空类型void
短整型short 整型int 长整型long 单精度型float
双精度型double
<
定义类型typedef
C语言程序设计
第一章 C语言概述
§1.3 简单的C程序介绍
例1.1 第一个程序This is a c program .
/* example1.1 The first C Program*/
第一章 C语言概述
C语言结构特点
❖函数与主函数
程序由一个或多个函数组成
必须有且只能有一个主函数main(),可以放在程序中任一 位置
程序执行从main开始,在main中结束,其它函数通过嵌 套调用得以执行。
❖程序语句
C程序由语句组成 用“;”作为语句终止符
❖注释
/* */为注释,不能嵌套
C语言运算符丰富(附录C)
C语言程序设计PPT课件 第5章 数组程序设计
C语言程序设计(第3版)张磊编著 清华大学出版社
5.1.4 数值型一维数组的初始化
例5-3 用一维数组生成Fibonacci数列的前20项,并输出。
#include<stdio.h> void main() {
long int fib[21]; int i; fib[1]=1; fib[2]=1; for(i=3;i<=20;i++)
{
if(str[i]>='0'&&str[i]<='9')
digital[j++]=str[i];
i++;
}
digital[j]='\0';
printf("Output: %s\n",digital);
}
C语言程序设计(第3版)张磊编著 清华大学出版社
/* program e5-6.c*/
5.2.1 字符##串iinncc的lluudd输ee<<入ssttrd输iniog出.h.h>>
}
for(i=0;i<N;i++) printf("%d ",a[i]);
}
C语言程序设计(第3版)张磊编著 清华大学出版社
5.1.4 数值型一维数组的初始化
数组的初始化,是在定义数组的时对数组的各个元素赋初值。 1. 全部元素的初始化 格式
数据类型 数组名[数组长度]={数组全部元素值表} 数据类型 数组名[]={数组全部元素值表} int a[6]={10,20,30,40,50,60}; float r[]={12.5,-3.11,8.6}; 2. 部分元素的初始化 格式 数据类型 数组名[数组长度]={数组前部元素值表} int b[10]={1,2,3}
5.1.4 数值型一维数组的初始化
例5-3 用一维数组生成Fibonacci数列的前20项,并输出。
#include<stdio.h> void main() {
long int fib[21]; int i; fib[1]=1; fib[2]=1; for(i=3;i<=20;i++)
{
if(str[i]>='0'&&str[i]<='9')
digital[j++]=str[i];
i++;
}
digital[j]='\0';
printf("Output: %s\n",digital);
}
C语言程序设计(第3版)张磊编著 清华大学出版社
/* program e5-6.c*/
5.2.1 字符##串iinncc的lluudd输ee<<入ssttrd输iniog出.h.h>>
}
for(i=0;i<N;i++) printf("%d ",a[i]);
}
C语言程序设计(第3版)张磊编著 清华大学出版社
5.1.4 数值型一维数组的初始化
数组的初始化,是在定义数组的时对数组的各个元素赋初值。 1. 全部元素的初始化 格式
数据类型 数组名[数组长度]={数组全部元素值表} 数据类型 数组名[]={数组全部元素值表} int a[6]={10,20,30,40,50,60}; float r[]={12.5,-3.11,8.6}; 2. 部分元素的初始化 格式 数据类型 数组名[数组长度]={数组前部元素值表} int b[10]={1,2,3}
C语言程序设计课件
成绩考核
• 成绩考核方法:
期末成绩=平时成绩20%+期末考试80%;
注:平时成绩包括:上课情况、作业情况、上机作业完 成情况等。
学习C的忠告
上机实践(编程)!!! (Try!!!)
C语言程序设计教程
• • • • • • • • • • • 第1章 第2章 第3章 第4章 第5章 第6章 第7章 第8章 第9章 第10章 第11章 引言 程序的简单算法制定 基本程序语句 选择结构 循环结构 函数与编译预处理 数组 指针 构造数据类型 文件 位运算
总结:简单C语言程序设计步骤
1. 分析问题,设计解决方案 2. 了解和编写C语言程序代码
理论课的主 要内容
3. 上机调试(编辑、编译、链接、执行)
•实验课的主要内容 •上述每个步骤都可能出现很多错误, 具体有三种错误:语法错误、逻辑错误、 运行错误。总之,出现错误就要进行调 试。
作 业
• 1、在屏幕上输出如下图形: • **** • * * • * *25 • **** • 要求:写出程序,并上机调试,尽量保证 程序能够得到正确结果。复习本讲内容( 第一章),预习教材第二章。
链 接
• 链接是将与当前程序有关的、已经有的几个目标模块链接 在一起,形成一个完整的程序代码文件。这些已经有的目 标模块有: • · 库函数:如前面使用的printf; • · 对于大的程序,常常分成几个模块,分别编写、编辑和 编译,形成不同的目标模块。 • 经正确链接所生成的文件才是可执行文件。可执行文件的 文件名后缀为.exe(有的系统为.out)。完成链接过程的 软件称为链接器(linker)。 • 程序在连接过程中,也可能发现错误。这时也要重新进入 编辑器进行编辑。
一、算法(algorithm)
C语言详细教程(完整版)ppt课件
. C Programming Language
教学目的:掌握“文化基础”中的相关概 念,明确学习方法,了解C语言基本知识。
教学要求:明确本课程的目标及学习方法, 复习“文化基础”中与C语言相关的知识: 数制、编码、计算机系统组成,了解算法 的概念及表示、C语言及标识符、C语言基 本结构。
学时:2学时
输出AVER的值
.
A
C Programming Language
结束
[例1.2] 输出一个数的绝对值。
开始 输入 X
输入 X N X>=0吗? Y
N X>=0吗? Y
输出 -X 输出 X
输出 -X
输出 X
结束
. C Programming Language
[例1.3] 输入10个 数,把其 中的正数 输出。
程序语言发展现状程序语言发展现状programminglanguage三翻译方式三翻译方式高级语言源程序高级语言源程序目标程序目标程序codecode翻译翻译programminglanguage用高级语言用高级语言书写的源程序书写的源程序用高级语言用高级语言书写的源程序书写的源程序机器指令机器指令程序程序机器指令机器指令程序程序函数函数库库函数函数库库编译程序编译程序编译编译用用高级语言高级语言书写的书写的源程序源程序用高级语言高级语言书写的书写的源程序源程序执行结果执行结果执行结果执行结果解释程序解释程序函数函数库库函数函数库库解释并解释并执行执行programminglanguage用计算机解决问题的基本过程
. C Programming Language
1.1 引言 1.2 算法和程序设计初步 1.3 C语言简介 1.4 集成开发环境TurboC 2.0简介
教学目的:掌握“文化基础”中的相关概 念,明确学习方法,了解C语言基本知识。
教学要求:明确本课程的目标及学习方法, 复习“文化基础”中与C语言相关的知识: 数制、编码、计算机系统组成,了解算法 的概念及表示、C语言及标识符、C语言基 本结构。
学时:2学时
输出AVER的值
.
A
C Programming Language
结束
[例1.2] 输出一个数的绝对值。
开始 输入 X
输入 X N X>=0吗? Y
N X>=0吗? Y
输出 -X 输出 X
输出 -X
输出 X
结束
. C Programming Language
[例1.3] 输入10个 数,把其 中的正数 输出。
程序语言发展现状程序语言发展现状programminglanguage三翻译方式三翻译方式高级语言源程序高级语言源程序目标程序目标程序codecode翻译翻译programminglanguage用高级语言用高级语言书写的源程序书写的源程序用高级语言用高级语言书写的源程序书写的源程序机器指令机器指令程序程序机器指令机器指令程序程序函数函数库库函数函数库库编译程序编译程序编译编译用用高级语言高级语言书写的书写的源程序源程序用高级语言高级语言书写的书写的源程序源程序执行结果执行结果执行结果执行结果解释程序解释程序函数函数库库函数函数库库解释并解释并执行执行programminglanguage用计算机解决问题的基本过程
. C Programming Language
1.1 引言 1.2 算法和程序设计初步 1.3 C语言简介 1.4 集成开发环境TurboC 2.0简介
C语言程序设计第5章数组.ppt
冒泡法排序
2019/3/19
F
冒泡法排序 (续)
程序如下:
#define N 6 #include "stdio.h" void main( ) {int a[N]; int i,j,t; printf("请输入%d个成绩,用空格隔开:\n",N); for (i=0; i<N; i++) scanf("%d",&a[i]);
2019/3/19
5.2.2 数组元素的引用(续)
2.说明
① 下标从0开始(下界为0),数组的最大下标 (上界)是数组长度减1。 例如: int a[10],i; scanf ("%d",&a[10]); /* 下标越界 */ C编译系统不做越界检查。
2019/3/19
5.2.2 数组元素的引用(续)
【例5-4】用冒泡法(也称起泡法)对输入的一组 成绩按从低分到高分的顺序排序并输出。
例如将6个数:4、7、5、6、8、1按从小到大顺序用冒泡 法排序,方法如下: 在第一趟排序中, 6个数比较了5次,把6个数中 第一趟排序情况如下: 的最大数8排在最后。 4 7 5 6 8 1 第一次 4和7比较,不交换 4 7 5 6 8 1 第二次 7和5比较,交换 457681 第三次 7和6比较,交换 456781 第四次 7和8比较,不交换 4 5 6 7 8 1 第五次 8和1比较,交换 456718
2019/3/19
5.1概述(续)
2.数组与数组元素的概念
数组:是用一个名字表示的一组相同类型的数据的集合, 这个名字就称为数组名。 如定义:float a[10]; a是数组名。 下标变量(或数组元素):数组中的数据分别存储在用下 标区分的变量中,这些变量称为下标变量或数组元素。 如:a[0]、a[1]…a[i]。 每个下标变量相当于一个简单变量,数组的类型也就是该 数组的下标变量的数据类型。 数组属于构造类型。构造类型的数据是由基本类型数据按 一定规则构成的。
2019/3/19
F
冒泡法排序 (续)
程序如下:
#define N 6 #include "stdio.h" void main( ) {int a[N]; int i,j,t; printf("请输入%d个成绩,用空格隔开:\n",N); for (i=0; i<N; i++) scanf("%d",&a[i]);
2019/3/19
5.2.2 数组元素的引用(续)
2.说明
① 下标从0开始(下界为0),数组的最大下标 (上界)是数组长度减1。 例如: int a[10],i; scanf ("%d",&a[10]); /* 下标越界 */ C编译系统不做越界检查。
2019/3/19
5.2.2 数组元素的引用(续)
【例5-4】用冒泡法(也称起泡法)对输入的一组 成绩按从低分到高分的顺序排序并输出。
例如将6个数:4、7、5、6、8、1按从小到大顺序用冒泡 法排序,方法如下: 在第一趟排序中, 6个数比较了5次,把6个数中 第一趟排序情况如下: 的最大数8排在最后。 4 7 5 6 8 1 第一次 4和7比较,不交换 4 7 5 6 8 1 第二次 7和5比较,交换 457681 第三次 7和6比较,交换 456781 第四次 7和8比较,不交换 4 5 6 7 8 1 第五次 8和1比较,交换 456718
2019/3/19
5.1概述(续)
2.数组与数组元素的概念
数组:是用一个名字表示的一组相同类型的数据的集合, 这个名字就称为数组名。 如定义:float a[10]; a是数组名。 下标变量(或数组元素):数组中的数据分别存储在用下 标区分的变量中,这些变量称为下标变量或数组元素。 如:a[0]、a[1]…a[i]。 每个下标变量相当于一个简单变量,数组的类型也就是该 数组的下标变量的数据类型。 数组属于构造类型。构造类型的数据是由基本类型数据按 一定规则构成的。
C语言程序设计教程(第2版)课件第1章
函数。不论main函数的位置在何处,C语言总是从main函数开始执行。 (4) 任何函数都是由函数首部和函数体两部分组成。 (5) 用C语言编写的程序称为C源程序,必须经过编译和连接,生成可执行
程序后才能执行。
第1章 C语言概述
本章要点: ➢C语言的发展史 ➢C语言的特点 ➢C语言程序的基本构成 ➢C语言程序的编译过程 ➢C语言程序上机常用菜单介绍
1.1 C语言的发展史
• C语言由Dennis Ritch国家标准协会为C语言制定了一套ANSI标准,成为 先行的 C语言标准。
辑窗口,键入命令即可。 Quit:退出Turboc。
• 2.运行菜单(Run)
Run: 运行程序。 Program reset: 撤消当前的调式操作,释放分配给被调试
程序的内存空间,关闭所有被调试程序已打开的所以 文件。 Go to cursor: 不设置永久断点,使程序运行至光标所在 行。 Trace into: 逐条语句执行。并跟踪进入调用函数内部。 Step over: 逐条语句执行,不跟踪进入调用函数内部。 User screen: 看屏幕信息。
scanf(“%d,%d” , &a, &b); c=max(a,b); printf(“max=%d\n”, c); }
程序运行情况: Please input two integers:
8,5 max=8
通过以上例子可以看出:
1.C程序至少要有一个main函数,用户也可以自己根据需要设 计自己的函数,像上面的max()函数。
4.运行:运行是将可执行的目标程序投入运行,以获取程序的 运行结果;在操作系统中可以直接执行扩展名为 (.EXE)的文件
开始 编辑
编译
Y
程序后才能执行。
第1章 C语言概述
本章要点: ➢C语言的发展史 ➢C语言的特点 ➢C语言程序的基本构成 ➢C语言程序的编译过程 ➢C语言程序上机常用菜单介绍
1.1 C语言的发展史
• C语言由Dennis Ritch国家标准协会为C语言制定了一套ANSI标准,成为 先行的 C语言标准。
辑窗口,键入命令即可。 Quit:退出Turboc。
• 2.运行菜单(Run)
Run: 运行程序。 Program reset: 撤消当前的调式操作,释放分配给被调试
程序的内存空间,关闭所有被调试程序已打开的所以 文件。 Go to cursor: 不设置永久断点,使程序运行至光标所在 行。 Trace into: 逐条语句执行。并跟踪进入调用函数内部。 Step over: 逐条语句执行,不跟踪进入调用函数内部。 User screen: 看屏幕信息。
scanf(“%d,%d” , &a, &b); c=max(a,b); printf(“max=%d\n”, c); }
程序运行情况: Please input two integers:
8,5 max=8
通过以上例子可以看出:
1.C程序至少要有一个main函数,用户也可以自己根据需要设 计自己的函数,像上面的max()函数。
4.运行:运行是将可执行的目标程序投入运行,以获取程序的 运行结果;在操作系统中可以直接执行扩展名为 (.EXE)的文件
开始 编辑
编译
Y
C语言程序设计(最新版_乌云高娃)精品课件第1章 C语言程序设计基础
算法的表达方式
• • • • • 1、自然语言 2、伪代码 3、传统流程图 4、N/S流程图:去掉带箭头的流程线 5、计算机语言(程序)
算法表示举例
问题1.3 : 比较三个人的身高,将个子最高的一个人的身高输出 到屏幕上。 问题分析:设fTall1,fTall2,fTall3分别存放3个人 的身高,fMax存放其最大值。为求最大值,要对3个数 进行比较,
1983年美国国家标准协会ANSI,制定标准C (ANSI C)
20世纪80年代中期美国贝尔实验室B.Stroustrup博士C++
微软 MS C++\Visual C++, Borland Turbo C++\C++ Builder
面 向 对 象
学习方法
(1)多思多练多问 (2 )认真听课做好笔记,独立完成作业和实训项目。 (3)课程学习资源 • ◎教材:《C语言程序设计》 乌云高娃等编著,高等 教育出版社 • ◎参考书: 《C语言程序设计》张强华、吕新平编著,人民邮电出 版社 《C程序设计》谭浩强著,清华大学出版社 • 教学网站/cyy/index.asp
为什么选择C语言作为程序设计 的入门语言?
• • •
• •
C语言功能强大、表达能力强; 生成的目标程序效率高,可移植性好; 是一门跨平台的语言,既具有高级语言的特 性,又具有低级语言的优点,应用广泛; 以3种基本结构为主体,是后续课程的基础 目前在很多企业中被广泛应用
C 语言的产生与发展
1972年美国贝尔实验室 Dennis Ritchie和Brain Kernighan 首先推出 1983年美国贝尔实验室Dennis Ritchie和Brain Kernighan 改进推出(The C Programing Language) 面 向 过 程
四川大学《c语言程序设计》课件-第5章 函数
用void定义参数 ,表示没有参数
void 函数名(void)
{ 声明语句序列 可执行语句序列 return ;
}
return语句后无需 任何表达式
【例】 计算整数n的阶乘n!
/* 函数功能: 用迭代法计算n!
返回值函数类入型口参数:函整数型名变量说n明表示阶乘的形阶参数表,函
函数返回值: 函返数回的n!功的能值
函数定义(Function definition)
返回值 类型
函数名标识符, 说明运算规则
参数表相当于 运算的操作数
类型 函数名(类型 参数1, 类型 参数2, ……)
{ 声明语句序列
可执行语句序列 return 表达式;
}
函数出口
返回运算的结果
函数定义(Function definition)
因变量
函数名
自变量
程序设计中的函数
程序设计中的函数不局限于计算 –计算类,如打印阶乘表的程序…… –判断推理类,如排序、查找……
问题的提出
读多少行的程序能让你不头疼? 假如系统提供的函数printf()由10行代码替换,那么你编过的程 序会成什么样子?
–实际上一个printf()有上千行代码 main()中能放多少行代码? 如果所有代码都在main()中,怎么团队合作? 如果代码都在一个文件中,怎么团队合作?
C程序的存储类别 – auto型(自动变量) – static型(静态变量) – extern型(外部变量) – register型(寄存器变量)
变量的存储类型( Storage Class)
变量的生存期(Lifetime )
The lifetime of a variable is the period of time during which memory is allocated to the variable
C语言程序设计教程(第5版)王秀鸾全册PPT课件
ANSI 标准
2. C语言的特点
(1)语言简洁、紧凑,使用方便、灵活。 (2)支持结构化程序设计 。 (3)运算符丰富。 (4)数据类型丰富。 (5)较强的编译预处理功能。 (6)C语言的可移植性好。 (7)C语言本身既有一般高级语言的优点,又有低级 (汇编)语言的特点 。 (8)语法限制不太严格,程序设计自由度大。
printf(“sum is %d \n”,sum ); /* 输出sum的值 */
}
程序的运行结果为:
sum is 8
【例1.5】求两个整数中的较小者
#include “stdio.h”
main( )
/* 主函数 */
{ int x,y,m;
/* 定义变量 */
int fun(int a,int b);
1.1 程序设计的基本概念
1.1.2程序设计的一般过程
① 分析、理解问题 ② 解决方案(大致的思路),建立数学模型 ③ 求解步骤和流程(算法)(文字、符号等的描述) ④ 使用程序设计语言编写源程序 ⑤ 运行调试程序 ⑥ 整理输出结果,写出相关文档
分析 问题
确定处 理方案
确定操 作步骤
编写 程序
图1.1 程序设计的一般过程
1.2.2 初识C语言程序
(1) C程序的构成 【例1.4】求两个整数m与n的和。
#include “stdio.h”
main( )
/* 主函数 */
{int m,n,sum;/* 定义变量m,n, sum*/
m=5; n=3; /* 给变量m,n赋值 */
sum=m+n; /* 求m+n的值,并赋给变量sum */
上机运 行程序
整理 结果
《C语言程序设计》课件 《C语言程序设计》课件 第5章-循环结构程序设计
Page 28
参考代码
#include<stdio.h> void main() {
char ch; int char_num=0,int_num=0,other_num=0; while((ch=getchar())!=‘\n’) //回车键结束输入 {
if(ch>='A'&&ch<='Z'||ch>='a'&&ch<='z') char_num++;
printf("************\n ");
printf("************\n ");
printf("************\n ");
printf("************\n "); printf("************\n "); 等价 for(int i=1;i<=8;i++)
{ s=s+i;
i++; //表达式3移至循环体末尾
}
printf("s=%d",s);
}
<<C语言程序设计>>
Page 19
随堂练习
例 编程计算n的阶乘。
n!=1 2 3 ……〔n-1〕 n
思路:
类似于累加求和,每一次循环乘上一个数字,求和 将和初始化为0,这里应把积初始化为?
<<C语言程序设计>>
#include "stdio.h" void main( ) { int i,sum=0;
C语言程序设计第1章-C语言概述课件
1.2.2 Visual C++ 6.0开发环境介绍(续)
图1-8 新建源文件
图1-8 新建源文件
1.2.2 Visual C++ 6.0开发环境介绍(续)
5) 点击“确定”按钮以后,在窗口左边的工作区会看到两个选项卡: ClassView和 FileView。一般默认为ClassView,点击FileView,可以才从ClassView 切换到FileView选项卡。逐步点击工作区p1工程下面的“+”号,可以 在Source Files目录下看到刚才新建的1-1.c源文件,这个时候可以在 右边的程序编辑窗口中输入源代码,如下图1-9所示。
1.1.1 C语言的发展
C语言是国际上流行的计算机高级程序设计语言之一。与其他高 级语言相比,C语言的硬件控制能力和运算表达能力强,可移植性 好,效率高(目标程序简洁,运行速度快)。因此应用面非常广, 许多大型软件都是用C语言编写的。
艾伦.佩利(Alan J.Perlis)在巴黎举行的全世界一流软件专家参加 的讨论会上,发表了“算法语言Algol 60”报告,确定了程序设计语言 Algol 60;1962年,艾伦.佩利又对Algol 60进行了修正;1963年,英 国剑桥大学在ALGOL语言的基础上进行了改进,推出CPL语言; 1967 年剑桥大学的马丁·理查德对CPL简化,产生了BCPL语言; 1970年美国 贝尔实验室的肯·汤姆逊对BCPL语言进行了修改,取其
1.2.2 Visual C++ 6.0开发环境介绍(续)
图1-9 新建源文件
图1-9 新建源文件
1.2.2 Visual C++ 6.0开发环境介绍(续)
注意:工作空间可以包含多个工程,工程又可以包含多个程序 文件,工程与工程之间相互不影响,工作空间类似于文件夹,工程 类似于文件夹中的文件。
C语言程序设计第1章C语言概述简明教程PPT课件
1.1.2 C语言的特点
1.语言简洁、紧凑,使用灵活、方便
C99标准规定,C语言共具有: 37个关键字 9种控制语句 程序书写自由 可以像汇编语言一样对位、字节和地址进行操作
C语言程序设计
第1章 C语言概述
5
1.1.2 C语言的特点
1.语言简洁、紧凑,使用灵活、方便 2.运算符丰富 C语言的运算符包含34个运算符。 C语言把括号、赋值、强制类型转换等都作为运算符处 理,从而使C的运算类型极其丰富,表达式类型多样化, 通过灵活使用各种运算符,可以实现在其它高级语言中 难以实现的运算。
8.C语言适用范围大,可移植性好
C语言程序设计 第1章 C语言概述 10
1.2 C语言的程序结构及书写规则 构成C语言程序,在屏幕上输出一行信息
定义主函数 main函数 开始标志 main函数 结束标志 #include<stdio.h> 编译预处理指令 void main() { printf("This is a C program.\n"); } 输出指定的一行信息 运行结果:
C语言程序设计
第1章 C语言概述
6
1.1.2 C语言的特点
1.语言简洁、紧凑,使用灵活、方便 2.运算符丰富 3.数据类型丰富 C语言的数据类型有:整型、实型、字 符型、数组类型、指针类型、结构体类 型、共用体类型等,并能通过现有数据 类型来构建各种复杂的数据类型。
C语言程序设计
第1章 C语言概述
掌握C语言的关键字;
掌握C程序的运行环境及运行步骤;
C语言程序设计
第1章 C语言概述
3
1.1 C语言的发展简史和特点
1.1.1 C语言的起源与发展 产生背景 发展过程 机器码是计算机语言的最终形式,汇编 语言是机器码的简单表示。 C标准 ─时间 :1972~1973 ─地点 :由于汇编语言程序依赖于计算机硬件来 美国贝尔实验室 标准 C: K&R 合著《The C Programming 实现,其可读性和可移植性很差;其它的高 ─目的 :UNIX Language 》 操作系统 级语言又难以实现对计算机硬件的直接操作 ─设计人 : Ken.Thompson 和Dennis.M.Ritchie ANSI C: 1983 年 (汇编语言的特点),于是人们期望有一种 87 ANSI C: 1987年 1990兼有汇编语言和高级语言特性的新语言出现。 年国际标准的ANSI C ISO在1995年对C90进行技术补充,推出C95标准 1999年,ANSI和ISO又通过了最新版本的C语言标 准和技术勘误文档,该标准被称为 C99 4 C语言程序设计 第1章 C语言概述
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
• •
f2( );
•
}
f2( )
{ f21( );
f22( );
f2M1a(in)函数:C 程序从
{m调a用in其函它数函开数始后执行, }流程回到main
f2函2(数,) main函数
•
{结束,整个程序结束。
}
}
}main函数是C语言要求的。
示意图:函数如何构成程序
§8.1 Overview of Function
§8.1 Overview of Function
Function is the basic sub-unit of C program.
✓C语言程序设计,就是编写函数。
✓至少要编写一个 main( )函数,其次是若干辅函数。
f1( )
f11( )
main( )
{
{
{•
f11( );
}
•
f1( );
printstar ( ); /*调用printstar函数*/
}
printstar ( )
/* printstar函数 */
{ printf(“******************\n”);
p}rint_message( )
/* pr程*i*n序*t*运_*m行*e*结*s*s果*a如*g*下e*函*:*数****/
§8.1 Overview of Function
第一个C程序
第二个C程序
文件CM1.C
main( ) { ••• f1(••• );
f2( );
••• }
文件CF1.C f1( )
{ }
文件CF2.C f2( ) {
}
示意图:函数、程序、文件的关系
文件CM2.C
main( ) {
•••
f1( );
1.数据类型是说明函数中return语句返回值的 类型,我们称这个数据类型为该函数的类型
2.函数名是函数定义中不可省略的部分
共 84 页 第 11 页
§8-2 Definition of Functions
形参说明的两种形式
int func (int x, int y)
{…… }
或者
现代格式: 更简洁、更常用
共 84 页 第 5 页
§8.1 Overview of Function
Example
main( )
C函数和调用的简单示例
{ printf(”This is C program\n”);
}
函数main调用了函数printf。printf是一个库函数。
从用户使用的角度看,函数有两种: ● 标准函数,即库函数。由系统提供,可直接使用。 ● 自定义函数:用户根据需要自己定义的函数。
}•••
编译—连接
CM1.C 生成 CM1.OBJ 生成
CF2.C CF2.OBJ .EXE
CF1.C CM2.C
CF1.OBJ .EXE CM2.OBJ
§8-2 Definition of Functions
Grammar on Definition of Functions 数据类型 函数名 ( 形式参数表及说明) 数据类型 函数名 ( 形式参数表 ) 形式参数说明 { 语句序列; }
int func ( x, y )
int x,y;
{…… }
更清晰、更明确
共 84 页 第 12 页
§8-2 Definition of Functions
Example 1 C语言中一个最简单的函数: dummy ( ) /* 函数名:dummy */ { } 省略了函数的数据类型(系统默认为整形); 没有形式参数和形式参数说明; 函数体为空,没有任何语句。
程序设计基础(C语言) FUNCTION
Chapter 8 Function (函数)
Contents
• 概述、定义、声明和调用 • 函数之间参数传递规则 • 变量的存储类型与特性 • 函数和数组 • 函数递归的概念与执行过程 • 递归程序的编程方法 • 库函数 • 一些典型应用
共 84 页 第 2 页
同一个函数可被一个 或多个函数调用多次。
主模块
模块a 模块b 模块c
db
f
e
f1 f2 Function
模块化程序设计的意义 模块化 → 需要自顶向下的任务分解 → 也就
能够实现结构化程序设计 模块化的优点:
✓ 控制程序设计的复杂性, ✓ 提高软件的可靠性, ✓ 提高软件开发的效率, ✓ 提高软件的可维护性, ✓ 提高程序的可重用性。
Example - 进行参数传递的简单示例
main ( )
(a, b) 实参
形参
{ float a,b; int c; scanf(“%f,%f”,&a,&b); c=max(a,b);
int max(float x, float y) {float z;
z=x y ? x:y;
printf(“Max }
is
%d\n”,c);
return(z); }
§8.1 Overview of Function
函数与文件之间的关系:
• 一个源程序文件可以由一个或多个函数组成。 • 编译系统是以源文件为单位进行编译,而不以函数为单位。
程序与文件之间的关系:
➢ 一个C程序可以由一个或多个源文件组成。对较大的程序 可将函数和预定义等其它内容分别放到若干源文件中,再由 若干源文件组成一个C程序,这样分别编写、分别编译。 ➢ 一个源文件也可以为多个C程序使用,提高软件开发效率。
{printf(“ How do you do!\n”);How do you do!
}
******************
§8.1 Overview of Function
从函数的形式看,函数分两类:
● 无参函数,如前例的printstar和print_message函数。调用 无参函数时,主调函数并不传送数据到被调用函数。 ●有参函数,主调函数和被调函数间有参数传递。
• C语言以函数为程序单元,这体现了模块化的程序设计思想。 Modularization(模块化),指一个程序由若干个模块组成, 而每个模块用来实现一个特定的功能。这些模块的功能都是由 函数(也称子程序)完成。
一个C程序可由一个主模 块(main)和若干个辅 模块(其他函数)构成。 模块之间也可互相调用。
如何定义自己的函数?
怎样使用自己定义的函数?
共 84 页 第 6 页
§8.1 Overview of Function
Example 自定义C函数和调用的简单示例
main ()
{ printstar ( );
/*调用printstar函数*/
print_message( ); /*调用print_message函数*/
f2( );
•
}
f2( )
{ f21( );
f22( );
f2M1a(in)函数:C 程序从
{m调a用in其函它数函开数始后执行, }流程回到main
f2函2(数,) main函数
•
{结束,整个程序结束。
}
}
}main函数是C语言要求的。
示意图:函数如何构成程序
§8.1 Overview of Function
§8.1 Overview of Function
Function is the basic sub-unit of C program.
✓C语言程序设计,就是编写函数。
✓至少要编写一个 main( )函数,其次是若干辅函数。
f1( )
f11( )
main( )
{
{
{•
f11( );
}
•
f1( );
printstar ( ); /*调用printstar函数*/
}
printstar ( )
/* printstar函数 */
{ printf(“******************\n”);
p}rint_message( )
/* pr程*i*n序*t*运_*m行*e*结*s*s果*a如*g*下e*函*:*数****/
§8.1 Overview of Function
第一个C程序
第二个C程序
文件CM1.C
main( ) { ••• f1(••• );
f2( );
••• }
文件CF1.C f1( )
{ }
文件CF2.C f2( ) {
}
示意图:函数、程序、文件的关系
文件CM2.C
main( ) {
•••
f1( );
1.数据类型是说明函数中return语句返回值的 类型,我们称这个数据类型为该函数的类型
2.函数名是函数定义中不可省略的部分
共 84 页 第 11 页
§8-2 Definition of Functions
形参说明的两种形式
int func (int x, int y)
{…… }
或者
现代格式: 更简洁、更常用
共 84 页 第 5 页
§8.1 Overview of Function
Example
main( )
C函数和调用的简单示例
{ printf(”This is C program\n”);
}
函数main调用了函数printf。printf是一个库函数。
从用户使用的角度看,函数有两种: ● 标准函数,即库函数。由系统提供,可直接使用。 ● 自定义函数:用户根据需要自己定义的函数。
}•••
编译—连接
CM1.C 生成 CM1.OBJ 生成
CF2.C CF2.OBJ .EXE
CF1.C CM2.C
CF1.OBJ .EXE CM2.OBJ
§8-2 Definition of Functions
Grammar on Definition of Functions 数据类型 函数名 ( 形式参数表及说明) 数据类型 函数名 ( 形式参数表 ) 形式参数说明 { 语句序列; }
int func ( x, y )
int x,y;
{…… }
更清晰、更明确
共 84 页 第 12 页
§8-2 Definition of Functions
Example 1 C语言中一个最简单的函数: dummy ( ) /* 函数名:dummy */ { } 省略了函数的数据类型(系统默认为整形); 没有形式参数和形式参数说明; 函数体为空,没有任何语句。
程序设计基础(C语言) FUNCTION
Chapter 8 Function (函数)
Contents
• 概述、定义、声明和调用 • 函数之间参数传递规则 • 变量的存储类型与特性 • 函数和数组 • 函数递归的概念与执行过程 • 递归程序的编程方法 • 库函数 • 一些典型应用
共 84 页 第 2 页
同一个函数可被一个 或多个函数调用多次。
主模块
模块a 模块b 模块c
db
f
e
f1 f2 Function
模块化程序设计的意义 模块化 → 需要自顶向下的任务分解 → 也就
能够实现结构化程序设计 模块化的优点:
✓ 控制程序设计的复杂性, ✓ 提高软件的可靠性, ✓ 提高软件开发的效率, ✓ 提高软件的可维护性, ✓ 提高程序的可重用性。
Example - 进行参数传递的简单示例
main ( )
(a, b) 实参
形参
{ float a,b; int c; scanf(“%f,%f”,&a,&b); c=max(a,b);
int max(float x, float y) {float z;
z=x y ? x:y;
printf(“Max }
is
%d\n”,c);
return(z); }
§8.1 Overview of Function
函数与文件之间的关系:
• 一个源程序文件可以由一个或多个函数组成。 • 编译系统是以源文件为单位进行编译,而不以函数为单位。
程序与文件之间的关系:
➢ 一个C程序可以由一个或多个源文件组成。对较大的程序 可将函数和预定义等其它内容分别放到若干源文件中,再由 若干源文件组成一个C程序,这样分别编写、分别编译。 ➢ 一个源文件也可以为多个C程序使用,提高软件开发效率。
{printf(“ How do you do!\n”);How do you do!
}
******************
§8.1 Overview of Function
从函数的形式看,函数分两类:
● 无参函数,如前例的printstar和print_message函数。调用 无参函数时,主调函数并不传送数据到被调用函数。 ●有参函数,主调函数和被调函数间有参数传递。
• C语言以函数为程序单元,这体现了模块化的程序设计思想。 Modularization(模块化),指一个程序由若干个模块组成, 而每个模块用来实现一个特定的功能。这些模块的功能都是由 函数(也称子程序)完成。
一个C程序可由一个主模 块(main)和若干个辅 模块(其他函数)构成。 模块之间也可互相调用。
如何定义自己的函数?
怎样使用自己定义的函数?
共 84 页 第 6 页
§8.1 Overview of Function
Example 自定义C函数和调用的简单示例
main ()
{ printstar ( );
/*调用printstar函数*/
print_message( ); /*调用print_message函数*/