第2章__C语言的基本数据类型和变量的存储类

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

8
2.2.1 字符(Character)常量

转义字符及其含义
含 义 ASCII代码 10 9 8 13 12 92 39 34 0
字符形式 \n \t \b \r \f \\ \' \" \0 \ddd \xhh
换行,将当前位置移到下一行开头 水平位移,跳到下一个tab位置 退格,将当前位置移到前一列 回车,将当前位置移到本行开头 换页,将当前位置移到下一页开头 反斜杠字符“\” 单引号字符“'” 双引号字符“"” 空字符 1到3位八进制数所代表的ASCII码字符 1到2位十六进制数所代表的ASCII码字符
功能
以带符号的十进制形式输出整数(正数不输出符号) 以八进制无符号形式输出整数(不输出前导符0) 以十六进制无符号形式输出整数(不输出前导符0x) x、X决定十六进制数的a~f以小写或大写形式输出 以无符号十进制形式输出整数 输出单个字符 输出字符串 以小数形式输出单、双精度实数(隐含6位小数) 以指数形式输出单、双精度实数 选择f和e格式中输出宽度较小的格式输出,且不输出无意 义的0 输出百分号本身
19
#include
<stdio.h>
main() { printf("Data type Number of bytes\n"); printf("------------ ---------------------\n"); printf("char %d\n", sizeof(char)); printf("int %d\n", sizeof(int)); printf("short int %d\n", sizeof(short)); printf("long int %d\n", sizeof(long)); printf("float %d\n", sizeof(float)); printf("double %d\n", sizeof(double)); }
输出数值时指定左面不使用的空格位置自动填0
27
d 格式符

%d、%md、%-md、%0md、%ld
分析下面程序的运行结果。
#include <stdio.h>
void {
main()
程序运行结果: 123 ︼︼︼123 123 123︼︼︼ 000123
int x=123;

}
整数),且e或E后必须为整数。 – e4、12e2.5都是非法的指数形式
16
浮点型变量(实型变量)

浮点型变量分为单精度型(float)、双精度型 (double)
浮点型变量类型
类型标识符 所占字节 有效数字 数值范围
类型
单精度型 双精度型
float double
4 8
6~7 0以及1.2×10-38~3.4×1038 15~17 0以及2.3×10-308~1.7×10308

字符输入函数
getchar() – 表示从输入设备接收一个字符,该函数无参数 – 函数值为从输入设备接收的字符 – 如: ch=getchar()
22

#include main() { char <stdio.h>
运行程序
Press a key and then press Enter: A↙ You pressed A
3
变量
变量的概念
变量名和变量值的区别:在程序运行过程中从 变量x中取值,实际上是通过变量名x找到相应的内 存地址,从其存储单元中取数据30。

变量名与变量值的区别
4
§2.1 整型数据
2.1.1 整型常量
表示形式:计算机中用二进制形式存储数据; 为便于表示和使用,整型常量还可以表示成十进 制、八进制和十六进制
b, 98 B, 66
b, 98 B, 66
14
2.2.4 字符串(String)常量
用双引号括住的由0个或多个字符组成的字符序列 – "I am a string" – ""表示空字符串 – 转义字符也可以在字符串中使用 – 引号只作为字符串开始和结束的标志 – C语言内部用’\0’表示字符串的结束 – 除注释外,是惟一可以出现中文的地方 "x"和’x’是不同的
ch;
printf("Press a key and then press Enter:");
ch = getchar(); printf("You pressed "); putchar(ch); putchar('\n');
}
23
关于getchar()函数的说明和注意事项:

getchar() 函数接收的字符可以赋给一个字符变量或整型变 量,也可以不赋给任何变量,作为表达式的一部分。 c=getchar(); putchar(c); 可以用下面一行语句代替: putchar(getchar( )); ② getchar()函数只能接收一个字符,即使从键盘上输入多个 字符,也只接收第一个字符。 ③ 从键盘上输入的字符不能带单引号,输入以回车键(Enter 键)结束。
17
误差、实型数据的有效数字位数

#include <stdio.h> main() { float a; double b; 1234567936.000000 1234567890.000000
float型数据提供 7位有效数字
a = 123456.789e4; b = 123456.789e4; printf("%f\n%f\n", a, b); }
11
2.2.3字符型数据的存储表示

字符型数据在C语言中是和整型数据同等对待的。任何一 个字符都相当于一个整型量,其值就是该字符的编码值。 C语言中凡是整型量可以出现的地方,字符型量都可以出 现。对于采用ASCII编码的系统,实际上,C语言在内部 将每个字符型量都看作字长为8的整型量。
例如,x的十进制ASCII码是120,y的十进制ASCII码是121。对字 符变量a、b赋予'x'和'y'值: a='x'; b='y'; 实际上是在a、b所在的两个字节内分别存放整数120和121:

实型数据使用不当会导致舍入 误差
double型数据提供 17位有效数字
18
求字节运算符

