C语言程序设计课堂课件ppt(第四版全套).pdf

上传人:君**** 文档编号:43628651 上传时间:2022-09-18 格式:PDF 页数:435 大小:975.42KB
返回 下载 相关 举报
C语言程序设计课堂课件ppt(第四版全套).pdf_第1页
第1页 / 共435页
C语言程序设计课堂课件ppt(第四版全套).pdf_第2页
第2页 / 共435页
点击查看更多>>
资源描述

《C语言程序设计课堂课件ppt(第四版全套).pdf》由会员分享,可在线阅读,更多相关《C语言程序设计课堂课件ppt(第四版全套).pdf(435页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、C C语语言言程程序序设设计计 课课程程安安排排讲讲授授课课时时:40实实习习课课时时:16使使用用教教材材:C程程序序设设计计(第第三三版版),谭谭浩浩强强实实习习教教材材:C语语言言课课程程设设计计与与学学习习指指导导,张张冬冬梅梅等等第第一一章章 计计算算机机语语言言与与C C语语言言概概述述1.1 1.1 计计算算机机语语言言概概念念 计计算算机机语语言言定定义义 计计算算机机能能够够识识别别和和接接受受的的语语言言。要要使使计计算算机机按按自自己己的的意意图图工工作作,必必须须使使用用计计算算机机所所能能接接受受、理理解解和和执执行行的的指指令令指指挥挥计计算算机机工工作作。计计算算

2、机机语语言言的的种种类类机机器器语语言言低低级级语语言言 汇汇编编语语言言(面面向向计计算算机机)BASIC入入门门语语言言F77科科学学计计算算高高级级语语言言Foxpro数数据据库库管管理理 (面面向向问问题题)C多多用用途途计算机语言机机器器语语言言 最最早早问问世世,用用二二进进制制代代码码构构成成指指令令。如如:100000 100000 (+)110000 110000(-)用用机机器器语语言言编编程程的的缺缺点点:繁繁琐琐、不不直直观观、不不易易调调试试。如如计计算算y=2xy=2x2 2+3x-1+3x-1需需要要七七八八条条指指令令。移移植植性性差差。依依赖赖于于计计算算机机

3、。汇汇编编语语言言 用用符符号号构构成成指指令令,如如:MOVMOV、ADDADD 用用汇汇编编语语言言编编程程:相相对对直直观观,但但仍仍繁繁琐琐,仍仍是是面面向向计计算算机机的的语语言言。汇汇编编语语言言是是计计算算机机间间接接接接受受的的语语言言高高级级语语言言与低级语言相比,有根本性的区别:是面向问题的语言。高级语言的一条指令(语句):y=2*x*x+3*x-1;对应于:y=2x2+3x-1 y=sin(x);对应于:y=sinx用用高高级级语语言言编编程程:直观、易懂、移植性好(不依赖于具体计算机)上机运行高级语言程序需经过编译:编译 执行 要上机完成一个计算问题,主要的任务就是用高

4、级语言编写出相应的源程序。即至少要学会一种计算机语言。高级语言源程序机器指令目的程序结果编译程序1.2 C1.2 C语语言言的的特特点点集高级语言和低级语言的优点于一身:能实现低级语言的大部分功能(如直接访问内存物理地址、进行位操作等)。图形功能强。运算符和数据结构丰富。语法限制不太严格,程序设计自由度大。生成目标代码质量高,程序执行效率高。1.3 1.3 简简单单的的C C程程序序介介绍绍 例1:main()main()主函数说明 程序框架 printf(printf(“abcdefabcdef”););函数体 语句 程序的功能是输出字符串:abcdef例2:求两数之和。main()inta

5、,b,c;aa=100;b=50;bc=a+b;cprintf(“nc=%d”,c);程序运行结果:c=150例例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);axbycz(两个函数组成)353555 总总结结上上例例可可知知:(1 1)C C程程序序由由函函数数构构成成。(2 2)函函数数由由两两部部分分组组成成:函函数数

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

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

