第一章数据类型与表达式ppt课件_第1页
第一章数据类型与表达式ppt课件_第2页
第一章数据类型与表达式ppt课件_第3页
第一章数据类型与表达式ppt课件_第4页
第一章数据类型与表达式ppt课件_第5页
已阅读5页,还剩52页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第一章第一章 数据类型与表达式数据类型与表达式青海大学计算机系青海大学计算机系 李鑫丽李鑫丽9748570697485706本章内容本章内容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程序简介程序简介 C言语的特点言语的特点1. 直接对存储器进展操作,进直接对存储器进展操作,进展位运算,实现汇编言语的大展位运算,实

2、现汇编言语的大部分功能,因此,它既是系统部分功能,因此,它既是系统描画言语,也是程序设计言语描画言语,也是程序设计言语2. 简约、紧凑,而且具有构造简约、紧凑,而且具有构造化的特点化的特点3.3.生成目的代码质量高,程生成目的代码质量高,程序执行效率高,移植性好序执行效率高,移植性好4.4.尤其是目前的尤其是目前的OOPOOP提高了提高了C C的的优越性优越性5.5.用函数作为程序模块用函数作为程序模块, ,以以实现程序的模块化实现程序的模块化C言语的开展言语的开展7070年代初年代初贝尔贝尔lablab为为描画和描画和实现实现UNIXUNIX而而设计设计1973197390%90%以上以上U

3、NIXUNIX内内容用容用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+的子集的子集20192019推出推出了了C99C99201920191.1.2 C程序的组成程序的组成C程序是

4、由函数构成的;程序是由函数构成的;一个函数包括函数的首部即函数的一个函数包括函数的首部即函数的第一行和函数体即花括号部分;第一行和函数体即花括号部分;函数体普通包括声明部分和执行部分;函数体普通包括声明部分和执行部分;一个一个C程序总是从程序总是从main函数开场执行,函数开场执行,从从main函数终了;函数终了;C程序书写格式自在,一行内可以写程序书写格式自在,一行内可以写几个语句,一个语句可以分写在多行几个语句,一个语句可以分写在多行上;上;每个语句和数据定义的最后必需有一每个语句和数据定义的最后必需有一个分号;个分号;C言语本身没有输入输出语句,是经言语本身没有输入输出语句,是经过函数实

5、现输入输出的;过函数实现输入输出的;可以用可以用/*/对对C程序的任何部分作程序的任何部分作注释,还可以用注释,还可以用/进展注释,进展注释,/*/可以把注释写到一行中,而可以把注释写到一行中,而/只能在同只能在同一行进展注释一行进展注释编辑源程序编辑源程序编译编译衔接衔接运转运转后缀为后缀为.cpp或或.c .obj .exeOpen F3Open F3#include “stdiuo.hVoid main() printf(“Hello World!); Save asCancelHelpOkSave file asMy_file.cppCompileCompile Alt+F9Compi

6、le 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 一个简单程序一个简单程序 【例】显

7、示字符串【例】显示字符串“Hello World ! #include main() printf(Hello World !n); 1.1.5 C1.1.5 C程序的根本标识符程序的根本标识符 字符集字符集 英文字母英文字母 az,AZ 阿拉伯数字阿拉伯数字 0 9 + - * / % = ( ) _ . : ? & ; “ | ! # 空格空格 2 标识符标识符 主要用来表示常量、变量、函主要用来表示常量、变量、函数和类型等的名字数和类型等的名字 不要死记硬背,不要死记硬背,自然就会自然就会几类标识符几类标识符1保管字:拥有特定含义的标识符;保管字:拥有特定含义的标识符;C言语不允

8、许用户把保管字当成变量名运用;言语不允许用户把保管字当成变量名运用;C 言语的保管字都用小写英文字母表示。言语的保管字都用小写英文字母表示。 eg:do 、while、int、 float、for、void、main、if、short2预定义标识符:它们被用作库函数名和预预定义标识符:它们被用作库函数名和预编译命令,这些标识符被称为预定义标识编译命令,这些标识符被称为预定义标识符。符。 eg:define undef include ifdef endif line ifndef3) 用户定义标识符;用户定义标识符;用户定义标识符由英文字母、数字、下划线用户定义标识符由英文字母、数字、下划线构

