C语言编程入门教程精简.pptx

上传人:莉*** 文档编号:73648988 上传时间:2023-02-21 格式:PPTX 页数:434 大小:1.05MB
返回 下载 相关 举报
C语言编程入门教程精简.pptx_第1页
第1页 / 共434页
C语言编程入门教程精简.pptx_第2页
第2页 / 共434页
点击查看更多>>
资源描述

《C语言编程入门教程精简.pptx》由会员分享,可在线阅读,更多相关《C语言编程入门教程精简.pptx(434页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、第一章第一章 计算机语言与计算机语言与C C语言概述语言概述1.1 1.1 计算机语言概念计算机语言概念 计算机语言定义计算机语言定义 计算机能够识别和接受的语言。计算机能够识别和接受的语言。要使计算机按自己的意图工作,要使计算机按自己的意图工作,必须使用计算机所能接受、理解和必须使用计算机所能接受、理解和执行的指令指挥计算机工作。执行的指令指挥计算机工作。第1页/共434页 计算机语言的种类计算机语言的种类机器语言机器语言低级语言低级语言 汇编语言汇编语言(面向计算机面向计算机)BASIC入门语言入门语言F77科学计算科学计算高级语言高级语言Foxpro数据库管理数据库管理 (面向问题面向问

2、题)C多用途多用途计算机语言第2页/共434页机器语言机器语言 最早问世,用二进制代码构成指令。最早问世,用二进制代码构成指令。如如:100000 100000 (+)110000 110000(-)用机器语言编程的缺点:用机器语言编程的缺点:繁琐、不直观、不易调试。繁琐、不直观、不易调试。如计算如计算y=2xy=2x2 2+3x-1+3x-1需要七八条指令。需要七八条指令。移植性差。移植性差。依赖于计算机。依赖于计算机。第3页/共434页汇编语言汇编语言 用符号构成指令,如:用符号构成指令,如:MOVMOV、ADDADD 用汇编语言编程:用汇编语言编程:相相对对直直观观,但但仍仍繁繁琐琐,仍

3、仍是是面面向向计计算算机的语言。机的语言。汇编语言是计算机间接接受的语言汇编语言是计算机间接接受的语言第4页/共434页高级语言高级语言与低级语言相比,有根本性的区别:是面向问题的语言。高级语言的一条指令(语句):y=2*x*x+3*x-1;对应于:y=2x2+3x-1 y=sin(x);对应于:y=sinx用高级语言编程:用高级语言编程:直观、易懂、移植性好(不依赖于具体计算机)第5页/共434页上机运行高级语言程序需经过编译:编译 执行要上机完成一个计算问题,主要的任务就是用高级语言编写出相应的源程序。即至少要学会一种计算机语言。高级语言源程序机器指令目的程序结果编译程序第6页/共434页

4、1.2 C1.2 C语言的特点语言的特点集高级语言和低级语言的优点于一身:能实现低级语言的大部分功能(如直接访问内存物理地址、进行位操作等)。图形功能强。运算符和数据结构丰富。语法限制不太严格,程序设计自由度大。生成目标代码质量高,程序执行效率高。第7页/共434页1.3 1.3 简单的简单的C C程序介绍程序介绍 例1:main()main()主函数说明 程序框架 printf(printf(“abcdefabcdef”););函数体 语句 程序的功能是输出字符串:abcdef第8页/共434页例2:求两数之和。main()inta,b,c;aa=100;b=50;bc=a+b;cprint

5、f(“nc=%d”,c);程序运行结果:c=150第9页/共434页例例3 3:求两数中的最大值。:求两数中的最大值。函数类型函数类型 函数名函数名 形参形参main()intmax(intx,inty)inta,b,c;intz;scanf(“%d,%d”,&a,&b);if(xy)z=x;c=max(a,b);elsez=y;printf(“nmaxis:%d”,c);return(z);axbyc z (两个函数组成)353555第10页/共434页 总结上例可知:总结上例可知:(1 1)C C程序程序由函数构成由函数构成。(2 2)函数由两部分组成:函数由两部分组成:函数说明函数说明部

6、分:函数名、函数类型、形参名、形参类型。部分:函数名、函数类型、形参名、形参类型。函数体函数体:实现函数的具体操作;由语句构成。:实现函数的具体操作;由语句构成。(3 3)程序总是程序总是从从mainmain函数函数开始执行。开始执行。(4 4)书写格式自由。书写格式自由。(5 5)语句必须有分号。)语句必须有分号。:第11页/共434页第二章第二章 算法算法 2 2.1.1 算法的概念算法的概念 要利用计算机处理问题,光学习语言的语法规则还不够,最重要的是要要利用计算机处理问题,光学习语言的语法规则还不够,最重要的是要学会针对各类型的问题,拟定出有效的解题方法和步骤。学会针对各类型的问题,拟

