计 算 第一章C语言的基本概念 机 程 序·学习目标 设 计 了解C语言的发展历史 基 础 了解C语言的特点 了解程序的基本概念 掌握C语言中定义标识符的方法 了解C语言的编译与执行过程 清华大学计算中心 http://learn.tsinghua.edu.cn 2
清华大学计算中心 http://learn.tsinghua.edu.cn 2 计 算 机 程 序 设 计 基 础 第一章 C 语言的基本概念 • 学习目标 – 了解 C 语言的发展历史 – 了解 C 语言的特点 – 了解程序的基本概念 – 掌握 C 语言中定义标识符的方法 – 了解 C 语言的编译与执行过程
计 算 1.1C语言的发展与特点 机 序·C语言的发展 设 计 1973:贝尔实验室的 Ritchie与 kernighan,为 基 UNX操作系统设计 础 1989: ANSIISO标准C,C89 1999:增加了部分与C++兼容的特性,C99 C语言的特点 中级语言;结构化程序设计语言;模块化程序设 计语言;可移植性 清华大学计算中心 http://learn.tsinghua.edu.cn 3
清华大学计算中心 http://learn.tsinghua.edu.cn 3 计 算 机 程 序 设 计 基 础 1.1 C 语言的发展与特点 • C 语言的发展 – 1973:贝尔实验室的Ritchie与kernighan,为 UNIX操作系统设计 – 1989:ANSI/ISO标准C,C89 – 1999:增加了部分与C++兼容的特性,C99 • C 语言的特点 – 中级语言;结构化程序设计语言;模块化程序设 计语言;可移植性
计 算 1.2几个基本概念 机 程 序·程序 设 计 系列遵循一定规则并正确完成一定功能的代码 基 或指令序列 础 通常包括数据结构与算法两部分 程序设计 按照任务需要,设计数据结构与算法,编写代码 并测试其正确性,得到正确运行结果的过程 清华大学计算中心 http://learn.tsinghua.edu.cn
清华大学计算中心 http://learn.tsinghua.edu.cn 4 计 算 机 程 序 设 计 基 础 1.2 几个基本概念一 • 程 序 – 一系列遵循一定规则并正确完成一定功能的代码 或指令序列 – 通常包括数据结构与算法两部分 • 程序设计 – 按照任务需要,设计数据结构与算法,编写代码 并测试其正确性,得到正确运行结果的过程
计 算 1.2几个基本概念二 机 程 序·算法 设 计 问题的求解方法与步骤 基 础 不允许存在二义性 算法设计过程是逐步求精的 常使用流程图描述算法 数据结构 数据对象、相互关系及构造方法 与算法关系密切 清华大学计算中心 http://learn.tsinghua.edu.cn 5
清华大学计算中心 http://learn.tsinghua.edu.cn 5 计 算 机 程 序 设 计 基 础 1.2 几个基本概念二 • 算 法 – 问题的求解方法与步骤 – 不允许存在二义性 – 算法设计过程是逐步求精的 – 常使用流程图描述算法 • 数据结构 – 数据对象、相互关系及构造方法 – 与算法关系密切
计 算 1.3C语言的基本标识符 机 程 序·字符集:ASC字符集 设 大小写英文字母、数字、部分特殊符 计 基 标识符 础 以下划线或字母开头,由下划线、字母、数字组成,表 示常量、变量、函数、类型等名称 保留字:系统专用的具有特定意义的标识符 C89定义31个,C99新增5个 预定义标识符:编译命令与库函数名,具有特定意义 般不能重新定义 用户定义标识符:用户根据需要定义,主要是为了使程 序容易阅读、理解与维护 清华大学计算中心 http://learn.tsinghua.edu.cn 6
清华大学计算中心 http://learn.tsinghua.edu.cn 6 计 算 机 程 序 设 计 基 础 1.3 C 语言的基本标识符 • 字符集:ASCII字符集 – 大小写英文字母、数字、部分特殊符号 • 标识符 – 以下划线或字母开头,由下划线、字母、数字组成,表 示常量、变量、函数、类型等名称 – 保留字:系统专用的具有特定意义的标识符 • C89定义31个,C99新增5个 – 预定义标识符:编译命令与库函数名,具有特定意义, 一般不能重新定义 – 用户定义标识符:用户根据需要定义,主要是为了使程 序容易阅读、理解与维护
计 算 1.4C语言程序示例 机 程 序·编写显示字符串“ Hello world!的C程序 设 计# include 预编译指令,包含标准头文件 基 int main0 主函数的函数头,全局惟 础{ print( Hello world!n");函数体,花括号内为语句序列 return 0 函数结束执行,程序退出 标准库函数,在输出设备(一般为屏幕)上输出一行文本 函数调用,需要了解该函数原型,即函数如何使用的细节信 息;pmin0函数原型位于“ stdio.h"中,故需包含该头文件 双引号内为字符串内容;Ⅶ'为转义字符,表示换行 分号表示语句结束 清华大学计算中心 http://learn.tsinghua.edu.cn
清华大学计算中心 http://learn.tsinghua.edu.cn 7 计 算 机 程 序 设 计 基 础 1.4 C 语言程序示例一 • 编写显示字符串“Hello World!”的C程序 #include int main() { printf(“Hello World!\n”); return 0; } 主函数的函数头,全局惟一 预编译指令,包含标准头文件 函数体,花括号内为语句序列 标准库函数,在输出设备(一般为屏幕)上输出一行文本 函数调用,需要了解该函数原型,即函数如何使用的细节信 息;printf()函数原型位于“stdio.h”中,故需包含该头文件 双引号内为字符串内容;’\n’为转义字符,表示换行 分号表示语句结束 函数结束执行,程序退出
计 算 1.4C语言程序示例二 机 序·编写程序,计算三个实数的平均值 设 计∥ Get the average value of three floats注释到行尾 基# include 包含标准IO头文件 础 int main0 主函数的函数头,全局惟 float a, b, c, aver 定义实数类型的四个变量 printf( Please input three floats:n");一输出提示信息 scn(of%of%",&a,&b,&l;—获取用户输入数据函 /“ Computing 第二种注释格式数 aver=(a +b+c/3 计算平均值 体 printf" average=%",aoer)输出计算结果 return 0 函数结束执行,程序退出 清华大学计算中心 http://learn.tsinghua.edu.cn
清华大学计算中心 http://learn.tsinghua.edu.cn 8 计 算 机 程 序 设 计 基 础 1.4 C 语言程序示例二 • 编写程序,计算三个实数的平均值 // Get the average value of three floats #include int main() { float a, b, c, aver; printf(“Please input three floats:\n”); scanf(“%f,%f,%f”, &a, &b, &c); /* Computing */ aver = (a + b + c) / 3; printf(“\naverage = %f\n”, aver); return 0; } 包含标准I/O头文件 注释到行尾 函 数 体 主函数的函数头,全局惟一 第二种注释格式 定义实数类型的四个变量 输出提示信息 获取用户输入数据 计算平均值 输出计算结果 函数结束执行,程序退出
计 算 1.4C语言程序示例 机 程 序·编写程序,找出两个整数中的较小者 设 include 计 包含标准IO头文件 基 int rmin(intx,inty 自定义函数求两个整数较小值 础 int m;if(xy)m=x; else m=y; return m;自定义函数体 int maino 主函数 int a, b, a b min 定义整数类型的三个变量 printf( Please input two integers:")—输出提示信息 scnf(%od%ol",&a,&b);获取用户输入数据 b min= xmin(a, b) 计算平均值 printf( nThe min is.od.m", a b min);输出计算结果 return 0: 1 清华大学计算中心 http://learn.tsinghua.edu.cn
清华大学计算中心 http://learn.tsinghua.edu.cn 9 计 算 机 程 序 设 计 基 础 1.4 C 语言程序示例三 • 编写程序,找出两个整数中的较小者 #include int xmin(int x, int y) { int m; if(x<y) m = x; else m = y; return m; } int main() { int a, b, a_b_min; printf(“Please input two integers:\n”); scanf(“%d %d”, &a, &b); a_b_min = xmin(a, b); printf(“\nThe min is %d.\n”, a_b_min); return 0;} 包含标准I/O头文件 主函数 自定义函数求两个整数较小值 定义整数类型的三个变量 输出提示信息 获取用户输入数据 计算平均值 输出计算结果 自定义函数体
1.5C语言程序的结构特点 机 程 序·由一个或多个函数组成,且具有惟一一个主 设函数main0 计 础·程序执行由主函数开始,其他函数由主函数 调用或间接调用 程序执行流程与函数定义顺序无关 每个函数包含函数头与函数体两部分 清华大学计算中心 http://learn.tsinghua.edu.cn 10
清华大学计算中心 http://learn.tsinghua.edu.cn 10 计 算 机 程 序 设 计 基 础 1.5 C 语言程序的结构特点一 • 由一个或多个函数组成,且具有惟一一个主 函数main() • 程序执行由主函数开始,其他函数由主函数 调用或间接调用 • 程序执行流程与函数定义顺序无关 • 每个函数包含函数头与函数体两部分
并1.5C语言程序的结构特点三 机 序·一般函数结构为 设 计 数据类型标识符函数名(形式参数表) 基 础 局部变量声明语句; 执行语句; 函数头说明函数名、函数返回值类型、函数 属性、参数说明等;函数体为变量声明语句 与执行语句 函数参数个数未强制规定,可以为0 清华大学计算中心 http://learn.tsinghua.edu.cn 11
清华大学计算中心 http://learn.tsinghua.edu.cn 11 计 算 机 程 序 设 计 基 础 1.5 C 语言程序的结构特点二 • 一般函数结构为 数据类型标识符 函数名( 形式参数表 ) { 局部变量声明语句; 执行语句; } • 函数头说明函数名、函数返回值类型、函数 属性、参数说明等;函数体为变量声明语句 与执行语句 • 函数参数个数未强制规定,可以为0