第02章 数据类型、运算符和表达式
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
关键字
关键字又称保留字:编程语言预定义的具有专门用途的 标识符,不允许用作用户的标识符。 ISO C语言共有32个关键字: 数据类型定义:typedef 数据类型:auto,char,double,enum,float,int,
long,short,struct,union,void,extern,static, signed,volatile,unsigned,register,const
实型常量
后缀修饰浮点常量: 带后缀f或F的浮点常量是单精度浮点数(float型) 带后缀d、D或无后缀的浮点常量是双精度浮点数 (double型) 带后缀l、L结尾的浮点常量是长双精度浮点数(long double型) 举例: 0.12f,12.3E12f,0.12D,0.12, 12.3E12,3.5L,12.3E12L
标识符
用途:变量名、函数名、数组名、类型名等的命名 构成:由大小写字母、数字和下划线组成,且首字符必须是字母 或下划线,不能与关键字同名。 举例:
合法的标识符 MyName、Value、_12、b_tree、abm、sum 非法的标识符 6ab、$ab、a3.5、case
说明:
标识符区分大小写,其有效长度与C编译系统有关 标识符应体现“见名知义”原则,注重可读性
类型 基本型 短整型 长整型 无符号整型 无符号短整型 无符号长整型 类型说明符 int short long unsigned unsigned short unsigned long 位数 2字节 2字节 4字节 2字节 2字节 4字节 数的范围 -32768~32767 -215~215-1 -231~231-1 0~65535 0~65535 0~(232-1)
一般地: 单精度占4字节内存单元;
双精度占8字节内存单元。
注意:实型数据不连续,无法精确表示每个实数,只能用实 型数据近似表达实数。
实型常量
实型常量(或称浮点常量)的表示形式: 定点数形式:由0~9、wk.baidu.com数点和正负号组成。如: 0.1234,253.6,0.0,.205,-78. 指数形式(科学表示法):以10的指数形式表示。 如: 12.3E12 /* 12.3×1012 */ 0.2333e-12 /* 0.2333×10-12 */ 注意:在E或e的前面必须有数字,且在E或e之后的 指数部分必须是整数。例如: e10,E5,.e5,1.0e3.5 都是不合法的实数。 规范的指数形式:1≤尾数≤10,例如: 1.23E3 /* 12.3×102 */
第2章 数据类型、运算符和表达式
教学目标
掌握C语言的字符集、关键字和标识符 理解C语言的数据类型 理解字符型和整型数据在内存中的存储格式 掌握基本类型数据的常量的表示方法 掌握基本类型变量的定义和使用 掌握数据类型转换的规则以及强制数据类型转换方法 掌握各种运算符的使用用法及其优先级和结合性 掌握字符数据输入输出函数getchar和putchar的用法 掌握格式输入输出函数scanf和printf的用法,理解输 入输出界面设计的重要性,掌握简单输入输出界面设 计方法
运算符:sizeof 控制语句: break,case,continue,default,do,
else,for,goto,if,return,switch,while
特别注意:不同的C编译系统对C标准的支持有差异!
2.2 C语言的基本数据类型
数据:程序处理的对象,分为常量和变量。 数据类型:用于描述程序中的数据。 C语言的数据类型
说明:可以看到不同种类的整型数据可以进行算术运算
运行结果: a+u=22,b+u=-14
整型变量的定义及应用 思考:
若有语句:u=a+b; 情况会怎样?
若按%u输出,则u=65524
提示:
涉及到的问题:数据类型转换。
整型变量的定义及应用
例2.3 整型数据的溢出
#include <stdio.h> int main(void) {int a,b; a=32767; b=a+1; printf("%d,%d\n",a,b); }
变量的使用
取变量的值称为对变量的引用。 对变量赋值与引用统称为对变量的操作或使用。 变量一旦定义,即可多次使用: int n=3,s,t; s=n; /*取变量n的值,对变量s赋值*/ scanf("%d",&t); /*将输入整数存入变量t*/ /*&t表示取变量t的指针(地址)*/
基本数据类型
C编译系统将浮点型数据都作为双精度来处理!
实型变量的定义及应用
例2.4 浮点型数据的舍入误差 特别注意: 不同编译器对实型
#include <stdio.h> int main(void) {float a,b; a = 123456.789e5; b = a + 20 ; printf("a=%f,b=%f\n",a,b); printf("a=%e,b=%e\n",a,b); }
基本数据类型:C语言预定义的数据类型,包括整型、
字符型、实型和空类型 int 整型 float 单精度浮点型 char 字符型 double 双精度浮点型
定义数据类型:用户按编程需要定义的数据类型,包
括数组、指针、结构体、共用体和枚举
常量
常量:程序执行过程中,其值不能被改变的量。 常量分为:字面常量和符号常量。 字面常量:不做说明,直接使用的常量。如:12,34.5。 字面常量分为:整型常量、实型常量、字符型常量和字符 串常量。 符号常量:经说明或定义后才能使用的常量。
整型常量
整型常量可用后缀来修饰: 以L或l后缀修饰的整数为长整数。例如: 2L,023l,0×25678983L 以U或u后缀修饰的整数为无符号整数。例如: 6U,045U,0×F91789U 后缀U(u)和L(l)可以组合使用,表示无符号长整型数。 例如: 0×FFFFFF96LU,120000UL 若整型常量未明确指定为长整型或无符号整型,则其类型由 编译系统在编译时依据它的取值自动识别。
符号常量
符号常量:有名字的常量。须先定义后使用。 定义方法: 使用常量说明符const const 类型名 常量名=值; 使用编译预处理命令 #define 常量名 值 举例: const double pi=3.1415926; #define PI 3.1415926 优点:可读、一致、易维护
变量的定义
说明:
变量定义不是可执行语句,应置于可执行语句前。 同一变量不可重复定义。 变量名以简短、见名知意、见名知型为优。 应按变量的取值范围选择变量类型,以占用内存 少、操作简便为优。 C语言没有提供字符串类型,字符串是用字符型数 组或指针来处理的。
变量的初值
变量的初值:在首次使用变量前,变量的取值。 置变量初值:
在定义变量时,直接初始化: int n=3; float x=12.5; int a,b=n+1,c=18; /*仅初始化部分变量*/ 在定义变量后,用赋值语句赋初值: float pi; pi=3.14159; 变量定义后,若未指定初值,则其初值或取0或取随 机值,由所分配的存储器种类决定。详见第5章。
目 录
2.1 C语言的标识符和关键字 2.2 C语言的基本数据类型 2.3 运算符和表达式 2.4 数据的输入输出
2.1 C语言的标识符和关键字
编写C程序必须使用C语言字符集中的字符 大写、小写英文字母各26个 阿拉伯数字10个 运算符、标点符号及其他字符30个 + - * / % = ! & | ~ ^ < > ; : ? , . ‗ ― \ ( ) [ ] { } # _ 空格 说明 集外字符可用集内若干字符表示,如π用pi表示 源程序注释中可以包含字符集以外的字符 字符串作为数据也可以包含字符集以外的字符
变
量
变量:在程序执行过程中其值可以被改变的量。 变量四要素: 变量类型 变量名 变量的值 变量的指针(变量在内存中的位置) 变量须先定义后使用
变量的定义
作用:指明变量的类型、名字。 格式: 类型名 变量名1,变量名2,…,变量名n; 例1: int n; 该语句定义(或声明)了一个名为n的整型变量,变量n 占用4字 节内存,&n是变量n的指针,即变量n在内存中的位置。 例2: int year,month,day; double x1,x2,x3; long sum,average,total;
整型变量的定义及应用
示例 整型变量的定义与使用
#include <stdio.h> int main(void) {int a,b,c,d; /*指定a、b、c、d为整型变量*/ unsigned u; /*指定u为无符号整型变量*/ a=12;b=-24;u=10; c=a+u;d=b+u; printf("a+u=%d,b+u=%d\n",c,d); }
整数类型
整数类型的符号问题:
整数类型 例如:整数13在内存中实际存放的情况
整型常量
整型常量可用十进制、八进制、十六进制表示。
十进制整数: 由0~9数字组成,除表示正负数的字符外,第一个数字 不能是0(整数0除外)。例如: 110,+12,-25,0,1289 +(正)号可以省略。 八进制整数: 由数字0~7数字组成,且以0开头。例如: 012,056376 十六进制整数: 以0X(x)开头,由数字0~9和字母a(A)~f(F)组成。例如: 0x1abCD,0X02a5,0xABCFD213
变量的有效数字长度的限制。 在VC6.0中, 单精度一般为7 位, 双精度15位
运行结果:
a=12345678848.000000,b=12345678848.000000 a=1.234568e+10,b=1.234568e+10
说明:一个浮点型变量只能保证的有效数字是7位有效数字,
后面的数字是无意义的,并不准确地表示该数。应当避免将 一个很大的数和一个很小的数直接相加或相减,否则就会“ 丢失”小的数。
实数类型
C语言实型分为 float:单精度实型 double:双精度实型 long double:长双精度实型
类型 float double long double 位数 32 64 128 数的范围 10-37 ~ 1038 10-307~10308 10-4931~104932 有效数字 6~7 位 15~16位 18~19位
实型变量的定义及应用
分析程序: int main(void) { float a,b,c,d; a=123456.666; b=1234567.777; c=12345678.888; d=123456789.999; printf("a=%f\nb=%f\nc=%f\nd=%f\n",a,b,c,d); }
运行结果: 32767,-32768
说明:数值是以补码表示的。一个整型变量只能容
纳-32768~32767范围内的数,无法表示大于 32767或小于-32768的数。遇此情况就发生 “溢出”。
实数类型
实数类型(实型)又称浮点型,用于描述实数。 实型数据的表示:科学记数法,即 m×10e 其中m称为尾数,e称为阶码。 实型数据的存储:仅存尾数和阶码,如3.14159*101存储为:
整型数据的表示
无符号整型数据:用原码表示,即其二进制数表示。 带符号整型数据:用补码表示。 补码: 正数的补码:与其原码相同。 负数的补码:由其相应的正数的原码的各位逐位求反 后在最低位加1而得到。 例如:若用双字节整型,则1和-1的补码分别是 0000000000000001,1111111111111111。
学习数据类型,应关注其占用的内存字节数、取值范围及 所支持的操作。 例如:基本数据类型int 用于描述整数 占用4字节内存(在VC++中) 取值范围是-2147483648~2147483647 支持的操作包括加、减、乘、除等运算
基本数据类型:整型、实型和字符型
整数类型
整数类型(整型):描述整数。 整型分为: 双字节整型:short [int],unsigned short [int]。 四字节整型:int,unsigned [int],long [int], unsigned long [int]。 八字节整型:有些C语言编译系统支持,如VC++的_ _int64。