内容正文:
让我们和计算机对话吧
C语言程序设计
-第1课时-
高教版第2版
学习目标
知识目标
• 了解计算机语言发展阶段、C语言发展历史与特点。
• 掌握C语言程序结构、运行方法及程序设计步骤。
技能目标
• 理解不同计算机语言差异,具备基础的代码阅读能力。
• 能独立运用C语言编写并运行简单的程序实例。
素质目标
• 培养严谨的逻辑思维和算法分析能力。
• 建立规范的程序设计习惯与问题解决思维。
目录
教学引入
知识讲授
师生互动
课堂练习
课堂小结
基础知识认知
让我们一起开启单片机的学习之旅。
教学引入
思考:C语言有哪些独特之处,能在众多编程语言中脱颖而出?
知识讲授
C语言
通用、灵活、功能强大的程序设计语言。由丹尼斯·里奇于1972年在贝尔实验室设计,旨在为UNIX操作系统提供一种高效、灵活且可移植的开发工具。
目录
模块一:计算机语言概述
模块二:C语言的发展历史
模块三:C语言的特点与使用
模块四:程序设计步骤
计算机语言概述
第一部分
知识讲授
计算机程序语言
知识讲授
计算机程序语言分类
知识讲授
机器语言
计算机的“母语”
由二进制代码(0和1)组成,是唯一能被计算机硬件直接执行的语言,是计算机底层最基础的指令系统。
指令示例:一条简单的加法指令在机器语言中表现为一串二进制数,例如:10110000 01100001
知识讲授
汇编语言
机器语言的“助记符”革命
用易于记忆的英文缩写(助记符)代替晦涩难懂的二进制指令,是连接机器语言与高级语言的重要桥梁。
指令符号化
用 `MOV`, `ADD` 等直观的英文助记符,彻底替代了难以记忆的二进制代码。
需“翻译”执行
计算机无法直接识别,必须通过“汇编程序”将其翻译成机器语言指令。
强硬件相关性
本质上是机器语言的符号化表示,不同CPU架构的汇编指令通常互不兼容。
知识讲授
高级语言
编程的“世界语”
它接近人类的自然语言逻辑,独立于具体的硬件架构,让编程变得更加直观。
可读性强
需编译/解释
可移植性好
代码示例
实现两个数相加的逻辑,在高级语言中仅需一行代码即可完成:
sum = a + b; // 简洁、直观的表达
背诵记忆
序号 名称 核心说明与记忆要点
1 机器语言 由二进制指令构成,特点是难学难用。记忆要点:关注其“二进制”的底层特点。
2 汇编语言 用符号代替二进制指令,需经汇编程序转换。记忆要点:掌握“符号化”和“汇编过程”。
3 高级语言 接近自然语言,可读性强,需编译/解释执行。记忆要点:理解其“易用性”与“跨平台”优势。
课堂练习
简答题
1、简作为计算机唯一能直接执行的语言,它在组成形式和使用体验上有哪些核心特征?
【答案】完全由二进制代码(0和1)组成;具有难学、难写、难记忆的特点;执行效率最高,但完全依赖硬件,无移植性。
2、高级语言拥有良好的可读性,为什么必须配合“编译程序”才能运行?
【答案】计算机硬件只能识别和执行二进制的机器指令,无法直接理解人类友好的高级语言代码,必须通过编译程序进行翻译。
C语言的发展历史
第二部分
知识讲授
C语言的发展历史
知识讲授
C语言的诞生与发展
时间与地点
20世纪70年代初,C语言诞生于美国著名的贝尔实验室,这是计算机科学发展史上的一个重要里程碑。
核心缔造者
由丹尼斯·里奇 (Dennis Ritchie) 和 肯·汤普森 (Ken Thompson) 主导开发。两位大师相互配合,共同推动了C语言与UNIX系统的发展。
诞生与演进
为解决UNIX系统移植难题,在B语言基础上引入数据类型和指针。1973年,UNIX系统绝大部分代码成功使用C语言重写,实现了高效移植。
知识讲授
C语言标准的发展
每一次标准的迭代,都让C语言在保持“高效”特性的同时,变得更规范、更强大。
知识讲授
C语言编译器流行版本
GCC (GNU C Compiler)
开源、跨平台,是Linux和macOS系统下的默认编译器,具有极高的兼容性与稳定性。
Clang / LLVM
由苹果主导开发的编译器前端,以极快的编译速度和非常友好的错误提示信息而广受好评。
Microsoft Visual C++ (MSVC)
微软开发的商业编译器,深度集成于Visual Studio,是Windows平台应用开发的首选工具。
Borland Turbo C
DOS时代非常流行的C编译器,体积小巧、启动快,是很多程序员的C语言入门启蒙工具。
背诵记忆
序号 核心概念 说明与记忆要点
01 诞生背景 时间:20世纪70年代初;地点:贝尔实验室。
记忆口诀:七零年代贝尔生。
02 标准发展 经历了K&R C、ANSI C (C89)、C99、C11等标准。
记忆重点:记住关键标准名称及迭代关系。
03 深远影响 C语言是现代编程语言的“鼻祖”,衍生出C++、Java、C#等语言。
记忆:C语言是众多高级语言的基础核心。
04 主流版本 常见的有Microsoft C、Turbo C、GCC等。
记忆:结合编译器名称进行关联记忆。
课堂练习
简答题
例题 1:C语言最早是由哪个机构研发的?
【答案】美国电话电报公司(AT&T)贝尔实验室。
【解析】C语言并非凭空产生,而是与著名的 UNIX 操作系统一同在贝尔实验室诞生,是为了解决系统开发的实际需求。
例题 2:C语言对哪些主流编程语言产生了深远影响?
【答案】C++、Java、C#、Python 等绝大多数现代编程语言。
【解析】这些语言继承了 C 语言简洁的语法结构、结构化的程序设计思想,以及对底层逻辑的表达能力。
C语言的特点及使用
第二部分
知识讲授
C语言的特点
知识讲授
简洁、紧凑,使用方便灵活
简洁、紧凑,使用方便灵活
简洁的关键字体系
C89标准仅定义了32个关键字,核心概念少,大幅降低了语言的学习门槛。
紧凑自由的书写形式
程序书写格式自由灵活,主要使用小写字母,摒弃冗余修饰,风格极为简洁干练。
极具弹性的语法设计
允许用多种方式实现同一功能(如自增`i++`),赋予程序员极大的表达自由度。
▍代码示例:灵活性体现
// 计算 1+2+...+100 的累加和
for(i = 1; i <= 100; sum += i, i++);
这行代码利用了C语言灵活的表达式规则,在循环头部直接完成了变量的更新,用极简的方式实现了功能。
知识讲授
运算与数据的丰富性
核心优势:运算与数据的丰富性
44种运算符,功能强大
包含算术、关系、逻辑、位运算等,支持对二进制位的直接操作,适合底层开发。
多维度数据类型支持
覆盖基本类型(int/char)、构造类型(数组/结构体)及指针类型,构建灵活的编程模型。
实战演示:位运算操作
// 直接操作二进制位示例
unsigned chara = 0b00001111, b = 0b10101010;
printf("按位与结果: %d
", a & b);
// 输出: 0 (二进制最低位保留特性)
💡 亮点:C语言允许直接访问内存地址,执行效率极高。
知识讲授
结构化程序设计
结构化程序设计语言核心特性
三大基本结构支撑
严格支持顺序、选择(if-else)和循环(for/while)结构,逻辑清晰严谨。
高内聚的模块化设计
程序由独立函数模块组成,功能单一,降低耦合度,极大提升维护性。
拒绝“面条式代码”
鼓励使用结构化流程控制,摒弃GOTO语句滥用,保证代码可读性。
代码示例:计算阶乘
// 模块化:封装为独立的阶乘函数
intfactorial(int n) {
intresult= 1;
for(int i=1; i<=n; i++) {/* 循环结构 */
result *= i;
}
returnresult;
}
说明:此代码展示了函数封装(模块化)与 for 循环结构的结合使用。
知识讲授
可直接访问物理地址
中级语言特性:可直接访问物理地址
C语言常被称为“中级语言”,因为它兼具高级语言的抽象性和低级语言的硬件操控能力。
通过指针,C语言允许程序直接读取和修改内存中的数据。这种对底层硬件的直接访问能力,是C语言在系统开发领域独占鳌头的关键原因。
代码示例:指针操作内存
// 定义变量并赋值
int value = 100;// value 存储在内存中
int *p = &value;// p 指向 value 的地址
p = 200;// 通过指针修改内存值
printf("结果: %d", value);// 输出:200
实践环节
C程序的基本结构
Hello, World! 程序剖析
#include <stdio.h>
// 预处理指令,引入头文件
int main() {
// 主函数定义,程序的入口
printf("Hello, World!
");
// 执行语句,输出内容
return 0; // 返回语句,结束主函数
} // 函数体结束标志
核心结构解析
源程序文件:以 .c 为扩展名,是C程序的物理存储单位。
函数:C程序的基本组成单位,main() 是程序的唯一入口。
函数体:被一对 {} 括起来的部分,包含具体的执行语句。
C语句:以分号 ; 结尾的执行单元,实现具体的操作功能。
知识讲授
程序执行流程
▍ 程序的“生命线”
从 main 函数开始:无论程序多复杂,执行永远从 main 入口开始。
顺序执行:函数内部的代码语句,通常严格按照“从上到下”的顺序执行。
函数调用跳转:遇到函数调用时,跳转到该函数体执行,执行完毕后返回原位置。
return 终止程序:当执行到 main 函数中的 return 语句时,整个程序运行结束。
▍ 执行顺序代码示例
// 步骤 1: 程序启动,首先执行这里
printf("程序开始执行...
");
// 步骤 2: 调用函数,跳转到 print_message 执行
print_message();
// 步骤 4: 函数返回后,继续执行后续代码
printf("程序执行结束。
");
💡 关键点:步骤 3 发生在print_message()函数内部,执行完毕后必须“原路返回”才能执行步骤 4。
知识讲授
程序运行步骤
▍ GCC 命令行示例
知识讲授
输入输出函数
printf 格式化输出
核心功能:向屏幕打印输出信息。
常用格式符:
%d整数 |%f浮点数
%c单个字符 |%s字符串
scanf 格式化输入
核心功能:从键盘读取用户输入的数据。
⚠ 重点注意:
在读取普通变量(如 int/float)时,变量名前必须加上取地址符 &,否则程序会报错。
知识讲授
C语言的注释
为什么要写注释?
增强可读性:快速理解代码功能思路
便于维护:降低后续修改的理解成本
团队协作:统一规范是高效合作的基础
背诵记忆
序号 核心概念 · 名称 核心说明与记忆要点
01 程序结构 由源文件和函数组成,重点记忆程序的基本构成要素
02 执行顺序 C语言程序的执行总是从main() 函数开始,记住这个唯一的入口起点
03 运行步骤 标准流程:编辑代码 → 编译链接 → 生成可执行文件 → 运行。按流程逻辑记忆
04 输入输出 最基础的交互函数:输入用scanf(),输出用printf(),重点记忆函数名称
05 程序注释 作用是增强代码的可读性,方便自己和他人理解,养成编写注释的习惯
课堂练习
综合应用
综合应用:编写一个计算两数之和的C程序
需求:输入两个整数,计算并输出它们的和。请在代码中体现变量定义、输入输出函数的使用。
提示:
需包含头文件 <stdio.h>;
使用 scanf("%d%d", &a, &b) 输入;
使用 printf("sum = %d
", a+b) 输出结果。
程序设计步骤
第四部分
知识讲授
程序设计步骤
知识讲授
程序设计各步骤详解
01. 明确需求
核心目标:输入半径数值,输出对应的圆面积。界定程序解决问题的具体边界。
02. 建立模型
数学转化:面积 S = π × r²。将现实几何问题抽象为计算机可计算的数学公式。
03. 设计算法
逻辑梳理:提示输入 → 读取半径 → 代入公式计算 → 输出结果。规划清晰的执行步骤。
04. 编写代码
语言实现:使用 C 语言编写代码,将设计好的算法逻辑转化为计算机可识别的指令。
05. 调试运行
验证测试:输入不同半径值(如1、2、5)运行程序,排查并修正语法或逻辑错误。
06. 编写文档
总结归档:撰写开发文档,说明程序功能、使用方法、输入输出示例及注意事项。
背诵记忆
序号 核心概念名称 核心说明与记忆要点
01 接受任务 读要求,明任务,重点记忆“任务要点”
02 分析任务 研究条件,明确目标,重点记忆“解题方法”
03 寻找规律 找求解规律,归纳模型,重点记忆“核心关键”
04 核心代码 将算法逻辑转换为代码,重点记忆“逻辑转换”
05 完善代码 优化可读性与健壮性,重点记忆“编写目的”
06 调试运行 上机调试排除错误,得结果,重点记忆“操作流程”
07 编写文档 提供程序说明书,重点记忆“文档作用”
随堂检测
核心知识回顾与巩固
Q 01.计算机语言经历了哪些发展阶段?
【参考答案】
计算机语言的发展主要经历了三个关键阶段:
① 机器语言 ② 汇编语言 ③ 高级语言
Q 02.C语言程序的运行步骤有哪些?
【参考答案】
C语言程序从编写到运行,需严格遵循四个核心步骤:
编辑代码 → 编译程序 → 链接生成 → 执行运行
师生互动
师生互动
话题一:计算机网络的作用与挑战
请结合实际案例,讨论计算机网络在应对突发公共事件(如自然灾害、公共卫生事件)时发挥了哪些关键作用?同时面临着哪些潜在的技术挑战与安全风险?
话题二:C语言的特性与程序优化
在实际编程开发中,如何充分发挥C语言“结构化、高效率、指针灵活”等核心特点?请从内存管理、代码模块化设计、底层性能优化等角度,探讨具体的实践方法以提高程序的质量与运行效率。
知识点总结
课后任务
简述 C 语言程序运行的四个步骤,并写出每一步生成的文件后缀名;
参照教材源代码 1-1,编写一个 C 程序,输出 “Hello, C Language!”,并标注出 main 函数的首部和函数体。
查阅资料,简述 C 语言与 Python 在运行机制上的主要区别(编译型 vs 解释型),并谈谈 C 语言至今仍广泛流行的原因。
谢谢观看
THANKS
Lavf59.14.100
Lavf59.14.100
Lavf59.14.100
$