C语言课件(清华版-谭浩强)

合集下载

清华大学C语言谭浩强第一章

清华大学C语言谭浩强第一章

整理ppt
8
1.2.1 C程序的实例
例1.1一个简单的C程序。 void main() {
printf("Hello,Human!\n"); /*输出Hello,Human!*/ }
程序的运行结果为: Hello,Human!
整理ppt
9
对上述程序说明如下:
(1)main是主函数的函数名,表示这是一个主函 数。每一个C源程序都必须有且只有一个主函数 main。
• 1972年Ken Thompson与在UNIX系统上的亲密合作者 Dennis Ritchie将B语言改成了C语言;
整理ppt
5
• 1978年,Brain W.Kernighan、Ken Thompson与 Dennis Ritchie合著了著名的《The C Programming Language》,该书介绍的C语言成为 后来广泛使用的C语言版本的基础;
load装入文件pick显示最近装入过的最后9个文件的列表new编辑新文件文件名为nonamecsave将正在编辑的文件存盘write将正在编辑的文件改名存盘directory显示当前工作目录的内容changedir显示当前工作目录的路径名允许把它改为另一个名字osshell暂时退回到dos环境键入exit命令返回turboquit退出turboc返回dos系统整理整理pptppt4242editedit编辑菜单提供输入和编辑程序的功能不含下拉子菜单
• C语言规定,标识符由字母(A~Z,a~z)、数字 (0~9)、下划线(_)组成的字符串,并且其第一个 字符必须是字母或下划线。
• 例如:标识符a, x, x3,BOOK_1,sum5是合法的。而 以下标识符是非法的: ① 3s 以数字开头。 ② s*T 出现非法字符*。 ③ -3x 以减号开头。 ④ bowy-1 出现非法字符-(减号)。

C语言谭浩强完整课件

C语言谭浩强完整课件
2020/12/15
1.3 C语言的发展及其特点
➢C语言是国际上广泛流行的计算机高级
语言。 ➢C语言的发展:
具有多种数据类型
BCPL语言
B语言
C语言
2020/12/15
精练、接近硬件,但 过于简单, 无数据类型
1.3 C语言的发展及其特点
• 最初的C语言只是为描述和实现UNIX操作系统提供一种工作语言而设计的。
2020/12/15
函数体
1.4.1 最简单的C语言程序举 例
#include <stdio.h>
int main( )
{
printf (”This is a C program.\n”);
return 0;
输出函数
}
2020/12/15
输出语句
1.4.1 最简单的C语言程序举 例
#include <stdio.h> int main( ) {
2020/12/15
1.3 C语言的发展及其特点
• C语言主要特点: • 运算符丰富。 • 有34种运算符 • 把括号、赋值、强制类型转换等都作为运算符处理 • 表达式类型多样化
2020/12/15
1.3 C语言的发展及其特点
• C语言主要特点: • 数据类型丰富。 • 包括:整型、浮点型、字符型、数组类型、指针类型、结构体类型、共用体类型 • C99又扩充了复数浮点类型、超长整型(long long)、布尔类型(bool) • 指针类型数据,能用来实现各种复杂的数据结构(如链表、树、栈等)的运算。
会自动地、有条不紊地进行工作 ➢计算机的一切操作都是由程序控制的,
离开程序,计算机将一事无成
2020/12/15

C语言程序设计_课件_第六章(适于清华谭浩强版)

C语言程序设计_课件_第六章(适于清华谭浩强版)

int data[5]={1,2,3,4,5};
注意
(1) 允许初始化一部分元素,而不是全部。 int data[5]={1,2}; (2) 初始化数组时,允许省略数组的长度。 int data[]={1,2,3,4,5}; 与int data[5]={1,2,3,4,5};是完全等价的。 (3) 初始化数组时,不能对整个数组初始化。 例如,int data[5]=1;
程序段一: #Байду номын сангаасefine Size 5 main() { int a[Size],b[Size+10]; /*正确 … } 程序段二: main() { int n=5; int data[n]; /*错误 …… }
*/
*/
6.2.2 一维数组的引用 引用数组单元的一般形式为: 数组名[下标] 数组下标可以是整型变量或整型表达式, 但不能是浮点型的变量或浮点型表达式;并且 下标不能大于[数组长度-1],因为超过部分没 有被定义过,是不能正确使用的。 图。 例如:data[4]、data[i+j]、data[i++]都是 合法的引用方式。
地址二维数组在概念上是二维的,可以说 是数组的数组,二维数组的下标在行和列两个方 向变化。但是,计算机的内存是连续编址的,也 就是说存储器单元是按一维线性排列的。那么, 如何按照地址的顺序存放二维数组呢?一般有两 种方式来存储二维数组,第一种称为按行排列, 方法是先存储完第一行中的每个元素,再存放下 一行的每个元素;第二种称为按列排列,方法是 先存储完第一列中的每个元素,再存放下一列的 每个元素。C语言的编译系统采用按行排列。
每个数组在使用之前都需要定义。 定义数组的语法是: 数据类型说明符 数组名[数组长度];

