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