语言入门教程基础精选PPT_第1页
语言入门教程基础精选PPT_第2页
语言入门教程基础精选PPT_第3页
语言入门教程基础精选PPT_第4页
语言入门教程基础精选PPT_第5页
已阅读5页,还剩429页未读 继续免费阅读

下载本文档

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

文档简介

1、关于语言入门教程基础第一张,PPT共四百三十四页,创作于2022年6月第一章 计算机语言与C语言概述 1.1 计算机语言概念 计算机语言定义 计算机能够识别和接受的语言。 要使计算机按自己的意图工作,必须使用计算机所能接受、理解和执行的指令指挥计算机工作。第二张,PPT共四百三十四页,创作于2022年6月 计算机语言的种类 机器语言 低级语言 汇编语言 (面向计算机) BASIC 入门语言 F77 科学计算 高级语言 Foxpro 数据库管理 (面向问题 ) C 多用途 计算机语言第三张,PPT共四百三十四页,创作于2022年6月机器语言 最早问世,用二进制代码构成指令。 如: 100000

2、(+) 110000 (-) 用机器语言编程的缺点: 繁琐、不直观、不易调试。 如计算y=2x2+3x-1需要七八条指令。 移植性差。 依赖于计算机。 第四张,PPT共四百三十四页,创作于2022年6月汇编语言 用符号构成指令,如:MOV、ADD 用汇编语言编程: 相对直观,但仍繁琐,仍是面向计算机的语言。 汇编语言是计算机间接接受的语言第五张,PPT共四百三十四页,创作于2022年6月高级语言与低级语言相比,有根本性的区别: 是面向问题的语言。高级语言的一条指令(语句): y=2*x*x+3*x-1; 对应于:y=2x2+3x-1 y=sin(x); 对应于:y=sinx用高级语言编程:直观

3、、易懂、移植性好(不依赖于具体计算机)第六张,PPT共四百三十四页,创作于2022年6月上机运行高级语言程序需经过编译: 编译 执行 要上机完成一个计算问题,主要的任务就是用高级语言编写出相应的源程序。即至少要学会一种计算机语言。 高级语言源程序 机器指令目的程序结果编译程序第七张,PPT共四百三十四页,创作于2022年6月1.2 C语言的特点 集高级语言和低级语言的优点于一身: 能实现低级语言的大部分功能(如直接访问内存物理地址、进行位操作等)。 图形功能强。 运算符和数据结构丰富。 语法限制不太严格,程序设计自由度大。 生成目标代码质量高,程序执行效率高。 第八张,PPT共四百三十四页,创

4、作于2022年6月1.3 简单的C程序介绍 例1: main() 主函数说明 程序框架 printf(“abcdef”); 函数体 语句 程序的功能是输出字符串:abcdef 第九张,PPT共四百三十四页,创作于2022年6月例2:求两数之和。main() int a,b,c; a a=100; b=50; b c=a+b; c printf(“n c=%d”,c);程序运行结果:c=150 第十张,PPT共四百三十四页,创作于2022年6月例3:求两数中的最大值。 函数类型 函数名 形参main() int max (int x,int y) int a,b,c; int z; scanf(

5、“%d,%d”,&a,&b); if(xy) z=x; c=max(a,b); else z=y; printf(“nmax is:%d”,c); return(z); a x b y c z (两个函数组成)353555第十一张,PPT共四百三十四页,创作于2022年6月 总结上例可知:(1) C程序由函数构成。(2) 函数由两部分组成: 函数说明部分:函数名、函数类型、形参名、形参类型。 函数体:实现函数的具体操作;由语句构成。(3) 程序总是从main函数开始执行。(4) 书写格式自由。(5)语句必须有分号。 : 第十二张,PPT共四百三十四页,创作于2022年6月 第二章 算法 2.1

6、 算法的概念 要利用计算机处理问题,光学习语言的语法规则还不够,最重要的是要学会针对各类型的问题,拟定出有效的解题方法和步骤。解题方法和步骤就是算法。第十三张,PPT共四百三十四页,创作于2022年6月算法: 为了解决一个问题而采取的有限步骤。 计算机算法: 如何使计算机一步一步地工作的具体过程。 第十四张,PPT共四百三十四页,创作于2022年6月 利用计算机处理问题的步骤: 1)设计好算法算法设计; 2)用计算机语言实现算法程序设计。 算法必须是“有效”的。 算法设计还要充分考虑算法的好坏。 衡量算法好坏的主要标准: 程序简练。 执行速度快。 占空间少。 第十五张,PPT共四百三十四页,创

7、作于2022年6月例:考虑 的算法。算法:直接表达。直接用语句 s=1+2+3+4+5+6+7+8+9+10当项数较多时该算法不适用s=i110第十六张,PPT共四百三十四页,创作于2022年6月算法:迭代法(累加求和法) s=1+2+3+4+5+6+7+8+9+10 算法步骤: s i 使s=0 + 使i=1 累加器 记数器 s+is i+1i 若i10转,否则转 输出s01123364105该算法通用,是好算法第十七张,PPT共四百三十四页,创作于2022年6月2.2 算法的表示 算法需要有统一的表示方法 常用的表示方法有: 自然语言 流程图 结构化流程图 N-S流程图. 第十八张,PPT