清华谭浩强C语言函数公开课一等奖优质课大赛微课获奖课件

清华谭浩强C语言函数公开课一等奖优质课大赛微课获奖课件

如:main( )
{

double new_style ( int, double ); /*函数申明*/

}
Double new_style (int a, double x) /*函数定义*/
{

}
第25页
阐明: 1)类型标识符 被调函数名( );这种申明形 式也是合法,但不提倡。 2)假如被调函数为自定义函数且其定义 在主调函数定义之前,则在主调函数中可 不必阐明其类型。由于编译程序已知道其 类型。 3)假如被调函数值是整型或字符型,可 不必申明类型,系统自动按整型阐明。
scanf(“%d%d%d”,&n1,&n2,&n3); nmax=max(n1,n2,n3); printf(“max=%d\n “,nmax); } int max(int x,int y,int z) { int m; if(x>y)
m=x; else
m=y; if(z>m)m=z; return m; }
main() { int n1,n2,n3,nmax;
scanf(“%d%d%d”,&n1,&n2,&n3); if(n1>n2)
nmax=n1; else nmax=n2; if(n3>max)
max=n3; printf(“max=%d\n”,nmax); }
第13页
使用函数 int max(int,int,int); /*函数申明*/ main() { int n1,n2,n3,nmax;
1.函数头(首部):阐明了函数类型、函数名称及 参数。
(1)函数类型:函数返回值数据类型,能够是基 本数据类型也能够是结构类型。假如省略默认为 int,假如不返回值,定义为void类型。

C语言谭浩强完整课件

C语言谭浩强完整课件

着广泛的应用。
计算机系统基本概念
计算机系统的组成
计算机系统由硬件系统和软件系统两大部分组成,硬件系统包括运算器、控制器、存储器 、输入设备和输出设备等五大部分;软件系统包括系统软件和应用软件两大类。
计算机的工作原理
计算机的工作原理可以概括为存储程序控制和程序控制流,即计算机通过执行存储在内存 中的程序来控制各部件协调工作。
在定义数组时,可以直接 对数组进行初始化,也可 以定义后再进行赋值。
一维数组的使用
通过下标访问数组元素, 下标从0开始,最大下标为 数组长度减1。
二维数组与多维数组
二维数组的定义
二维数组可以看作是一个 表格,由行和列组成,每 个元素都有两个下标。
二维数组的初始化
在定义二维数组时,可以 直接对数组进行初始化, 也可以定义后再进行赋值 。
scanf和printf函数都支持 格式化输入输出,可以通 过格式控制符指定输入输 出数据的类型和格式。
格式化输入
格式控制符
C语言提供了一组格式控制符,用于 指定输入输出数据的类型和格式,如 %d表示输入输出整数,%f表示输入 输出浮点数等。
格式化输入
格式化输出
使用printf函数进行格式化输出时, 可以指定输出数据的格式和显示方式 ,如控制小数位数、显示宽度等。
类型。
枚举常量的说明
在枚举类型定义中,可以列 出多个枚举常量,每个常量 对应一个整数值。默认情况 下,第一个枚举常量的值为0 ,后续常量的值依次递增1。
枚举变量的使用
声明枚举类型的变量后,可 以为其赋值。枚举变量的值 只能是枚举常量中定义的值 。使用枚举类型可以提高代 码的可读性和可维护性。
08
文件操作与数据处理

C语言程序设计_课件_第七章(适于清华谭浩强版)

C语言程序设计_课件_第七章(适于清华谭浩强版)

注意:
(1) return(表达式); 和return 表达式;都 是正确的。 (2) 带返回值的函数只能返回一个值。 (3) 在函数定义时,允许使用多个return语句, 但是应尽量在末尾使用一个return语句。 (4) return语句中的表达式与函数的返回值类 型不匹配时,以函数定义时的返回类型为准。

问题的提出 函数基础 函数的定义 函数说明 函数调用 参数传递 程序举例 递归调用 变量的存储类别
7.1 问题的提出
例6.20它可以解决的问题有: ①输入若干个学生的姓名、某课程的期中 和期末成绩,并计算每个学生的总评成绩; ②计算总评成绩的分数段情况; ③输出所有学生的姓名、期中、期末和总 评成绩; ④查询某个学生的总评成绩。
函数调用时需要传递数据。调用函数要将 实参的值传送给被调用函数的形参。 若函数定义首部是 double power(double x,int n) /*函数定义 */ 调 用 形 式 是 可 以 是 power(y,m) , 也 可 以 是 power(3.0,5)。 其中,x和n是形式参数,y和m是实际参数,3.0 和可以是一个变量 名,因为变量名也构成一个表达式,形式参数只 能是变量名。当实际参数是变量名时,它与形参 的名称既可以相同,也可以不同,只是要注意, 在函数定义内部应该使用形参的名称。 (2) 实际参数与形式参数的参数个数、数据类型 和顺序都应该一致,如果数据类型不一致,系统 将按照自动转换规则进行转换。
7.3 函数的定义
7.3.1 函数的定义形式 在C语言中函数定义的形式有两种。
第一种:
函数返回值的数据类型说明 函数名称(带有类型说明的参数表)
{
函数内部数据说明; 语句;
}
第二种:

C语言程序设计_课件_第九章(适于清华谭浩强版)

C语言程序设计_课件_第九章(适于清华谭浩强版)

注意, 注意,对嵌套结构体的引用必须引用
到最末一级。 到最末一级。
struct OBJECT { struct TASK { long plan; long start; long finish; } ti,tj; int count; } ob;
可以使用scanf(“%d”,&ob.ti.plan) 输 可以使用 入数据。但是不能引用ob.ti 。 入数据。但是不能引用
9.2 结构体与数组 9.2.1结构体包含数组 结构体包含数组 由于结构体的成员可以是任何基 本数据类型和另外一个构造类型, 本数据类型和另外一个构造类型,所 以结构体的成员当然可以是数组。 以结构体的成员当然可以是数组。 下面我们说明一个可以描述一个股票 信息的结构体: 信息的结构体:
struct STOCK { char stockname[8]; /*股票名称 */ 股票名称 char stockcode[6]; /*股票代码 */ 股票代码 float price[3]; /*买 入价、卖出价、成交价 */ 买 入价、卖出价、 }; ;
不能混淆结构体名和结构体变量这两 个概念。 个概念。结构体名实际上标识了程序员定 义的一种新的数据类型, 义的一种新的数据类型,编译系统不可能 为结构体名分配内存空间。 为结构体名分配内存空间。只有当变量被 说明为这种由程序员自己定义的数据类型 的结构体时, 的结构体时,编译系统才会为结构体变量 分配存储空间。在不引起混淆的情况下, 分配存储空间。在不引起混淆的情况下, 结构体变量可以简称为结构体。 结构体变量可以简称为结构体。
*/
Struct STOCK sfz={"ShenFaZhan","000001",8.77,8.78,8.78 }; /*用深发展的数据初始化结构体变量 用深发展的数据初始化结构体变量sfz*/ 用深发展的数据初始化结构体变量 printf("\n %s %s ", sfz.stockname, sfz .stockcode); /*输出股票名称和股票代码 */ 输出股票名称和股票代码 for (i=0;i<3;i++) /*输出股票的买入价、卖出价和成交价 输出股票的买入价、 输出股票的买入价 卖出价和成交价*/ printf("%6.2f ", sfz.price[i]); }

