
第2章基本的数据与运算 主要内容: 常量和变量的概念 各种数据类型的常量和变量 算术运算符及其表达式
1 第2章 基本的数据与运算 主要内容: 常量和变量的概念 各种数据类型的常量和变量 算术运算符及其表达式

问题1 表达式 sin x 常量 常量3 变量 、 函数 3 ● 变量 运算符 运算符 ● 表达式 程序设计语言的基本规则包括 ● 函数 把自然语言描述问题的方式转 换为C语言的形式表达给计算机
2 程序设计语言的基本规则包括 ⚫ 常量 ⚫ 变量 ⚫ 运算符 ⚫ 表达式 ⚫ 函数 f x a sin x 5 3 ( ) = 3.6 + 把自然语言描述问题的方式转 换为C语言的形式表达给计算机 表达式 常量 变量 函数 运算符 问题1

计算机完成上述计算,首先要 解决数据的输入和存放问题 常数3、5和3.6的存放空间是否相同? 变量a如何表示?如何存放? ·计算机如何知道3.6和a之间的关系? 和sinx如何输入?如何存放? 。计算机如何识别“=”?运算结果放在哪里?
3 ⚫ 常数3、5和3.6的存放空间是否相同? ⚫ 变量a如何表示?如何存放? ⚫ 计算机如何知道3.6和a之间的关系? ⚫ 和sin x 如何输入?如何存放? ⚫ 计算机如何识别“=”?运算结果放在哪里? 5 3 计算机完成上述计算,首先要 解决数据的输入和存放问题

问题2 著名科学家沃思(Nikiklaws Wirth)提出: 数据结构+算法=程序 对数据的描述 对操作的描述 如:记录学生成绩作评比 数据:成绩 数据结构 操作:记录、评比 算法 数据类型是按照被说明量的性质、表示形式、占据存储空 间的多少、构造特点来划分的
4 如:记录学生成绩作评比 著名科学家沃思(Nikiklaws Wirth)提出: 数据结构+算法=程序 对数据的描述 对操作的描述 数据:成绩 操作:记录、评比 数据类型是按照被说明量的性质、表示形式、占据存储空 间的多少、构造特点来划分的。 算法 数据结构 问题2

数据类型 短整型short 整 型 整型int 长整型long 基本类型 单精度型f1oat 实型 双精度型double 字符类型char 数组 数据类型决定: 1.数据占内存字节数 结构体struct 数 2.数据取值范围 构造类型 共用体union 3.其上可进行的操作 类 枚举类型enum 指针类型 空类型void 定义类型typedef
5 数据类型 C 数 据 类 型 基本类型 构造类型 指针类型 空类型void 定义类型typedef 字符类型char 枚举类型enum 整 型 实型 单精度型float 双精度型double 数组 结构体struct 共用体union 短整型short 长整型long 整型int 数据类型决定: 1. 数据占内存字节数 2. 数据取值范围 3. 其上可进行的操作