8、共四百三十四页,创作于2022年6月1、自然语言 对于计算 s=1+2+3+4+5+6+7+8+9+10 用自然语言表示为: 使s=0 (s为累加器) 使i=1 (i为计数器) s+is (累加求和公式) i+1i (计数器加1) 若i10转,否则转 输出s的值 特点:通俗易懂、文字冗长、含义不大严格。 第十九张,PPT共四百三十四页,创作于2022年6月2、流程图 用流程图符号表示算法。 常用的流程图符号 起止框 输入输出框 处理框 流程线 判断框 第二十张,PPT共四百三十四页,创作于2022年6月 对于计算 s=1+2+3+4+5+6+7+8+9+10 用流程图表示为:s+i s i+1

9、 i S+i s S+i s i10 输出s 0 s 1 i 直观形象,易于理解,次序清楚YN第二十一张,PPT共四百三十四页,创作于2022年6月3、结构化流程图 传统的流程图有一个弊端:对流程线没有严格的限制,对于较复杂的算法可能会变成乱麻一般(BS型算法)。 为克服这一弊端,提出了由三个基本结构组成算法流程图的思想: 结构化流程图 第二十二张,PPT共四百三十四页,创作于2022年6月 三个基本结构:顺序结构 按固定顺序(从上到下或从左到右)执行的结构。 ABab第二十三张,PPT共四百三十四页,创作于2022年6月选择结构 根据条件P选择执行哪一个分支。 成立 不成立 pABab成立不

10、成立第二十四张,PPT共四百三十四页,创作于2022年6月例:计算 y= 1/x 当x0时 y= 10000 当x=0时 的算法流程图图: 选择结构 输入x X=0? 10000y 1/xy 输出y YN第二十五张,PPT共四百三十四页,创作于2022年6月 循环结构 重复执行某些操作的结构。 分为两种: 当型循环和直到型循环。 当型循环 直到型循环 P1AAP2aabbYYNN第二十六张,PPT共四百三十四页,创作于2022年6月 可以看出,每个基本结构都只有一个入口和一个出口,因此,用三个基本结构构成的流程图不会象乱麻一般,用三个基本结构构成的流程图就成为结构化流程图,用结构化流程图描述的

11、算法称为结构化算法,相应的程序设计就称为结构化程序设计。 第二十七张,PPT共四百三十四页,创作于2022年6月观察前例: 0 s 1 i S+i s i+1 i i10 输出s 顺序结构循环结构yn第二十八张,PPT共四百三十四页,创作于2022年6月4 N-S流程图N-S流程图的三个基本结构: ABP成立不成立ABAB当P1直到P2顺序结构选择结构循环结构第二十九张,PPT共四百三十四页,创作于2022年6月例:计算 y= 1/x 当x0时 y= 10000 当x=0时 的N-S流程图:输入x X=0?是否10000y 1/xy 输出y 第三十张,PPT共四百三十四页,创作于2022年6月

12、 例: 计算 s=1+2+3+4+5+6+7+8+9+10 的N-S流程图: i10 直到i10 直到型 当型 0 s 1 i 输出s 1 i 0 s s+i s i+1 i s+i s i+1 i 输出s 第三十一张,PPT共四百三十四页,创作于2022年6月 第三章 数据类型、运算符 与 表达式 3.1 C 的数据类型基本类型 (整型、实型、字符型、枚举型)构造类型 (略)指针类型 (略) 空类型 各类型包含常量与变量第三十二张,PPT共四百三十四页,创作于2022年6月 3.2 常量与变量 常量与符号常量 常量 在程序运行过程中其值保持不变的量。 符号常量 用来代表一个常量的标识符。 #

13、define PI 3.1415926第三十三张,PPT共四百三十四页,创作于2022年6月 例: #define PI 3.1415926 main() float r=2,c; c=2*PI*r; printf(“%f”,c); 第三十四张,PPT共四百三十四页,创作于2022年6月 变量 其值可以改变的量。 变量的三要素: 变量名每个变量有一个名字,作为识别该变量的标识符。 变量的值 每个变量有一个值,变量的值是随时可以改变的。第三十五张,PPT共四百三十四页,创作于2022年6月 变量的存储单元 每个变量占据一个内存单元,用于存放变量的值。 变量名 a 变量值 存储单元3第三十六张,P

14、PT共四百三十四页,创作于2022年6月 变量的命名规则: 由字母、数字和下划线组成 以字母或下划线开头 a、x1、y_2、_b1、_1c 合法 1x、a+2、 不合法 变量必须先定义后使用。 程序中何时使用常量?何时使用变量?第三十七张,PPT共四百三十四页,创作于2022年6月 3.3 整型数据 整型常量 即整常数,c的整常数有三种形式: 十进制整数 与数学中的整数一致,如:100,123,15等。 八进制整数 以0开头的整数,如:010,07,020等。 十六进制整数 以0 x开头的整数,如:0 x10,0 xff,0 x2a等。第三十八张,PPT共四百三十四页,创作于2022年6月 整