9、成;构成;其中开头字母必需是:字母或下划线。其中开头字母必需是:字母或下划线。非法用户定义标识符举例:非法用户定义标识符举例:2r、%h、$ABC、e2.2e5、1.2 C1.2 C言语的数据类型言语的数据类型根 本根 本数 据数 据类型类型字符型字符型数值型数值型空类型空类型复 合复 合数 据数 据类型类型构造构造结合结合数组数组枚举枚举指针指针整型整型长整型长整型无符号长整型无符号长整型有符号长整型有符号长整型整整 型型无符号整型无符号整型有符号整型有符号整型短整形短整形无符号短整型无符号短整型有符号短整型有符号短整型实型实型单精度实型单精度实型双精度实型双精度实型数数据据类类型型1.3

10、常量与变量常量与变量 1.3.1 常量常量 【例】求圆柱体体积【例】求圆柱体体积#include stdio.h#include stdio.h#define PI 3.1415926#define PI 3.1415926main()main()float v,r,h=2.5;float v,r,h=2.5; scanf(%f,&r); scanf(%f,&r); v=PI v=PI* *r r* *r r* *h;h; printf(Volume=%f,v); printf(Volume=%f,v); 整型整型实型实型 字符型字符型 字符串字符串 符号符号 常常量量类类型型

11、 eg: #define PI 3.1415926 #define qian 1000 #define xiaoming A #define A lixinli #define fenhao ;1.3.2 数据类型及变量数据类型及变量 根 本根 本数 据数 据类型类型字符型字符型数值型数值型空类型空类型复 合复 合数 据数 据类型类型构造构造结合结合数组数组枚举枚举指针指针整型整型长整型长整型无符号长整型无符号长整型有符号长整型有符号长整型整整 型型无符号整型无符号整型有符号整型有符号整型短整形短整形无符号短整型无符号短整型有符号短整型有符号短整型实型实型单精度实型单精度实型双精度实型双精度实

12、型数数据据类类型型类型标识符类型标识符名名 字字取值范围取值范围char字符型字符型ASCII字符代码字符代码unsigned char 无符号字符型无符号字符型 0至至255signed char有符号字符型有符号字符型 -27 27-1int整型整型-215 215-1unsigned int无符号整型无符号整型0 216-1singned int有符号整型有符号整型同同intfloat浮点浮点10-381038double双精度型双精度型10-30810308 根本数据类型根本数据类型变量及变量的定义变量及变量的定义 #include #include void main()void m

13、ain() float m,n float m,n; m = 1.11m = 1.11; m = 2m = 2* *m m; n = m+2.2n = m+2.2; printf(printf(%f%f%f%f,m,n);,m,n); 变量名变量名变量名:变量名:以字母或以字母或下划线开下划线开头,由数头,由数字、字母字、字母、下划线、下划线构成。最构成。最多多8 8个字符个字符运用变量前要定义其存储类型运用变量前要定义其存储类型变量准那么:变量准那么:如如 SUM, A1, A2, _Xn,等均合法等均合法 但但a-b , c-d , $888, #555, 3x56, ab 等均为非法变量

14、等均为非法变量 变量区分大小写,如变量区分大小写,如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;/ 定义无符

15、号长整型变量定义无符号长整型变量distance变量的初始化变量的初始化 给变量赋初值的过程称为变量给变量赋初值的过程称为变量的初始化。变量所标识的内存单的初始化。变量所标识的内存单元能够保管先前运用该单元时留元能够保管先前运用该单元时留下的内容而产生莫名其妙的结果下的内容而产生莫名其妙的结果未赋初值的变量并不意味着该变未赋初值的变量并不意味着该变量中没有数值,而只阐明该变量量中没有数值,而只阐明该变量中尚未定义特定的值中尚未定义特定的值#include “stdio.hmain()double p=15.5,d=0.1; float x,y,z=4.53; short int i=j=k=5

