第一章数据类型与表达式.ppt

上传人:本田雅阁 文档编号:3138007 上传时间:2019-07-16 格式:PPT 页数:57 大小:258.03KB
返回 下载 相关 举报
第一章数据类型与表达式.ppt_第1页
第1页 / 共57页
第一章数据类型与表达式.ppt_第2页
第2页 / 共57页
第一章数据类型与表达式.ppt_第3页
第3页 / 共57页
第一章数据类型与表达式.ppt_第4页
第4页 / 共57页
第一章数据类型与表达式.ppt_第5页
第5页 / 共57页
点击查看更多>>
资源描述

《第一章数据类型与表达式.ppt》由会员分享,可在线阅读,更多相关《第一章数据类型与表达式.ppt(57页珍藏版)》请在三一文库上搜索。

1、第一章 数据类型与表达式,青海大学计算机系 李鑫丽 (13897485706),本章内容,1.1 C程序简介 1.2 C语言的数据类型 1.3 常量与变量 1.4 C语言的运算符与表达式 1.5 各种数据类型之间的混合运算,1.1.1 C语言的特点与发展,1.1 C程序简介,清华大学 黄维通 设计制作,4,C语言的特点,1. 直接对存储器进行操作,进行位运算,实现汇编语言的大部分功能,因此,它既是系统描述语言,也是程序设计语言,2. 简洁、紧凑,而且具有结构化的特点,3.生成目标代码质量高,程序执行效率高,移植性好,4.尤其是目前的OOP提高了C的优越性,5.用函数作为程序模块,以实现程序的模

2、块化,C语言的发展,70年代初,贝尔lab为描述和实现UNIX而设计,1973,90%以上UNIX内容用C改写,即UNIX5,UNIX6和OOP技术的出现,C的突出优点引起普遍关注,1975,1983,ANSI成立了定义C标准委员会,用6年时间使C标准化,1989,ANSI C标准被采用,定义为C89,修订C,出现了初步的C+,C89成了C+的子集,1995,推出了C99,1999,1.1.2 C程序的组成,C程序是由函数构成的; 一个函数包括函数的首部(即函数的第一行)和函数体(即花括号部分); 函数体一般包括声明部分和执行部分; 一个C程序总是从main函数开始执行,从main函数结束;,

3、C程序书写格式自由,一行内可以写几个语句,一个语句可以分写在多行上; 每个语句和数据定义的最后必须有一个分号; C语言本身没有输入输出语句,是通过函数实现输入输出的; 可以用/*/对C程序的任何部分作注释,还可以用/进行注释,(/*/可以把注释写到一行中,而/只能在同一行进行注释),1.1.3 C语言程序的编译和执行,编辑源程序编译连接运行,后缀为.cpp或.c .obj .exe,Open F3,#include “stdiuo.h” Void main() printf(“Hello World!”); ,Save as,1.1.4 一个简单程序,【例】显示字符串“Hello World

4、!”,#include main() printf(“Hello World !n“); ,1.1.5 C程序的基本标识符,字符集 英文字母 az,AZ 阿拉伯数字 0 9 + - * / % = ( ) _ . : ? “ | ! # 空格 ,2 标识符,主要用来表示常量、变量、函数和类型等的名字,不要死记硬背,自然就会,几类标识符,1)保留字:拥有特定含义的标识符; C语言不允许用户把保留字当成变量名使用; C 语言的保留字都用小写英文字母表示。 eg:do 、while、int、 float、for、void、main、if、short,2)预定义标识符:它们被用作库函数名和预编译命令,

5、这些标识符被称为预定义标识符。 eg:define undef include ifdef endif line ifndef,3) 用户定义标识符; 用户定义标识符由英文字母、数字、下划线构成; 其中开头字母必须是:字母或下划线。,非法用户定义标识符举例: 2r、%h、$ABC、e2.2e5、,1.2 C语言的数据类型,1.3 常量与变量,1.3.1 常量,【例】求圆柱体体积,#include “stdio.h“ #define PI 3.1415926 main() float v,r,h=2.5; scanf(“%f“, ,eg: #define PI 3.1415926 #define

6、 qian 1000 #define xiaoming A #define A lixinli #define fenhao ;,1.3.2 数据类型及变量,类型标识符 名 字 取值范围 char 字符型 ASCII字符代码 unsigned char 无符号字符型 0至255 signed char 有符号字符型 -27 27-1 int 整型 -215 215-1 unsigned int 无符号整型 0 216-1 singned int 有符号整型 同int float 浮点 10-381038 double 双精度型 10-30810308,基本数据类型,清华大学 黄维通 设计制作,