15、型变量 用于存放整数的变量。 分4种类型: 基本型:int a 16位,可表示的数值范围:-3276832767 短整型:short int b 16位,可表示的数值范围:-3276832767 长整型:long int c 32位,数值范围:-21474836482147483647第三十九张,PPT共四百三十四页,创作于2022年6月 无符号型:加上 unsigned 只存放正数。 如:unsigned int x 变量x为无符号整数,16位全表示数码, 数值范围:065535 在程序设计中,如果要使用整型变量,必须首先选择以上类型符来定义变量,然后才能使用; 第四十张,PPT共四百三十四

16、页,创作于2022年6月 例: main() 定义 int a,b,c; a=100; b=50; 使用 c=a+b; printf(“%d”,c); 一般根据什么原则选择变量的类型?第四十一张,PPT共四百三十四页,创作于2022年6月 3.4 实型数据 实型常量 可使用两种形式表示: 小数形式:如 1.23, 3.1415926 15.48 指数形式:如 1e-20 1.23e5 第四十二张,PPT共四百三十四页,创作于2022年6月 实型变量 用于存放实数的变量 分单精度和双精度两种: float a,b 定义a和b为单精度型变量 32位,7位有效数字,10-381038 double

17、x,y 定义x和y为双精度型变量 64位,15位有效数字,10-30810308第四十三张,PPT共四百三十四页,创作于2022年6月 例: main() float r,c; double r,c; r=5; c=2*3.1415926*r; printf(“%f”,c); 第四十四张,PPT共四百三十四页,创作于2022年6月 3.5 字符型数据 字符常量 用单引号括起来的一个字符。 a,x,*,1等 除此外,以开头的字符如n,t等 称为转义字符,祥见书表3.3第四十五张,PPT共四百三十四页,创作于2022年6月 字符型变量 用于存放字符的变量。 char c1,c2 定义c1和c2为字

18、符型变量 c1=a; c2=b; 字符赋值 字符型变量存放一个字符,占据一个字节第四十六张,PPT共四百三十四页,创作于2022年6月 字符型数据的存储形式 存放ASCII码 不是 而是 如字符a在内存中存放97,b 存放98。 与整数的存储形式一致,它们之间可以通用 一个字符数据既可以作字符用,也可以作整数用(取其ASCII代码)。 如:32+a相当于 32+97 若 int x; char c;则 x=a; c=97; x=97; c=a; 都允许 a97第四十七张,PPT共四百三十四页,创作于2022年6月 字符串常量 用双引号括起来的字符序列。 如:”abcde”,”china” ”a

19、”也属字符串。 注意”a”与a的区别。 对于: char c; c=”a”; 用法错误第四十八张,PPT共四百三十四页,创作于2022年6月 字符串中每个字符各占一个字节,并且在字符串结尾加上一个结束标记0 如:”china” 在内存中占6个字节。 c h i n a 0 C语言中专门的字符串变量,可用字符数组存放(以后介绍)。第四十九张,PPT共四百三十四页,创作于2022年6月 3.6 变量赋初值 在定义变量的同时给相应的变量赋初值。 如: int a=3; a float b=5.2; char c=a; int x=y=z=6; 效果: 在给变量分配内存单元的同时在相应的单 元中存放初

20、值。 3第五十张,PPT共四百三十四页,创作于2022年6月 3.7 各数值型数据间的混合运算 整型、实型、字符型数据间可以进行混合运算,如: 10-a*1.5 运算时,参加运算的两个数据如果类型不同,则首先将其类型转换成一致再运算,转换规则是: 将优先级低的类型转换到优先级高的类型第五十一张,PPT共四百三十四页,创作于2022年6月 数据类型的优先级: 高 double float long unsignde 低 int char第五十二张,PPT共四百三十四页,创作于2022年6月 3.8 算术运算符与算术表达式 基本的算术运算符 + - * / % 算术表达式 用算术运算符将运算对象连

21、接起来的式子 用于表达数学公式的式子 如:2*x+y-1/a 表达式经过运算最终得到一个值: 算术表达式的值第五十三张,PPT共四百三十四页,创作于2022年6月 运算符的优先级与结合性 优先级: 在对表达式求值时,如果存在多个运算符,则运算的先后次序按运算符的优先级别从高到底进行。 运算符的优先级关系为: 高:* / % 低:+ - 如:a-2*x 先算 * 2*(a+2) 有括号的情况? 第五十四张,PPT共四百三十四页,创作于2022年6月 结合性: 如果在一个运算对象两边的运算符的优先级相同,则按规定的“结合方向”处理。 如:a-b+c b与-结合是从左到右,称“左结合性”。 b与+结

