




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第一章第一章 数据类型与表达式数据类型与表达式青海大学计算机系青海大学计算机系 李鑫丽李鑫丽(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、作,进行位运算,实现汇编语言的大行位运算,实现汇编语言的大部分功能,因此,它既是系统部分功能,因此,它既是系统描述语言,也是程序设计语言描述语言,也是程序设计语言2. 简洁、紧凑,而且具有结构简洁、紧凑,而且具有结构化的特点化的特点3.3.生成目标代码质量高,程生成目标代码质量高,程序执行效率高,移植性好序执行效率高,移植性好4.4.尤其是目前的尤其是目前的oopoop提高了提高了c c的的优越性优越性5.5.用函数作为程序模块用函数作为程序模块, ,以以实现程序的模块化实现程序的模块化c语言的发展语言的发展7070年代初年代初贝尔贝尔lablab为为描述和描述和实现实现unixunix而而设
3、计设计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推出推出了了c99c991999199
4、91.1.2 c程序的组成程序的组成c程序是由函数构成的;程序是由函数构成的;一个函数包括函数的首部(即函数的一个函数包括函数的首部(即函数的第一行)和函数体(即花括号部分);第一行)和函数体(即花括号部分);函数体一般包括声明部分和执行部分;函数体一般包括声明部分和执行部分;一个一个c程序总是从程序总是从main函数开始执行,函数开始执行,从从main函数结束;函数结束;c程序书写格式自由,一行内可以写程序书写格式自由,一行内可以写几个语句,一个语句可以分写在多行几个语句,一个语句可以分写在多行上;上;每个语句和数据定义的最后必须有一每个语句和数据定义的最后必须有一个分号;个分号;c语言本身
5、没有输入输出语句,是通语言本身没有输入输出语句,是通过函数实现输入输出的;过函数实现输入输出的;可以用可以用/*/对对c程序的任何部分作程序的任何部分作注释,还可以用注释,还可以用/进行注释,(进行注释,(/*/可以把注释写到一行中,而可以把注释写到一行中,而/只能在同只能在同一行进行注释)一行进行注释)c语言程序的编译和执行语言程序的编译和执行 编辑编辑源程序源程序编译编译连接连接运行运行后缀为后缀为.cpp或或.c .obj .exeopen f3open f3#include “stdiuo.h”void main() printf(“hello world!”); save ascan
6、celhelpoksave 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 ov
7、er 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 标识符标识符 主要用来表示常量、变量、函主要用来表示常量、变量、函数和类型等的名字数和类型等的名字 不要死记硬背,不要死记硬背
8、,自然就会自然就会几类标识符几类标识符1)保留字:拥有特定含义的标识符;)保留字:拥有特定含义的标识符; c语言不允许用户把保留字当成变量名使用;语言不允许用户把保留字当成变量名使用; c 语言的保留字都用小写英文字母表示。语言的保留字都用小写英文字母表示。 eg:do 、while、int、 float、for、void、main、if、short2)预定义标识符:它们被用作库函数名和预)预定义标识符:它们被用作库函数名和预编译命令,这些标识符被称为预定义标识编译命令,这些标识符被称为预定义标识符。符。 eg:define undef include ifdef endif line ifn
9、def3) 用户定义标识符;用户定义标识符; 用户定义标识符由英文字母、数字、下划用户定义标识符由英文字母、数字、下划线构成;线构成; 其中开头字母必须是:字母或下划线。其中开头字母必须是:字母或下划线。非法用户定义标识符举例:非法用户定义标识符举例:2r、%h、$abc、e2.2e5、1.2 c1.2 c语言的数据类型语言的数据类型基 本基 本数 据数 据类型类型字符型字符型数值型数值型空类型空类型复 合复 合数 据数 据类型类型结构结构联合联合数组数组枚举枚举指针指针整型整型长整型长整型无符号长整型无符号长整型有符号长整型有符号长整型整整 型型无符号整型无符号整型有符号整型有符号整型短整形
10、短整形无符号短整型无符号短整型有符号短整型有符号短整型实型实型单精度实型单精度实型双精度实型双精度实型数数据据类类型型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=%f,v); p
11、rintf(volume=%f,v); 整型整型实型实型 字符型字符型 字符串字符串 符号符号 常常量量类类型型 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 基本数据类型基本数据类型清
13、华大学 黄维通 设计制作32变量及变量的定义变量及变量的定义 #include #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个字符个字符使用变量前要定义其存储类型使用变量前要定义其存储类型变量准则:变量准
14、则:如如 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 */ f
15、loat sum,average;/ 定义实型变量定义实型变量sum和和average unsigned long distance;/ 定义无符号长整型变量定义无符号长整型变量distance变量的初始化变量的初始化 给变量赋初值的过程称为变量给变量赋初值的过程称为变量的初始化的初始化。变量所标识的内存单。变量所标识的内存单元可能保留先前使用该单元时留元可能保留先前使用该单元时留下的内容而产生莫名其妙的下的内容而产生莫名其妙的结果结果未赋初值的变量并不意味着该变未赋初值的变量并不意味着该变量中没有数值,而只表明该变量量中没有数值,而只表明该变量中尚未定义特定的值中尚未定义特定的值#inclu
16、de “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(“ %c%c”,c1,c2); printf(“ %c%c”
17、,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.xh
18、h 1到到2位位16进制所代表的进制所代表的字符字符以以“”开头的开头的字符字符1.4 c1.4 c语言的运算符语言的运算符和表达式和表达式 表表达达式式赋值表达式赋值表达式算术表达式算术表达式关系表达式关系表达式逻辑表达式逻辑表达式条件表达式条件表达式逗号表达式逗号表达式1.4.1 1.4.1 运算符和表达式概述运算符和表达式概述 表达式表达式运算符运算符变量变量/ /常量常量算术运算符算术运算符( (+ - + - * * / % / %) )逗号表达式逗号表达式( ( , , ) )关系运算符关系运算符( ( = = = ! =) )逻辑运算符逻辑运算符( ( ! & |! & | )
19、)位运算符位运算符 ( ( | &| &) )赋值运算符赋值运算符( ( = = ) )条件运算符条件运算符( ( ? :? : ) )指针运算符指针运算符( ( * * & & ) )求字节数运算符求字节数运算符( ( 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
20、为为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种复
21、合运算符:种复合运算符:+=, -=, +=, -=, * *=, /=, %=,=, /=, %=,=,&=,=,|= (=,&=,=,|= (位运算位运算) )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;结
22、果:结果: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+,s); printf(“s=%ds=%ds=%dn”,s,s+,
23、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 求解顺序及结果:求解顺序及结果:先求解先求解
24、表达式表达式1 1,再求解,再求解表达式表达式2 2 ,最终结果为最终结果为表达式表达式2 2的值的值例:例:a=15,b=a*5,y=7,a+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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年股骨颈骨折医师考试题及答案
- 2025年客运驾驶员安全教育试题及答案
- 2025年幼儿园教师业务考试试题及答案
- 罐头食品加工工专业技能考核试卷及答案
- 木模板工职业考核试卷及答案
- 数据库期末考试试题及答案
- 高压电工考试题及答案
- 商业地产开发策划方案
- 设计概论模拟试题及答案
- 2025年建筑经济与管理行业综合素质测试卷及答案
- 2025年秋季开学全体教职工大会校长讲话:35分钟会议把所有老师骂醒了
- 2025高级工程师聘用合同
- 输变电工程建设现行主要质量管理制度、施工与验收质量标准目录-2026年2月版-
- 1.3 植物与阳光(教学课件)科学青岛版二年级上册(新教材)
- 3.2《参与民主生活 》- 课件 2025-2026学年度道德与法治九年级上册 统编版
- ASTM-D3359-(附著力测试标准)-中文版
- 苏科版三年级上册劳动第四课《橡皮泥塑》课件(定稿)
- 法理学-(第五版)完整版ppt全套教学教程课件(最新)
- 《峨日朵雪峰之侧》教案
- 火灾自动报警系统PPT课件
- 高压氧质控标准
评论
0/150
提交评论