7、定出有效的解题方法和步骤。解题方法和步骤就解题方法和步骤就是算法是算法。第12页/共434页算法算法:为了解决一个问题而采取的有限步骤。为了解决一个问题而采取的有限步骤。计算机算法计算机算法:如何使计算机一步一步地工作的具体过程。如何使计算机一步一步地工作的具体过程。第13页/共434页 利用计算机处理问题的步骤:1)设计好算法算法设计;2)用计算机语言实现算法程序设计。算法必须是“有效”的。算法设计还要充分考虑算法的好坏。衡量算法好坏的主要标准:程序简练。执行速度快。占空间少。第14页/共434页例:考虑 的算法。算法:直接表达。直接用语句 s=1+2+3+4+5+6+7+8+9+10当项数

8、较多时该算法不适用s=i110第15页/共434页算法:迭代法(累加求和法)s=1+2+3+4+5+6+7+8+9+10 算法步骤:s i 使s=0 +使i=1 累加器 记数器 s+is i+1i 若i10转,否则转 输出s01123364105该算法通用,是好算法第16页/共434页2.2 2.2 算法的表示算法的表示 算法需要有统一的表示方法算法需要有统一的表示方法 常用的表示方法有:常用的表示方法有:自然语言自然语言 流程图流程图 结构化流程图结构化流程图 N-SN-S流程图流程图.第17页/共434页1、自然语言自然语言对于计算对于计算 s=1+2+3+4+5+6+7+8+9+10s=