22、合是从右到左,称“右结合性”。 每个运算符都有相应的优先级和结合性。 基本算术运算符都是左结合性。 第五十五张,PPT共四百三十四页,创作于2022年6月计算表达式例: 2+A-1/2.0 1+3/2-1构造表达式例 2x2+3x-1 a+b a-b a+b a-b x+y x-ya+b/a-b ?(a+b)/(a-b)2*x*x+3*x-1 (*不能省)(a+b)/(a-b)/(x+y)/(x-y)(a+b)/(a-b)/(x+y)/(x-y)(a+b)/(a-b)/(x+y)*(x-y)第五十六张,PPT共四百三十四页,创作于2022年6月 强制类型转换可以用强制类型转换运算符将一个表达式

23、的值转换成所需类型:如: (int)(x+y) (float)(7%3)第五十七张,PPT共四百三十四页,创作于2022年6月 应用举例: int a=200,b=300,c; c=a*b/100; ? 可知,有自动转换和强制转换, 当自动转换达不到目的时,可用强制转换。c=(long)a*b/100;c=(long)(a*b)/100;第五十八张,PPT共四百三十四页,创作于2022年6月 自增、自减运算符 自增运算符:+ 使变量值加1 自减运算符:- 使变量值减1 两种用法: +i, -i 先加(减)后用 i+, i- 先用后加(减) 两种用法对i效果一样,但表达式的值不同。例:假设i的原

24、值为5: j=+i; j=? j=i+; j=?第五十九张,PPT共四百三十四页,创作于2022年6月 注意:+和-只能用于变量。 如:3+和(a+1)+ 不合法+和-为右结合性。 (-i)+ -i+ -(i+)若i的原值是5,则该表达式的值是多少?第六十张,PPT共四百三十四页,创作于2022年6月 例:分析执行下列语句后的结果: a=5; a b c d b=a+; c=-a-b+; d=(a+)-(+b)+c-;5565067-26-1第六十一张,PPT共四百三十四页,创作于2022年6月 两种特殊情况: k=(i+)+(i+)+(i+) i+j 是 i+(+j) 还是 (i+)+j ?

25、 i+虽然与i=i+1等效,但使用自增自减运算符的代码优化程度好,因而经常使用;但用时需特别小心。第六十二张,PPT共四百三十四页,创作于2022年6月 3.9 赋值运算符和赋值表达式 赋值运算符 “=”称赋值运算符,其作用是将一个数据赋给一个变量。 如: a=5 不要理解为“等号”。 执行赋值运算的结果,是将右边的数据存入左边变量所对应的内存单元中。第六十三张,PPT共四百三十四页,创作于2022年6月 赋值规则 如果赋值运算符两侧的类型不一致,则在赋值时要进行类型转换,转换规则为: 实型整变量 舍去小数部分。 int a=5.5; a中为5。 整型实变量 数值不变,以浮点形式存储。 字符型

26、整变量 放在整形变量低8位。保持原值不变原则。 int a=A;第六十四张,PPT共四百三十四页,创作于2022年6月 复合赋值运算符 在赋值运算符前加上其它运算符,可以构成复合赋值运算符。 a+=3 a=a+3 b-=x+5 b=b-(x+5) x*=c-6 x=x*(c-6) y/=a*4 y=y/(a*4) k%=b-2 k=k%(b-2) 属于高效率运算符。第六十五张,PPT共四百三十四页,创作于2022年6月 赋值表达式 主要实现赋值运算的表达式。 一般形式: = 如: a=5 y=2*x+3 a=a+1 不是衡等作用:将右边表达式的值赋给左边的变量。 赋值表达式的值取左边变量的值。

27、第六十六张,PPT共四百三十四页,创作于2022年6月 赋值表达式右边的可以是任何表达式,如: a=(b=5) 赋值表达式中包含赋值表达式 赋值运算符的优先级低于所有算术运算符,且是右结合性。 a=(b=5) 与 a=b=5 等效。 第六十七张,PPT共四百三十四页,创作于2022年6月 例:计算以下表达式的值: a=b=c=5 a=5+(c=6) a=(b=4)+(c=6) a=(b=4.5)+(c=6.5) (a、b、c为整型变量) a+=a-=a*a (设a的原值为3)第六十八张,PPT共四百三十四页,创作于2022年6月 赋值表达式是C语言中的一个重要成分,在赋值表达式后加一分号就成为

