内容正文:
2.5、2.6节:字符型数据、变量赋初值
C语言程序设计
电子工业出版社
理解字符常量、变量、字符串常量概念
掌握转义字符,理解字符与ASCII码关系
能定义使用字符变量,区分字符与字符串
能运用转义字符实现特殊格式输出
培养严谨的程序设计思维
提升代码分析与调试能力
知识目标
能力目标
素养目标
01
01
01
学习目标
目录
Part 01
教学导入
Part 02
知识讲授
Part 03
师生互动
Part 04
课堂练习
Part 05
课堂小结
教学导入:文本格式的奥秘
静夜思
【唐】李白
床前明月光,疑是地上霜。
举头望明月,低头思故乡。
思考时刻
这段文字有标题、有作者、有换行、有缩进,计算机是如何精确地理解并显示出这些格式的呢?
知识讲授
字符型数据、变量赋初值
字符常量与转义字符
字符变量与字符串常量
第一部分
字符常量与转义字符
知识讲授
知识讲授
知识讲授:字符常量
核心定义
字符常量是由一对单引号括起来的单个字符。
典型示例
'a' (一个小写字母)
'5' (一个数字字符)
'+' (一个运算符)
知识讲授:特殊字符的表示
场景挑战:特殊字符输出
如果我们想输出一个单引号(')或者一个反斜杠(\),该怎么办?
错误示范:直接书写
#include<stdio.h>
int main()
{
printf(“‘ ”); // 错误!
printf(“\”); // 错误!
}
知识讲授:转义字符
定义与特性
转义字符是一种特殊的字符常量,它以反斜杠“\”开头,后跟一个或几个字符。
它的主要作用是用来表示那些无法直接输入的字符(如换行符、制表符)或具有特殊功能的字符,从而改变字符原本的含义。
知识讲授:常见转义字符
转义字符 功能
\’ 单引号:用于表示字符常量中的单引号
\” 双引号:用于表示字符串中的双引号
\\ 反斜杠:用于表示路径或转义符本身
\a 响铃 (Alert):使计算机发出提示音
\b 退格(Backspace):将光标向左移动一个字符位置。
\ddd 表示三位八进制数代表的字符
\f 换页:将光标移动到下一页的开头位置
换行(New Line):将光标移动到下一行的开头位置。
\r 回车(Carriage Return):将光标移动到当前行的开头。
\t 水平制表符(Tab):插入一个制表位,通常相当于按Tab键。
\xhh 表示两位十六进制数代表的字符
知识讲授:常见转义字符
程序文本【2.3】转义字符的使用
#include<stdio.h>
main()
{
printf("
\t\b1"); /*换行,到下一个制表位,退两格*/
printf("\\"); /*输出字符\ */
printf(“
\101”); /*换行后空一格,输出八进制数为101所代表的字符*/
}
背诵记忆
01. 字符常量
定义:由一对单引号 (' ') 括起来的单个字符。
示例:'a', '5', '+'
02. 转义字符概念
以反斜杠 (\)开头的特殊字符序列。
用于表示无法直接输入的字符(如换行、制表符等)。
03. 常见转义字符速查表
: 换行符 (New Line)
\t: 水平制表符 (Tab)
\b: 退格符 (Backspace)
\r: 回车符 (Carriage Return)
\': 单引号字符
\": 双引号字符
\\: 反斜杠字符
\a: 响铃符 (Alert)
\ddd:三位八进制数代表的字符
\f:换页
\xhh:两位十六进制数代表的字符
课堂问答
问题1:表示换行的转义字符是?
答案:
问题2:表示水平制表符的转义字符是?
答案:\t
问题4:如何输出一个反斜杠?
答案:\\
问题5:如何输出一个双引号?
答案:\"
问题3:表示退格的转义字符是?
答案:\b
问题6:如何输出一个单引号?
答案:\’
例题分析:转义字符的使用
程序代码示例
#include"stdio.h"
main()
{
printf(“
\t\‘\t\66”);
printf("
\t\"\t\x4B");
printf("
\t\\\t\123");
}
/* 换行(
) → 制表(\t) → 输出单引号(\’) → 制表(\t) → 输出八进制66(即‘6’) */
/* 换行(
) → 制表(\t) → 输出双引号(\") → 制表(\t) → 输出十六进制4B(即'K') */
/* 换行(
) → 制表(\t) → 输出反斜杠(\\) → 制表(\t) → 输出八进制123(即'S') */
课堂练习:转义字符的应用
练习任务
编写一个程序,在屏幕上输出以下图案:
关键提示
换行符
用于控制光标移动到下一行的开头。
制表符 \t
用于对齐文本,通常代表8个空格的宽度。
课堂练习:参考答案
参考代码实现
#include"stdio.h"
main()
{
printf("*
");
printf("\t*
");
printf("\t\t*
");
}
代码逻辑解析
第一行输出
直接输出一个星号 `*`,然后使用 `
` 换行。
第二行缩进输出
先输出一个制表符 `\t` 控制缩进,再输出星号并换行。
第三行双倍缩进
输出两个制表符 `\t\t` 增加缩进量,形成右斜效果。
第二部分
知识讲授
字符变量与字符串常量
知识讲授:字符变量的定义
定义语法与示例
字符变量用于存储单个字符,其定义关键字为char。
内存占用说明
在C语言中,一个字符变量在内存中占用的空间大小是固定的。
1字节 (Byte)
即 8 位 (bit) 存储空间
char c1; // 定义一个字符变量c1
char c2; // 定义一个字符变量c2
char c3, c4;// 同时定义多个字符变量
知识讲授:字符在内存中的存储
核心概念:ASCII码映射
计算机存储字符时,并非直接存储字符形状,而是存储其对应的整数编码(ASCII码)。
字符 'a'→ ASCII码值 97 → 二进制 01100001
字符 'b'→ ASCII码值 98 → 二进制 01100010
内存存储示意图
b
97
98
1Byte
1Byte
知识讲授:ASCII码表
知识讲授:ASCII码表
知识讲授:字符与整数的通用
核心原理
字符变量本质存储的是 ASCII 码(整数),因此字符型与整型在一定范围内可以通用。
赋值灵活性
可以将字符直接赋值给整型变量,系统会自动转换为对应的 ASCII 码值。
范围限制
0~255 范围内的整数可以赋值给字符变量,超出范围可能导致不可预测的结果。
输出多样性
同一个值,既可以按字符形式输出,也可以按整数形式输出,取决于格式化符号。
知识讲授:字符串常量的定义
知识讲授:字符串常量的定义
核心定义
字符串常量是由一对双引号括起来的字符序列(多个字符)。
代码示例
"CHINA" (一个字符串)
"hello" (一个字符串)
"12.5" (一个字符串)
知识讲授:字符常量与字符串常量的区别
特性 字符常量 字符串常量
定界符 单引号 ( ' ) 双引号 ( " )
内容 单个字符 字符序列(0个或多个字符)
赋值方式 可直接赋给字符变量 不能直接赋给字符变量,需用字符数组存储
内存占用 固定占用 1 字节 字符数 + 1 字节(包含结束标志 '\0')
示例对比
'A' 是字符常量
"A" 是字符串常量
知识讲授:字符串的结束标志 '\0'
核心概念解析
存储机制
字符串常量在内存中存储时,系统会自动在其末尾添加一个特殊字符'\0'(ASCII码为0),作为字符串的结束标志。
实例分析:"hello"
虽然字符长度为5,但实际存储为:
共占用 6 个字节的内存空间。
h e l l 0 \0
知识讲授:变量赋初值
知识讲授:变量赋初值
概念与语法
变量赋初值,即在定义变量的同时为其赋值,也称为变量的初始化。这是编程中的良好习惯。
语法形式:
类型标识符 变量名 = 初值[,变量名2[=初值2]……];
等价写法
int a; // 先定义
a = 1; // 后赋值
代码示例
inta = 1;// 定义整型变量a并赋值为1
charch = 'X';// 定义字符变量ch并赋值为'X'
intb = 2, c = 3;// 同时定义并初始化多个变量
背诵记忆
01. 字符变量 (char)
定义:存储单个字符,关键字为char
内存:占用1个字节 (Byte)
本质:存储字符对应的 ASCII 码值(整数)
02. 字符串常量
定义:由双引号 (" ") 括起来的字符序列
存储:自动添加结束标志'\0'
示例:"Hello" 实际包含 'H'...'o' 和 '\0'
03. 字符 vs 字符串核心区别
字符常量:'A'(单引号,单个字符,占1字节)
字符串常量:"A"(双引号,含'A'和'\0',占2字节)
04. 变量赋值语法
语法:类型标识符 变量名 = 常量/表达式;
示例:char ch = 'X';或int x = 10;
课堂问答(一):字符与ASCII码转换
问题 1:字符 '0' 的 ASCII 码是多少?
答案:48
问题 2:
ASCII 码 65 对应的字符是什么?
答案:'A'
问题 3:字符 'Z' 的 ASCII 码是多少?
答案:90
问题 4:
ASCII 码 100 对应的字符是什么?
答案:'d'
课堂问答(二):区分字符与字符串
'A'
字符常量
理由:使用单引号,且内部只有单个字符。
"A"
字符串常量
理由:使用双引号,即使只有一个字符也是字符串序列。
'123'
错误写法
理由:单引号内只能包含一个字符,不能是多个字符。
"123"
字符串常量
理由:使用双引号,包含多个字符序列。
''
错误写法
理由:单引号内不能为空,必须有且仅有一个字符。
""
字符串常量
理由:双引号内可以为空,代表空字符串,占一个字符空间。
例题分析:字符的不同输出形式
程序文本【2.4】字符变量的字符形式和整数形式输出
#include"stdio.h"
main()
{
charc1, c2;
c1 ='a';
c2 ='b';
printf("%c,%c
", c1, c2);
printf("%d,%d
", c1, c2);
}
代码解析与格式符说明
%c 格式符
用于输出单个字符。例如代码中输出 'a' 和 'b'。
%d 格式符
用于输出十进制整数。字符本质是ASCII码,因此会输出对应的数值
(如 'a' 对应 97)。
例题分析:输出结果解释
程序运行
字符形式输出 (a,b)
第一行显示了变量 c1 和 c2 存储的字符本身,即 'a' 和 'b'。这是直接按字符格式输出的结果。
整数形式输出 (97,98)
第二行显示了字符 'a' 和 'b' 对应的 ASCII 码值。这直观地展示了字符在计算机底层是以整数形式存储的。
课堂练习:综合应用
编程任务要求
定义字符变量:定义字符变量 ch,赋初值为 'X'。
格式化输出:使用 printf 分别以字符形式和整数形式输出 ch 的值。
定义字符串:使用字符数组 char str[],赋值为 "Hello C!"。
输出字符串:使用 printf 函数输出定义好的字符串。
关键知识点提示
字符与ASCII码:
字符在内存中存储的是其对应的ASCII码值,使用 %c 输出字符,%d 输出其整数形式。
字符串定义:
C语言中字符串本质是字符数组,系统会自动在末尾添加 '\0' 作为结束标志。
输出格式符:
输出字符串时,请使用 %s 格式符。
课堂练习:参考答案
参考代码实现
#include"stdio.h"
main()
{
char ch ='X';// 定义并初始化字符变量
char str[] ="Hello C!";// 定义并初始化字符串
printf("字符形式: %c
", ch);
printf("整数形式: %d
", ch);
printf("字符串: %s
", str);
}
核心逻辑解析
字符串定义与初始化
使用char str[] = "Hello C!";定义字符数组并初始化,系统会自动在末尾添加结束符 '\0'。
格式化输出字符串
输出字符串时,必须使用%s格式符,而不是 %c(用于单个字符)。
课堂小结(一)
字符常量
用单引号括起来的单个字符。例如:'a'、'5'、'#'。
转义字符
以反斜杠 \ 开头,用于表示特殊字符。
:换行
\t:制表符
\':单引号
……
……
实际应用
在 printf 函数中灵活运用转义字符,可以精确控制输出格式,使结果更加清晰美观。
课堂小结(二)
字符变量 (char)
使用 char 关键字定义,存储字符的 ASCII 码值。由于本质是整数存储,因此与整型数据类型可以通用。
字符串常量
由双引号括起来的字符序列。系统会自动在末尾添加结束标志 '\0',这是字符串结束的重要标志。
关键区别对比
字符常量:单引号,仅占 1 字节
字符串常量:双引号,占用字符数 + 1 字节(含结束符)
编程好习惯
在定义变量时进行初始化赋值是良好的编程习惯,能避免因使用未初始化变量而导致的不可预测错误。
课堂小结
课后任务
复习任务
熟记本节课所学的常用转义字符及其功能,巩固基础知识。
编程题 1:字符与ASCII码转换
编写程序,从键盘输入一个字符,输出该字符及其对应的ASCII码值。(提示:使用 scanf 函数输入)
编程题 2:打印等腰三角形
编写程序,在屏幕上输出一个由星号(*)组成的等腰三角形图案,练习转义字符的使用。
谢谢观看
THANKS
EV录屏5.4.8软件录制
Lavf58.33.100
本视频由湖南一唯信息科技开发的EV录屏软件录制, www.ieway.cn
EV录屏5.4.8软件录制
Lavf58.33.100
本视频由湖南一唯信息科技开发的EV录屏软件录制, www.ieway.cn
EV录屏5.4.8软件录制
Lavf58.33.100
本视频由湖南一唯信息科技开发的EV录屏软件录制, www.ieway.cn
EV录屏5.4.8软件录制
Lavf58.33.100
本视频由湖南一唯信息科技开发的EV录屏软件录制, www.ieway.cn
$