内容正文:
第2章基本数据类型
第2章基本数据类型
01存储单元的特点
02整型
03整型字面量
04整型的输入输出
05scanf函数的用法+
06整型的使用
07浮点型
08字符型
09字符型的输入输出
10再谈printf函数
11典型例题
我们在第2章中讨论C语言的基本数据类型:整型、浮点型和字符型。计算机中的数据只是01串,只有确定了类型才能确定数据的实际值。
计算机中二进制形式的数据有一些新的特点,如整数有取值范围的限制,小数多为近似值,这些由计算机的特点确定,与编程语言无关。
2
再谈printf函数
我们再讨论printf函数的用法。
3
printf函数
printf函数常见的调用方式为:printf(格式字符串, 输出列表);
printf函数的作用是将由格式字符串产生的“输出字符串”在指定的输出设备上显示。
格式字符串由三类字符(串)组成:普通字符、转义序列和占位序列。
普通字符和转义序列对应的字符会直接作为输出字符串的一部分;占位序列则需要把输出列表中的值转换为相应的字符串后才能作为输出字符串的一部分。
printf函数常见的调用方式为:printf(格式字符串, 输出列表);
printf函数的作用是将由格式字符串产生的“输出字符串”在指定的输出设备上显示。
格式字符串由三类字符(串)组成:普通字符、转义序列和占位序列。
普通字符和转义序列对应的字符会直接作为输出字符串的一部分;占位序列则需要把输出列表中的值转换为相应的字符串后才能作为输出字符串的一部分。
4
占位序列
占位序列的组成:%[修饰标记][域宽][.精度][长度修饰符]格式字符。方括号中的部分可选,但可选项的次序是固定的。
长度修饰符指l(long)和h(short)。long型、unsigned long型和double型数据需要长度修饰符l,如ld、lu和lf。
.精度可用.n形式表示,其中n为正整数,多用于浮点型数据,输出时小数点后面会有n位,第n+1位四舍五入。
占位序列的组成:%[修饰标记][域宽][.精度][长度修饰符]格式字符。方括号中的部分可选,但可选项的次序是固定的。
长度修饰符指l(long)和h(short)。long型、unsigned long型和double型数据需要长度修饰符l,如ld、lu和lf。
.精度可用.n形式表示,其中n为正整数,多用于浮点型数据,输出时小数点后面会有n位,第n+1位四舍五入。
5
域宽和修饰标记
域宽可用m表示,m为一个正整数,限定了输出结果所占的最小宽度,即输出的字符至少有m列。当宽度不足m列时,需用填充字符(默认为空格)凑够m列。
在输出的左侧填充空格时称为右对齐;在输出的右侧填充空格时称为左对齐。
默认是右对齐。当修饰标记为负号(-)时,是左对齐。
当修饰标记为0时,填充字符就会由空格变为0。
域宽可用m表示,m为一个正整数,限定了输出结果所占的最小宽度,
即输出的字符至少有m列。当宽度不足m列时,需用填充字符(默认为空格)凑够m列。
在输出的左侧填充空格时称为右对齐;在输出的右侧填充空格时称为左对齐。
默认是右对齐。当修饰标记为负号(-)时,是左对齐。
当修饰标记为0时,填充字符就会由空格变为0。
6
例2-16 已知float f = 123.0; int j = 123;,分析下面语句的输出结果。
printf("%11.2e
", f);
printf("%11.2f
", f);
printf("%-11.2e
", f);
printf("%-11.2f
", f);
printf("%11d
", j);
printf("%-11d
", j);
printf("%-1d
", j);
printf(("%.2f
%.2e
", f, f);的输出结果如图所示。
printf("%11.2e
", f);中11是域宽,输出至少11列,.2是精度,小数点后有2位小数。正常输出1.23e+002,有9列,默认是右对齐,需在左侧补2个空格。
printf("%-11.2e
", f);中-是修饰标记,左对齐,11是域宽,输出至少11列,.2是精度,小数点后有2位小数。正常输出1.23e+002,有9列,左对齐,需在右侧补2个空格。
printf("%-1d
", j);中域宽1输出至少1列,但j的值是123,有3列,已满足域宽要求,会正常输出123。
7
思考题
了解第13章数字化信息编码中字形码的知识。
字库中存储了所有字符的字形码。
输出字符的过程可简述为:
先由字符编码找到字库中对应的字形码,
再根据字形码将屏幕上的像素设置成不同的颜色。
典型例题
这节课,我们分析一些例题。
9
输入为5 x↙时,分析变量i和ca的值。
scanf函数第一次执行