资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,C,语言程序设计,主编:连卫民 何 樱,第,3,章 顺序结构程序设计,本章主要内容:,3.1,格式化输出,printf()(,重点,),3.2,格式化输入,scanf()(,重点),3.3,字符的输入输出,3.4,顺序结构程序设计举例,本章教学要求:,熟悉,顺序结构程序设计的特点,掌握,格式化输入输出函数的使用方法,3.1,格式化输出,printf(),3.1.1,printf,的一般格式,格式,:,printf(,格式控制,输出表列,);,1,格式控制,格式控制是用双引号括起来的字符串,它包括格式说明和普通字符两部分。,(,1,)格式说明,格式说明由“,%,”和格式字符组成,它的作用是说明计算机中的数值将以何种形式显示在屏幕上。,第,3,章 顺序结构程序设计,3.1,格式化输出,printf(),(,2,)普通字符,普通字符是需要原样输出的字符。如:,x=,、,y=,。普通字符的使用使输出结果更加清晰、易懂。比如,输出结果,x=5,就比只输出,5,更容易使人理解。,例如:,float x;,printf(x=%fn,x);,第,3,章 顺序结构程序设计,3.1,格式化输出,printf(),2,输出表列,输出表列是需要输出的数据,它可以是常量、变量或表达式,各输出项之间以逗号作为间隔。执行,printf,函数时输出项将按格式符指定的格式输出,。,【,例,3-1】,分析下列程序的执行结果。,第,3,章 顺序结构程序设计,3.1,格式化输出,printf(),3.1.2,格式字符,C,语言中的格式字符主要有以下几种,,如表,3-1,所示,。,第,3,章 顺序结构程序设计,3.1,格式化输出,printf(),1,输出整型数据的格式字符,d,:,按整型数据的实际长度输出。,md,:,m,为指定的输出宽度。若数据位数小于,m,,当,m,为正数时,则左端补空格;当,m,为负数时,则右端补空格。若数据位数大于,m,,按实际位数输出。,ld,:,用于输出长整型数据。,o,:,以八进制数形式输出。,x,:,以十六进制数形式输出。,u,:,以无符号型整数形式输出。,第,3,章 顺序结构程序设计,3.1,格式化输出,printf(),【例,3-2,】,#include,int main(),int a,b;,a=123,b=12345;,printf(*%d*,*%d*n,a,b);,printf(*%5d*,*%4d*n,a,b);,printf(*%-5d*,*%-4d*n,a,b);,return 0;,第,3,章 顺序结构程序设计,3.1,格式化输出,printf(),【例,3-3,】,#include,int main(),long x;,x=123456;,printf(%ldn,x);,return 0;,程序运行结果:,123456,第,3,章 顺序结构程序设计,3.1,格式化输出,printf(),【例,3-4,】,#include,int main(),int a,b,c;,a=10;b=010;c=0 x10;,printf(%d,%o,%xn,a,b,c);,printf(%d,%d,%dn,a,b,c);,return 0;,程序运行结果:,10,10,10,10,8,16,第,3,章 顺序结构程序设计,3.1,格式化输出,printf(),【例,3-5,】,#include,int main(),unsigned int a;,a=4294967295;,printf(%u,%dn,a,a);,return 0;,程序运行结果:,4294967295,,,-1,第,3,章 顺序结构程序设计,3.1,格式化输出,printf(),2,输出实型数据的格式字符,f,:,以小数形式输出实数,保留,6,位小数。,m.nf,:,输出数据共占,m,位,其中有,n,位小数,小数点占,1,位。如果数据长度小于,m,,则左端补空格,即数据右对齐,;,-m.nf:,当,数据长度小于,m,时,右端补空格,即数据左对齐。,【例,3-6,】,第,3,章 顺序结构程序设计,3.1,格式化输出,printf(),【例,3-7,】,#include,int main(),float x=123.456;,printf(%fn,x);,printf(*%-10.3f*n,x);,printf(*%10.1f*n,x);,return 0;,第,3,章 顺序结构程序设计,3.1,格式化输出,printf(),【例,3-8,】,#include,int main(),float r=2.5,s;,s=3.14*r*r;,printf(s=%fn,s);,printf(s=%.2fn,s);,return 0;,第,3,章 顺序结构程序设计,3.1,格式化输出,printf(),3,输出字符型数据的格式符,c,:,输出单个字符。,mc,:,按指定宽度,m,输出字符。若,m,为正值,则输出字符右对齐;若,m,为负值,则输出字符左对齐。,【例,3-9,】,第,3,章 顺序结构程序设计,3.1,格式化输出,printf(),4,输出字符串的格式符,s,:,按实际长度输出字符串。,ms,:,按指定宽度,m,输出字符串。,当,m,为正数时,字符串右对齐输出;,m,为负数时,字符串左对齐输出;如果,m,小于字符串长度,则按实际长度输出。,m.ns,:,只输出字符串的前,n,个字符,共占,m,列。当,m,为正数时,字符串右对齐输出;,m,为负数时,字符串左对齐输出。,【例,3-10,】,第,3,章 顺序结构程序设计,3.2,格式化输入,scanf(),3.2.1,scanf,的一般格式,格式:,scanf(,格式字符,地址表列,);,例如:,scanf(%d,说明:,(,1,)“地址表列”是变量的内存地址,它是通过对变量的“求地址”运算得到的,“”就是求地址运算符。,(,2,),scanf,函数也使用格式符,格式符的作用是表示用户想要将输入的文本转换为何种形式存储在内存中。,第,3,章 顺序结构的程序设计,第,3,章 顺序结构程序设计,3.2,格式化输入,scanf(),3.2.2,scanf,的,用法,1,整型、实型数据的输入,scanf(“%d,%d,%d”,scanf(%d%d%d,如果格式符之间以逗号间隔,则输入的数据间也要以逗号间隔。,比如,要给变量,a,、,b,、,c,分别赋值,1,、,2,、,3,,则在执行时输入数据如下:,1,,,2,,,3,第,3,章 顺序结构程序设计,3.2,格式化输入,scanf(),【例,3-11,】,#include,int main(),int a,b;,float c,d;,scanf(%d,%d,scanf(%f,%f,printf(%d,%d,%.1f,%.1fn,a,b,c,d);,return 0;,第,3,章 顺序结构程序设计,3.2,格式化输入,scanf(),【例,3-12,】,#include,int main(),float a,b;,scanf(%f%f,printf(a=%.1f b=%.1fn,a,b);,return 0;,程序运行结果:,2.5,凵,2.6,a=2.5 b=2.6,第,3,章 顺序结构程序设计,3.2,格式化输入,scanf(),(,3,),scanf(a=%d,b=%d,若要给,a,、,b,分别赋值为,1,、,2,,则运行时输入:,a=1,,,b=2,【例,3-13,】,#include,int main(),int a,b,c,d;,scanf(a=%d,b=%dn,scanf(c:%d,d:%d,printf(%d%d%d%dn,a,b,c,d);,return 0;,第,3,章 顺序结构程序设计,3.2,格式化输入,scanf(),【例,3-14,】,#include,int main(),int a;,printf(,输入年龄,:);,scanf(%d,printf(,年龄:,%dn,a);,return 0;,程序运行结果:,输入年龄:,10,年龄:,10,第,3,章 顺序结构程序设计,3.2,格式化输入,scanf(),2,字符型数据的输入,scanf(%c,%c,%c,在字符输入时,如果,scanf,中的格式符间以逗号间隔,输入数据时,字符间也以逗号间隔。,scanf(“%c%c%c”,在字符输入时,如果,scanf,中的格式符间没有间隔,输入数据时,字符要连续输入。,第,3,章 顺序结构程序设计,3.2,格式化输入,scanf(),【例,3-15,】,#include,int main(),char a,b,c;,scanf(%c,%c,%c,printf(%c%c%cn,a,b,c);,return 0;,第,3,章 顺序结构程序设计,3.2,格式化输入,scanf(),【例,3-16,】,#include,int main(),char a,b,c;,scanf(%c%c%c,printf(%c%c%cn,a,b,c);,return 0;,程序运行结果:,you,you,第,3,章 顺序结构程序设计,3.2,格式化输入,scanf(),【例,3-17,】,编写程序,求圆面积。,分析:,圆面积的计算公式为:,s=r,2,,因为键盘上不能输入,,所以用,3.14,代替。,第,3,章 顺序结构程序设计,3.3,字符的输入输出,getchar(),和,putchar(),3.3.1,getchar,函数,格式:,变量,=getchar(),;,【,例,3-18】,第,3,章 顺序结构程序设计,3.3,字符的输入输出,getchar(),和,putchar(),3.3.2,putchar,函数,格式:,putchar(c),;,【,例,3-19】,第,3,章 顺序结构程序设计,3.4,顺序结构程序设计举例,【,例,3-20】,求一元二次方程,ax,2,+bx+c=0,的根。,分析:,要用计算机解方程,必须给出求解方程的算法,对于一元二次方程,ax,2,+bx+c=0,来说,就是要给出求根公式。给公式中的变量赋值,计算机就可以求出方程的根了。,因为求根公式中用到了平方根函数,sqrt(x),,所以程序必须将数学头文件:,math.h,包含到程序中。,第,3,章 顺序结构程序设计,3.4,顺序结构程序设计举例,【,例,3-21】,输入任意三个整数,求和及平均值。,分析:,编写该程序时,有两个地方需要注意:定义变量时,平均值变量,aver,要定义为实型,不能定义为整型,否则误差太大。求平均值时,,sum,除以实数,3.0,,而不是除以整数,3,,如果除数和被除数都是整数,那么商也将是一个整数,这样也会造成误差大的错误。,第,3,章 顺序结构程序设计,3.4,顺序结构程序设计举例,【,例,3-22】,从键盘输入一个小写字母,将其转换为大写字母输出。,分析:,大写字母的,ASCII,码值等于小写字母的,ASCII,码值减,32,。,第,3,章 顺序结构程序设计,3.4,顺序结构程序设计举例,【,例,3-23】,输入三角形的三条边,求三角形面积。,三角形面积的计算公式为:,分析:,为简单起见,设输入的三条边,a,、,b,、,c,能构成三角形,所以读者运行程序时,给变量的赋值必须保证三边长的值可以构成三角形,否则运行结果将是错误的。,第,3,章 顺序结构程序设计,3.4,顺序结构程序设计举例,【,例,3-24】,在屏幕上用“,*,”画出一个三角形。,程序如下:,#include,int main(),printf(*n);,printf(*n);,printf(*n);,printf(*n);,printf(*n);,return 0;,第,3,章 顺序结构程序设计,本章结束!,
展开阅读全文