28、常用的赋值语句。如 y=2*x+1; 赋值表达式作为表达式的一种,可以出现在任何表达式中,如: x+2-(b/3-(a=k-5)+b第六十九张,PPT共四百三十四页,创作于2022年6月 3.10 逗号表达式 逗号也是一种运算符,用它对两个表达式实现连接运算。 3+5,6+8 称逗号表达式。 逗号表达式的一般形式: 表达式1,表达式2 取表达式2的值作为整个逗号表达式的值。 如: a=3*5,a*4 逗号表达式的值为:60第七十张,PPT共四百三十四页,创作于2022年6月 一个逗号表达式又可以与另一个表达式组成一个新的逗号表达式,如: (a=3*5,a*4),a+5 因此,逗号表达式的一般形

29、式可以扩展为: 表达式1,表达式2,表达式3,, 表达式n 取表达式n的值作为整个逗号表达式的值。 逗号运算符的优先级最低,且是左结合性。 逗号运算符只起到连接作用,没有实际操作。 第七十一张,PPT共四百三十四页,创作于2022年6月第四章 最简单的C程序设计 C 程序最基本的成分是语句 目前我们已掌握的语句: 变量说明语句: int a,b,c; 表达式语句: x+y; 特别地: a=5; 赋值语句第七十二张,PPT共四百三十四页,创作于2022年6月 可以编写简单程序如: main() int x,y; x=5; y=2*x*x+3*x-1; 该程序语法上完整,但还缺少输出。 第七十三张

30、,PPT共四百三十四页,创作于2022年6月 数据的输出 用输出函数实现,其中的两种输出函数: 1.putchar 函数 (字符输出函数) 用于输出一个字符。 如: putchar (a); putchar (100); char c=b; putchar (c);第七十四张,PPT共四百三十四页,创作于2022年6月 例:输出单词Boy的完整程序: #include “stdio.h” 注意该语句的作用 main() char a, b, c; a=B; b=o; c=y; putchar (a); putchar (b); putchar (c); 第七十五张,PPT共四百三十四页,创作于

31、2022年6月 2. printf函数(格式输出函数) 任意类型、任意格式、任意个数。 例如: int a=100,b=56; printf(“a=%d,b=%d”,a,b); 普通字符 格式说明 格式控制 输出表列 输出结果:a=100,b=56“%” 后的字符称格式字符,不同格式字符对应不同的数据类型。第七十六张,PPT共四百三十四页,创作于2022年6月 d格式符:按整数格式输出 几种用法: %d 不指定宽度,按实际宽度输出 %md 按指定宽度输出,m为宽度 %ld 用于输出长整型数第七十七张,PPT共四百三十四页,创作于2022年6月 例: int a=125,b=453; long

32、c=65535; printf(“a=%d,b=%5d,c=%ld”,a,b,c); 输出结果: a=125,b= 453,c=65535第七十八张,PPT共四百三十四页,创作于2022年6月 %ld也可以按指定宽度输出: printf(“c=%8ld”,c); 输出结果:c = 65535注意:格式字符的类型要与对应的输出对象的类型一致。 第七十九张,PPT共四百三十四页,创作于2022年6月 c格式符:用于输出字符 char c=A; printf(“c=%c,%c”,c,B); 输出结果:c=A,B 输出对象既可以是字符变量、字符常量,还可以是整型表达式。第八十张,PPT共四百三十四页,

33、创作于2022年6月 如: int a=100; char b=A; printf(“n%d,%c”,a,a); printf(“n%c,%d”,b,b); 输出结果: 100,d A,65第八十一张,PPT共四百三十四页,创作于2022年6月 s格式符:用于输出字符串 %s 不指定宽度 %-ms 指定宽度,左靠齐 %ms 指定宽度,右靠齐 %m.ns 指定宽度m,只取左端n个字符, 右靠齐 %-m.ns 指定宽度m,只取左端n个字符, 左靠齐第八十二张,PPT共四百三十四页,创作于2022年6月例: printf(“1:%s”,”abcd”); printf(“2:%8s”,”abcd”);

34、 printf(“3:%-8s”,”abcd”); printf(“4:%8.3s”,”abcd”); printf(“5:%-8.3s”,”abcd”);1:abcd2: abcd3:abcd 4: abc5:abc 第八十三张,PPT共四百三十四页,创作于2022年6月 f格式符:按小数形式输出实数 %f 由系统指定宽度(6位小数) %m.nf 指定宽度m,小数位数n,右靠齐 %-m.nf 指定宽度m,小数位数n,左靠齐 注意:宽度包括符号和小数点。 第八十四张,PPT共四百三十四页,创作于2022年6月例: float a=3.141592654,b=14.326795, c=-125.

35、2468; printf(“na=%f,b=%8.3f,c=%-10.2f”,a,b,c); 输出结果: a=3.141592,b= 14.326,c=-125.24 第八十五张,PPT共四百三十四页,创作于2022年6月完整前面的程序:main() int x,y; x=5; y=2*x*x+3*x-1; printf(“n y=%d”,y);第八十六张,PPT共四百三十四页,创作于2022年6月程序设计例: 编写程序计算如图中的电流I. 假设 U=220,R1=30,R2=60,R3=45UIR1R2R3第八十七张,PPT共四百三十四页,创作于2022年6月算法设计: I=U/R1+U/R

36、2+U/R3程序设计: main() I=U/R1+U/R2+U/R3;int U=220,R1=30,R2=60,R3=45;float I;printf(“n I=%f”,I);第八十八张,PPT共四百三十四页,创作于2022年6月 正确的程序: main() int U=220,R1=30,R2=60,R3=45; float I; I=(float)U/R1+(float)U/R2+(float)U/R3; printf(“n I=%f”,I); 第八十九张,PPT共四百三十四页,创作于2022年6月 考虑通用: main() int U,R1,R2,R3; float I; 输入 U

37、,R1,R2,R3 I=(float)U/R1+(float)U/R2+(float)U/R3; printf(“n I=%f”,I); 第九十张,PPT共四百三十四页,创作于2022年6月 数据的输入 getchar函数(字符输入) #include “stdio.h” main() char c; c=getchar(); 等待键盘输入 putchar(c); 第九十一张,PPT共四百三十四页,创作于2022年6月scanf 函数(格式输入) 与printf函数相反。 用于输入若干任意类型的数据。 scanf(“%d%d%d”,&a,&b,&c); 格式控制 地址列表第九十二张,PPT共四

38、百三十四页,创作于2022年6月 scanf(“%d%d%d”,&a,&b,&c); 执行此函数时,等待从键盘输入三个整数给a,b,c 若从键盘输入 3 5 8 则系统即从键盘缓冲区取出这三个数分别赋给a,b,c 注意与printf的区别,注意格式的匹配第九十三张,PPT共四百三十四页,创作于2022年6月如: scanf(“%3d%2d%4d”,&a,&b,&c); 若从键盘输入123456789 a=123,b=45,c=6789 若想使a=12,b=5,c=100 则键盘输入应为: 12 5 100 方便的输入格式一般不 指定宽度, 如: scanf(“%d%d%d”,&a,&b,&c)

39、;第九十四张,PPT共四百三十四页,创作于2022年6月 在键盘输入时,用分隔符把每个数据隔开,标准的分隔符是空格。 如:123 150 23 若想用逗号作分隔符,则: scanf(“%d,%d,%d”,&a,&b,&c); 不要随便使用普通字符,如使用: scanf(“a=%d,b=%d c=%d”,&a,&b,&c) 对应数据输入: a=123,b=150,c=23第九十五张,PPT共四百三十四页,创作于2022年6月 前面的欧姆定律: main() int U,R1,R2,R3; float I; scanf(“%d%d%d%d”,&U,&R1,&R2,&R3); I=(float)U/

40、R1+(float)U/R2+(float)U/R3; printf(“n I=%f”,I); 第九十六张,PPT共四百三十四页,创作于2022年6月求三角形面积#include “math.h”main() float a,b,c,area,s; scanf ( “%f,%f,%f”, &a,&b,&c); s=1.0/2*(a+b+c); area=sqrt (s*(s-a)*(s-b)*(s-c); printf(“n area=%f”,area);使用数学函数第九十七张,PPT共四百三十四页,创作于2022年6月使用三角函数#include “math.h”main() float x

41、, y; scanf ( “%f”, &x); y=sin(x*3.1415926/180); 以弧度为单位 printf(“n y=%f”,y);第九十八张,PPT共四百三十四页,创作于2022年6月第五章 选择结构程序设计 对于如下的函数计算,算法上属于一个选择结构。 y= 用于实现选择结构的主要是if语句。1/x 当x0时 10000 当x=0时第九十九张,PPT共四百三十四页,创作于2022年6月if语句的最常见形式为: if(关系表达式)语句1; else 语句2;如: if(x!=0) y=1/x; else y=10000;其中 x!=0 就是一个关系表达式 != 就是一个关系运

42、算符第一百张,PPT共四百三十四页,创作于2022年6月51 关系运算符和关系表达式1、关系运算符用于进行比较运算的运算符。共有六种: = = = !=优先级与结合性: 前4种大于后两种。 低于算术运算符而高于赋值运算符。 左结合性。第一百零一张,PPT共四百三十四页,创作于2022年6月2、关系表达式一般形式:表达式关系运算符表达式 如:ab a+bb+c 经过关系运算后最终有一个值-关系表达式的值。 关系表达式的值只有 0(假)或1(真)第一百零二张,PPT共四百三十四页,创作于2022年6月例:设 a=2, b=4, c=1 计算以下关系表达式的值: ab a+bb+cab 可以是字符表

43、达式(x=2)(y=5) 可以是赋值表达式(a(bc) 甚至可以是关系表达式ab= =byxy=yz=xzyxz (x=y-2)z+1=x+ya=x+y=x+zx+1第一百零四张,PPT共四百三十四页,创作于2022年6月52 逻辑运算符和逻辑表达式有时,只用一个简单的关系表达式无法完整地表达一个条件,如: y= 其中的条件需要用逻辑表达式来表达: x!=0 &a!=0 &就是一种逻辑运算符。1/x+1/a 当x0,a0时 10000 其它第一百零五张,PPT共四百三十四页,创作于2022年6月1、逻辑运算符& 逻辑与 两个操作数都为真时&运算结果为真。| 逻辑或 两个操作数之一为真时即为真。

44、! 逻辑非 (单目运算) 操作数为真(假)时为假(真)。 如:若 a=2, b=3, c=0 则: ab&bc 0 ab|bc 1 !(ab) 0第一百零六张,PPT共四百三十四页,创作于2022年6月优先级(由高到低):! 逻辑非算术运算符关系运算符&逻辑与|逻辑或赋值运算符结合性:左结合性第一百零七张,PPT共四百三十四页,创作于2022年6月2、逻辑表达式 实际上,前面所举例子即为逻辑表达式: ab&bc ab|bc !(ab) 逻辑表达式的值同样只有1和0,但参加逻辑 运算的操作数可以是任意类型的数据,可以是 任意大小。例: a+b&b+c 是合法的逻辑表达式。此时以0代表假,非0代表

45、真。第一百零八张,PPT共四百三十四页,创作于2022年6月例:设 a=2, b=3, c=0 , 计算以下表达式的值: a&b b&c a|c !a+c&b+c !c+a=b|bc+10第一百零九张,PPT共四百三十四页,创作于2022年6月对于逻辑表达式的两种基本技能: 逻辑表达式的计算。 逻辑表达式的构造。第一百一十张,PPT共四百三十四页,创作于2022年6月逻辑表达式的构造举例: abc a和b之一为0,但不同时为0a=b=c 5=4=3a=b&b=ca=0&b!=0 | a!=0&b=0a*b=0a*b=0&a+b!=0第一百一十一张,PPT共四百三十四页,创作于2022年6月对于

46、 a=0 & b!=0 | a!=0 & b=0 a=0可以用!a代替 a!=0可以直接用a !a & b | a & !b但必须是运算结果作为逻辑量的情况下。 y=(a!=0) 与 y=a 不等效第一百一十二张,PPT共四百三十四页,创作于2022年6月53 if语句1、if语句的三种形式if(表达式)语句; 有一分支为空。 scanf(“%d”,&score); if(score=60) printf(“pass”); 第一百一十三张,PPT共四百三十四页,创作于2022年6月 if(表达式)语句1; else 语句2; if(x!=0) y=1/x; else y=10000;第一百一十

47、四张,PPT共四百三十四页,创作于2022年6月 if(表达式1)语句1; else if(表达式2)语句2; else if(表达式3)语句3; else 语句n; if(score=100) printf(“A”); else if(score=90) printf(“B”); else if(score=80) printf(“C”); else if(score=70) printf(“D”); else if(score=60) printf(“E”); else printf(“F”);第一百一十五张,PPT共四百三十四页,创作于2022年6月 对于: 1/x 当x0时10000

48、当x=0时一般用:if(x!=0) y=1/x;else y=10000;也可用:y=10000;if(x!=0) y=1/x;y=?y=1/x;if(x=0)y=10000第一百一十六张,PPT共四百三十四页,创作于2022年6月 例:(习题5.5):x (x1)2x-1 (1x10) 3x-11 (x10)y=第一百一十七张,PPT共四百三十四页,创作于2022年6月 main() float x,y; scanf(“%f”,&x); if(x1) y=x; else if(x10) y=2*x-1; else y=3*x-11; printf(“n y=%f”,y); 第一百一十八张,P

49、PT共四百三十四页,创作于2022年6月说明:语句中的表达式可以是任意表达式: if(x) y=1/x; else y=10000; 一个if结构不可分割: if(x) y=1/x; z=10; else y=10000;一个分支中包含多个语句时,要用 : if(amax) max=b; if(cmax) max=c; printf(“n max=%d”,max);第一百二十一张,PPT共四百三十四页,创作于2022年6月 例:从键盘输入三个整数到变量a,b,c,要求按从大到小的顺序输出。 两种典型算法: 枚举法(将各种可能的排列枚举出来)。 换位法(将a,b,c中的数据换位)。第一百二十二张

50、,PPT共四百三十四页,创作于2022年6月换位法main() int a,b,c,t; scanf(“%d,%d,%d”,&a,&b,&c); if(ab) t=a; a=b; b=t; if(ac) t=a; a=c; c=t; if(b=80) if(score=90) printf(“A”); else printf(“B”);else if(score=60) printf(“C”); else printf(“D”);注意else与if的匹配第一百二十四张,PPT共四百三十四页,创作于2022年6月3、条件运算符如果两个分支的内容都是给同一个变量赋值,则可用简单的条件运算符处理:

51、if(ab) max=a; else max=b;可用: max=ab ? a : b;赋值运算符右边为一条件表达式。条件表达式的一般形式: 表达式1 ? 表达式2 : 表达式3第一百二十五张,PPT共四百三十四页,创作于2022年6月条件表达式的执行过程: ab ? a : b优先级:低于关系运算符,高于赋值运算符。结合性:右结合性。表达式1条件表达式取表达式3的值条件表达式 取表达式2的值 非00第一百二十六张,PPT共四百三十四页,创作于2022年6月 例:求a,b,c中的最大值:max= ab ? (ac?a:c) : (bc?b:c) ;第一百二十七张,PPT共四百三十四页,创作于2

52、022年6月54 switch语句(多分支) 适用于根据一个表达式的值就可确定走哪个分支的情况。 switch(表达式) 常量表达式1: 语句1 常量表达式2: 语句2 常量表达式n: 语句n default: 语句n+1 第一百二十八张,PPT共四百三十四页,创作于2022年6月例:成绩分档:switch(score/10) case 10: printf(“A”); case 9: printf(“B”); case 8: printf(“C”); case 7: printf(“E”); case 6: printf(“F”); default : printf(“G”); 注:应使用b

53、reak.第一百二十九张,PPT共四百三十四页,创作于2022年6月switch(score/10) case 10: printf(“A”); break; case 9: printf(“B”); break; case 8: printf(“C”); break; case 7: printf(“E”); break; case 6: printf(“F”); break; default : printf(“G”);第一百三十张,PPT共四百三十四页,创作于2022年6月55 程序举例 (习题5.10) 有4个圆塔,圆心分别为:(2,2),(-2,2),(-2,-2),(2,-2),圆

54、半径为1。这4个塔的高度为10m,塔以外无建筑物。今输入任一点的坐标,求该点的建筑高度(塔外的高度为0)。第一百三十一张,PPT共四百三十四页,创作于2022年6月算法设计: 条件“在某一圆内” : “在圆1内或在圆2内或在圆3内或在圆4内” 若设变量c1、c2、c3、c4分别代表是否在相应的圆内,则以上条件为: c1|c2|c3|c410 在某一圆内0 在圆外 (x,y) h=第一百三十二张,PPT共四百三十四页,创作于2022年6月c1=(x-2)2+(y-2)21c2=(x+2)2+(y-2)21c3=(x+2)2+(y+2)21c4=(x-2)2+(y+2)21第一百三十三张,PPT共

55、四百三十四页,创作于2022年6月main() int h,c1,c2,c3,c4; float x,y; scanf(“%f%f”,&x,&y); c1=(x-2)*(x-2)+(y-2)*(y-2)=1; c2=(x+2)*(x+2)+(y-2)*(y-2)=1; c3=(x+2)*(x+2)+(y+2)*(y+2)=1; c4=(x-2)*(x-2)+(y+2)*(y+2)=1; if(c1|c2|c3|c4) h=10; else h=0; printf(“n h=%d”,h);第一百三十四张,PPT共四百三十四页,创作于2022年6月第六章 循环控制 61 概述 所谓循环控制,就是如

56、何实现循环结构的控制问题。有4种方法: 用goto语句和if构成循环。 用while语句。 用do-while语句。 用for语句。第一百三十五张,PPT共四百三十四页,创作于2022年6月62 用goto语句和if语句构成循环例: 对于计算 s=1+2+3+4+5+6+7+8+9+100 s1 is+i s i+1 ii10 输出syn第一百三十六张,PPT共四百三十四页,创作于2022年6月 s=0; i=1; lable:s+=i; i+; if(i=10) goto lable; printf(“%d”,s) ;语句标号 无条件转向语句 goto 语句可以构造循环,但不主张用,因为它容

57、易破坏结构化程序设计。 goto 语句可以构造循环,但不主张用,因为它容易破坏结构化程序设计。第一百三十七张,PPT共四百三十四页,创作于2022年6月 63 while语句 while语句是专门用于实现循环控制的语 句之一。 其一般形式为: while (表达式) 语句 含义:当表达式的值为非0时,执行循环体,否则执行后续语句。语句关键 表达循环条件的表达式循环体 语句关键字第一百三十八张,PPT共四百三十四页,创作于2022年6月 执行过程: while (表达式) 语句 表达式循环体0非0第一百三十九张,PPT共四百三十四页,创作于2022年6月i10? s=0 i=1s=s+ii=i+

58、1例:用while语句实现前面算法:main() int i=1,s=0; while(i=10) s=s+i; i+; printf(“n %d”,s); 注意与if语句的区别。循环体中要有使循环条件趋于成立的条件yn第一百四十张,PPT共四百三十四页,创作于2022年6月 while(i=10) s=s+i; i+; 可简写为: while(i=10) s+=i+;第一百四十一张,PPT共四百三十四页,创作于2022年6月非0(真)0(假)表达式循环体 64 do-while语句 do-while语句主要用于实现直到型循环。 其一般形式为: do 循环体 while(表达式);执行过程:第

59、一百四十二张,PPT共四百三十四页,创作于2022年6月真s=0i=1i10?s=s+ii=i+1假例:用do-while语句实现前面算法: main() int i=1,s=0; do s+=i+; while(i=10); printf(“n%d”,s); 注意与while语句的区别。 第一百四十三张,PPT共四百三十四页,创作于2022年6月假表达式2求解表达式1循环体求解表达式3真 65 for 语句 for语句是一种使用最为灵活,并且是用得最多的循环控制语句,其一般形式为: for(表达式1;表达式2;表达式3) 循环体大体含义: 对于()的情况执行循环体内容。第一百四十四张,PPT

60、共四百三十四页,创作于2022年6月例:用for语句实现前面的算法:s=0;for(i=1;i=10;i+) s+=i; 标准形式表达式1 表达式2表达式3循环体可以理解: 循环变量i从初值1开始到终值10,步长为1,重复执行循环体。第一百四十五张,PPT共四百三十四页,创作于2022年6月for语句的常见变化: s=0; i=1; for(;i=10;i+)s+=i; s=0; for(i=1;i=10;)s+=i+; s=0;i=1; for(;i10) break; s=10;i=10; for(;-i;) s+=i;省略表达式2表达式2是任意表达式第一百四十七张,PPT共四百三十四页,

温馨提示

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

评论

0/150

提交评论