第1,2章 C语言.ppt_第1页
第1,2章 C语言.ppt_第2页
第1,2章 C语言.ppt_第3页
第1,2章 C语言.ppt_第4页
第1,2章 C语言.ppt_第5页
已阅读5页,还剩61页未读 继续免费阅读

下载本文档

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

文档简介

1、2020/8/6,1,C语言程序设计 刘政宇,2020/8/6,2,第1章 C语言概述, 1.1 C语言出现的历史背景和特点 1.2 简单的C语言程序介绍 1.3 程序开发周期 1.4 C程序的上机步骤,2020/8/6,3,1.1.1 C语言出现的历史背景,最初目的是用于编制操作系统。 汇编语言:可读性和可移植性比较差。 历程: ALGOL 60:离硬件较远不宜编写系统程序。 CPL:规模较大,不宜实现。 BCPL:简化的CPL语言。 B:简单且接近硬件,但过于简单,功能有限 C:精练,接近硬件,功能强大。 Microsoft C、 Quick C、Borland Turbo C等版本。 各

2、版本都遵循ANSI C为标准。各有特色。,2020/8/6,4, 1.1.2 C语言的特点,1. 语言简洁、紧凑、使用方便、灵活 (32个关键字、9种控制语句) 2. 运算符丰富(34种运算符 ) 3. 数据结构丰富(标准类型、构成类型) 4. 具有结构化的控制语句。用函数作为程序模 块以实现程序的模块化。,2020/8/6,5,5.语法限制不太严格、程序设计自由度大。(限制与灵活是一对矛盾) 6.C语言可以直接访问物理地址。能实现汇编语言的大部分功能,可以直接对硬件进行操作。 7.目标代码质量高,程序执行效率高。 8.程序可移植性好。,2020/8/6,6,程序一: main() print

3、f(“Hello World! n”); 程序二: main() /*求两数之和*/ int a,b,sum; /*定义变量*/ a=123;b=456; sum=a+b; printf(“sum is %dn”,sum); , 1.2 简单的C语言程序介绍,2020/8/6,7,程序三: #include /*include称为文件包含命令。 */ #include /* 扩展名为.h的文件称为头文件。*/ main() double x,s;/*定义两个实数变量,以被后面程序使用。*/ printf(input number:n); /*显示提示信息。*/ scanf(%lf, /*显示程

4、序运算结果。*/ /*main函数结束。*/,2020/8/6,8,1. 每个C源程序可以由一个或多个函数组成。函数是C程序的基本单位。C是函数式的语言。 2. 一个函数由两部分组成: 函数首部: 函数的第一行。 函数名后必须有一对圆括号。 函数体 : 声明部分 执行部分 3. 一个C源程序不论由多少个文件组成,有且仅有一个main函数。总是以main函数开始执行,而不论main函数设置在什么位置。, 1.2.1 C源程序的结构特点,2020/8/6,9,4. 每一个语句和数据定义的最后必须以分号结尾。但预处理命令、函数头、和符号“”之后不能加分号。 5. 标识符、关键字之间必须至少加一个空格

5、 6. 源程序中可以有预处理命令,在最前面。 7. C语言本身没有输入、输出语句,而是用 库函数scanf、printf。 8. 可以用/*.*/对C程序做注解。,2020/8/6,10, 1.2.2 书写程序应遵循的规则,1. 一个说明或一个语句占一行。 2. 用“ ”括起的部分,通常表示了程序的某一个层次结构。“ ”应与该结构语句的第一个字母对齐,并独占一行。 3. 低一层次的语句或说明,可比高一层次的语句或说明缩进若干格后书写。,2020/8/6,11, 1.2.3 C语言词汇,1. 标识符:在程序中使用的变量名、函数名、标号等统称为标识符。 2. 关键字:是由语言规定的具有特定意义的字

6、符串,通常也称为保留字。 3. 运算符 4. 分隔符:在语言中采用的分隔符有逗号和空格两种。 5. 常量 6. 注释符:C 语言的注释符是以“/*”开头并以“*/”结尾的串。,2020/8/6,12, 1.3 程序开发周期,1. 创建源代码 2. 编译源代码 3. 连接以创建可执行文件 4. 结束开发周期,2020/8/6,13, 1.4 C程序的上机步骤,以Turbo C为例,学习C语言的上机过程。 大致过程: 编写程序 保存 编译 连接 执行 查看结果,出错,修改错误,2020/8/6,14,课后作业,教材10页 第一章习题 4、5、6。,2020/8/6,15, 2.1 C语言的数据类型