9、1+2+3+4+5+6+7+8+9+10 用自然语言表示为:用自然语言表示为:使使s=0s=0 (s s为累加器)为累加器)使使i=1i=1 (i i为计数器)为计数器)s+iss+is (累加求和公式)(累加求和公式)i+1ii+1i (计数器加(计数器加1 1)若若i10i10转转,否则转否则转 输出输出s s的值的值 特点:通俗易懂、文字冗长、含义不大严格。第18页/共434页2、流程图流程图 用流程图符号表示算法。常用的流程图符号 起止框 输入输出框 处理框 流程线 判断框 第19页/共434页对于计算 s=1+2+3+4+5+6+7+8+9+10 用流程图表示为:s+i si+1 i

10、S+i sS+i si10输出s0 s1 i直观形象,易于理解,次序清楚YN第20页/共434页3、结构化流程图结构化流程图 传统的流程图有一个弊端:对流程线没有严格的限制,对于较复杂的算法可能会变成乱麻一般(BS型算法)。为克服这一弊端,提出了由三个基本结构组成算法流程图的思想:结构化流程图第21页/共434页 三个基本结构:顺序结构按固定顺序(从上到下或从左到右)执行的结构。ABab第22页/共434页选择结构 根据条件P选择执行哪一个分支。成立不成立 pABab成立不成立第23页/共434页例:计算 y=1/x 当x0时 y=10000 当x=0时 的算法流程图图:选择结构输入xX=0?

11、10000y1/xy输出yYN第24页/共434页循环结构 重复执行某些操作的结构。分为两种:当型循环和直到型循环。当型循环 直到型循环 P1AAP2aabbYYNN第25页/共434页 可以看出,每个基本结构都只有一个入口和一个出口,因此,用三个基本结构构成的流程图不会象乱麻一般,用三个基本结构构成的流程图就成为结构化流程图,用结构化流程图描述的算法称为结构化算法,相应的程序设计就称为结构化程序设计。第26页/共434页观察前例:0 s1 iS+i si+1 ii10输出s顺序结构循环结构yn第27页/共434页4N-SN-S流程图流程图N-S流程图的三个基本结构:ABP成立不成立ABAB当

12、P1直到P2顺序结构选择结构循环结构第28页/共434页例:计算y=1/x 当x0时 y=10000 当x=0时 的N-S流程图:输入xX=0?是否10000y1/xy输出y第29页/共434页例:计算 s=1+2+3+4+5+6+7+8+9+10 的N-S流程图:i10 直到i10 直到型 当型0 s1 i输出s1 i0 ss+i si+1 is+i si+1 i输出s第30页/共434页第三章第三章 数据类型数据类型、运算符运算符与与 表达式表达式3.1 C 3.1 C 的数据类型的数据类型基本类型基本类型(整型(整型、实型实型、字符型字符型、枚举型)枚举型)构造类型构造类型(略)(略)指

13、针类型指针类型(略)(略)空类型空类型各类型包含各类型包含常常量量与与变量变量第31页/共434页 3.2 3.2 常量与变量常量与变量 常量与符号常量常量与符号常量 常量常量 在程序运行过程中其值保持不变的量。在程序运行过程中其值保持不变的量。符号常量符号常量 用来代表一个常量的标识符。#define PI 3.1415926#define PI 3.1415926第32页/共434页 例:例:#define#define PIPI 3.1415926 3.1415926 main()main()float float r r=2,=2,c c;c c=2*=2*PIPI*r r;print

14、f(printf(“%f%f”,c c););第33页/共434页 变量变量 其值可以改变的量。其值可以改变的量。变量的三要素变量的三要素:变量名变量名每个变量有一个名字,作为识别该变量的标识符。每个变量有一个名字,作为识别该变量的标识符。变量的值变量的值 每个变量有一个值,变量的值是随时可以改变的。每个变量有一个值,变量的值是随时可以改变的。第34页/共434页 变量的存储单元变量的存储单元 每个变量占据一个内存单元,用于存放变量的值每个变量占据一个内存单元,用于存放变量的值。变量名a变量值存储单元3第35页/共434页 变量的命名规则:变量的命名规则:由字母、数字和下划线组成由字母、数字和

15、下划线组成 以字母或下划线开头以字母或下划线开头 a a、x1x1、y_2y_2、_b1_b1、_1c _1c 合法合法 1x1x、a+2a+2、不合法不合法 变量必须先定义后使用。变量必须先定义后使用。程序中何时使用常量?何时使用变量?程序中何时使用常量?何时使用变量?第36页/共434页 3.3 3.3 整型数据整型数据 整型常量整型常量 即整常数,即整常数,c c的整常数有三种形式:的整常数有三种形式:十进制整数十进制整数 与数学中的整数一致,如:与数学中的整数一致,如:100100,123123,1515等。等。八进制整数八进制整数 以以0 0开头的整数,如:开头的整数,如:010,0

16、7,020010,07,020等。等。十六进制整数十六进制整数 以以0 x0 x开头的整数,如:开头的整数,如:0 x10,0 xff,0 x2a0 x10,0 xff,0 x2a等。等。第37页/共434页 整型变量整型变量 用于存放整数的变量。用于存放整数的变量。分分4 4种类型:种类型:基本型:基本型:int aint a 16 16位,可表示的数值范围:位,可表示的数值范围:-32768-327683276732767 短整型:短整型:short int bshort int b 16 16位,可表示的数值范围:位,可表示的数值范围:-32768-327683276732767 长整型

17、:长整型:long int clong int c 32 32位,数值范围:位,数值范围:-2147483648-214748364821474836472147483647第38页/共434页 无符号型:加上无符号型:加上 unsignedunsigned 只存放正数。只存放正数。如:如:unsigned int xunsigned int x 变量变量x x为无符号整数,为无符号整数,1616位全表示数码,位全表示数码,数值范围:数值范围:0 06553565535 在在程程序序设设计计中中,如如果果要要使使用用整整型型变变量量,必必须须首首先先选选择择以以上上类类型型符符来来定定义义变量

18、,然后才能使用;变量,然后才能使用;第39页/共434页例:例:main()main()定义定义 int a,b,c;int a,b,c;a=100;b=50;a=100;b=50;使用使用 c=a+b;c=a+b;printf(printf(“%d%d”,c);,c);一般根据什么原则选择变量的类型?一般根据什么原则选择变量的类型?第40页/共434页 3.4 3.4 实型数据实型数据 实型常量实型常量 可使用两种形式表示:可使用两种形式表示:小数形式:小数形式:如如 1.23,3.1415926 15.481.23,3.1415926 15.48 指数形式:指数形式:如如 1e-20 1.

19、23e5 1e-20 1.23e5 第41页/共434页 实型变量实型变量 用于存放实数的变量用于存放实数的变量 分单精度和双精度两种:分单精度和双精度两种:float a,bfloat a,b 定义定义a a和和b b为单精度型变量为单精度型变量 3232位,位,7 7位有效数字,位有效数字,1010-38-3810103838 double x,ydouble x,y 定义定义x x和和y y为双精度型变量为双精度型变量 6464位,位,1515位有效数字,位有效数字,1010-308-3081010308308第42页/共434页 例:例:main()main()float r,c;fl

20、oat r,c;double r,c;double r,c;r=5;r=5;c=2*3.1415926*r;c=2*3.1415926*r;printf(printf(“%f%f”,c);,c);第43页/共434页 3.5 3.5 字符型数据字符型数据 字符常量字符常量 用单引号括起来的一个字符。用单引号括起来的一个字符。a a,x x,*,1 1等等 除此外,以除此外,以 开头的字符如开头的字符如nn,tt等等 称为转义字符,祥见书表称为转义字符,祥见书表3.33.3第44页/共434页 字符型变量字符型变量 用于存放字符的变量。用于存放字符的变量。char c1,c2 char c1,c

21、2 定义定义c1c1和和c2c2为字符型变量为字符型变量 c1=c1=a a;c2=;c2=b b;字符赋值字符赋值 字符型变量存放一个字符,占据一个字节字符型变量存放一个字符,占据一个字节第45页/共434页 字符型数据的存储形式字符型数据的存储形式 存放ASCII码 不是 而是 如字符如字符a a在内存中存放在内存中存放9797,b b 存放存放9898。与整数的存储形式一致,它们之间可以通用与整数的存储形式一致,它们之间可以通用 一个字符数据既可以作字符用,也可以作整数用(取其一个字符数据既可以作字符用,也可以作整数用(取其ASCIIASCII代码)。代码)。如:如:32+32+a a相

22、当于相当于 32+9732+97 若若 int x;char c;int x;char c;则则 x=x=a a;c=97;x=97;c=;c=97;x=97;c=a a;都允许都允许a97第46页/共434页 字符串常量字符串常量 用双引号括起来的字符序列。用双引号括起来的字符序列。如:如:”abcdeabcde”,”chinachina”a a”也属字符串。也属字符串。注意注意”a a”与与a a的区别。的区别。对于:对于:char c;char c;c=c=”a a”;用法错误用法错误第47页/共434页 字符串中每个字符各占一个字节,并且在字符串结尾加上一个结束标记字符串中每个字符各占

23、一个字节,并且在字符串结尾加上一个结束标记00 如:如:”chinachina”在内存中占在内存中占6 6个字节。个字节。c h i n a 0 C C语言中专门的字符串变量,可用字符数组存放(以后介绍)。语言中专门的字符串变量,可用字符数组存放(以后介绍)。第48页/共434页 3.6 3.6 变量赋初值变量赋初值 在定义变量的同时给相应的变量赋初值。在定义变量的同时给相应的变量赋初值。如:如:int a=3;int a=3;a a float b=5.2;float b=5.2;char c=char c=a a;int x=y=z=6;int x=y=z=6;效果:效果:在给变量分配内存

24、单元的同时在相应的单在给变量分配内存单元的同时在相应的单 元中存放初值。元中存放初值。3第49页/共434页 3.7 3.7 各数值型数据间的混合运算各数值型数据间的混合运算 整型、实型、字符型数据间可以进行混合运算,如:整型、实型、字符型数据间可以进行混合运算,如:10-10-a a*1.5*1.5 运运算算时时,参参加加运运算算的的两两个个数数据据如如果果类类型型不不同同,则则首首先先将将其其类类型型转转换换成成一一致致再再运运算算,转换规则是:转换规则是:将优先级低的类型转换到优先级高的类型将优先级低的类型转换到优先级高的类型第50页/共434页 数据类型的优先级:数据类型的优先级:高

25、double floatdouble float long long unsignde unsignde 低 int charint char第51页/共434页 3.8 3.8 算术运算符与算术表达式算术运算符与算术表达式 基本的算术运算符基本的算术运算符 +-*/%算术表达式算术表达式 用算术运算符将运算对象连接起来的式子用算术运算符将运算对象连接起来的式子 用于表达数学公式的式子用于表达数学公式的式子 如:2*x+y-1/a2*x+y-1/a 表达式经过运算最终得到一个值:表达式经过运算最终得到一个值:算术表达式的值算术表达式的值第52页/共434页 运算符的优先级与结合性运算符的优先级

26、与结合性 优先级:优先级:在在对对表表达达式式求求值值时时,如如果果存存在在多多个个运运算算符符,则则运运算算的的先先后后次次序序按按运运算算符符的的优优先先级级别别从从高高到到底进行。底进行。运算符的优先级关系为:运算符的优先级关系为:高:高:*/%/%低:低:+-+-如:如:a-2*x a-2*x 先算先算*2*(a+2)2*(a+2)有括号的情况?有括号的情况?第53页/共434页 结合性:结合性:如果在一个运算对象两边的运算符的优先级相同,则按规定的如果在一个运算对象两边的运算符的优先级相同,则按规定的“结合方向结合方向”处理。处理。如:如:a-b+ca-b+c b b与与-结合是从左

27、到右,称结合是从左到右,称“左结合性左结合性”。b b与与+结合是从右到左,称结合是从右到左,称“右结合性右结合性”。每个运算符都有相应的优先级和结合性。每个运算符都有相应的优先级和结合性。基本算术运算符都是基本算术运算符都是左结合性左结合性。第54页/共434页计算表达式例:计算表达式例:2+2+A A-1/2.0 1+3/2-1-1/2.0 1+3/2-1构造表达式例构造表达式例 2x2x2 2+3x-1+3x-1a+ba-ba+ba-bx+yx-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)/