它是一个C语言的关键字,并不是函数,专门用于 获取指定类型所占字节数 可以用两种形式使用
sizeof(表达式) – 一般都使用:sizeof(变量名) sizeof(类型) 值得注意的是,使用sizeof(表达式)时,不对 表达式运算,只判断表达式值的类型。
26
2.5.3 格式输出函数
printf函数常用的附加格式说明符
附加格式说明符 m(m为正整数) .n(n为正整数) l h 0 功能 数据左对齐输出,无-时默认右对齐输出 数据输出宽度为m,如果数据宽度超过m,按实际输出 对实数,n是输出的小数位数,对字符串,n表示输出前n个字符
ld输出long型数据,lf,le输出double型数据 用于格式符d、o、u、x或X,表示对应的输出项是短整型

程序运行结果: China A \
10
2.2.2 字符型变量
字符型变量用来存放字符常量,注意只能存放一 个字符。字符型变量的类型标识符为char、内存中所 占空间字节数为1. 例如:

char c1,c2,c3,c4,c5; c1=’a’; 正确 c2=“a”; 不正确 c3=’abc’; 不正确 c4=’\107’; 正确 c5=’6’; 正确

6
2.1.2 整型变量
整型变量类型
符号 数据类型
整型 带 符 号 短整型 长整型
类型标识符
int short (或short int) long (或long int) unsigned (或unsigned int) unsigned short
字节数
4 2 4
取值范围
-2147483648~ +2147483647 -32768~+32767 -2147483648~ +2147483647
a:
0 0
1 1
1 1
1 1
1 1
0 0
0 0
0 1
12
b:
char型与int型之间的关系
注意: 1、一个字符型变量占一个字节,只能存放一个 字符,存放该字符的ASCII码值; 2、由于字符型数据也是以整数形式进行存储, 所以它可以以字符形式、整数形式输出; 3、常用字符的ASCII码值: ’ ’ :0x20(32) ’0 ’ : 0x30(48) ’A’ :0x41(65) ’a’ :0x61(97)
20
§2.5 数据的输入与输出
如何进行数据的输入输出? 输入:从标准输入设备上输入数据到计算机内存 输出:将计算机内存中的数据送到标准输出设备 C语言中输入输出操作通过调用标准库函数来实 现
21
2.5.1 字符输入/输出函数

字符输出函数
putchar(ch) – 表示输出一个字符,ch可以是一个字符变量或字 符常量、整型变量、整型常量或转义字符。 – 如:putchar(ch);
24
2.5.3 格式输出函数

格式输出函数
printf(“格式控制字符串”, 输出项表列); – 输出若干个任意类型的数据
printf("a=%d
b=%f", a, b);
输 出 表 列
25
函数名 普通 字符 格式说明
2.5.3 格式输出函数
printf函数常用的格式字符
格式符
d o x、X u c s f e、E g、G %%
5
八进制与十六进制常数
以数字“0”开始的整型常数是八进制数 – 022、-037 – 010和10大小不一样 – 因为八进制并不常用,所以此种表示法比较少见 以“0x”或者“0X”开始的整型常数是十六 进制 – A~F和a~f用来表示十进制的10~15 – 十六进制的形式比较常用 – 0x12、-0x1F, -0x1f
9
2.2.1 字符(Character)常量
分析下面程序的运行结果。 #include <stdio.h> /* 程序需要使用C语言提供的标准函数库 */ void main() /* 主函数 */ { printf("China\n\101\t\\\n"); /* 调用库函数printf显示字符串 */ }

ቤተ መጻሕፍቲ ባይዱ
15
2.3.1 浮点型常量(实型常量 )
实型常量的表示形式 – 十进制小数形式 123.45、456.78 – 指数形式 1e-2、4.5e3
注意:
– 非指数形式由数字和小数点组成 – 123. 、 +123.、.123都是合法的非指数形式 – 指数形式 – e或E之前必须有数字(可以是非指数型浮点常量,可以是
无符号整型
无 符 号 无符号短整 型
4
2
0~4294967295
0~65535
无符号长整 型
unsigned long
4
0~4294967295
7
2.2.1 字符(Character)常量
字符常数的表示方法 – ’a’,’A’,’5’,’%’,’$’…… – 单引号内只能有一个字符,除非用“\”开头 就是一个普通整数,也可以参与各种数学运算 – 每个字符具有一个0~255之间的数值,可从ASCII表查出 – 注意:’6’和整数6的区别 – 字符的数学运算在密码学内用得比较多 用“\”开头的字符为转义字符 – 例如,’\n’,代表1个字符
13
小写字母转换为大写字母
#include <stdio.h> main() { char ch = 'b'; printf("%c, %d\n", ch, ch); ch = 'b' - 32; printf("%c, %d\n", ch, ch); } #include <stdio.h> main() { char ch = 'b'; printf("%c, %d\n", ch, ch); ch = 'b' - ('a' - 'A') ; printf("%c, %d\n", ch, ch); }
第2章 C语言的基本数据类型 和变量的存储类
C数据类型如下:
变量
变量的概念
变量是指在程序运行过程中可以发生改变的量 变量的特征:
(1)它有一个变量名,变量名的命名方式符合标识符的 命名规则。 (2)变量有类型之分。 不同类型的变量占用的内存单元(字节)数不同, 因此每个变量都有一个确定的类型。 (3)变量可以存放值。 程序运行过程中用到的变量必须有确切的值,变量 在使用前必须赋值,变量的值存储在内存中。在程 序中通过变量名来引用变量的值。
相关文档
最新文档