8、骤:s i 使s=0 +使i=1 累加器 记数器 s+is i+1i 若i10转,否则转 输出s01123364105该算法通用,是好算法2.2 2.2 算算法法的的表表示示 算算法法需需要要有有统统一一的的表表示示方方法法 常常用用的的表表示示方方法法有有:自自然然语语言言 流流程程图图 结结构构化化流流程程图图 N-SN-S流流程程图图.1、自自然然语语言言对对于于计计算算 s=1+2+3+4+5+6+7+8+9+10s=1+2+3+4+5+6+7+8+9+10 用用自自然然语语言言表表示示为为:使使s=0s=0 (s s为为累累加加器器)使使i=1i=1 (i i为为计计数数器器)s+i

9、ss+is (累累加加求求和和公公式式)i+1ii+1i (计计数数器器加加1 1)若若i10i10转转,否否则则转转 输输出出s s的的值值 特点:通俗易懂、文字冗长、含义不大严格。2、流流程程图图 用流程图符号表示算法。常用的流程图符号 起止框 输入输出框 处理框 流程线 判断框 对于计算 s=1+2+3+4+5+6+7+8+9+10 用流程图表示为:s+i si+1 iS+i sS+i si10输出s0 s1 i直观形象,易于理解,次序清楚YN3、结结构构化化流流程程图图 传统的流程图有一个弊端:对流程线没有严格的限制,对于较复杂的算法可能会变成乱麻一般(BS型算法)。为克服这一弊端,提

10、出了由三个基本结构组成算法流程图的思想:结构化流程图 三个基本结构:顺序结构按固定顺序(从上到下或从左到右)执行的结构。ABab选择结构 根据条件P选择执行哪一个分支。成立不成立 pABab成立不成立例:计算 y=1/x 当x0时 y=10000 当x=0时 的算法流程图图:选择结构输入xX=0?10000y1/xy输出yYN循环结构 重复执行某些操作的结构。分为两种:当型循环和直到型循环。当型循环 直到型循环 P1AAP2aabbYYNN 可以看出,每个基本结构都只有一个入口和一个出口,因此,用三个基本结构构成的流程图不会象乱麻一般,用三个基本结构构成的流程图就成为结构化流程图,用结构化流程

11、图描述的算法称为结构化算法,相应的程序设计就称为结构化程序设计。观察前例:0 s1 iS+i si+1 ii10输出s顺序结构循环结构yn4N-SN-S流流程程图图N-S流程图的三个基本结构:ABP成立不成立ABAB当P1直到P2顺序结构选择结构循环结构例:计算y=1/x 当x0时 y=10000 当x=0时 的N-S流程图:输入xX=0?是否10000y1/xy输出y例:计算 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第第三三章章 数数据据类类型型、运运算算符符与与

12、 表表达达式式3.1 C 3.1 C 的的数数据据类类型型基本类型(整型、实实型型、字字符符型型、枚枚举举型型)构造类型(略)指针类型(略)空类型各类型包含常常量量与与变变量量 3.2 3.2 常常量量与与变变量量 常常量量与与符符号号常常量量 常常量量 在在程程序序运运行行过过程程中中其其值值保保持持不不变变的的量量。符符号号常常量量 用来代表一个常量的标识符。#define PI 3.1415926#define PI 3.1415926 例例:#define#define PIPI 3.1415926 3.1415926 main()main()float float r r=2,=2,

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

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

15、 x0 x开开头头的的整整数数,如如:0 x10,0 xff,0 x2a0 x10,0 xff,0 x2a等等。整整型型变变量量 用用于于存存放放整整数数的的变变量量。分分4 4种种类类型型:基基本本型型:int aint a 16 16位位,可可表表示示的的数数值值范范围围:-32768-327683276732767 短短整整型型:short int bshort int b 16 16位位,可可表表示示的的数数值值范范围围:-32768-327683276732767 长长整整型型:long int clong int c 32 32位位,数数值值范范围围:-2147483648-214

16、748364821474836472147483647 无无符符号号型型:加加上上 unsignedunsigned 只只存存放放正正数数。如如:unsigned int xunsigned int x 变变量量x x为为无无符符号号整整数数,1616位位全全表表示示数数码码,数数值值范范围围:0 06553565535 在在程程序序设设计计中中,如如果果要要使使用用整整型型变变量量,必必须须首首先先选选择择以以上上类类型型符符来来定定义义变变量量,然然后后才才能能使使用用;例例:main()main()定定义义 int a,b,c;int a,b,c;a=100;b=50;a=100;b=5