28、(x+y)/(x-y)(a+b)/(a-b)/(x+y)*(x-y)第55页/共434页 强制类型转换强制类型转换可以用强制类型转换运算符将一个表达式的值转换成所需类型:可以用强制类型转换运算符将一个表达式的值转换成所需类型:如:如:(int)(x+y)(int)(x+y)(float)(7%3)(float)(7%3)第56页/共434页 应用举例:应用举例:int a=200,b=300,c;int a=200,b=300,c;c=a*b/100;c=a*b/100;?可知,有自动转换和强制转换,可知,有自动转换和强制转换,当自动转换达不到目的时,可用强制转换。当自动转换达不到目的时,可用

29、强制转换。c=(long)a*b/100;c=(long)(a*b)/100;第57页/共434页 自增、自减运算符自增、自减运算符 自增运算符:自增运算符:+使变量值加使变量值加1 1 自减运算符:自减运算符:-使变量值减使变量值减1 1 两种用法:两种用法:+i,-i +i,-i 先加(减)后用先加(减)后用 i+,i-i+,i-先用后加(减)先用后加(减)两种用法对两种用法对i i效果一样,但表达式的值不同。效果一样,但表达式的值不同。例例:假设:假设i i的原值为的原值为5 5:j=+i;j=?j=+i;j=?j=i+;j=?j=i+;j=?第58页/共434页 注意:注意:+和和-只