各种数据类型的常量、变量 常量 ·定义:程序运行时其值不能改变的量(即常数 ·分类: 。直接常量:可以直接用于输入或赋给其他变量 。整型常量 100 例符号常量举例 。实型常量3.14 #define PI3.14159 字符常量 ‘A' mainO) ·字符串常量 符号常量:用标识符代表常量 float r,s, 定义格式:#define符号常 r=10; ●一般用太写宝 S=PI*r*r; ●是宏预,是子14 printf("s-%f",s); 语句 6 运行结果:total==300
6 各种数据类型的常量、变量 ⚫ 定义:程序运行时其值不能改变的量(即常数) ⚫ 分类: ⚫ 直接常量: 可以直接用于输入或赋给其他变量 ⚫ 整型常量 100 ⚫ 实型常量 3.14 ⚫ 字符常量 ‘A’ ⚫ 字符串常量 如 #define PI 3.14159 运行结果:total=300 ⚫一般用大写字母 ⚫是宏定义预处理命令,不是C 语句 > > > > ⚫ 符号常量:用标识符代表常量 定义格式: #define 符号常量 常量 例 符号常量举例 #define PI 3.14159 main() { float r,s; r=10; s=PI*r*r; printf("s=%f",s); } > 常量

整型常量(整常数) 三种形式: ·十进制整数:由数字0~9和正负号表示.如123,- 456,0 ·八进制整数:由数字0开头,后跟数 输出结果是: 0,32767,-32768 0123,011 10,16,376 ·十六进制整数:由0x开头,后跟0~9 8,14,254 如0x123,0Xff(不区分大小写) 10,cd,100 16,205,256 ●输出格式说明:%d、%o、%x main() printf((”%d,d,%d心,0,2g刺卖渍刺格式输出 printf("%o,%o,%on"01,0,Q160376): printf(“%d,%d,%dn”,0l.o3港制格式输出 printf ("%x,%x,%xn",Ox10,0Xcd,Ox100) printf ("%d,%d,%d\nOx10,0Xcd,Ox100); %控制十六进制格式输出
7 整型常量(整常数) ⚫ 三种形式: ▪ 十进制整数:由数字0~9和正负号表示.如 123,- 456,0 ▪ 八进制整数:由数字0开头,后跟数字0~7表示.如 0123,011 ▪ 十六进制整数:由0x开头,后跟0~9,a~f,A~F表示. 如0x123,0Xff(不区分大小写) ⚫输出格式说明:%d、%o、%x main() { printf("%d,%d,%d\n",0,32767,-32768); printf("%o,%o,%o\n",010,016,0376); printf("%d,%d,%d\n",010,016,0376); printf("%x,%x,%x\n",0x10,0Xcd,0x100); printf("%d,%d,%d\n",0x10,0Xcd,0x100); } %d控制十进制格式输出 %x控制十六进制格式输出 %o控制八进制格式输出 输出结果是: 0,32767,-32768 10,16,376 8,14,254 10,cd,100 16,205,256 <

实型常量(实数或浮点数) 0 表示形式: ·十进制数形式: (必须有小数点)如0.123,.123,123.0, 0.0,123. 指数形式: (e或E之前必须有数字;指数必须为十进制整数) 如123e3-123F2123A-46-512F-35 。 规程序输出结果是: 1.2 0.123400,0.123400,-1234.000000,0.000000 3.00000e+06,-2.05000e+03,-1.23456e-02,3.76000e+11 输出 1.23456e+02,1.23456e+02,1.23456e+02,1.23456e+02 main ( %f默认小数部分输出6位 {printf("%f,%f,%f,%f\n",0.1234,.1234,-1234.,0.0); printf("%e,%e,%e,%en",3e6,-2.05e+03,-1.23456e- 2,37.6e10); %e控制以规范化的指数形式输出 printf("%e,%e,%e,%en",123.456,12.3456e1,1.23456e2, 0.0123456e4);
8 实型常量(实数或浮点数) ⚫ 表示形式: ▪ 十进制数形式:(必须有小数点) 如0.123, .123, 123.0, 0.0, 123. ▪ 指数形式:(e或E之前必须有数字;指数必须为十进制整数) 如12.3e3 ,-123E2, 1.23e-4 , e-5 , 1.2E-3.5 ▪ 规范化的指数形式:(尾数小数点左边有一位非零数字)如 1.234e5 ⚫ 输出格式说明:%f、%e main() {printf("%f,%f,%f,%f\n",0.1234,.1234,-1234.,0.0); printf("%e,%e,%e,%e\n",3e6,-2.05e+03,-1.23456e- 2,37.6e10); printf("%e,%e,%e,%e\n",123.456,12.3456e1,1.23456e2, 0.0123456e4); } 程序输出结果是: 0.123400,0.123400,-1234.000000,0.000000 3.00000e+06,-2.05000e+03,-1.23456e-02,3.76000e+11 1.23456e+02,1.23456e+02,1.23456e+02,1.23456e+02 %e控制以规范化的指数形式输出 %f默认小数部分输出6位 <

字符常量 ● 定义:用单引号括起来的单个普通字符或转义字符, ●字符常量的值:该字符的AS 如 ‘a'‘A??' n'1101 。 转义字符:以一个“”开头的 如 A 65, ‘a' 9 转义字符及其含义. 运行结果:(屏幕显示) 例转义字符举例 转义字 I say:"How are you?" main() n 天厅 main() %C控制字符形式输出 printf("%c,%c,%c,%ctm,a',’A','1','#): printf("%d,%d,%dd小n",'a','A',’1',’#); printf("%c,%c,%c,%Cn",'a-32,'A'+1,97,98); %d整数格式输出字苻常量的 \ddd 3位8进制数代表的学9C什旗 程序输出结果是: 输出格式说明:%c、%d a,A,1,# 97,65,49,35 9 A,B,a,b
9 < 转义字符及其含义: 转义字符 含义 \n \v \r \a \‘ \ddd \t \b \f \\ \“ \xhh 转义字符 含义 换行 垂直制表 回车 响铃 单引号 3位8进制数代表的字符 水平制表 退格 换页 反斜线 双引号 2位16进制数代表的字符 字符常量 ⚫ 定义:用单引号括起来的单个普通字符或转义字符. ⚫ 字符常量的值:该字符的ASCII如码‘值a’ ‘A’ ‘?’ ‘\n’ ‘\101’ ⚫ 转义字符:以一个“\”开头的字符序列。 例: ‘A’- 65-’\101’-’\x41’ < 如 ‘A’——65, ‘a’——97, 例 转义字符举例 main() { printf("I say:\"How are you?\"\n"); } 运行结果:(屏幕显示) I say:”How are you?” 例 main() { printf(“Y\b=\n”); } 运行结果: 屏幕显示:= ⚫ 输出格式说明:%c、%d main() { printf("%c,%c,%c,%c\n",'a','A','1','#'); printf("%d,%d,%d,%d\n",'a','A','1','#'); printf("%c,%c,%c,%c\n",’a’-32,'A'+1,97,98); } %c控制字符形式输出 %d整数格式输出字符常量的 ASCII码值 程序输出结果是: a,A,1,# 97,65,49,35 A,B,a,b

字符串常量 ·定义:用双引号(“”)括起来的字符序列 。存储:每个字符串尾自动加一个0’ 作为字符串结束标 例字符串“hello”在内存中 h e 11 o0 例空串“” 0 。字符常量与字符串常量不同 例‘aa c“a” a\0 ●输出格式说明:%s或直接输出 main() printf(Computer ) 程序输出结果是: printf("\nI am a boy!\n"); Computer I am a boy! printf ("%s\n","STRING"); STRING 10
10 字符串常量 ⚫ 定义:用双引号(“”)括起来的字符序列 ⚫ 存储:每个字符串尾自动加一个 ‘\0’ 作为字符串结束标 志例 字符串“hello”在内存中 h e l l o \0 例 ‘a’ a “a” a \0 例 空串 “” \0 ⚫ 字符常量与字符串常量不同 ⚫ 输出格式说明:%s或 直接输出 < main() { printf("Computer"); printf("\nI am a boy!\n"); printf("%s\n","STRING"); } 程序输出结果是: Computer I am a boy! STRING