《C语言程序设计 教学课件 ppt 作者 蒋清明C语言程序设计__第2章》由会员分享,可在线阅读,更多相关《C语言程序设计 教学课件 ppt 作者 蒋清明C语言程序设计__第2章(87页珍藏版)》请在金锄头文库上搜索。
1、第2章 基本数据类型与运算符,返回总目录,目 录,2.1 数据类型和取值范围,2.2 运算符,2.3 输入/输出函数,2.4 习题二,返回总目录,基本要求: )熟悉C语言的常用数据类型; )熟悉C语言的常用运算符; )熟练掌握输入/输出函数的使用。 学习重点: )C语言运算符的使用; )输入/输出函数的使用。,2.1 基本数据类型和取值范围,2.1.1 基本数据类型和取值范围,数据类型决定: 1. 数据占内存字节数 2. 数据取值范围 3. 其上可进行的操作, 数据类型总表,返回目录, 基本类型及范围 (Visual C+ 6.0环境下),2.1 基本数据类型和取值范围,2.1.1 基本数据类
2、型和取值范围,2.1.2 常量与变量, 标识符,定义:用来标识变量、常量、函数等的字符序列 组成: 只能由字母、数字、下划线组成,且第一个字母必须是字母或下划线 大小写敏感 不能使用关键字 命名原则: 见名知意 不宜混淆 如l与I, o与0,2.1 基本数据类型和取值范围,2.1.2 常量与变量, 标识符,例:判断下列标识符号合法性 sum Sum M.D.John day Date 3days student_name #33 lotus_1_2_3 char ab _above $123,M.D.John,3days,#33,char,$123,ab,2.1 基本数据类型和取值范围,2.1
3、.2 常量与变量, 常量,定义:程序运行时其值不能改变的量(即常数) 分类: 符号常量:用标识符代表常量 定义格式: #define 符号常量 常量,如 #define PRICE 30,例 符号常量举例 #define PRICE 30 main() int num,total; num=10; total=num*PRICE; printf(“total=%d“,total); ,一般用大写字母 是宏定义预处理命令,不是C语句 直接常量: 整型常量 实型常量 字符常量 字符串常量,2.1 基本数据类型和取值范围,2.1.2 常量与变量, 常量-整型常量(整常数),三种形式: 十进制整数:由
4、数字09和正负号表示.如 123,-456,0 八进制整数:由数字0开头,后跟数字07表示.如0123,011 十六进制整数:由0x开头,后跟09,af,AF表示. 如0x123,0Xff,示例: 0571 = (377 )10 0x179 = (377 )10 0X179 = (377 )10,2.1 基本数据类型和取值范围,2.1.2 常量与变量, 常量-整型常量(整常数),两种长度:整型常量按长度划分为两种:短整型和长整型(后缀为小写字母l或大写字母L),从长度来看: Turbo C中默认为短整型,如-377是一个短整型数,而 -377l或-377L表示-377是长整型数。 而在Visu
5、al C+ 6.0中默认为长整型,如-377、-377l或 -377L均表示-377是长整型数。 例:语句:printf(“%d,%d”,sizeof(-377),sizeof(-377L); 在Turbo C中的运行结果为:2,4 而在VC中的结果为:4,4 小结:从数据类型角度来分析,整型常量默认为int类型,而加上后缀(l或L)后,就是long int类型。,2.1 基本数据类型和取值范围,2.1.2 常量与变量, 常量-实型常量(实数或浮点数),表示形式: 十进制数形式:(必须有小数点) 如0.123, .123, 123.0, 0.0, 123. 指数形式:(e或E之前必须有数字;指
6、数必须为整数)如12.3e3 ,123E2, 1.23e4 , e-5 , 1.2E-3.5,实型常量的类型 默认double型 在实型常量后加字母f或F,认为它是float 型 例:语句:printf(“%d,%d”,sizeof(0.123),sizeof(0.123F); 在Turbo C和VC中的运行结果均为:8,4,2.1 基本数据类型和取值范围,2.1.2 常量与变量, 常量-字符常量,定义:用单引号括起来的单个普通字符或转义字符.,字符常量的值:该字符的ASCII码值,如 a A ? n 101,转义字符:反斜线后面跟一个字符或一个代码值表示,如 A65, a97, 048 ,
7、n10,2.1 基本数据类型和取值范围,2.1.2 常量与变量, 常量-字符常量,2.1 基本数据类型和取值范围,2.1.2 常量与变量, 常量-字符常量,如 101 -A 012 -n 376 - x61 -a 60 -0 483 -(),例: A-101-x41-65,转义字符示例:,2.1 基本数据类型和取值范围,2.1.2 常量与变量, 常量-字符常量,例 转义字符举例 main() printf(“101 x42 Cn“); printf(“I say:“How are you?“n“); printf(“C Programn“); printf(“Turbo C“); ,运行结果:
8、(屏幕显示) A B C Isay:”How are you?” C Program Turbo C,例 main() printf(“Yb=n”); ,运行结果: 屏幕显示:= 打印机输出:,2.1 基本数据类型和取值范围,2.1.2 常量与变量, 常量-字符串常量,定义:用双引号(“ ”)括起来的字符序列 存储:每个字符串尾自动加一个 0 作为字符串结束标志,字符常量与字符串常量不同,例: char ch; ch=“A”;,2.1 基本数据类型和取值范围,2.1.2 常量与变量, 变量,概念:其值可以改变的量 变量名与变量值 变量定义的一般格式: 数据类型 变量1,变量2,变量n;,例:
9、int a,b,c; float data;,决定分配字节数 和数的表示范围,合法标识符,2.1 基本数据类型和取值范围,2.1.2 常量与变量, 变量,例: int a=2,b,c=4; float data=3.67; char ch=A; int x=1,y=1,z=1; int x=y=z=1;,变量初始化:定义时赋初值,2.1 基本数据类型和取值范围,2.1.2 常量与变量, 变量,例1 int student; stadent=19; /本行语句有错,符号 “stadent” 未定义,例2 int a,b,c; c=a%b; /本行语句有错,a、b没有具体的值就参与运算,变量的使用
10、:先定义,后使用,2.1 基本数据类型和取值范围,2.1.2 常量与变量, 变量,变量定义位置:一般放在函数开头,2.1 基本数据类型和取值范围,2.1.2 常量与变量, 变量,整型变量 占字节数随机器不同而不同,一般占一个机器字 shortintlong 可用sizeof(类型标识符)测量,#include “stdio.h“ main() printf(“int length=%d“,sizeof(int); ,VC运行结果: int length=4,2.1 基本数据类型和取值范围,2.1.2 常量与变量, 变量,实型变量 float:占4字节,提供67位有效数字(跟C编译系统有关,将实
11、型数据按指数形式存储时,一般若以24位二进制位表示小数部分(含符号),则对应的十进制有效数字为7位) double:占8字节,提供1516位有效数字,2.1 基本数据类型和取值范围,#include main() double a=1.234567890123456789e18; float b=a; printf(“a=%.20len“,a); printf(“b=%.20len“,b); ,程序输出结果为: a=1.23456789012345680000e18 b=1.23456793955060940000e18,2.1.2 常量与变量, 变量,字符型变量 字符变量存放字符ASCII码
12、 char与int数据间可进行算术运算,例 a=D; /* a=68; */ x=A+5; /* x=65+5; */ s=!+G /* s=33+71; */,没有字符串变量,字符串用字符数组存放,2.1 基本数据类型和取值范围,2.1.2 常量与变量, 变量,变量综合示例: #define PRICE 12.5 main() int num=3; float total; char ch1,ch2=D; total=num*PRICE; ch1=ch2-A+a; printf(“total=%f,ch1=%cn”,total,ch1); ,运行结果: total=37.500000, ch
13、1=d,2.1 基本数据类型和取值范围,2.2 运算符,2.2.1 优先级与结合规则, 运算符,返回目录,2.2 运算符,2.2.1 优先级与结合规则, 优先级和结合规则总表,2.2 运算符,2.2.1 优先级与结合规则,不同级别的运算符按运算符的优先级别确定计算顺序,优先级别高(即优先级别数小)的运算符先计算: 相同级别的运算符按结合规则确定计算顺序。 例:表达式3+4*(12-6)/(1+2)的计算顺序为: (126)6 (12)3 4*624 24/3=8 3+8=11, 运算符的计算规则,2.2 运算符,2.2.2 赋值运算与连续赋值,在C中,运算符“=”是赋值运算符。 简单赋值运算的
14、一般形式为: 变量=表达式 其功能是将一个表达式的值赋给变量。 如下表达式 a=b+c 该式读作将表达式b+c的值赋给a。其本意是改写变量a的值,而不是判断b+c与a是否相等,, 赋值运算,2.2 运算符,2.2.2 赋值运算与连续赋值, 连续赋值,在C语言中,赋值运算符的级别较低,为14级,并满足右结合规则。因此表达式: x=y=z=1 是连续赋值表达式,其功能相当于如下表达式的功能 x=(y=(z=1) 它是先执行表达式z=1,即将1赋给z,表达式值也为1,然后将表达式值1赋给y,即执行y=1,表达式值也仍为1,再将表达式值1赋给x,即执行x=1。,2.2 运算符,2.2.3 算术运算,结
15、合方向:从左向右 优先级: - -* / % - + - (2) (3) (4) 说明: “-”可为单目运算符时,右结合性 两整数相除,结果为整数 %要求两侧均为整型数据,例 5/2 = 2 -5/2.0 = -2.5,例 5%2 = 1 -5%2 = -1 1%10 = 1 5%1 = 0 5.5%2 (), 基本算术运算符: + - * / %,2.2 运算符,2.2.3 算术运算, 自增、自减运算符+ -,作用:使变量值加1或减1 种类: 前置 +i, -i (先执行i+1或i-1,再使用i值) 后置 i+,i- (先使用i值,再执行i+1或i-1),例 j=3; k=+j; j=3; k=j+; j=3; printf(“%d”,+j); j=3; printf(“%d”,j+); a=3;b=5;c=(+a)*b; a=3;b=5;c=(a+)*b;,/k=4,j=4,/