30、能用于变量。只能用于变量。如:如:3+3+和(和(a+1a+1)+不合法不合法+和和-为右结合性。为右结合性。(-i)+(-i)+-i+-i+-(i+)-(i+)若若i i的原值是的原值是5 5,则该表达式的值是多少?,则该表达式的值是多少?第59页/共434页 例:分析执行下列语句后的结果:例:分析执行下列语句后的结果:a=5;a=5;a b c da b c db=a+;b=a+;c=-a-b+;c=-a-b+;d=(a+)-(+b)+c-;d=(a+)-(+b)+c-;556 506 7-26-1第60页/共434页 两种特殊情况:两种特殊情况:k=(i+)+(i+)+(i+)k=(i+

31、)+(i+)+(i+)i+j i+j 是是 i+(+j)i+(+j)还是还是 (i+)+j(i+)+j?i+i+虽虽然然与与i=i+1i=i+1等等效效,但但使使用用自自增增自自减减运运算算符符的的代代码码优优化化程程度度好好,因因而而经经常常使用;但用时需特别小心。使用;但用时需特别小心。第61页/共434页 3.9 3.9 赋值运算符和赋值表达式赋值运算符和赋值表达式 赋值运算符赋值运算符 “=”称赋值运算符,其作用是将一个数据赋给一个变量。称赋值运算符,其作用是将一个数据赋给一个变量。如:如:a=5a=5 不要理解为不要理解为“等号等号”。执行赋值运算的结果,是将右边的数据存入左边变量所

32、对应的内存单元中。执行赋值运算的结果,是将右边的数据存入左边变量所对应的内存单元中。第62页/共434页 赋值规则赋值规则 如果赋值运算符两侧的类型不一致,则在赋值时要进行类型转换,转换规则为:如果赋值运算符两侧的类型不一致,则在赋值时要进行类型转换,转换规则为:实型实型整变量整变量 舍去小数部分。舍去小数部分。int a=5.5;aint a=5.5;a中为中为5 5。整型整型实变量实变量 数值不变,以浮点形式存储。数值不变,以浮点形式存储。字符型字符型整变量整变量 放在整形变量低放在整形变量低8 8位。保持原值不变原则。位。保持原值不变原则。int a=int a=A A;第63页/共43

33、4页 复合赋值运算符复合赋值运算符 在赋值运算符前加上其它运算符,可以构成复合赋值运算符。在赋值运算符前加上其它运算符,可以构成复合赋值运算符。a+=3 a+=3 a=a+3 a=a+3 b-=x+5 b-=x+5 b=b-(x+5)b=b-(x+5)x*=c-6 x*=c-6 x=x*(c-6)x=x*(c-6)y/=a*4 y/=a*4 y=y/(a*4)y=y/(a*4)k%=b-2 k%=b-2 k=k%(b-2)k=k%(b-2)属于高效率运算符。属于高效率运算符。第64页/共434页 赋值表达式赋值表达式 主要实现赋值运算的表达式。主要实现赋值运算的表达式。一般形式:一般形式:=如

34、:如:a=5 y=2*x+3 a=a+1a=5 y=2*x+3 a=a+1 不是衡等不是衡等作用:作用:将右边表达式的值赋给左边的变量将右边表达式的值赋给左边的变量。赋值表达式的值取左边变量的值。赋值表达式的值取左边变量的值。第65页/共434页 赋值表达式右边的赋值表达式右边的 可以是任何表达式,如:可以是任何表达式,如:a=(b=5)a=(b=5)赋值表达式中包含赋值表达式赋值表达式中包含赋值表达式 赋值运算符的优先级低于所有算术运算符,且是右结合性。赋值运算符的优先级低于所有算术运算符,且是右结合性。a=(b=5)a=(b=5)与与 a=b=5a=b=5 等效。等效。第66页/共434页

35、 例:计算以下表达式的值:例:计算以下表达式的值:a=b=c=5a=b=c=5 a=5+(c=6)a=5+(c=6)a=(b=4)+(c=6)a=(b=4)+(c=6)a=(b=4.5)+(c=6.5)a=(b=4.5)+(c=6.5)(a a、b b、c c为整型变量)为整型变量)a+=a-=a*a a+=a-=a*a (设设a a的原值为的原值为3)3)第67页/共434页 赋赋值值表表达达式式是是C C语语言言中中的的一一个个重重要要成成分分,在在赋赋值值表表达达式式后后加加一一分分号号就就成成为为常常用用的赋值语句。如的赋值语句。如 y=2*x+1;y=2*x+1;赋值表达式作为表达式