C语言程序设计_课件_第四章(适于清华谭浩强版)

C语言程序设计_课件_第四章(适于清华谭浩强版)

例4.6:将输入字符的大写字符转换成小写字符输 出,小写字符原样输出。 #include "stdio.h" /*-------------------lowercase--------------------------*/ void main() { int c; c=getchar(); if (c>='A' && c<='Z') putchar(c+32); else putchar( c); }
的值为非0,表达式即为真。
例4.2使用if形式编写程序:输入x,求出并输出x的 绝对值。 #include "stdio.h" /*----------------------abs(x)--------------------------*/ void main() { int x; scanf("%d",&x); if (x<0) x=-x; printf("|x|=%d\n",x); }
判断其它条件,跳转到下一条语句执行。若全部 表达式为假,则执行语句n+1。 if (x>0) printf (" x=0"); else if (x<0) printf("x<0"); else
printf("x>0");
例4.8
根据输入的百分制按五分制的成绩输出。百
分制与五分制之间的关系见下表。 百分制 90 ~ 100 80 ~ 89 60 ~ 79 0 ~ 59 五分制 5 4 3 2
表达式语句 最简单的可执行语句。只要在表达 式后面加上分号就可以了。 例如: ++i; x=y; 有效的表达式语句一般都要有赋值 运算, 否则,不做任何赋值运算的表达 式大多数是无意义的。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档