7、 2.2 标识符 2.3 常量 2.4 变量 2.5 变量赋初值 2.6 各种数值型数据间的混合运算 2.7 几种基本运算符及其表达式,第章 数据类型、运算符与表达式,2020/8/6,16,2.1 的数据类型,著名计算机科学家沃思(Nikiklaus Wirtb)提出: 数据结构算法程序 数据结构:描述数据的类型、组织形式 算法:描述对数据的操作步骤,2020/8/6,17,的数据类型,数据类型是指数据的内在表现形式(代码、存储、运算) 的数据类型如下:,2020/8/6,18,2.2 C语言的符号集,2020/8/6,19,标识符:用来标记常量、变量、函数及文 件名字的字符序列 标识符的构

8、成规则: 1. 以字母(大小写皆可)或下划线开头 2. 标识符长度各个系统不同,最好不要 超过8个字符 3. 尽量做到“见名知意”(用英文单词或缩写作标识符) x y3 122 ELSE X bad one 7x A_to_ B # No imax reinput,注意:区分大小写,sum与SUM是两个标识符,2020/8/6,20, 2.3 常量,常量:在程序运行过程中,其值不能被改变的量。 例如:45、4.5、-5、0、a,2020/8/6,21, 2.3.1 整型常量 十进制整数 如:123、-34、0 八进制整数 由07数字组成;最高位必须用0作引导符 如:0123、0456、0945

9、 (123)8=182+281+380=83 十六进制整数 由09、af(AF)组成;最高位必须用0 x(0X)作引导符 如:0 x123 、0X678 (123)16=1162+2161+3160=291,2020/8/6,22, 2.3.2 实型常量 表示方法: 1. 十进制小数形式 0.12 35.0 -34. .679 0.0 0. 小数点不能省略,也不能只有一个小数点 2. 指数形式: 123.456,科学计数法,1.23456102,C语言中表示方法,1.23456E2,2020/8/6,23,注意: 1. E(指数符号)不分大小写; 2. E前必须有数字,且后面指数为整数; 3.

10、 E后正号可不写,但负号必须写。 E5 1.3e-3 8e2.3 e 2.5e1.2,2020/8/6,24, 2.3.3 字符常量 1.用单引号括起的单个字符,占1个字节 例:q、A、$ 2.转义字符:特殊形式的字符常量,以反斜 线“”开头 (详见P17),2020/8/6,25,例: main( ) char c1=a,c2=b,c3=c; printf(“a%c b%ctc%ctabcn”,c1,c2,c3); 结果: aa bb cc abc,2020/8/6,26, 2.3.4 字符串常量 用双引号括起来的一系列有效字符 如:“china” 在内存中占6个字节:字符个数+0(字符串结

11、束标志) 注意:“a”与a比较,2020/8/6,27, 2.3.5 符号常量 用一个标识符代表的一个常量 定义格式: #define 标识符常量,2020/8/6,28,main( ) float r,c,s; scanf(“ %f ”, ,#define PI 3.14 main( ) float r,c,s; scanf(“ %f ”, ,例2-1求任意圆的周长和面积?,2020/8/6,29,注意: 1. 使用之前必须先定义; 2. 符号常量名用大写,变量用小写; 3.符号常量的值在其作用域内不能改变; 4. 凡是以“#”开头的都为预处理命令,不是语句,故后面无符号。,2020/8/6

12、,30,2.4 变量 其值可以改变的量。 定义格式 类型符 变量表列 例: float x; int r,sum;,2020/8/6,31,注意: 大写字母和小写字母被认为是 两个不同的变量 如:ab与AB代表不同变量 见名知意 先定义后使用 习惯上,变量名用小写,以区 别符号常量,2020/8/6,32,2.4.1 整型变量 1. 整型数据在内存中的存放形式 数据在内存中以二进制形式存放的 例: int i; i=10;,10,i,数据存放示意图,数据在内存中实际存放示意图,2020/8/6,33,2. 整型变量的分类 短整型:以short int 或short说明, 2字节。 如:shor

13、t s, sum 基本型(整型):以 int 说明, 2字节。 如:int i, sum 长整型:以 long int或long说明, 4字节。 如:long l, sum 无符号整型:用 unsigned int 或 unsigned 说明 无符号短整型:用 unsigned short 说明 无符号长整型:用 unsigned long 说明 如: unsigned int c, d;,2020/8/6,34,3.整型变量的定义格式 类型 变量表列 例:int a,b,c; float x,y; 例2-2:main() int a,b,c,d; unsigned u; a=6;b=-32;

14、u=5; c=a+u;d=b+u; printf(“%d,%dn”,c,d); ,11,-27,2020/8/6,35,4.整型数据的溢出 例2-3:main() int a,b; a=32767; b=a+1; printf(“a=%d,b=%dn”,a,b); ,32767,-32768,2020/8/6,36,1. 32767 转换成二进制 (32767)10=(111111111111111)2 int型占2个字节,16位,有符号型 b=a+1 溢出的部分看是谁的补码,就等于谁。 b=-32768,第1位为符号位,0为正数,1为负数。,2020/8/6,37, 2.4.2 实型变量 实