36、的一种,可以出现在任何表达式中,如:赋值表达式作为表达式的一种,可以出现在任何表达式中,如:x+2-(b/3-(x+2-(b/3-(a=k-5a=k-5)+)+b b第68页/共434页 3.10 3.10 逗号表达式逗号表达式 逗号也是一种运算符,用它对两个表达式实现连接运算。逗号也是一种运算符,用它对两个表达式实现连接运算。3+5,6+8 3+5,6+8 称称逗号表达式逗号表达式。逗号表达式的一般形式:逗号表达式的一般形式:表达式表达式1 1,表达式,表达式2 2 取取表达式表达式2 2的值作为整个逗号表达式的值。的值作为整个逗号表达式的值。如:如:a=3*5,a*4a=3*5,a*4 逗

37、号表达式的值为:逗号表达式的值为:6060第69页/共434页 一个逗号表达式又可以与另一个表达式组成一个新的逗号表达式,如:一个逗号表达式又可以与另一个表达式组成一个新的逗号表达式,如:(a=3*5,a*4),a+5(a=3*5,a*4),a+5 因此,逗号表达式的一般形式可以扩展为:因此,逗号表达式的一般形式可以扩展为:表达式表达式1 1,表达式,表达式2 2,表达式,表达式3 3,,表达式表达式n n 取取表达式表达式n n的值作为整个逗号表达式的值。的值作为整个逗号表达式的值。逗号运算符的优先级最低逗号运算符的优先级最低,且是左结合性。且是左结合性。逗号运算符只起到连接作用,没有实际操

38、作逗号运算符只起到连接作用,没有实际操作。第70页/共434页第四章第四章 最简单的最简单的C C程序设计程序设计 C C 程序最基本的成分是语句程序最基本的成分是语句 目前我们已掌握的语句:目前我们已掌握的语句:变量说明语句变量说明语句:int a,b,c;int a,b,c;表达式语句:表达式语句:x+y;x+y;特别地:特别地:a=5;a=5;赋值语句赋值语句第71页/共434页 可以编写简单程序如:可以编写简单程序如:main()main()int x,y;int x,y;x=5;x=5;y=2*x*x+3*x-1;y=2*x*x+3*x-1;该程序语法上完整,但还缺少输出。该程序语法

39、上完整,但还缺少输出。第72页/共434页 数据的输出数据的输出 用输出函数实现用输出函数实现,其中的两种输出函数:其中的两种输出函数:1.putchar 1.putchar 函数函数 (字符输出函数)(字符输出函数)用于输出一个字符。用于输出一个字符。如如:putchar(a);putchar(100);char c=b;putchar(c);第73页/共434页 例例:输出单词:输出单词BoyBoy的完整程序:的完整程序:#include“stdio.h”注意该语句的作用注意该语句的作用 main()char a,b,c;a=B;b=o;c=y;putchar(a);putchar(b);

40、putchar(c);第74页/共434页 2.printf2.printf函数函数(格式输出函数)(格式输出函数)任意类型、任意格式、任意个数。任意类型、任意格式、任意个数。例如:例如:int a=100,b=56;int a=100,b=56;printfprintf(“a=%d,b=%da=%d,b=%d”,a,ba,b););普通字符普通字符 格式说明格式说明 格式控制格式控制 输出表列输出表列输出结果:输出结果:a=100,b=56a=100,b=56“%”后后的的字字符符称称格格式式字字符符,不不同同格格式式字字符符对对应应不不同同的的数数据据类型。类型。第75页/共434页 d

41、d格式符:格式符:按整数格式输出按整数格式输出 几种用法:几种用法:%d%d 不指定宽度,按实际宽度输出不指定宽度,按实际宽度输出%md%md 按指定宽度输出,按指定宽度输出,m m为宽度为宽度%ld%ld 用于输出长整型数用于输出长整型数第76页/共434页 例:例:int a=125,b=453;int a=125,b=453;long c=65535;long c=65535;printf(printf(“a=%d,b=%5d,c=%lda=%d,b=%5d,c=%ld”,a,b,c);,a,b,c);输出结果:输出结果:a=125,b=453,c=65535a=125,b=453,c=

42、65535第77页/共434页%ld%ld也可以按指定宽度输出:也可以按指定宽度输出:printf(printf(“c=%8ldc=%8ld”,c);,c);输出结果:输出结果:c=65535c=65535注意:格式字符的类型要与对应的输出对象的类型一致。注意:格式字符的类型要与对应的输出对象的类型一致。第78页/共434页 c c格式符:格式符:用于输出字符用于输出字符 char c=char c=A A;printf(printf(“c=%c,%cc=%c,%c”,c,c,B B););输出结果输出结果:c=A,Bc=A,B 输出对象既可以是字符变量、字符常量,还可以是整型表达式。输出对象

43、既可以是字符变量、字符常量,还可以是整型表达式。第79页/共434页 如:如:int a=100;int a=100;char b=char b=A A;printf(printf(“n%d,%cn%d,%c”,a,a);,a,a);printf(printf(“n%c,%dn%c,%d”,b,b);,b,b);输出结果:输出结果:100,d100,d A,65 A,65第80页/共434页 s s格式符:格式符:用于输出字符串用于输出字符串%s%s 不指定宽度不指定宽度%-ms%-ms 指定宽度,左靠齐指定宽度,左靠齐%ms%ms 指定宽度,右靠齐指定宽度,右靠齐%m.ns%m.ns 指定宽

44、度指定宽度m m,只取左端,只取左端n n个字符,个字符,右靠齐右靠齐%-m.ns%-m.ns 指定宽度指定宽度m m,只取左端,只取左端n n个字符,个字符,左靠齐左靠齐第81页/共434页例:例:printf(printf(“1:%s1:%s”,”abcdabcd”););printf(printf(“2:%8s2:%8s”,”abcdabcd”););printf(printf(“3:%-8s3:%-8s”,”abcdabcd”););printf(printf(“4:%8.3s4:%8.3s”,”abcdabcd”););printf(printf(“5:%-8.3s5:%-8.3s”

45、,”abcdabcd”););1:abcd2:abcd3:abcd 4:abc5:abc 1:abcd2:abcd3:abcd 4:abc5:abc 第82页/共434页 f f格式符:格式符:按小数形式输出实数按小数形式输出实数%f%f 由系统指定宽度(由系统指定宽度(6 6位小数)位小数)%m.nf%m.nf 指定宽度指定宽度m m,小数位数,小数位数n n,右靠齐,右靠齐%-m.nf%-m.nf 指定宽度指定宽度m m,小数位数,小数位数n n,左靠齐,左靠齐 注意:宽度包括符号和小数点注意:宽度包括符号和小数点。第83页/共434页例:例:float a=3.141592654,b=1

46、4.326795,float a=3.141592654,b=14.326795,c=-125.2468;c=-125.2468;printf(printf(“na=%f,b=%8.3f,c=%-10.2fna=%f,b=%8.3f,c=%-10.2f”,a,b,c);,a,b,c);输出结果:输出结果:a=3.141592,b=14.326,c=-125.24a=3.141592,b=14.326,c=-125.24 第84页/共434页完整前面的程序:main()main()int x,y;int x,y;x=5;x=5;y=2*x*x+3*x-1;y=2*x*x+3*x-1;printf

47、(printf(“n y=%dn y=%d”,y);,y);第85页/共434页程序设计例:程序设计例:编写程序计算如图中的电流编写程序计算如图中的电流I I.假设假设 U=220,R1=30,R2=60,R3=45U=220,R1=30,R2=60,R3=45UIR1R2R3第86页/共434页算法设计算法设计:I=U/R1+U/R2+U/R3I=U/R1+U/R2+U/R3程序设计:程序设计:main()main()I=U/R1+U/R2+U/R3;I=U/R1+U/R2+U/R3;int U=220,R1=30,R2=60,R3=45;int U=220,R1=30,R2=60,R3=4

48、5;float I;float I;printf(printf(“n n I=%fI=%f”,I);,I);第87页/共434页正确的程序:正确的程序:main()main()int U=220,R1=30,R2=60,R3=45;int U=220,R1=30,R2=60,R3=45;float I;float I;I=I=(float)(float)U/R1+U/R1+(float)(float)U/R2+U/R2+(float)(float)U/R3;U/R3;printf(printf(“n I=%fn I=%f”,I);,I);第88页/共434页考虑通用考虑通用:main()mai

49、n()int U,R1,R2,R3;int U,R1,R2,R3;float I;float I;输入 U,R1,R2,R3U,R1,R2,R3 I=(float)U/R1+(float)U/R2+(float)U/R3;I=(float)U/R1+(float)U/R2+(float)U/R3;printf(printf(“n I=%fn I=%f”,I);,I);第89页/共434页 数据的输入数据的输入 getchargetchar函数(函数(字符输入字符输入)#include#include“stdio.hstdio.h”main()main()char c;char c;c=getc

50、har();c=getchar();等待键盘输入等待键盘输入 putchar(c);putchar(c);第90页/共434页scanf scanf 函数函数(格式输入)(格式输入)与与printfprintf函数相反。函数相反。用于输入若干任意类型的数据。用于输入若干任意类型的数据。scanfscanf(“%d%d%d%d%d%d”,&a,&b,&c&a,&b,&c););格式控制格式控制 地址列表地址列表第91页/共434页 scanfscanf(“%d%d%d%d%d%d”,&a,&b,&c&a,&b,&c););执行此函数时,等待从键盘输入三个整数给执行此函数时,等待从键盘输入三个整数

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 应用文书 > PPT文档

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