1、2019年6月4日星期二1时32分2秒,第三章 最简单的C程序设计,第三章 最简单的C程序设计,2019年6月4日星期二1时32分2秒,一、C语句概述:,1. C程序组成,必定有一个,并且只有一个主函数main,2019年6月4日星期二1时32分2秒,2. C语句分类: (五大类),(1) 九种控制语句: 完成一定的控制功能:,(2) 函数调用语句: 如:printf (“This is a C programn “),(3) 表达式语句: 上一章所学的所有表达式,(包括函数调用)在表达式 子的末尾加上一个分号就变成了语句。,2019年6月4日星期二1时32分2秒,(4) 空语句:单个分号,
2、前面无任何表达式或控制语句。 例如:i+ ; ; 空语句不影响任何变量也不做任何事; 用于:作被转向点;构成一个完整结构, 但内嵌语句又无需做任何工作;,2. C语句分类: (五大类),(5) 用花括号 将多个或零个语句括起就称为复合语句;,另外:在复合语句中, 前面还可包含局部变量的定义(说明),2019年6月4日星期二1时32分2秒,九种控制语句:, if ( ) else 条件语句, for ( ) for 循环语句, while ( ) 当型循环语句, do while ( ) 直到型循环语句, continue 结束本次循环语句, break 中止执行switch 或循环语句, sw
3、itch 多分支选择语句, goto 转向语句, return 函数返回,( ) 中是一个条件 表示内嵌的语句,2019年6月4日星期二1时32分2秒,二、程序的三种基本结构:,.顺序结构:,设s1、s2都是顺序结构,执行完语句s1后,执行位于s1之后的语句s2 。,顺序、选择及循环结构,2019年6月4日星期二1时32分2秒,.选择结构:, 如果逻辑表达式E为真T则执行s1否则执行s2,2019年6月4日星期二1时32分2秒, 若E为真T 则执行s1 否则按序执行,2019年6月4日星期二1时32分2秒, 多分支 : if 语句和 switch 语句,2019年6月4日星期二1时32分2秒,
4、.循环结构:,()当型结构:“先判断,后执行“;,2019年6月4日星期二1时32分2秒,()直到型:“先执行,后判断“;,.循环结构:,()当型结构:“先判断,后执行“;,2019年6月4日星期二1时32分2秒,在画框图时,不限于用何种语言,也可用人的自然语言, 或其它的形式表示,注意:此时必须将赋值式AB提出作为单独赋值语句否则无法表达!,2019年6月4日星期二1时32分2秒,另外,还可用人的自然语言描述如右:,(1)将 B 的值 赋给 A ; (2)若 A 大于 0 则 (3) 否则 (4) ; (3)将 A 的值 赋给 T ; (4);,2019年6月4日星期二1时32分2秒,()语
5、句形如:putchar(C); 其中C是字符或整型数据。,. putchar(字符输出函数):,三、数据输出:两个以显示器为隐含输出设备 的最基本(标准)输出函数,AAA,()另外:在使用该函数之前必须有#include stdio.h或 #include ,()例如: #include stdio.h 注意小写字母 main( ) char a, b, c; a=A; b=0101; c=0x41; putchar (a); putchar (b); putchar (c); putchar(015);,执行程序将在屏幕上显示:,2019年6月4日星期二1时32分2秒,. printf (格
6、式输出函数) 按指定格式,一次输出多个值!,()格式说明:用及后跟格式字符序列来指明该处将显示的值的形式,()一般格式(语法):printf(格式控制,输出表列),()格式控制:用双引号括起的转换控制字符串;内含说明输出格式转换的格式说明;以及普通字符;,()格式字符:与对应的参数项的值的类型有关,必须一致,并且一一对应。,2019年6月4日星期二1时32分2秒, 整数:(整型):d、o、x、u,md:m无符号整数,指明域宽,即外部形式应占几位;若实 际位数不小于m则等同于d否则在左边用空格补足m位;,如:int a=123; printf (“%d, %2d, %3d, %5dn“, a,
7、a, a, a); 则结果显示:123,123,123,_ _123。,ld及mld:类似于上述两个,用于long int类型的数据, 在之后加上负号:向左靠齐,右补空!,o、x、u的格式,用法与d类似,不同在于输出时无符号并且是不同进制;,d:按输出项值的实际位数,有几位输出几位;,d :有符号,十进制 o :无符号,八进制 x :无符号,十六进制 u :无符号,十进制,2019年6月4日星期二1时32分2秒,例:int a; unsigned b; b=a=1; printf(“%o, %x, %d, %un“,a,a,a,a); 显示:177777,ffff,-1,65535,d :有符
8、号,十进制 o :无符号,八进制 x :无符号,十六进制 u :无符号,十进制,2019年6月4日星期二1时32分2秒,例如: main ( ) int i ; char a ; a = A ; i = 65; printf (“%c , %d n” , a, a);printf(“%c,%dn”,i,i); 两者结果都相同,均为:A,65 另外:mc,%-mc 在左边(或右边)补 m-1 个空格,字符:,c单个字符,对应字符型或值域为0,255的整型即当成ASCII,2019年6月4日星期二1时32分2秒,一般格式:m.ns n无符号整数,指明截取输出串左端的位数; printf (“%s,
9、 %4s, %4.2s, %-4.2s, %2s n“, “123“, “45“, “4567“, “4567“, “123“ ); 结果显示:123,_ _45,_ _45,45_ _,123 实际串长不包括双引号及内存中的串尾结束标志0,字符串:,对应字符串型常量,或字符数组首址,并且存有字符串;,2019年6月4日星期二1时32分2秒,%-m.nf : m总域宽,n小数位数(不包括小数点) 省略为6 负号:右补空,实数(型):f(小数形式) e(指数形式) g(自适应形式),%f:系统自定义域宽整数部分全部满足;小数部分6位, float有7位有效,double有16位有效。,%g: 自
10、动选取%f 和%e ;不输出无意义的零(用空格代替)。,例:main( ) float x, y; x=111111.111; y=222222.222; printf(“%f“, x+y); 结果显示:333333.328125,%e: 指数形式;,2019年6月4日星期二1时32分2秒,注意:格式字符必须是小写,并且以%引导,与变量名无关!格式控制中可夹任 意可见字符或转义字符 控制符。小心输出项类型与格式说明的要配对。,例:float f ; f = 123.456 ; printf (“%f , %e , %g“ , f, f, f); 显示结果为:123.456000 , 1.234
11、560e+002 , 123.456 _ _ _,2019年6月4日星期二1时32分2秒,四、数据输入:两个以终端为隐含输入设备的 最基本(标准)输入函数。,. getchar ( ) : 返回值为单个字符;,()该字符是执行到本语句时,从键盘输入的;,()必需按(回车)即(Enter)或(Return)键,才接收!,()例:main char c; c=getchar( ) ; putchar (c) ; ,()前面必须#include ”stdio.h“ 同putchar类似,2019年6月4日星期二1时32分2秒,()格式字符:d、o、x、u、c、s、f、e 、g(e 、g与f同),.
12、scanf函数(格式输入函数),字符串s:键入时,用空白字符作为起止标志,而不用双引号 括起!录入的字符串送入一字符数组中,并以0作结束标志。,f和e 、g等价:用于接收实数,可以是键入小数或指数形式的数。,()一般形式:scanf(格式控制,地址表列) 地址表列:必须是地址;与printf中的有本质的区别! 格式控制:与printf 中的含义相同,但内容有区别。,2019年6月4日星期二1时32分2秒,()附加的格式说明符:, l 用于输入长整型或双精度double写成%ld、%lo、%lx或%lf、%le; h(与l相应):用于输入短整型%hd、%ho、%hx m域宽:指明从键盘实际读入的
13、字符个数 如果%后有一个”*”,则表示跳过它指定的列数,()注意点:,指定域宽时,键入时就可不要分隔符,按 个数读,键入数据可用一个或多个空格、Tab、回车键分隔;,当含有其它普通字符时,则键入时必须一一对应完全相同;,对应项必须是地址;目前必须在变量名前加&取地址运算符;,2019年6月4日星期二1时32分2秒,scanf ( “ %d %d %d “ , 键入 12 _ 345 _ 67,则a=12,b=67,()例子:,2019年6月4日星期二1时32分2秒,五、简单程序设计方法:,.几个步骤:,()审题;,()列出已知各未知想求的项;,()写出对应的公式;,()设想手工解题步骤;,()
14、将其转化成框图;,()用语言实现(编程);,()自我阅读,设计录入数据的格式及设想数据输出 的样式,并写出!,()上机验证你的设想是否正确;,2019年6月4日星期二1时32分2秒,.例如:求输入三角形的三边长,求三角形面积。,()已知:三角形三边长,设为a、b、c录入项,()求:三角形的面积:认为area输出项,()数学公式:海伦公式,半周长s =(a+b+c)/;面积,()算法思路及框图:,2019年6月4日星期二1时32分2秒,()结果显示: 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 “ , ,()源程序:,()键入,,()上机调试(验证),2019年6月4日星期二1时32分2秒,.切记:,一个完整的程序,必定有录入和输出!,