15、型变量分类 1)单精度 float 占4字节 10-371038 2)双精度 double 占8字节 10-30710308 注意: float型的有效位数为67位, double型的 有效位数为1516位, 所以要避免一个很大的 float型数与一个很小的数相加或相减,否则 会丢数。,2020/8/6,38,例2-4: main( ) float x; double y; x=12345677.77+2; y=12345677.77+2; pritnf(“x=%fn,y=%fn”,x,y); 结果:x=12345678.1250 y=12345679.7700,2020/8/6,39, 2.

16、4.3 字符变量 主要用来存放单个字符。 格式:char 变量名表列 如:char a,b; 例2-6:main( ) char c1,c2; c1=a;c2=b; c1=c1-32;c2=c2-32; printf(%c,%c,%d,%d”,c1,c2,c1,c2); 结果:A, B, 65, 66 字符型数据和整型数据是通用的。,2020/8/6,40, 2.5 变量赋初值 1. 先定义变量,后赋值 int a,b; a=123;b=456; 2. 定义变量,部分赋值 float a,b=0.5,c; 3. 定义变量赋初值同步 float a=0.1,b=0.5,c=4.3; 注:变量赋初

17、值时不允许连等 int a=b=c=4; ,int a,b,c; a=b=c=1;,2020/8/6,41,2.6混合运算 整型、实型(单、双精度)、字符型数据间可以混合运算,a+2*3.5+6.7*2合法 规则:不同类型先转换成同一类型,再进行计算,2020/8/6,42,2.7运算符和表达式, 2.7.1 C运算符简介 算术运算符:用于各类数值运算。包括加(+)、减(-)、乘(*)、除(/)、求余(或称模运算,%)、自增(+)、自减(-)共七种。 关系运算符:用于比较运算。包括大于()、小于(=)、小于等于()六种。,2020/8/6,43,赋值运算符:用于赋值运算,分为简单赋值(=)、复

18、合算术赋值(+=,-=,*=,/=,%=)和复合位运算赋值( a=(int)x+y; printf(“a=%fn”,a); 结果:a=7.500000,a=(int)(x+y);,a=8.000000,2020/8/6,47,四、自增、自减运算符 作用:使变量的值加1或减1 格式: + i(先将i的值加1,再使用i) i + (先使用i的值,i再加1) - - i (先将i的值减1,再使用i ) i - - (先使用i的值,i再减1) 说明:1.自增、自减运算符为单目运算符 2. 只能用于变量,不能用于常量 +x 5+ a- - 3.优先级别高于算术运算符,结合方向“自右向左” -i+ -(i

19、+),2020/8/6,48,例:若i=3; x=i+ x= i= x=+i x= i= x=i- - x= i= x=- -i x= i= x=-i+ x= i=,3,4,3,4,2,4,2,2,4,-3,2020/8/6,49,P41 12题 main( ) int i,j,m,n; i=8; j=10; m=+i; n=j+; printf(“i=%d,j=%d,m=%d,n=%d”,i,j,m,n); 结果:i=9,j=11,m=9,n=10,2020/8/6,50,习题: main() int i=0,j; j=i+; printf(“%d,%dn”,i,j); i=0; j=+i;

20、 printf(“%d,%dn”,i,j); ,2020/8/6,51, 2.7.3 赋值运算符和赋值表达式 一、 赋值运算符: 1. 作用:将表达式的值赋给变量 如:a=5; x=(a+b)/3; 2.赋值结果与类型转换 1) 2),注意:与数学中的等式不同,2020/8/6,52,例: 结果:5 23.000000,2020/8/6,53,二、复合的赋值运算符 在赋值符“=”之前加上其它运算符,构成 复合运算符 如:a+=3 等价于 a=a+3 x=y+8 等价于 x=x (y+8) 三、赋值表达式 由赋值运算符将一个变量和一个表达式连接起来的式子。 int a=b=c=3 a=b=c=3

21、,变量赋初值时不允许连等,赋值表达式允许连等,2020/8/6,54,计算过程: 1. 计算机赋值运算符右侧“表达式”的值 2. 将计算机结果赋给左侧的变量 3. 赋值表达式的值就是被赋值变量的值 练习:计算表达式运算后a的值 int a=12,n=5; 1. a+=a ( a=a+a=12+12=24 ) 2. a-=2 ( a=a-2=10 ) 3. a*=2+3 ( a=a*(2+3)=12*5=60 ) 4. a/=a+a ( a=a/(a+a)=12/24=0 ) 5. a%=(n%=2) ( a=a%(n%2)=12%(5%2)=12%1=0 ) 6.a+=a- =a*=a (a=a*a=244 a=a-a=0 a=a+a=0 ),2020/8/6,55, 2.7.4 关系运算符和表达式 关系运算:对两个量进行“比较运算” 一、关系运算符及优先级 优先级: 如: 注意:“=”与“=”的区别,2020/8/6,5

温馨提示

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

评论

0/150

提交评论