数据类型、运算符与表达式一.ppt
复复 习习1.写写C程序的基本步骤?程序的基本步骤?2.何谓算法?何谓算法?3.结构化程序设计的三种基本结构是结构化程序设计的三种基本结构是什么?什么?4.编程,已知一商品的单价为编程,已知一商品的单价为253元,元,数量为数量为120,求金额。,求金额。1.1.编程基本步骤:编程基本步骤:定义变量、输入数据、处理数据、输出结果。定义变量、输入数据、处理数据、输出结果。2.2.算法算法就是解决一个问题采取的方法和步骤。就是解决一个问题采取的方法和步骤。3.3.程序三种基本结构:程序三种基本结构:顺序、选择和循环顺序、选择和循环。4.#include void main()int price,num,total;price=253;num=120;total=price*num;printf(“Total is%dn”,total);scanf(“%d,%d”,&price,&num);第第3章章 数据类型、运算符与表达式数据类型、运算符与表达式v数据类型、常量与变量数据类型、常量与变量v算术运算符和算术表达式算术运算符和算术表达式v赋值运算符和赋值表达式赋值运算符和赋值表达式v逗号运算符和逗号表达式逗号运算符和逗号表达式3.1 C语言的数据类型语言的数据类型v数据结构是指数据的组织形式。数据结构是指数据的组织形式。C C语言的数语言的数据结构是以数据类型的形式出现的。据结构是以数据类型的形式出现的。vC语言的主要数据类型形式:语言的主要数据类型形式:整型、字符型、实型、枚举型整型、字符型、实型、枚举型 数组类型、结构体类型、共用体类型数组类型、结构体类型、共用体类型 v注意:注意:程序中用到的数据必须指定数据类型程序中用到的数据必须指定数据类型。基本类型:基本类型:构造类型:构造类型:指针类型指针类型3.2 常量与变量常量与变量一、常量:一、常量:常量是指常量是指程序运行中其值不变的量程序运行中其值不变的量。常量分常量分为为直接常量和符号常量。直接常量和符号常量。直接常量直接常量包括:包括:整型常量:整型常量:238、0、-15 实型常量:实型常量:10.26、-25.8 字符常量字符常量:a、#、2 符号常量:符号常量:是一种用来是一种用来代替代替某一某一常量常量的标识符。的标识符。使用前必用使用前必用#define命令定义。命令定义。3.2 常量与变量常量与变量例例1 1 符号常量的使用符号常量的使用#include#define PRICE 30 void main()int num,total;num=10;total=num*PRICE;printf(”total=%d”,total);使用符号常量可实现使用符号常量可实现“一改全改一改全改”。3.2 常量与变量常量与变量二、变量:二、变量:变量是指变量是指程序运行中其值可以改变的量程序运行中其值可以改变的量。标识符和变量名标识符和变量名 标识符标识符用来标识变量名、符号常量名、函数用来标识变量名、符号常量名、函数名、文件名等。名、文件名等。标识符和变量名有以下规定:标识符和变量名有以下规定:(1)(1)标识符必须标识符必须以字母或下划线开头以字母或下划线开头。中间可以是中间可以是字母、数字和下划线。字母、数字和下划线。(2)(2)变量名中变量名中大小写字母被认为不同大小写字母被认为不同的字符。的字符。如:如:abcabc与与AbcAbc不同。不同。实用程序的变量名应实用程序的变量名应“见名知意见名知意”。如:如:sum。3.2 常量与变量常量与变量 (4)(4)变量必须变量必须“先定义,后使用先定义,后使用”。(5)(5)变量必须变量必须指定为一定的类型指定为一定的类型。如如:int a,b,sum;:int a,b,sum;v练习:练习:判断如下变量名是否正确判断如下变量名是否正确?B12,xyz-1,#a,Day,_sum,abc_3,wm,mn 5,$gqw,12mn,D.abc,_9_a_dv可以把一个常量赋给一个变量可以把一个常量赋给一个变量 x=15;y=-3.28;max=100;z=a;3.3 整型数据整型数据一、整型常量的表示方法一、整型常量的表示方法 1、十进制整数。、十进制整数。123,-25,0 2、八进制整数。八进制整数。以以O开头,如:开头,如:O137,值为:值为:182+381+780=95 3、十六进制整数。十六进制整数。以以Ox开头,如:开头,如:Ox12D,值为:值为:1162+2161+13160=301二、整型变量二、整型变量1.1.内存中存放形式内存中存放形式二进制,占两个字节二进制,占两个字节。如:如:11,(1011),以,以2字节存放,以补码形式表字节存放,以补码形式表示。示。(补码了解,教材(补码了解,教材P41。)。)3.3 整型数据整型数据2.2.整型变量分类整型变量分类(Turbo C 2.0 和和Turbo C+3.0)*(1)基本整型:基本整型:int 16位位 2字节,字节,-3276832767 各编译系统不同,各编译系统不同,Visual C+6.0分配分配4字节。字节。(2)短整型:短整型:short 或或 short int 16位位 2字节字节 -215(215-1)短整型一般不长于短整型一般不长于 int*(3)长整型:长整型:long/long int 32位位 4字节字节 -231 (231-1)-21474836482147483647 长整型一般不短于长整型一般不短于 int符号位占一位符号位占一位约约-21-21亿亿2121亿亿3.3 整型数据整型数据 (4)无符号型:无符号型:不不包包括括符符号号位位,无无负负数数,一一般般符符号号占占一一个个位位 (bit)(bit),可使数据的取值范围扩大一倍。,可使数据的取值范围扩大一倍。unsigned int 16位位 065535(216-1)unsigned short 16位位 065535(216-1)unsigned long 32位位 04294967295(232-1)3.3.整型变量定义整型变量定义 变量使用前必须定义,变量使用前必须定义,一般放在函数的开头部一般放在函数的开头部分的声明部分。分的声明部分。int a,b;long c;unsigned long d,e,f;3.3 整型数据整型数据例例2 2 整型变量的定义与使用整型变量的定义与使用#include void main()int a,b,c,d;unsigned u;a=22;b=-8;u=15;c=a+u;d=b+u;printf(“a+u=%d,b+u=%dn”,c,d);运行结果:运行结果:a+u=37,b+u=7说明:说明:不同类型的整型数据可以进行算术运算不同类型的整型数据可以进行算术运算。3.3 整型数据整型数据三、整型常量的类型三、整型常量的类型 整型变量有六种类型整型变量有六种类型:int,short,long,unsigned,unsigned short,unsigned long。整型常量赋给整型变量的规定整型常量赋给整型变量的规定 (1)(1)常量不超过变量的取值范围内,可以赋给相应变常量不超过变量的取值范围内,可以赋给相应变量,否则会量,否则会溢出溢出。如:如:d=a*b,d=a*b,若积超过若积超过3276732767就应当就应当定义为定义为longlong型,若不超过可定义为型,若不超过可定义为intint或或shortshort型。型。(2)(2)一个整型数超过一个整型数超过-32768-32768 +32767+32767,在在 -2147483648 -2147483648 2147483647 2147483647之间,可定义为长整型。之间,可定义为长整型。(3)(3)整型常量后加字母整型常量后加字母l l或或L L表示其为长整型表示其为长整型 如:如:2456L,-459l2456L,-459l 3.4 浮点型数据浮点型数据一、浮点型常量的表示一、浮点型常量的表示 浮点数又称实数,有两种表示形式:浮点数又称实数,有两种表示形式:1、十进制小数形式十进制小数形式:345.52、0.128、123.、56.0 2、指数形式:指数形式:如如214.38e5。214.38e5表示表示214.38105,也也可表示为可表示为 21.438e6,0.21438e8等。但等。但输出时按规范化形式输出时按规范化形式输出输出:2.1438e7。3.4 浮点型数据浮点型数据二、浮点型变量二、浮点型变量1.内存中存放形式内存中存放形式 按指数形式存储,按指数形式存储,每个浮点数由三部分组每个浮点数由三部分组成:成:数符、小数部分和指数。数符、小数部分和指数。一般占一般占4个字节(一般数符和小数部分占个字节(一般数符和小数部分占24位,指数位,指数8位)。位)。3.4 浮点型数据浮点型数据2.浮点型变量的分类浮点型变量的分类(1)单精度型)单精度型 float 32位位 -3.4*10-383.4*1038 67位位(2)双精度型)双精度型 double 64位位 -1.7*10-3081.7*10308 1516位位(3)长双精度型)长双精度型 long double 128位位 -1.2*10-49321.2*104932 1819位位 浮点型数据定义:浮点型数据定义:float x;double a,b;输入、输出浮点型格式符用:输入、输出浮点型格式符用:%f输出一般整型用:输出一般整型用:%d,输出长整型可用:,输出长整型可用:%ld3.4 浮点型数据浮点型数据三、浮点型常量的类型三、浮点型常量的类型 一般系统将浮点型常量一般系统将浮点型常量按双精度存储和运算按双精度存储和运算,如:如:x=2345.2180.27 若想按单精度运算,可在常量后加若想按单精度运算,可在常量后加f或或F,如:,如:23.4f,1.467F。同一常量既可赋给单精度变量又可赋给双精同一常量既可赋给单精度变量又可赋给双精度变量,但精度不同。度变量,但精度不同。如:如:float x;double y;x=123456.7289,共,共10位数字,精度为位数字,精度为7位,后面位,后面 三位小数不起作用。三位小数不起作用。y=123456.7289,可将全部小数保留为有效。可将全部小数保留为有效。3.4 浮点型数据浮点型数据例例3 3 编一个求圆面积的程序。编一个求圆面积的程序。#include#define PI 3.1416void main()float r,s;/*定义定义*/printf(“请输入半径请输入半径r:”);scanf(“%f”,&r);/*输入输入*/s=PI*r*r;/*计算计算*/printf(“r=%f,s=%f”,r,s);/*输出输出*/3.5 字符型数据字符型数据一、字符常量一、字符常量 用单引号括起来的一个字符。用单引号括起来的一个字符。a,E,?,#,6等都是字符。等都是字符。注意:注意:aa AA,两者的,两者的ASCIIASCII值是不同的。值是不同的。特殊字符:特殊字符:以以“”开头的字符。(开头的字符。(P48表表3-3)nn:代表换行符。:代表换行符。r r:代表回车,不换行,光标移到行首。:代表回车,不换行,光标移到行首。“”“”后面的字符称为后面的字符称为转义字符转义字符。3.5 字符型数据字符型数据二、字符变量二、字符变量 字符变量用来存放字符常量。字符变量用来存放字符常量。字符变量定义:字符变量定义:char c1,c2;c1=x;c2=Y;c1,c2 为字符变量,分别为字符变量,分别可以存放一个字可以存放一个字符。符。一个字符占一个字节。一个字符占一个字节。问:问:下面对字符变量的赋值是正确吗?下面对字符变量的赋值是正确吗?c1=ab;c2=“a”;3.5 字符型数据字符型数据三、字符的存储形式三、字符的存储形式1.字符以字符以其其ASCII码值码值存储,存储,实际是以其实际是以其ASCII的的二进制形式存储。二进制形式存储。如:如:x=a;y=b;a的的ASCII:(97)10、(01100001)2 b的的ASCII:(98)10、(01100010)2 2.2.可用字符的可用字符的ASCIIASCII值给变量赋值。值给变量赋值。如:如:char x;x=97 与与 x=a等价,在内存形式一样。等价,在内存形式一样。例例4 4#include void main()char x1,y1,x2,y2,x3,y3;x1=97;y1=98;printf(“x1=%c,y1=%cn”,x1,y1);/*字符输出字符输出*/x2=a;y2=b;printf(“x2=%c,y2=%cn”,x2,y2);x3=x1-32;y3=y2-32;printf(“x3=%c,y3=%cn”,x3,y3);每个小写字母比大写字母大每个小写字母比大写字母大32,A的的ASCII值为值为65:97-32=65运行结果:运行结果:x1=a,y1=bx2=a,y2=bx3=A,y3=B3.字符数据与整型数据可以互相赋值字符数据与整型数据可以互相赋值例例5 5#include void main()int i;char c;i=a;c=97;printf(“%c,%dn”,i,i);printf(“%c,%dn”,c,c);运行结果是什么?运行结果是什么?a,97a,97四、字符串常量四、字符串常量1 1、用双引号、用双引号“”“”引起来的一串字符。引起来的一串字符。如:如:“CHINA”,“2009年年”,“$123.4”,“a”.2、字符串的存储形式、字符串的存储形式 各字符的各字符的ASC码码+字符串结束标志字符串结束标志“0”,C H I N A 0 a与与“a”是不同的,一个字符变量中是不同的,一个字符变量中只能放一个只能放一个ASCII码值。码值。char c;c=a;正确正确 c=“a”;错误错误 C C语言中没有字符串变量语言中没有字符串变量,只能用字符型数只能用字符型数组存放字符串组存放字符串。小 结v常量与变量常量与变量v整型变量整型变量 int、short、long、unsignedv实型变量实型变量 float、double、long doublev字符常量、字符变量字符常量、字符变量 char作作 业业1 1。教材教材P67P67 3.5 3.5、3.83.82。编程。编程,输入半径输入半径r,求圆的周长求圆的周长l和面积和面积s。