16、55; 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 %c%c,c1,c2);,c1,c2); 或:或:c1=c1=a;a;c2=c2=b;b; 字符串常量字符串常量 例例:CHINA a a 所以:所以: char c; c=a

17、;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言语的运算符言语的运算符和表达式和表达式 表表达达式

18、式赋值表达式赋值表达式算术表达式算术表达式关系表达式关系表达式逻辑表达式逻辑表达式条件表达式条件表达式逗号表达式逗号表达式1.4.1 1.4.1 运算符和表达式概述运算符和表达式概述 表达式表达式运算符运算符变量变量/ /常量常量算术运算符算术运算符(+ - (+ - * * / %) / %)逗号表达式逗号表达式( , )( , )关系运算符关系运算符( = = = ! =)=)逻辑运算符逻辑运算符( ! & | )( ! & | )位运算符位运算符 ( ( | &) | &)赋值运算符赋值运算符( = )( = )条件运算符条件运算符( ? : )( ? :

19、 )指针运算符指针运算符( ( * * & ) & )求字节数运算符求字节数运算符( sizeof )( sizeof )强迫类型转换运算符强迫类型转换运算符( (类型类型) )运运算算符符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

20、为为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+3 a=a+3 x x* *=y+8 =y+8 等价于等价于 x=x x=x* *(y+8)(y+8)此格式不简此格式不简约尽量少用约尽量少用,了解不好,了解不好,易错,易错t=40C C言语中有言语中有1010种复合运算符:种复合运算符:+=, -=, +=, -=, * *=, /=, %=,=, /=, %=,=,&am

21、p;=,=,|= (=,&=,=,|= (位运算位运算) )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 算术运算符及算术表达式算术运算符及算术表达式 eg:eg: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 自加问题容易出错的

22、地方,要留意自加问题容易出错的地方,要留意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(printf(“s=%ds=%ds=%dns=%ds=%ds=%dn,s,s+,s); ,s,s+,s); 单目运算右结合性单目运算右结合性 = ( = (大于或等大于或等于于) ) = ( (

23、(大于大于) ) ( b)&(xy)(ab)&(xy)逻辑表达式是用逻辑运算符把操作逻辑表达式是用逻辑运算符把操作对象连起来所构成的运算式子,其对象连起来所构成的运算式子,其操作结果是操作结果是“真真( (非零非零) )或或“假假( (零零) ) xy&ay)&(a=c+5 =(x!=y)&(a=c+5) !x & a=c =(!x)&(a=c)1 1逗号运算符和逗号表达式逗号运算符和逗号表达式 格式:表达式格式:表达式1 1,表达式,表达式2 2 求解顺序及结果:求解顺序及结果:先求解表达式先求解表达式1 1,再求解表达式,再求解表达式

24、2 2 ,最终,最终结果为表达式结果为表达式2 2的值的值例:例:a=15a=15,b=ab=a* *5 5,y=7y=7,a+6a+6; 1.4.6 其他运算符其他运算符 结果为:结果为:21(2)(2)求字节数运算符求字节数运算符sizeof(double)=8sizeof(double)=8float b10 float b10 ; sizeof(b)=40sizeof(b)=40sizeof(char)=1sizeof(char)=1通常参与运算的数据类型不一定完全一通常参与运算的数据类型不一定完全一致,操作时应先将其转换成一样的数据致,操作时应先将其转换成一样的数据类型,然后操作。类型,然后操作。1.5各种数据类型之间的混合运算各种数据类型之间的混合运算隐式隐式转换转换显式显式转换转换数据数据类型类型转换转换在编译时由编译在编译时由编译程序按照一定规程序按照一定规那么自动完成,那么自动完成,不需人为干涉不需人为干涉也称强迫类型转也称强迫类型转换,直接将某数换,直接将某数据强迫转换成指据强迫转换成指定的数据类型定的数据类型 int i int i; i=i+(int)9.801; i=i+(int)9.801;强迫类型转换,变量值

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论