17、0;使使用用 c=a+b;c=a+b;printf(printf(“%d%d”,c);,c);一一般般根根据据什什么么原原则则选选择择变变量量的的类类型型?3.4 3.4 实实型型数数据据 实实型型常常量量 可可使使用用两两种种形形式式表表示示:小小数数形形式式:如如 1.23,3.1415926 15.481.23,3.1415926 15.48 指指数数形形式式:如如 1e-20 1.23e5 1e-20 1.23e5 实实型型变变量量 用用于于存存放放实实数数的的变变量量 分分单单精精度度和和双双精精度度两两种种:float a,bfloat a,b 定定义义a a和和b b为为单单精精

18、度度型型变变量量 3232位位,7 7位位有有效效数数字字,1010-38-3810103838 double x,ydouble x,y 定定义义x x和和y y为为双双精精度度型型变变量量 6464位位,1515位位有有效效数数字字,1010-308-3081010308308 例例:main()main()float r,c;float 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);3.5 3.5 字字符符型型数数据据 字字符符常常量量 用用单单引

19、引号号括括起起来来的的一一个个字字符符。a a,x x,*,1 1等等 除除此此外外,以以 开开头头的的字字符符如如nn,tt等等 称称为为转转义义字字符符,祥祥见见书书表表3.33.3 字字符符型型变变量量 用用于于存存放放字字符符的的变变量量。char c1,c2 char c1,c2 定定义义c1c1和和c2c2为为字字符符型型变变量量 c1=c1=a a;c2=;c2=b b;字字符符赋赋值值 字字符符型型变变量量存存放放一一个个字字符符,占占据据一一个个字字节节 字字符符型型数数据据的的存存储储形形式式 存放ASCII码 不是 而是 如如字字符符a a在在内内存存中中存存放放9797

20、,b b 存存放放9898。与与整整数数的的存存储储形形式式一一致致,它它们们之之间间可可以以通通用用 一一个个字字符符数数据据既既可可以以作作字字符符用用,也也可可以以作作整整数数用用(取取其其ASCIIASCII代代码码)。如如:32+32+a a相相当当于于 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 字字符符串串常常量量 用用双双引引号号括括起起来来的的字字符符序序列列。如如:”abcdeabcde”,”chinachina”a a”也也属属字字符符串

21、串。注注意意”a a”与与a a的的区区别别。对对于于:char c;char c;c=c=”a a”;用用法法错错误误 字字符符串串中中每每个个字字符符各各占占一一个个字字节节,并并且且在在字字符符串串结结尾尾加加上上一一个个结结束束标标记记00 如如:”chinachina”在在内内存存中中占占6 6个个字字节节。c h i n a 0 C C语语言言中中专专门门的的字字符符串串变变量量,可可用用字字符符数数组组存存放放(以以后后介介绍绍)。3.6 3.6 变变量量赋赋初初值值 在在定定义义变变量量的的同同时时给给相相应应的的变变量量赋赋初初值值。如如:int a=3;int a=3;a

22、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;效效果果:在在给给变变量量分分配配内内存存单单元元的的同同时时在在相相应应的的单单 元元中中存存放放初初值值。3 3.7 3.7 各各数数值值型型数数据据间间的的混混合合运运算算 整整型型、实实型型、字字符符型型数数据据间间可可以以进进行行混混合合运运算算,如如:10-10-a a*1.5*1.5 运运算算时时,参参加加运运算算的的两两个个数数据据如如果果类类型型不不同同,则则首首先先将将其其类类型型转转换换成成一一致致再再运运算算,转转换换规规则则是是:将将

23、优优先先级级低低的的类类型型转转换换到到优优先先级级高高的的类类型型 数数据据类类型型的的优优先先级级:高高 double floatdouble float long long unsignde unsignde 低低 int charint char 3.8 3.8 算算术术运运算算符符与与算算术术表表达达式式 基基本本的的算算术术运运算算符符 +-*/%算算术术表表达达式式 用用算算术术运运算算符符将将运运算算对对象象连连接接起起来来的的式式子子 用用于于表表达达数数学学公公式式的的式式子子 如如:2*x+y-1/a2*x+y-1/a 表表达达式式经经过过运运算算最最终终得得到到一一个个

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

