1、Dos2022-10-7*教学内容:教学内容:1.程序的语句概况及三种基本程序的语句概况及三种基本 (结构化程序设计)的概念结构化程序设计)的概念;2.几种简单语句几种简单语句,(赋值语句、表达式语句、空语句、复合语句)。(赋值语句、表达式语句、空语句、复合语句)。3.简单数据输入简单数据输入/输出函数的使用输出函数的使用;4.简单的程序设计简单的程序设计;*教学目的:教学目的:1.了解了解 C 语句的概况语句的概况、三种基本结构的概念、三种基本结构的概念;(框图及框图及N-S 图图)2.熟练三种基本语句熟练三种基本语句:表达式语句、空语句、复合语句表达式语句、空语句、复合语句;3.掌握简单掌
2、握简单 I/O 函数的用法函数的用法 (putchar、printf、getchar、scanf );4.掌握简单的程序设计掌握简单的程序设计;5.简单了解简单了解#include 用法用法;*课外安排课外安排:1.书面作业:书面作业:P46 3.2、3.10;2.课堂作业:课堂作业:P46 3.5、3.7;3.课外作业:课外作业:上机上机P46 3.4、3.6;自习自习P150 文件包含文件包含 处理;处理;4.上机作业:上机作业:P168 实验三实验三;第三章第三章 最简单的最简单的C程序设计程序设计*新课引入新课引入:程序的两大部分程序的两大部分,现在学习第二部分现在学习第二部分,如何如
3、何 对数据进行操作对数据进行操作;另外编程的主要目另外编程的主要目的就是要得结果的就是要得结果,故一个完整程序必定要包含有输出语句来输出结果故一个完整程序必定要包含有输出语句来输出结果,而另一方面而另一方面,每次都是求同一问题每次都是求同一问题,不改变原始数据不改变原始数据,则总是得到相同结果则总是得到相同结果,程序也失去意义程序也失去意义,故故一个完整有用的程序一个完整有用的程序,必定要输入各种已知数据必定要输入各种已知数据,也就必定要有输入语句。也就必定要有输入语句。在这一章里在这一章里,我们主要是来学我们主要是来学 习四习四 个个 I/O 函数的用法。函数的用法。同时了解和掌握一些编程方
4、法同时了解和掌握一些编程方法 和手段和手段(语句的使用语句的使用!)。Dos2022-10-7一、一、C语句概述语句概述:1.C程序组成程序组成C程程序序(1)可由多个源程序文件组成;可由多个源程序文件组成;(2)每个源程序文件又由多个函数和每个源程序文件又由多个函数和 预编译命令组成;预编译命令组成;如:如:#define、#include(3)每个函数由数据定义部分和执行语句组成;每个函数由数据定义部分和执行语句组成;必定有一个,并且只有一个主函数必定有一个,并且只有一个主函数mainDos2022-10-7 (4)空语句:空语句:单个分号单个分号,前面无任何表达式或控制语句。前面无任何表
5、达式或控制语句。例如:例如:i+;空语句不影响任何变量也不做任何事;空语句不影响任何变量也不做任何事;用于:用于:作被转向点;作被转向点;构成一个完整结构构成一个完整结构,但内嵌语句又无需做任何工作;但内嵌语句又无需做任何工作;2.C语句分类语句分类:(五大类五大类)(1)九种控制语句九种控制语句:完成一定的控制功能完成一定的控制功能:(2)函数调用语句函数调用语句:如如:printf(This is a C programn)(3)表达式语句表达式语句:上一章所学的所有表达式,(包括函数调用)在表达式上一章所学的所有表达式,(包括函数调用)在表达式 子的末尾加上一个分号就变成了语句。子的末尾
6、加上一个分号就变成了语句。(5)用花括号用花括号 将多个或零个语句括起就称为将多个或零个语句括起就称为复合语句;复合语句;形如形如 ;;或或 分号不可省略分号不可省略另外:在复合语句中另外:在复合语句中,前面还可包含局部变量的定义前面还可包含局部变量的定义(说明说明)如:如:i+;x+y;a=3;a+=b=c=5;赋值语句赋值语句Dos2022-10-7九种控制语句九种控制语句:if ()else 条件语句条件语句 for()for 循环语句循环语句 while()当型循环语句当型循环语句 do while()直到型循环语句直到型循环语句 continue 结束本次循环语句结束本次循环语句 b
7、reak 中止执行中止执行switch 或循环语句或循环语句 switch 多分支选择语句多分支选择语句 goto 转向语句转向语句 return 函数返回函数返回()中是一个条件表示内嵌的语句中是一个条件表示内嵌的语句Dos2022-10-7 二、程序的三种基本结构二、程序的三种基本结构:.顺序结构:顺序结构:设设s1、s2都是顺序结构,执行完语句都是顺序结构,执行完语句s1后,执行位于后,执行位于s1之后之后的语句的语句s2。控控制制流流程程图图入口入口S1S2出口出口NS结构化流程图结构化流程图S1S2顺序、选择及循环结构顺序、选择及循环结构Dos2022-10-7 .选择结构:选择结构
8、:如果逻辑表达式如果逻辑表达式E为真为真T则执行则执行s1否则执行否则执行s2入口入口s1Es2出口出口T E FS1 S2TF控控制制流流程程图图N-S结构化流程图结构化流程图Dos2022-10-7 若若E为真为真T 则执行则执行s1 否则按序执行否则按序执行控控制制流流程程图图ES1入口入口出口出口FTN-S结构化流程图结构化流程图T E FS1 Dos2022-10-7 多分支多分支:if 语句和语句和 switch 语句语句 e1 S1 e2 S2 e3 S3 e en sn en+1 Sn+1 N-S结构化流程图结构化流程图控控制制流流程程图图出口出口入口入口Sn+1eS1S2Sn
9、e1e2e3enen+1Dos2022-10-7.循环结构:循环结构:()当型结构:()当型结构:先判断,后执行先判断,后执行;控控制制流流程程图图出口出口SE入口入口FTN-S结构化流程图结构化流程图当当E为真为真 SDos2022-10-7()直到型:()直到型:先执行,后判断先执行,后判断;SE入口入口出口出口TF S 直到直到E为真为真控控制制流流程程图图N-S结构化流程图结构化流程图.循环结构:循环结构:()当型结构:()当型结构:先判断,后执行先判断,后执行;Dos2022-10-7 在画框图时,不限于用何种语言,也可用人的自然语在画框图时,不限于用何种语言,也可用人的自然语言言,
10、或其它的形象表示或其它的形象表示TAABA0如如:YESNOABYES A0 NO TA 或或T=AA=BA0?或或:AB A0 TA 或或注意:注意:此时必须将赋值式此时必须将赋值式AB提出作为单独赋值语句否则无法表达!提出作为单独赋值语句否则无法表达!另外,还另外,还可用人的可用人的自然语言自然语言描述如右描述如右:(1)将)将 B 的值的值 赋给赋给 A;(2)若)若 A 大于大于 0 则则(3)否则否则(4);(3)将)将 A 的值的值 赋给赋给 T;(4);Dos2022-10-7()语句形如:()语句形如:putchar(C);其中其中C是字符或整型数据。是字符或整型数据。.put
11、char(字符输出函数):(字符输出函数):三、数据输出:三、数据输出:两个以显示器为隐含输出设备两个以显示器为隐含输出设备 的最基本(标准)输出函数的最基本(标准)输出函数AAA()另外:在使用该函数之前必须有()另外:在使用该函数之前必须有#include stdio.h或或#include ()例如()例如:#includestdio.h注意小写字母注意小写字母 main()char a,b,c;a=A;b=0101;c=0 x41;putchar(a);putchar(b);putchar(c);putchar(015);执行程序将在屏幕上显示:执行程序将在屏幕上显示:?Dos2022
12、-10-7.printf (格式输出函数)(格式输出函数)按指定格式,一次输出多个值!按指定格式,一次输出多个值!()格式说明:用及后跟格式字符序列来指明该处将显()格式说明:用及后跟格式字符序列来指明该处将显示的值的形式示的值的形式()一般格式(语法):()一般格式(语法):printf(格式控制,输出表列)(格式控制,输出表列)()格式控制:用双引号括起的转换控制字符串;()格式控制:用双引号括起的转换控制字符串;内含说明输出格式转换的格式说明;以及普通字符;内含说明输出格式转换的格式说明;以及普通字符;()格式字符:与对应的参数项的值的类型有关,必须一()格式字符:与对应的参数项的值的类
13、型有关,必须一致,并且一一对应。致,并且一一对应。Dos2022-10-7 整数:(整型):整数:(整型):d、o、x、umd:m无符号整数,指明域宽,即外部形式应占几位无符号整数,指明域宽,即外部形式应占几位;若实若实 际位数不小于际位数不小于m则等同于则等同于d否则在左边用空格补足否则在左边用空格补足m位;位;如:如:inta=123;printf(%d,%2d,%3d,%5dn,a,a,a,a);则结果显示:则结果显示:123,123,123,_ _123。ld及及mld:类似于上述两个,用于类似于上述两个,用于long int类型的数据,类型的数据,在之后加上负号:向左靠齐,右补空!在
14、之后加上负号:向左靠齐,右补空!o、x、u的格式,用法与的格式,用法与d类似,不同在于输出时无符号并类似,不同在于输出时无符号并 且是不同进制;且是不同进制;例:例:int a;unsigned b;b=a=1;printf(%o,%x,%d,%un,a,a,a,a);显示:显示:177777,ffff,-1,65535 d:按输出项值的实际位数,有几位输出几位;按输出项值的实际位数,有几位输出几位;d:有符号,十进制:有符号,十进制o:无符号,八进制:无符号,八进制x:无符号,十六进制:无符号,十六进制u:无符号,十进制:无符号,十进制Dos2022-10-7例如:例如:main()int
15、i;char a;a=A ;i=65;printf (“%c,%d n”,a,a);printf(“%c,%dn”,i,i);两者结果都相同,均为:两者结果都相同,均为:A,65 另外:另外:mc,%-mc在左边(或右边)补在左边(或右边)补 m-1 个空格个空格 一般格式:一般格式:m.ns n无符号整数,指明截取输出串左端的位数;无符号整数,指明截取输出串左端的位数;printf(%s,%4s,%4.2s,%-4.2s,%2s n,123,45,4567,4567,123);结果显示:结果显示:123,_ _45,_ _45,45_ _,123 实际串长不包括双引号及内存中的串尾结标志实际
16、串长不包括双引号及内存中的串尾结标志0 字符:字符:字符串:字符串:c单个字符,对应字符型或值域为单个字符,对应字符型或值域为0,255的整型即当成的整型即当成ASCII对应字符串型常量,或字符数组首址,并且存有字符串;对应字符串型常量,或字符数组首址,并且存有字符串;Dos2022-10-7%-m.nf:m总域宽,总域宽,n小数位数(不包括小数点)小数位数(不包括小数点)省略为省略为6 负号:右补空负号:右补空 注意:格式字符必须是小写,并且以注意:格式字符必须是小写,并且以%引导,与变量名无关!格式控制中引导,与变量名无关!格式控制中 可夹任可夹任 意可见字符或转义字符意可见字符或转义字符
17、 控制符。控制符。小心输出项类型与格式说明的要配对。小心输出项类型与格式说明的要配对。实数(型):实数(型):f(小数形式小数形式)e(指数形式指数形式)g(自适应形式自适应形式)%f:系统自定义域宽整数部分全部满足;小数部分系统自定义域宽整数部分全部满足;小数部分6位位,float有有7位有效,位有效,double有有16位有效位有效。%g:自动选取自动选取%f 和和%e;不输出无意义的零;不输出无意义的零(用空格代替用空格代替)。例例:main()float x,y;x=111111.111;y=222222.222;printf(%f,x+y);结果显示:结果显示:333333.3281
18、25%e:指数形式;指数形式;例:例:float f;f=123.456;printf(%f,%e,%g,f,f,f);显示结果为:显示结果为:123.456000,1.234560e+002,123.456 _ _ _Dos2022-10-7 四、数据输入:四、数据输入:两个以终端为隐含输入设备的两个以终端为隐含输入设备的 最基本(标准)输入函数。最基本(标准)输入函数。.getchar():返回值为单个字符;返回值为单个字符;()该字符是执行到本语句时,从键盘输入的;()该字符是执行到本语句时,从键盘输入的;()必需按(回车)即()必需按(回车)即(Enter)或()或(Return)键,
19、才接收!)键,才接收!()例:()例:main char c;c=getchar();putchar(c);()前面必须()前面必须#include ”stdio.h 同同putchar类似类似Dos2022-10-7()格式字符:()格式字符:d、o、x、u、c、s、f、e、g(e、g与与f同同).scanf函数(格式输入函数)函数(格式输入函数)整型整型d:十进制十进制o:八进制八进制x:十六进制十六进制c:单个字符:单个字符:键入的数据,按不同进制进行解释转换键入的数据,按不同进制进行解释转换/*键入时无需用单引号括起键入时无需用单引号括起*/字符串字符串s:键入时,用空白字符作为起止标
20、志,而不用双引号键入时,用空白字符作为起止标志,而不用双引号 括起!括起!录入的字符串送入一字符数组中,并以录入的字符串送入一字符数组中,并以0作结束标志。作结束标志。f和和e、g等价:等价:用于接收实数,可以是键入小数或指数形式的数。用于接收实数,可以是键入小数或指数形式的数。()一般形式:()一般形式:scanf(格式控制,地址表列)(格式控制,地址表列)地址表列:必须是地址;与地址表列:必须是地址;与printf中的有本质的区别!中的有本质的区别!格式控制:与格式控制:与printf 中的含义相同,但内容有区别中的含义相同,但内容有区别。Dos2022-10-7()附加的格式说明符:()
21、附加的格式说明符:l 用于输入长整型或双精度用于输入长整型或双精度double写成写成%ld、%lo、%lx 或或%lf、%le;h(与(与l相应):用于输入短整型相应):用于输入短整型%hd、%ho、%hx m域宽:指明从键盘实际读入的字符个数域宽:指明从键盘实际读入的字符个数 如果如果%后有一个后有一个”*”,则表示跳过它指定的列数,则表示跳过它指定的列数 ()注意点:()注意点:指定域宽时,键入时就可不要分隔符,按指定域宽时,键入时就可不要分隔符,按 个数读个数读 键入数据可用一个或多个空格、键入数据可用一个或多个空格、Tab、回车键分隔;、回车键分隔;当含有其它普通字符时,则键入时必须
22、一一对应完全相同;当含有其它普通字符时,则键入时必须一一对应完全相同;对应项必须是地址;目前必须在变量名前加对应项必须是地址;目前必须在变量名前加&取地址运算符;取地址运算符;Dos2022-10-7scanf (%d%d%d ,&a,&b,&c);键入键入3 _ 4 _ 5scanf (%3d%3d ,&a,&b);键入键入 123 456 7scanf (%2d%3d,&a,&b)键入键入12345678不能写成不能写成scanf(%7.2f ,&x);scanf (%d,%d ,&a,&b)则必须用逗号分隔两个数据则必须用逗号分隔两个数据scanf (%c%c%c ,&c1,&c2,&c
23、3);scanf (“%2d%*3d%2d”,&a,&b);键入键入 12 _ 345 _ 67,则则a=12,b=67()例子:()例子:Dos2022-10-7 五、简单程序设计方法:五、简单程序设计方法:.几个步骤:几个步骤:()审题;()审题;()列出已知各未知想求的项;()列出已知各未知想求的项;()写出对应的公式;()写出对应的公式;()设想手工解题步骤;()设想手工解题步骤;()将其转化成框图;()将其转化成框图;()用语言实现(编程);()用语言实现(编程);()自我阅读,设计录入数据的格式及设想数据输出()自我阅读,设计录入数据的格式及设想数据输出的样式,并写出!的样式,并写
24、出!()上机验证你的设想是否正确;()上机验证你的设想是否正确;Dos2022-10-7 .例如:求输入三角形的三边长,求三角形面积。例如:求输入三角形的三边长,求三角形面积。()已知:三角形三边长,设为()已知:三角形三边长,设为a、b、c录入项录入项()求:三角形的面积:认为()求:三角形的面积:认为area输出项输出项()数学公式:海伦公式,半周长()数学公式:海伦公式,半周长s=(a+b+c)/;面积面积()算法思路及框图:()算法思路及框图:读入三角形三边长读入三角形三边长a、b、c求半周长求半周长s=.求面积求面积 are a=.(输出输出)写三条边长写三条边长a、b、c写面积写面
25、积 are a c)-b)(s-a)(s-(s sarea Dos2022-10-7 ()结果显示:)结果显示:a_ _ _ 3.00,b=_ _ _ 4.00,c_ _ _5.00 area_ _ _6.00#include math.h main()float a,b,c,s,area;scanf(%f,%f,%f ,&a,&b,&c);s=(a+b+c)/2.0;同一水平线同一水平线 area=sqrt(s*(s-a)*(s-b)*(s-c);printf(a=%7.2f,_ b=%7.2f,c=%7.2f n ,a,b,c);printf(area=%7.2f n ,area);()源
26、程序:()源程序:()键入,()键入,()上机调试(验证)()上机调试(验证)Dos2022-10-7.切记:一个完整的程序,必定有录入和输出!Dos2022-10-7*教学内容:教学内容:1.程序的语句概况及三种基本程序的语句概况及三种基本 (结构化程序设计)的概念结构化程序设计)的概念;2.几种简单语句几种简单语句,(赋值语句、表达式语句、空语句、复合语句)。(赋值语句、表达式语句、空语句、复合语句)。3.简单数据输入简单数据输入/输出函数的使用输出函数的使用;4.简单的程序设计简单的程序设计;*教学目的:教学目的:1.了解了解C语句的概况语句的概况、三种基本结构的概念、三种基本结构的概念
27、;(框图及框图及N-S图图)2.熟练三种基本语句熟练三种基本语句(表达式语句、空语句、复合语句表达式语句、空语句、复合语句);3.掌握简单掌握简单I/O函数的用法函数的用法 (putchar、printf、getchar、scanf);4.掌握简单的程序设计掌握简单的程序设计;5.简单了解简单了解#include 用法用法;*课外安排课外安排:1.书面作业:书面作业:P46 3.2、3.10;2.课堂作业:课堂作业:P46 3.5、3.7;3.课外作业:课外作业:上机上机P46 3.4、3.6;自习自习P150 文件包含文件包含 处理;处理;4.上机作业:上机作业:P168 实验三实验三;第三章第三章 最简单的最简单的C程序设计程序设计