第一章数据类型与表达式

上传人:沈*** 文档编号:172651017 上传时间:2022-12-05 格式:PPT 页数:57 大小:258.02KB
返回 下载 相关 举报
第一章数据类型与表达式_第1页
第1页 / 共57页
第一章数据类型与表达式_第2页
第2页 / 共57页
第一章数据类型与表达式_第3页
第3页 / 共57页
点击查看更多>>
资源描述
第一章第一章 数据类型与表达式数据类型与表达式青海大学计算机系青海大学计算机系 李鑫丽李鑫丽(1389748570613897485706)本章内容本章内容1.1 C1.1 C程序简介程序简介1.2 C1.2 C语言的数据类型语言的数据类型1.3 1.3 常量与变量常量与变量1.4 C1.4 C语言的运算符与表达式语言的运算符与表达式1.5 1.5 各种数据类型之间的混合运算各种数据类型之间的混合运算1.1.1 C1.1.1 C语言的特点与发展语言的特点与发展1.1 C1.1 C程序简介程序简介清华大学 黄维通 设计制作4 C语言的特点语言的特点1.直接对存储器进行操作,进直接对存储器进行操作,进行位运算,实现汇编语言的大行位运算,实现汇编语言的大部分功能,因此,它既是系统部分功能,因此,它既是系统描述语言,也是程序设计语言描述语言,也是程序设计语言2.简洁、紧凑,而且具有结构简洁、紧凑,而且具有结构化的特点化的特点3.3.生成目标代码质量高,程生成目标代码质量高,程序执行效率高,移植性好序执行效率高,移植性好4.4.尤其是目前的尤其是目前的OOPOOP提高了提高了C C的的优越性优越性5.5.用函数作为程序模块用函数作为程序模块,以以实现程序的模块化实现程序的模块化C语言的发展语言的发展7070年代初年代初贝尔贝尔lablab为为描述和描述和实现实现UNIXUNIX而而设计设计1973197390%90%以上以上UNIXUNIX内内容用容用C C改改写写,即即UNIX5UNIX5UNIX6UNIX6和和OOPOOP技术的出现,技术的出现,C C的突出优的突出优点引起普遍点引起普遍关注关注1975197519831983ANSIANSI成成立了定立了定义义C C标标准委员准委员会,用会,用6 6年时年时间使间使C C标准化标准化19891989ANSI ANSI C C标标准被准被采用,采用,定义定义为为C89C89修订修订C C,出现了出现了初步的初步的C+C+,C89C89成成了了C+C+的子集的子集19951995推出推出了了C99C99199919991.1.2 C程序的组成程序的组成C程序是由函数构成的;程序是由函数构成的;一个函数包括函数的首部(即函数的一个函数包括函数的首部(即函数的第一行)和函数体(即花括号部分);第一行)和函数体(即花括号部分);函数体一般包括声明部分和执行部分;函数体一般包括声明部分和执行部分;一个一个C程序总是从程序总是从main函数开始执行,函数开始执行,从从main函数结束;函数结束;C程序书写格式自由,一行内可以写程序书写格式自由,一行内可以写几个语句,一个语句可以分写在多行几个语句,一个语句可以分写在多行上;上;每个语句和数据定义的最后必须有一每个语句和数据定义的最后必须有一个分号;个分号;C语言本身没有输入输出语句,是通语言本身没有输入输出语句,是通过函数实现输入输出的;过函数实现输入输出的;可以用可以用/*/对对C程序的任何部分作程序的任何部分作注释,还可以用注释,还可以用/进行注释,(进行注释,(/*/可以把注释写到一行中,而可以把注释写到一行中,而/只能在同只能在同一行进行注释)一行进行注释)C语言程序的编译和执行语言程序的编译和执行 编辑编辑源程序源程序编译编译连接连接运行运行后缀为后缀为.cpp或或.c.obj.exeOpen F3Open F3#include“stdiuo.h”Void main()printf(“Hello World!”);Save asCancelHelpOkSave file asMy_file.cppCompileCompile Alt+F9Compile Alt+F9Make F9Make F9LinkLinkBuild allBuild allInformationInformationRemove MessagesRemove MessagesRunRunRun Ctrl+F9Run Ctrl+F9Program reset Ctrl+F2Program reset Ctrl+F2Go to cursor F4Go to cursor F4Trace into F7Trace into F7Step over F8Step over F8ArgumentsArguments1.1.4 一个简单程序一个简单程序【例】显示字符串【例】显示字符串“Hello World!”#include main()printf(Hello World!n);1.1.5 C1.1.5 C程序的基本标识符程序的基本标识符1 字符集字符集 英文字母英文字母 az,AZ 阿拉伯数字阿拉伯数字 0 9+-*/%=()_ .:?&;“|!#空格空格 2 标识符标识符 主要用来表示常量、变量、函主要用来表示常量、变量、函数和类型等的名字数和类型等的名字 不要死记硬背,不要死记硬背,自然就会自然就会几类标识符几类标识符1)保留字:拥有特定含义的标识符;)保留字:拥有特定含义的标识符;C语言不允许用户把保留字当成变量名使用;语言不允许用户把保留字当成变量名使用;C 语言的保留字都用小写英文字母表示。语言的保留字都用小写英文字母表示。eg:do、while、int、float、for、void、main、if、short2)预定义标识符:它们被用作库函数名和预)预定义标识符:它们被用作库函数名和预编译命令,这些标识符被称为预定义标识编译命令,这些标识符被称为预定义标识符。符。eg:define undef include ifdef endif line ifndef3)用户定义标识符;用户定义标识符;用户定义标识符由英文字母、数字、下划用户定义标识符由英文字母、数字、下划线构成;线构成;其中开头字母必须是:字母或下划线。其中开头字母必须是:字母或下划线。非法用户定义标识符举例:非法用户定义标识符举例:2r、%h、$ABC、e2.2e5、1.2 C1.2 C语言的数据类型语言的数据类型基 本基 本数 据数 据类型类型字符型字符型数值型数值型空类型空类型复 合复 合数 据数 据类型类型结构结构联合联合数组数组枚举枚举指针指针整型整型长整型长整型无符号长整型无符号长整型有符号长整型有符号长整型整整 型型无符号整型无符号整型有符号整型有符号整型短整形短整形无符号短整型无符号短整型有符号短整型有符号短整型实型实型单精度实型单精度实型双精度实型双精度实型数数据据类类型型1.3 常量与变量常量与变量 1.3.1 常量常量【例】求圆柱体体积【例】求圆柱体体积#include stdio.h#include stdio.h#define PI#define PI 3.14159263.1415926main()main()float v,r,h=float v,r,h=2.52.5;scanf(%f,&r scanf(%f,&r););v=PI v=PI*r r*r r*h;h;printf(Volume printf(Volume=%f,v);=%f,v);整型整型实型实型 字符型字符型 字符串字符串 符号符号 常常量量类类型型 eg:#define PI 3.1415926#define qian 1000#define xiaoming A#define A lixinli#define fenhao ;1.3.2 数据类型及变量数据类型及变量 基 本基 本数 据数 据类型类型字符型字符型数值型数值型空类型空类型复 合复 合数 据数 据类型类型结构结构联合联合数组数组枚举枚举指针指针整型整型长整型长整型无符号长整型无符号长整型有符号长整型有符号长整型整整 型型无符号整型无符号整型有符号整型有符号整型短整形短整形无符号短整型无符号短整型有符号短整型有符号短整型实型实型单精度实型单精度实型双精度实型双精度实型数数据据类类型型类型标识符类型标识符名名 字字取值范围取值范围char字符型字符型ASCII字符代码字符代码unsigned char 无符号字符型无符号字符型 0至至255signed char有符号字符型有符号字符型-27 27-1int整型整型-215 215-1unsigned int无符号整型无符号整型0 216-1singned int有符号整型有符号整型同同intfloat浮点浮点10-381038double双精度型双精度型10-30810308 基本数据类型基本数据类型清华大学 黄维通 设计制作32变量及变量的定义变量及变量的定义#include stdio.h#include void main()void main()floatfloat m m,n n;m m=1.11=1.11;m m=2=2*m m;n n=m m+2.2+2.2;printf(”%f%f”,printf(”%f%f”,m m,n n););变量名变量名变量名:变量名:以以字母字母或或下划线下划线开开头头,由,由数数字字、字母字母、下划线下划线构成。最构成。最多多8 8个字符个字符使用变量前要定义其存储类型使用变量前要定义其存储类型变量准则:变量准则:如如 SUM,A1,A2,_Xn,等均合法等均合法 但但a-b,c-d,$888,#555,3x56,ab 等均为非法变量等均为非法变量 变量变量区分大小写区分大小写,如,如a与与A意义意义是是不一样不一样的,变量超过的,变量超过8位的不识位的不识别,如别,如student_AAA与与student_BBB是一样的是一样的(对对16位系统位系统)char c1,c2;/*定义字符型变量定义字符型变量c1和和c2*/int x,y,z;/*定义整型变量定义整型变量x,y和和z*/double volume;/*定义双精度型变量定义双精度型变量volume*/float sum,average;/定义实型变量定义实型变量sum和和average unsigned long distance;/定义无符号长整型变量定义无符号长整型变量distance变量的初始化变量的初始化 给变量赋初值的过程称为变量给变量赋初值的过程称为变量的初始化的初始化。变量所标识的内存单。变量所标识的内存单元可能保留先前使用该单元时留元可能保留先前使用该单元时留下的内容而产生莫名其妙的下的内容而产生莫名其妙的结果结果未赋初值的变量并不意味着该变未赋初值的变量并不意味着该变量中没有数值,而只表明该变量量中没有数值,而只表明该变量中尚未定义特定的值中尚未定义特定的值#include“stdio.h”main()double p=15.5,d=0.1;float x,y,z=4.53;short int i=j=k=555;char c=a;x=3.8;字符型数据的使用方法字符型数据的使用方法 字符型数据字符型数据与与整型数据整型数据可可以互相赋值,可以按以互相赋值,可以按字符字符形式形式输出,也可以按输出,也可以按整型数整型数输出输出Page 37如:如:main()main()char c1,c2;char c1,c2;c1=97;c1=97;c2=98;c2=98;printf printf(“%c%c”,c1,c2);(“%c%c”,c1,c2);或:或:c1=c1=a;a;c2=c2=b;b;字符串常量字符串常量例例:CHINA a a所以:所以:char c;c=a;a a 是字符常量是字符常量“a”“a”是字符串常量是字符串常量C C H HA A 00I I N Na a 00a a转义字符的定义转义字符的定义n 换行换行 b 退格退格 a 响铃响铃r 回车回车(不换行不换行,回本行首列回本行首列)t 横向跳格横向跳格(跳跳8格格)v 竖向跳格竖向跳格 f 走纸换页走纸换页 输出输出“”字符字符 单引号字符单引号字符ddd 1到到3位位8进制数所代表的进制数所代表的字符。如字符。如101,即为即为A.xhh 1到到2位位16进制所代表的进制所代表的字符字符以以“”开头的开头的字符字符1.4 C1.4 C语言的运算符语言的运算符和表达式和表达式 表表达达式式赋值表达式赋值表达式算术表达式算术表达式关系表达式关系表达式逻辑表达式逻辑表达式条件表达式条件表达式逗号表达式逗号表达式1.4.1 1.4.1 运算符和表达式概述运算符和表达式概述 表达式表达式运算符运算符变量变量/常量常量算术运算符算术运算符(+-+-*/%/%)逗号表达式逗号表达式(,)关系运算符关系运算符(=!=)逻辑运算符逻辑运算符(!&|!&|)位运算符位运算符 (|&|&)赋值运算符赋值运算符(=)条件运算符条件运算符(?:?:)指针运算符指针运算符(*&)求字节数运算符求字节数运算符(sizeofsizeof)强制类型转换运算符强制类型转换运算符(类型类型)运运算算符符1.4.2 赋值运算符和赋值表达式赋值运算符和赋值表达式 a=5;a=5;表达式值为表达式值为5 5a=b=c=5;a=b=c=5;a,b,ca,b,c均为均为5 5赋值的先后顺序为赋值的先后顺序为c c、b b、a aa=5+(c=6);a=5+(c=6);a a为为1111,c c为为6 6a=(b=4)+(c=6);a=(b=4)+(c=6);a a为为1010,b b为为4 4,c c为为6 6a=(b=10)/(c=2);a=(b=10)/(c=2);a a为为5 5,b b为为1010,c c为为2 2赋值运算符是右结合赋值运算符是右结合int t=5;t+=t-=t*t;t=?例:例:a+=3 a+=3 等价于等价于 a=a+3a=a+3 x x*=y+8=y+8 等价于等价于 x=xx=x*(y+8)(y+8)此格式不简此格式不简洁尽量少用洁尽量少用,理解不好,理解不好,易错,易错t=40C C语言中有语言中有1010种复合运算符:种复合运算符:+=,-=,+=,-=,*=,/=,%=,=,/=,%=,=,&=,=,|=(=,&=,=,|=(位运算位运算)1 1 基本算术运算符基本算术运算符 +、-、*、/和求模和求模(%)(%)2 2 自增自减运算符自增自减运算符 i+i+或或 +i(+i(相当于相当于i=i+1i=i+1;)i-i-或或 -i(-i(相当于相当于i=i-1i=i-1;)1.4.3 算术运算符及算术表达式算术运算符及算术表达式 egeg:i=3;j=i-;i=3;j=i-;或或 i=3;j=-i;i=3;j=-i;结果:结果:j=3,i=2j=3,i=2 i=2,j=2 i=2,j=2 自加问题容易出错的地方,要注意自加问题容易出错的地方,要注意n=(m+)+(m+)+(m+)n=(m+)+(m+)+(m+)先对先对m m进行相加,然后进行相加,然后m m三次自加三次自加q=(+p)+(+p)+(+p)q=(+p)+(+p)+(+p)先对先对p p进行三次自加,然后相加进行三次自加,然后相加s=q+p:s=q+p:即即s=(q+)+p,s=(q+)+p,q q运行后加运行后加1 1printf(“s=%ds=%ds=%dn”,s,s+,sprintf(“s=%ds=%ds=%dn”,s,s+,s););单目运算右结合性单目运算右结合性 =(=(大于或等大于或等于于)=(大于大于)(b)&(xy)(ab)&(xy)逻辑逻辑表达式表达式是用逻辑运算符把操作是用逻辑运算符把操作对象连起来所构成的运算式子,其对象连起来所构成的运算式子,其操作结果是操作结果是“真真(非零非零)”)”或或“假假(零零)”)”xy&ay)&(a=c+5=(x!=y)&(a=c+5)!x&a=c =(!x)&(a=c)(1)逗号运算符和逗号表达式)逗号运算符和逗号表达式 格式:格式:表达式表达式1 1,表达式表达式2 2 求解顺序及结果:求解顺序及结果:先求解先求解表达式表达式1 1,再求解,再求解表达式表达式2 2,最终结果为最终结果为表达式表达式2 2的值的值例:例:a=15,b=a*5,y=7,a+6;1.4.6 其他运算符其他运算符 结果为:结果为:21(2)(2)求字节数运算符求字节数运算符sizeof(doublesizeof(double)=8)=8float b10 float b10;sizeof(bsizeof(b)=40)=40sizeof(charsizeof(char)=1)=1通常参与运算的数据类型不一定完全一通常参与运算的数据类型不一定完全一致,操作时应先将其转换成相同的数据致,操作时应先将其转换成相同的数据类型,然后操作。类型,然后操作。1.5各种数据类型之间的混合运算各种数据类型之间的混合运算隐式隐式转换转换显式显式转换转换数据数据类型类型转换转换在编译时由编译在编译时由编译程序按照一定规程序按照一定规则自动完成,不则自动完成,不需人为干预需人为干预也称强制类型转也称强制类型转换,直接将某数换,直接将某数据强制转换成指据强制转换成指定的数据类型定的数据类型 int int i i;i=i+(int)9.801;i=i+(int)9.801;强制类型转换,强制类型转换,变量值本身未变化变量值本身未变化如:如:(double)a(double)a;(int)(x+y(int)(x+y);(float)(5%3)(float)(5%3)(int)x+y(int)x+y:先把先把x x的值的值转换成转换成intint型,然后型,然后再加再加y y。注意区别。注意区别数据参加运算前要进行下列转换:数据参加运算前要进行下列转换:char,shortint,floatdoublechar,shortint,floatdouble混合运算时数据类型由低级混合运算时数据类型由低级高级高级intint unsigned long double unsigned long double低低 高高注意:上图并不意味着注意:上图并不意味着intint必须到必须到unsignedunsigned再到再到longlong的依次转换,而的依次转换,而是由算式中的最高级进行转换的。是由算式中的最高级进行转换的。例:例:intint i;float f;double d;long e;i;float f;double d;long e;38+e +i 38+e +i*f e/df e/d 的运算的运算次序次序38+10138+101转换为转换为doubledouble再相乘再相乘 最后结果最后结果为为doubledouble转换为转换为doubledouble再相除再相除例:例:intint i i20;float f20;float f1.1;1.1;double d double d2;long e2;long e30;30;38+e +i 38+e +i*f e/df e/d 的运算的运算结果结果38+10138+101转换为转换为doubledouble再相乘再相乘 最后结果最后结果为为146146转换为转换为doubledouble再相除再相除
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 工作计划


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!