25、+c b b与与-结结合合是是从从左左到到右右,称称“左左结结合合性性”。b b与与+结结合合是是从从右右到到左左,称称“右右结结合合性性”。每每个个运运算算符符都都有有相相应应的的优优先先级级和和结结合合性性。基基本本算算术术运运算算符符都都是是左左结结合合性性。计计算算表表达达式式例例: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)/

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

27、(a*b)/100;自自增增、自自减减运运算算符符 自自增增运运算算符符:+使使变变量量值值加加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=?注注意意:+和和-只只能能用用于于变变量量。如如:3+3+和和(a+1a+1)+不不合合法法+和和-为为右右结结合合性性。(-i)+(-i)+-i

28、+-i+-(i+)-(i+)若若i i的的原原值值是是5 5,则则该该表表达达式式的的值值是是多多少少?例例:分分析析执执行行下下列列语语句句后后的的结结果果: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 两两种种特特殊殊情情况况:k=(i+)+(i+)+(i+)k=(i+)+(i+)+(i+)i+j i+j 是是 i+(+j)i+(+j)还还是是 (i+)+j(i+)+j?i+i+虽虽然然与与i=i+1i=i+1等等效效,但但使使用用自自增增自自减减运运

29、算算符符的的代代码码优优化化程程度度好好,因因而而经经常常使使用用;但但用用时时需需特特别别小小心心。3.9 3.9 赋赋值值运运算算符符和和赋赋值值表表达达式式 赋赋值值运运算算符符 “=”称称赋赋值值运运算算符符,其其作作用用是是将将一一个个数数据据赋赋给给一一个个变变量量。如如:a=5a=5 不不要要理理解解为为“等等号号”。执执行行赋赋值值运运算算的的结结果果,是是将将右右边边的的数数据据存存入入左左边边变变量量所所对对应应的的内内存存单单元元中中。赋赋值值规规则则 如如果果赋赋值值运运算算符符两两侧侧的的类类型型不不一一致致,则则在在赋赋值值时时要要进进行行类类型型转转换换,转转换换

30、规规则则为为:实实型型整整变变量量 舍舍去去小小数数部部分分。int a=5.5;aint a=5.5;a中中为为5 5。整整型型实实变变量量 数数值值不不变变,以以浮浮点点形形式式存存储储。字字符符型型整整变变量量 放放在在整整形形变变量量低低8 8位位。保保持持原原值值不不变变原原则则。int a=int a=A A;复复合合赋赋值值运运算算符符 在在赋赋值值运运算算符符前前加加上上其其它它运运算算符符,可可以以构构成成复复合合赋赋值值运运算算符符。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

31、*(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)属属于于高高效效率率运运算算符符。赋赋值值表表达达式式 主主要要实实现现赋赋值值运运算算的的表表达达式式。一一般般形形式式:=如如:a=5 y=2*x+3 a=a+1a=5 y=2*x+3 a=a+1 不不是是衡衡等等作作用用:将将右右边边表表达达式式的的值值赋赋给给左左边边的的变变量量。赋赋值值表表达达式式的的值值取取左左边边变变量量的的值值。赋赋值值表表达达式式右右边边的的 可可以以是是任任何何表表达达式式,如如:a=(b=5)a=(

32、b=5)赋赋值值表表达达式式中中包包含含赋赋值值表表达达式式 赋赋值值运运算算符符的的优优先先级级低低于于所所有有算算术术运运算算符符,且且是是右右结结合合性性。a=(b=5)a=(b=5)与与 a=b=5a=b=5 等等效效。例例:计计算算以以下下表表达达式式的的值值: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)赋赋值值表表达达式式

