1、,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,-,*,-,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,第,3,章,顺序,结构程序设计,-,2,-,五种基本的,C,语句,字符输入输出函数,格式输入输出函数,顺序结构程序举例,本章教学内容,本章教学目标,了解,C,语句的概念及种类,掌握,C,语言常用的输入,/,出方式,熟练掌握字符输入输出函数、格式输入输出函数,能够熟练使用,printf(),和,scanf(),进行各种数据正确格式的输入输出,能够熟练编写顺序结构的程序。,-,3,-,3.1 C,语言的基本语句,【,例
2、题,3-1】,编写程序,交换,2,个数的程序示例,5,种语句。,#include,int main(),int a,b,t;,scanf(%d,%d,if(ab),t=a;,a=b;,b=t;,printf(%d,%dn,a,b);,return 0;,-,4,-,1.,程序流程控制语句,程序流程控制语句共有九种,如下所示。,ifelse for()while()dowhile(),switch goto continue break return,2.,表达式语句,表达式语句是由任意的表达式末尾加上分号组成。,3.,函数调用语句,函数可以是库函数和用户自定义函数,函数调用语句的结构是函数名,
3、(,参数列表,);,-,5,-,3.1 C,语言的基本语句,-,6,-,3.1 C,语言的基本语句,4.,空语句,空语句就是一个分号,表示什么也不做。空语句不产生任何操作运算,只是出于语法上的需要,在某些必需的场合占据一个语句的位置,便于以后扩充用。,例如,;,5.,复合语句,复合语句是由若干语句用花括号,括起来组成。,例如,:a=1;,b=2;,字符输出函数,putchar(),字符输出函数,putchar(),的功能是从计算机向输出设备,(显示器)输出一个字符。,putchar,函数的基本格式为:,putchar(c);,【,例题,3-2】,编写程序,参数,c,的多种用法及其效果示例。,#
4、include,int main(),char a=b;int m=65;,putchar(a);putchar(a);putchar(n);,putchar(m);putchar(65);putchar(A+2),;,putchar(n);,return 0;,-,7,-,字符输入函数,getchar(),字符输入函数,getchar(),的功能是从输入设备(键盘)向计算机输入一个字符。,getchar,函数的基本格式为:,getchar();,【,例题,3-3】,编写程序,从键盘输入,2,个字符,然后把它们输出到屏幕。,#include,int main(),char a,b;printf
5、(,输入,);,a=getchar();b=getchar();printf(,输出,);,putchar(a);putchar(b);putchar(n);,return 0;,-,8,-,【,例题,3-4】,编写程序,省略变量,a,和,b,简化例题,3-3,示例。,#include,int main(),putchar(getchar();,putchar(getchar();,putchar(n);,return 0;,-,9,-,字符输入函数,getchar(),3.3.1,格式输出函数,printf(),格式输出函数,printf(),的功能是按照指定的输出格式将各种类型的数据(整型
6、、实型、字符型等)从计算机中输出到显示器上。,格式输出函数,printf(),的一般格式:,printf(”,输出格式,”,输出参数表列,);,【,例题,3-5】,编写程序,示例简单的格式输出函数用法。,#include,main(),int a=65,b=66;,float c=1.23;,printf(,整型,a,、,b,示例,n);,printf(%d%dn,a,b);,printf(%x,%dn,a,b);,printf(%ct%cn,a,b);,printf(a=%d,b=%dn,a,b);,printf(,实型,c,示例,n);,printf(c=%fnc=%en,c,c);,-,
7、10,-,1.,输出参数表列说明,输出参数表列中列出了所有要输出的数据项,输出的数据项之间用逗号分隔,输出的数据项可以是常量、变量、表达式和函数。,2.,输出格式说明,输出格式由原样输出字符,转义字符,输出格式说明组成。,格式说明的一般格式:,%【,输出附加格式说明符,】,输出格式说明符,注,:【,输出附加格式说明符,】,可省略,-,11,-,3.3.1,格式输出函数,printf(),-,12,-,3.3.1,格式输出函数,printf(),-,13,-,3.3.1,格式输出函数,printf(),3.3.2 printf(),函数的应用,1.,整型数据的输出,-,14,-,3.3.2 pr
8、intf(),函数的应用,【,例题,3-6】,编写程序,示例整型数据的格式输出函数用法。,#include,int main(),int a=10,b=16;,long n=1234567;,printf(%d,%dn,a,b);,printf(%o,%on,a,b);,printf(%x,%xn,a,b);,printf(%3d%3dn,a,b);,printf(%-3d%-3dn,a,b);,printf(%ldn,n);,return 0;,-,15,-,2.,实型数据的输出,-,16,-,3.3.2 printf(),函数的应用,【,例题,3-7】,编写程序,示例整型数据的格式输出函数
9、用法。,#include,int main(),float x=12.3456,y=-789.123;,printf(%f,%fn,x,y);,printf(%10f,%15fn,x,y);,printf(%-10f,%-15fn,x,y);,printf(%8.2f,%4fn,x,y);,printf(%e,%10.2en,x,y);,return 0;,-,17,-,3.3.2 printf(),函数的应用,3.,字符型数据的输出,-,18,-,3.3.2 printf(),函数的应用,【,例题,3-8】,编写程序,示例整型数据的格式输出函数用法。,#include,int main(),
10、char c=A;,printf(%c,%dn,c,c);,printf(%5cn,c);,printf(%-5cn,c);,printf(%s,%5.3sn,computer,computer);,printf(computern);,return 0;,-,19,-,3.3.2 printf(),函数的应用,格式输入函数,scanf(),格式输入函数,scanf(),的功能是按照指定的输入格式从键盘上将各种类型的数据(整型、实型、字符型等)输入到计算机中。,格式输入函数,scanf(),的一般格式:,scanf(”,输入格式,”,输入参数地址表列,),【,例题,3-9】,编写程序,输入,3
11、,个整型数据并输出,#include,int main(),int a,b,c;,printf(,请输入,3,个整型数据,n);,scanf(%d%d%d,printf(%d,%d,%dn,a,b,c);,return 0;,-,20,-,输入函数,scanf(),的工作过程,输入参数地址表列说明,(,1,)输出函数,printf(),的输出参数表列使用变量名、常量、符号常量和表达式,但输入函数,scanf(),的输入参数地址表列使用变量的指针(地址)。,(,2,)使用输入函数,scanf(),时,输入参数地址表列应遵循以下,2,条规则:,如果要读取基本数据类型变量的值,应在变量名之前键入,&
12、,符。,当读取指针变量指向的值时,如数组变量等,在变量名前不能使用,&,符。,-,21,-,格式输入函数,scanf(),3.,输入格式说明,格式说明的一般格式:,%【,输入附加格式说明符,】,输入格式说明符,注,:【,输入附加格式说明符,】,可省略,-,22,-,格式输入函数,scanf(),-,23,-,格式输入函数,scanf(),4.,使用,scanf(),函数时应注意的问题,(,1,)如果在“输入格式”字符串中除了格式说明以外还有其他字符,则在输入数据时在对应位置应输入与这些字符相同的字符。,(,2,)在用“,%c,”格式输入字符时,空格字符和“转义字符”都作为有效字符输入。,(,3
13、,)在输入数据时,遇以下情况时认为该数据结束。,遇空格,或按“回车”或“跳格”(,Tab,)键结束;,按指定的宽度结束,如“,%2d,”,只取,2,列;,在输入数值数据时,如遇非法字符(不属于数值的字符)结束。,-,24,-,格式输入函数,scanf(),3.4,顺序结构程序举例,【,例题,3-10】,编写程序,由键盘键入,A,、,B,的值,要求完成这,2,个数的交换。,(,1,)算法分析:如果由键盘键入,A=5,,,B=6,,要求输出结果为,A=6,,,B=5,。,思考:在日常生活中是如何实现交换的呢?,-,25,-,(,2,)程序分析:在程序设计中,我们要交换,A,、,B,两个变量的值该怎
14、么办?完成,A,、,B,两个数交换的流程图如图,3-13,所示,分,3,步完成。,-,26,-,3.4,顺序结构程序举例,(,3,)编写程序:,#include,int main(),int A,B,C;,scanf(A=%d,B=%d,/,要求输入变量,A,B,的值,C=A;/,交换,A,B,的值第,1,步,A=B;/,交换,A,B,的值第,2,步,B=C;/,交换,A,B,的值第,3,步,printf(A=%d,B=%dn,A,B);/,打印交换后,A,B,的值;,return 0;,-,27,-,3.4,顺序结构程序举例,【,例题,3-11】,编写程序,由键盘键入圆半径,r,的值,要求计
15、算圆周长,圆面积,圆球表面积和圆球体积。,(,1,)算法和程序分析:已知圆的半径,r,的值,可以通过数学公式,求圆周长,l=2*pi*r,,圆面积,s=r*r*pi,,圆球表面积,sq=4*pi*r*r,,圆球体积,vq=4.0/3*pi*r*r*r,。,-,28,-,3.4,顺序结构程序举例,3.4,顺序结构程序举例,#include,#include,#define pi 3.14 /,定义符号常量,pi,int main(),float h,r,l,s,sq,vq;,printf(,请输入圆半径,r,:,);,scanf(%f,/,要求输入圆半径,r,l=2*pi*r;/,计算圆周长,l
16、,s=r*r*pi;/,计算圆面积,s,sq=4*pi*r*r;/,计算圆球表面积,sq,-,29,-,【,例题,3-11】,编写程序,由键盘键入圆半径,r,的值,要求计算圆周长,圆面积,圆球表面积和圆球体积。,3.4,顺序结构程序举例,vq=4.0/3*pi*r*r*r;/,计算圆球体积,vq,printf(,圆周长为,:l=%6.2fn,l);/,输出圆周长,l,,保留,2,位小数,printf(,圆面积为,:s=%6.2fn,s);,/,输出圆面积,s,,保留,2,位小数,printf(,圆球表面积为,:sq=%6.2fn,sq);,/,输出圆球表面积,sq,,保留,2,位小数,prin
17、tf(,圆球体积为,:vq=%6.2fn,vq);,/,输出圆球体积,vq,,保留,2,位小数,return 0;,-,30,-,3.4,顺序结构程序举例,#includestdio.h,#includemath.h,int main(),float a,b,c,dise,x1,x2;,printf(input a,b,c:n);,scanf(%f%f%f,dise=b*b-4*a*c;,x1=(-b+sqrt(dise)/(2*a);,x2=(-b-sqrt(dise)/(2*a);,printf(x1=%fnx2=%fn,x1,x2);,return 0;,-,31,-,3.4,顺序结构程
18、序举例,#include,int main(),char c1=h,c2=e,c3=l,c4=l,c5=o;,printf(,原码是:,%c%c%c%c%cn,c1,c2,c3,c4,c5);,c1=c1+5;c2=c2+5;c3=c3+5;c4=c4+5;c5=c5+5;,printf(,译码是:,%c%c%c%c%cn,c1,c2,c3,c4,c5);,return 0;,-,32,-,【,例题,3-13】,编写程序译密码“,hello,”,为使电文保密,往往按一定规律将其转换成密码,收报人再按约定的规律将其译回原文。译码规律是用原来字母后面的第,5,个字母代替原来的字母,如字母,A,后面
19、第,5,个字母是,F,,,F,代替,A,。,3.4,顺序结构程序举例,#include,int main(),putchar(getchar()+5);,putchar(getchar()+5);,putchar(getchar()+5);,putchar(getchar()+5);,putchar(getchar()+5);,putchar(n);,return 0;,-,33,-,【,例题,3-14】,编写程序,用字符输入输出函数改写例题,3-13,【,本章小结,】,C,语言提供了多种语句用来实现顺序结构、分支结构、循环结构三种基本结构。语句可分为程序流程控制语句、函数调用语句、表达式语句、空语句、复合语句共,5,种。,本章讲到的字符输出函数,putchar(),、字符输入函数,getchar(),、格式输出函数,printf(),、格式输入函数,scanf(),都包含在,stdio.h,文件中。若要使用以上输入输出函数,则需在程序文件的开头引用预编译指令,#include,或者,#include stdio.h,。,顺序结构程序设计是三种基本结构中最简单的,只要按照解决问题的顺序写出相应的语句就行,它的执行顺序是自上而下,依次执行。,通过本章的学习,要求读者能够熟练地运用字符输入输出,格式输入输出函数完成顺序结构程序的编写。,-,34,-,谢 谢!,