资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,第,*,页,第,2,章 基本输入、输出和,顺序程序设计,第,2,章:基本输入输出和顺序程序设计,学习的意义,程序对数据的处理流程:,程序的主要功能就是对数据的处理,其整个流程主要包括数据的输入、数据的处理、数据的输出。,语言程序设计,第,2,章,基本输入输出和顺序程序设计,C,数据处理,数据输入,数据输出,C,程序中如何实现数据输入,?,C,程序中如何实现数据输出,?,程序的结构:,写文章有文章的结构,建房子有房子的结构,制造机械产品由机械产品的结构,那么编写程序是否有程序的结构呢?,学习的意义,程序结构,顺序结构,选择结构,循环结构,YES!,本章讨论,第,3,章讨论,第,3,章讨论,语言程序设计,第,2,章,基本输入输出和顺序程序设计,C,格式化输出,printf,格式化输入,scanf,字符数据的非格式化输入、输出,程序的控制结构,顺序程序设计举例,本讲小结,学习目标,掌握各种类型数据的格式化输入输出方法;,掌握字符数据的非格式化输入输出方法;,理解三种程序控制结构的流程图;,学会简单顺序程序的设计;,养成良好的程序设计习惯;,语言程序设计,第,2,章,基本输入输出和顺序程序设计,C,学习内容,2.1,格式化输出,printf,语言程序设计,第,2,章,基本输入输出和顺序程序设计,C,一般格式,printf,(,格式控制字符串,,表达式,1,,表达式,2,,,,表达式,n);,功能,按照“格式控制字符串”的要求,将,表达式,1,,表达式,2,,,,表达式,n,的值显示在计算机屏幕上。,说明,格式控制字符串用于指定输出格式。它包含两类字符:,常规字符:,包括可显示字符和用转义字符表示的字符。,格式控制符:,以,%,开头的一个或多个字符,以说明输出数据的类型、形式、长度、小数位数等。其格式为:,%,修饰符,格式转换字符,例:,long,int,x=0 x8AB6;,printf,(“,The Value of x is,%ld,n,”,x);,常规字符,常规字符,(,转义符,),格式控制符,(修饰符),格式控制符,(格式转换符),语言程序设计,第,2,章,基本输入输出和顺序程序设计,C,printf,使用时的注意事项,(1),格式控制字符串可以,不包含任何格式控制符,。,(2),当格式控制字符串中既含有常规字符,又包含有格式控制符时,则,表达式的个数应与格式控制符的个数一致,。此时,常规字符原样输出,而格式控制符的位置上输出对应的表达式的值,其对应的顺序是:,从左到右的格式控制符对应从左到右的表达式。,(3),如果格式控制字符串中格式控制符的个数多于表达式的个数,则,余下的格式控制,符的值将是不确定的,。,(4),不同类型的表达式要使用不同的格式转换符,,同一表达式如果按照不同的格式转换符来输出,其结果可能是不一样的。,printf,(“how are you?n”);,/,只有一个字符串参数,,输出为:,how are you?,printf,(“how old are you?n”,20);,/,带有两个参数,,20,没有意义,,输出为:,how old are you?,已 知:,int,a=2;,函数调用:,printf(,a,*a=,%d,a+5=,%,d,n,a*a,a+5);,实际输出:,a*a=4,a+5=7,printf,(5+3=%d,5-3=%d,5*3=%d,5+3,5-3);,输出结果将是:,5+3=8,,,5 3=2,,,5*3=,-28710,输出随机,char,ch,=A;,printf,(,ch,=%c,ch,);,/,输出结果:,ch,=A,(以字符形式输出),printf,(,ch,=%d,ch,);,/,输出结果:,ch,=65,(以,A,字符的,ASCII,码形式输出),语言程序设计,第,2,章,基本输入输出和顺序程序设计,C,printf,函数中的格式转换字符及其含义,格式转换符,含 义,对应的表达式数据类型,%d,或,%i,以十进制形式输出一个整型数据。,例如:,int,a=20;,printf,(%d,a);/,输出,20,有符号整型,%x,,,%X,以十六进制形式输出一个无符号整型数据。,例如:,int,a=164;,printf,(%x,a);/,输出,a4,printf,(%X,a);/,输出,A4,无符号整型,%o (,字母,o),以八进制形式输出一个无符号整型数据。,例如:,int,a=164;,printf,(%o,a);/,输出,244,无符号整型,%u,以十进制形式输出一个无符号整型数据。,例如:,int,a=-1;,printf,(%u,a);/BC,下输出,65535,,,VC,下,4294967295,无符号整型,%c,输出一个字符型数据。,例如:,char,ch,=A;,printf,(%c,ch,);/,输出,A,字符型,语言程序设计,第,2,章,基本输入输出和顺序程序设计,C,printf,函数中的格式转换字符及其含义,格式转换符,含 义,对应的表达式数据类型,%s,输出一个字符串。,例如:,printf,(my name is%s,“,Anhuigongyedaxue,);,/,输出,my name is,Anhuigongyedaxue,字符串,%f,以十进制小数形式输出一个浮点型数据。,例如:,float f=-12.3;,printf,(%f,f);/,输出,-12.300000,浮点型,%e,,,%E,以指数形式输出一个浮点型数据。,例如:,float f=1234.8998;,printf,(%e,f);/,输出,1.234900e+003,printf,(%E,f);/,输出,1.234900E+003,浮点型,%g,,,%G,按照,%f,或,%e,中输出宽度比较短的一种格式输出。,浮点型,%p,以主机的格式显示指针,即变量的地址。,例如:,int,a=2;,printf,(“%p”,/BC,下输出,FFD8,,,VC,下,0012FF7C,指针类型,语言程序设计,第,2,章,基本输入输出和顺序程序设计,C,1.,整数的输出,有符号,整数的输出,一般形式:,:,表示可选项,可缺省。,:,表示输出的数据左对齐,缺省时是右对齐。,:,输出正数时,在数的前面加上号。,数字,0,:,右对齐时,如果实际宽度小于,width,,则在左边的空位补,0,。,width,:,无符号整数,表示输出整数的最小域宽(即占屏幕的多少格)。若实际宽度超过了,width,,则按照实际宽度输出。,.precision,:,无符号整数,表示至少要输出,precision,位。若整数的位数大于,precision,,则按照实际位数输出,否则在左边的空位上补,0,。,字母,l,:,如果在,d,的前面有字母,l,(,long,),表示要输出长整型数据。,字母,h,:,如果在,d,的前面有字母,h,(,short,),表示要输出短整型数据。,说明:,%-+0 width.precision l h d,辅助格式控制字符(修饰符),语言程序设计,第,2,章,基本输入输出和顺序程序设计,C,【例,】,有符号整数的格式化输出,#include,void main(),int,a=123;,long L=65537;,printf,(12345678901234567890n);,printf,(a=%d-(a=%,d)n,a);,printf,(a=%6d-(a=%6d)n,a);,printf,(a=%+6d-(a=%+6d)n,a);,printf,(a=%-6d-(a=%-6d)n,a);,printf,(a=%-06d-(a=%-06d)n,a);,printf,(a=%+06d-(a=%+06d)n,a);,printf,(a=%+6.6d-(a=%+6.6d)n,a);,printf,(a=%6.6d-(a=%6.6d)n,a);,printf,(a=%-6.5d-(a=%-6.5d)n,a);,printf,(a=%6.4d-(a=%6.4d)n,a);,printf,(L=%ld-(L=%ld)n,L);,printf,(L=%,hd,-(L=%,hd)n,L);,12345678901234567890,a=123-(a=%d),a=123-(a=%6d),a=+123-(a=%+6d),a=123 -(a=%-6d),a=123 -(a=%-06d),a=+00123-(a=%+06d),a=+000123-(a=%+6.6d),a=000123-(a=%6.6d),a=00123-(a=%-6.5d),a=0123-(a=%6.4d),L=65537-(L=%ld),L=1-(L=%,hd,),运行结果:,L,是一长整型数,65537,,其值为十六进制,0X0001,0001,,所以要将其转换成短整型,即取低,16,位,0 x0001,,将其输出,故输出为,1,。,Why?,语言程序设计,第,2,章,基本输入输出和顺序程序设计,C,1.,整数的输出,无符号,整数的输出,一般形式:,:,表示可选项,可缺省。,|,:,表示互斥关系。,#,:,表示当以八进制形式输出数据(,%o,)时,在数字前输出,0,;当以十六进制形式输出数据(,%x,或,%X,)时,在数字前输出,0 x,或,0X,。,.precision,的含义与前面介绍的相同,但要注意,在,TC,和,BC,下,,precision,所指定的位数也包含了,0 x,或,0X,所占的位数,可在,VC,下,则不包含,0 x,或,0X,所占的位数。,其它字段的含义与前面介绍的相同。,说明:,%-#0 width.precision l h u|o|x|X,辅助格式控制字符(修饰符),语言程序设计,第,2,章,基本输入输出和顺序程序设计,C,【例,】,无符号整数的格式化输出,#include,void main(),int,a=-1;,unsigned u=32767;,unsigned long L=-32768;,printf,(a=%d,a=%u-(a=%d,a=%,u)n,a,a);,printf,(a=%,hx,a=%X-(a=%,hx,a=%X)n,a,a);,printf,(u=%o,u=%X-(u=%o,u=%X)n,u,u);,printf,(u=%#010X-(u=%#010X)n,u);,printf,(u=%#10.10X-,(u=%#10.10X)n,u);,printf,(L=%,lX,-,(L=%,lX)n,L,);,printf,(L=%-#14.10X-,(L=%-#14.10X)n,L);,a=-1,a=65535,-(a=%d,a=%u),a=,ffff,a=FFFF,-(a=%,hx,a=%X),u=77777,u=7FFF-(u=%o,u=%X),u=0X00007FFF-(u=%#010X),u=0X00007FFF,-(u=%#10.10X),L=FFFF8000-(L=%,lX,),L=0X00008000,-(L=%-#14.10X),运行结果(在,BC3.1,下):,a=-1,a=4294967295,-(a=%d,a=%u),a=,ffff,a=FFFFFFFF,-(a=%,hx,a=%X),u=77777,u=7FFF-(u=%o,u=%X),u=0X00007FFF-(u=%#010X),u=0X0000007FFF,-(u=%#10.10X),L=FFFF8000-(L=%,lX,),L=0X00FFFF8000,-(L=%-#14.10X),运行结果(在,VC6.0,下):,11111111,1,1111111,111111111111111111111111,1,1111111,宽度包含,0X,宽度不包含,0X,1111111101111111,1111111
展开阅读全文