33、是是C C语语言言中中的的一一个个重重要要成成分分,在在赋赋值值表表达达式式后后加加一一分分号号就就成成为为常常用用的的赋赋值值语语句句。如如 y=2*x+1;y=2*x+1;赋赋值值表表达达式式作作为为表表达达式式的的一一种种,可可以以出出现现在在任任何何表表达达式式中中,如如:x+2-(b/3-(x+2-(b/3-(a=k-5a=k-5)+)+b b 3.10 3.10 逗逗号号表表达达式式 逗逗号号也也是是一一种种运运算算符符,用用它它对对两两个个表表达达式式实实现现连连接接运运算算。3+5,6+8 3+5,6+8 称称逗逗号号表表达达式式。逗逗号号表表达达式式的的一一般般形形式式:表表

34、达达式式1 1,表表达达式式2 2 取取表表达达式式2 2的的值值作作为为整整个个逗逗号号表表达达式式的的值值。如如:a=3*5,a*4a=3*5,a*4 逗逗号号表表达达式式的的值值为为:6060 一一个个逗逗号号表表达达式式又又可可以以与与另另一一个个表表达达式式组组成成一一个个新新的的逗逗号号表表达达式式,如如:(a=3*5,a*4),a+5(a=3*5,a*4),a+5 因因此此,逗逗号号表表达达式式的的一一般般形形式式可可以以扩扩展展为为:表表达达式式1 1,表表达达式式2 2,表表达达式式3 3,,表表达达式式n n 取取表表达达式式n n的的值值作作为为整整个个逗逗号号表表达达式

35、式的的值值。逗逗号号运运算算符符的的优优先先级级最最低低,且且是是左左结结合合性性。逗逗号号运运算算符符只只起起到到连连接接作作用用,没没有有实实际际操操作作。第第四四章章 最最简简单单的的C C程程序序设设计计 C C 程程序序最最基基本本的的成成分分是是语语句句 目目前前我我们们已已掌掌握握的的语语句句:变变量量说说明明语语句句:int a,b,c;int a,b,c;表表达达式式语语句句:x+y;x+y;特特别别地地:a=5;a=5;赋赋值值语语句句 可可以以编编写写简简单单程程序序如如:main()main()int x,y;int x,y;x=5;x=5;y=2*x*x+3*x-1;

36、y=2*x*x+3*x-1;该该程程序序语语法法上上完完整整,但但还还缺缺少少输输出出。数数据据的的输输出出 用用输输出出函函数数实实现现,其其中中的的两两种种输输出出函函数数:1.putchar 1.putchar 函函数数 (字字符符输输出出函函数数)用用于于输输出出一一个个字字符符。如如:putchar(a);putchar(100);char c=b;putchar(c);例例:输输出出单单词词BoyBoy的的完完整整程程序序:#include“stdio.h”注注意意该该语语句句的的作作用用 main()char a,b,c;a=B;b=o;c=y;putchar(a);putcha

37、r(b);putchar(c);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“%”后后的的字字符符称称格格式式字字符符,不不同同格格式式字字符符对对应应不不同同的的数数据据类类型型。d d格格式式符符:按按整整数数格格式式输输出出 几几

38、种种用用法法:%d%d 不不指指定定宽宽度度,按按实实际际宽宽度度输输出出%md%md 按按指指定定宽宽度度输输出出,m m为为宽宽度度%ld%ld 用用于于输输出出长长整整型型数数 例例: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=65535%ld%ld也也可可以以按按指指定定宽宽度度输输出出:printf(pr

39、intf(“c=%8ldc=%8ld”,c);,c);输输出出结结果果:c=65535c=65535注注意意:格格式式字字符符的的类类型型要要与与对对应应的的输输出出对对象象的的类类型型一一致致。c c格格式式符符:用用于于输输出出字字符符 char c=char c=A A;printf(printf(“c=%c,%cc=%c,%c”,c,c,B B););输输出出结结果果:c=A,Bc=A,B 输输出出对对象象既既可可以以是是字字符符变变量量、字字符符常常量量,还还可可以以是是整整型型表表达达式式。如如:int a=100;int a=100;char b=char b=A A;print

40、f(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 s s格格式式符符:用用于于输输出出字字符符串串%s%s 不不指指定定宽宽度度%-ms%-ms 指指定定宽宽度度,左左靠靠齐齐%ms%ms 指指定定宽宽度度,右右靠靠齐齐%m.ns%m.ns 指指定定宽宽度度m m,只只取取左左端端n n个个字字符符,右右靠靠齐齐%-m.ns%-m.ns 指指定定宽宽度度m m,只只取取左左端端n n个个字字符符,左左靠靠齐齐例例:printf(prin

41、tf(“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”,”abcdabcd”););1:abcd2:abcd3:abcd 4:abc5:abc 1:abcd2:abcd3:abcd 4:abc5:abc f f格格式式符符:按按小小数数形形式式输输出出实实数数%f%f 由由系

42、系统统指指定定宽宽度度(6 6位位小小数数)%m.nf%m.nf 指指定定宽宽度度m m,小小数数位位数数n n,右右靠靠齐齐%-m.nf%-m.nf 指指定定宽宽度度m m,小小数数位位数数n n,左左靠靠齐齐 注注意意:宽宽度度包包括括符符号号和和小小数数点点。例例:float a=3.141592654,b=14.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

43、);输输出出结结果果:a=3.141592,b=14.326,c=-125.24a=3.141592,b=14.326,c=-125.24 完完整整前前面面的的程程序序: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(printf(“n y=%dn y=%d”,y);,y);程程序序设设计计例例:编编写写程程序序计计算算如如图图中中的的电电流流I I.假假设设 U=220,R1=30,R2=60,R3=45U=220,R1=30,R2=60,R3=45UIR1R2R3算算法法设设计计:I=U/R1+U

44、/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=45;float I;float I;printf(printf(“n I=%fn I=%f”,I);,I);正正确确的的程程序序: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)

45、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);考考虑虑通通用用:main()main()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);数