7、32,变量及变量的定义,#include void main() float m,n; m = 1.11; m = 2*m; n = m+2.2; printf(”%f%f”,m,n); ,变量名,变量名: 以字母或下划线开头,由数字、字母、下划线构成。最多8个字符,使用变量前要定义其存储类型,变量准则: 如 SUM, A1, A2, _Xn,等均合法,但a-b , c-d , $888, #555, 3x56, ab 等均为非法变量,变量区分大小写,如a与A意义是不一样的,变量超过8位的不识别,如student_AAA与student_BBB是一样的(对16位系统),char c1,c2;

8、/* 定义字符型变量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

9、 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( ) char c1,c2; c1=97; c2=98; printf(“ %c%c”,c1,c2); ,或: c1=a; c2=b;,字符串常量 例:“CHINA“ “a“ a 所以: char c; c=“a“;,a 是字符常量 “a” 是字符串常量,a,转义字符的定义,n 换行 b 退格 a 响铃 r 回车

10、(不换行,回本行首列) t 横向跳格 (跳8格) v 竖向跳格 f 走纸换页 输出“”字符 单引号字符 ddd 1到3位8进制数所代表的字符。如101,即为A. xhh 1到2位16进制所代表的字符,以“”开头的字符,1.4 C语言的运算符和表达式,表达式,赋值表达式 算术表达式 关系表达式 逻辑表达式 条件表达式 逗号表达式,1.4.1 运算符和表达式概述,表达式 运算符变量/常量,算术运算符(+ - * / %) 逗号表达式( , ) 关系运算符( = | &) 赋值运算符( = ) 条件运算符( ? : ) 指针运算符( * & ) 求字节数运算符( sizeof ) 强制类型转换运算符

11、(类型),运算符,1.4.2 赋值运算符和赋值表达式,a=5; 表达式值为5 a=b=c=5; a,b,c均为5 赋值的先后顺序为c、b、a a=5+(c=6); a为11,c为6 a=(b=4)+(c=6); a为10,b为4,c为6 a=(b=10)/(c=2); a为5,b为10,c为2,赋值运算符是右结合,int t=5; t+=t-=t*t; t=?,例:a+=3 等价于 a=a+3 x*=y+8 等价于 x=x*(y+8),此格式不简洁尽量少用,理解不好,易错,t=40,C语言中有10种复合运算符: +=, -=, *=, /=, %=, =,&=,=,|= (位运算),1 基本算

12、术运算符 +、-、*、/和求模(%),2 自增自减运算符 i+ 或 +i (相当于i=i+1;) i- 或 -i (相当于i=i-1;),1.4.3 算术运算符及算术表达式,eg: i=3;j=i-; 或 i=3;j=-i;,结果:j=3,i=2 i=2,j=2,自加问题容易出错的地方,要注意,n=(m+)+(m+)+(m+) 先对m进行相加,然后m三次自加 q=(+p)+(+p)+(+p) 先对p进行三次自加,然后相加 s=q+p: 即s=(q+)+p, q运行后加1 printf(“s=%ds=%ds=%dn”,s,s+,s); 单目运算右结合性,= (大于或等于) (大于) (小于),1

13、.4.4 关系运算符和关系表达式,主要用于比较,逻辑运算符是对逻辑量进行操作的运算符。结果只有“真”和“假”,它们分别用“1”和“0”表示。,1.4.5 逻辑运算符和逻辑表达式,逻辑运算符:!(非) &(与) |(或) 优先次序: 高 低 逻辑表达式,例如:(ab)&(xy),逻辑表达式是用逻辑运算符把操作对象连起来所构成的运算式子,其操作结果是“真(非零)”或“假(零)”,xy&ay)&(a=c+5 =(x!=y)&(a=c+5) !x & a=c =(!x)&(a=c),(1)逗号运算符和逗号表达式 格式:表达式1,表达式2 求解顺序及结果: 先求解表达式1,再求解表达式2 ,最终结果为表

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

15、(int)(x+y); (float)(5%3),(int)x+y:先把x的值 转换成int型,然后 再加y。注意区别,数据参加运算前要进行下列转换: char,shortint,floatdouble 混合运算时数据类型由低级高级 int unsigned long double 低 高,注意:上图并不意味着int必须到unsigned再到long的依次转换,而是由算式中的最高级进行转换的。,例:int i; float f; double d; long e; 38+e + i*f e/d 的运算次序,38+101,转换为double 再相乘,最后结果 为double,转换为double 再相除,例:int i20; float f1.1; double d2; long e30; 38+e + i*f e/d 的运算结果,38+101,转换为double 再相乘,最后结果 为146,转换为double 再相除,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1