46、数据据的的输输入入 getchargetchar函函数数(字字符符输输入入)#include#include“stdio.hstdio.h”main()main()char c;char c;c=getchar();c=getchar();等等待待键键盘盘输输入入 putchar(c);putchar(c);scanf scanf 函函数数(格式输入)与与printfprintf函函数数相相反反。用用于于输输入入若若干干任任意意类类型型的的数数据据。scanfscanf(“%d%d%d%d%d%d”,&a,&b,&c&a,&b,&c););格格式式控控制制 地地址址列列表表 scanfscan

47、f(“%d%d%d%d%d%d”,&a,&b,&c&a,&b,&c););执执行行此此函函数数时时,等等待待从从键键盘盘输输入入三三个个整整数数给给a,b,ca,b,c 若若从从键键盘盘输输入入 3 5 83 5 8 则则系系统统即即从从键键盘盘缓缓冲冲区区取取出出这这三三个个数数分分别别赋赋给给a,b,ca,b,c 注注意意与与printfprintf的的区区别别,注注意意格格式式的的匹匹配配如如:scanf(scanf(“%3d%2d%4d%3d%2d%4d”,&a,&b,&c);,&a,&b,&c);若若从从键键盘盘输输入入123456789123456789 a=123,b=45,c=

48、6789 a=123,b=45,c=6789 若若想想使使a=12,b=5,c=100a=12,b=5,c=100 则则键键盘盘输输入入应应为为:12 5 10012 5 100 方方便便的的输输入入格格式式一一般般不不 指指定定宽宽度度,如如:scanf(scanf(“%d%d%d%d%d%d”,&a,&b,&c);,&a,&b,&c);在在键键盘盘输输入入时时,用用分分隔隔符符把把每每个个数数据据隔隔开开,标标准准的的分分隔隔符符是是空空格格。如如:123 150 23123 150 23 若若想想用用逗逗号号作作分分隔隔符符,则则:scanf(scanf(“%d%d,%d%d,%d%d”

49、,&a,&b,&c);,&a,&b,&c);不不要要随随便便使使用用普普通通字字符符,如如使使用用:scanf(scanf(“a=%da=%d,b=%d c=%db=%d c=%d”,&a,&b,&c),&a,&b,&c)对对应应数数据据输输入入:a=123,b=150,c=23a=123,b=150,c=23 前前面面的的欧欧姆姆定定律律:main()main()int U,R1,R2,R3;int U,R1,R2,R3;float I;float I;scanf(scanf(“%d%d%d%d%d%d%d%d”,&U,&R1,&R2,&R3);,&U,&R1,&R2,&R3);I=(flo

50、at)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);求求三三角角形形面面积积#include“math.h”main()floata,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(“narea=%f”,area);使使用用数数学学函函数数使使用用三三角角函函数数#include“math.h”main(

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

当前位置:首页 > 教育专区 > 高考资料

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

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