您好,欢迎访问三七文档
当前位置:首页 > 临时分类 > 06《C语言程序设计》教案第三章程序的控制结构—顺序结构
《C语言程序设计》课程教案表授课题目第三章程序的控制结构(2)——顺序结构课时安排2授课时间教学目的和要求1.掌握:格式输入、输出函数的调用。2.熟悉:顺序结构程序设计的方法及应用。教学内容1.基本内容:(1)数据的输入和输出——格式输入、输出(2)程序举例2.重点及难点:格式输入、输出的调用讲课进程和时间分配1、格式输出函数printf()(30分钟)(1)格式输出函数printf()格式:printf(“输出格式”,输出表列);功能:按用户指定的格式,把指定的任意类型的数据显示在屏幕上。输出格式由格式说明、按原样输出的字符、转义符三部分组成。①格式说明:由“%”和格式字符组成,如%c和%f等,作用是将要输出的数据转换为指定格式后输出。②原样输出:即普通字符在输出时原样照印,在显示中起提示作用。③转义符为:\n换行、\f换页或\t光标移到下一个制表位等。1)不含有%的普通字符串。此时第二部分没有参数,其结果是将该字符串照原样输出。其中可含有转义字符,如“\n”例如:printf(“hello,theworle!\n”)2)带有格式转换说明符的格式输出。格式转换说明符:由“%”字符开始,到格式字符终止。注意:格式转换说明符的个数应与后面的参数个数相等,且前后位置要一一对应例如:printf(“%d%d%c”,a,b,c);3)普通字符串和格式转换说明符混合使用例如:main(){printf(“2+3=%d,2*3=%d\n”,2+3,2*3);}输出结果为:2+3=5,2*3=6(2)printf中可用的格式字符及说明1)d格式符。用来输出十进制带符号整数(正数不输出符号),该格式有以下用法:①%d,按整型数据的实际长度输出。②%md,m指出了要输出数据的宽度。若数据位数小于m,则左端补空格,若数据位数大于m,则按实际位数输出。例如:a=12;b=1234;printf(“%3d,%3d”,a,b);则输出的结果为_12,1234③%ld,输出长整型数据。例如:longx=123456;printf(“%ld”,x);此处若用%d就错了,因为整型的范围为-32768~32767。2)o格式符。以八进制数无符号形式输出整数,即符号位作为数值部分输出。例如:inta=-1;printf(“%d,%o”,a,a);输出结果为:-1,177777这是因为-1在内存中以补码形式存放(见图3-2)。八进制数为从低位开始,以三位一组划分为一个八进制数。3)x格式符。以十六进制数无符号形式输出整数。例如:inta=-1;printf(“%x,%o,%d”,a,a,a);输出结果为:ffff,177777,-1十六进制数为从低位开始,见图3-2,以四位一组划分为一个数。4)u格式符。以十进制数无符号形式输出整数。一个有符号的(int)型数据可以用%d格式输出,也可以用%u格式输出。要注意两类数据的取值范围大小。例如:无符号数据的输出。main(){unsignedintx=65535;inty=-1;printf(“x=%d,%o,%x,%u\n”,x,x,x,x);printf(“y=%d,%o,%x,%u\n”,y,y,y,y);}运行结果为:x=-1,177777,ffff,65535y=-1,177777,ffff,65535即-1的二进制形式以无符号形式输出时为整数65535。5)c格式符。用来输出一个字符。例如:charx=’A’;printf(“%c,%d\n”,x,x);运行结果为:A,65可以看出,一个范围在0~255的整数,既可以用%d格式输出,也可以用%c格式输出。输出该整数或者整数对应ASCII的字符。6)s格式符。用来输出一个字符串,该格式有以下用法:①%s例如:printf(“%s”,”HELLO”);运行结果为:HELLO②%±ms,如果%ms字符串的实际宽度小于m,右对齐,左端补空格,%-ms,字符串左对齐,右端补空格;否则,不受m限制,输出实际宽度。③%±m.ns,若%m.ns取字符串左端n个字符,输出在m列的右端,左端补空格;%-m.ns,取字符串左端n个字符,输出在m列的左侧,右侧补空格;若mn,则m自动取n值输出n个字符。说明:s个格式符在讲到字符数组的时候会涉及到,这里不做详细讲解。【例3.2】字符串的输出。main(){printf(“%2s,%7.2s,%.3s,%-5.3s\n”,”start”,”start”,”start”,”start”);}运行结果为:start,└┘└┘└┘└┘└┘st,sta,sta└┘└┘7)f格式符。以小数形式输出实数,有以下用法:①%f,整数部分全部输出,并输出六位小数。②%m.nf,输出数据共占m列,其中有n位小数。若数的总长度m,则左端补空格。③%-m.nf,与%m.nf用法基本一样,只是数据输出时靠左端,右端补空格。例如:输出实数时指定小数位数。main(){floatx=123.456;printf(“%f,%10f,%10.2f,%.2f,%-10.2f\n”,x,x,x,x,x);}运行结果为:123.456001,123.456001,└┘└┘└┘└┘123.46,123.46,123.46└┘└┘└┘└┘8)e格式符。以指数形式输出实数,有以下用法:①%e,由系统自动指定给出6位小数,指数部分占5位(如e+001),其中“e”占1位,指数占3位。数值按规范化指数形式输出(即小数点前有且只有1位非零数字)。例如:printf(“%e”,12.345);输出结果为:1.234500e+001②%m.ne和%-m.ne。其中m限定了输出宽度,n限定了输出小数位数,若没有“-”且宽度小于m,则数据靠右端,左端补空格。否则,数据靠左端,右端补空格。例如:floatx=123.456;printf(“%e,%10e,%10.2e,%.2e,%-10.2e”,x,x,x,x,x);输出结果为:1.234561e+002,1.234560e+002,└┘1.23e+002,1.23e+002,1.23e+002└┘9)g格式符。自动选择f格式或e格式,输出时占宽度较小的一种,且不输出无意义的零。例如:floatx=123.456;printf(“%f,%e,%g”,x,x,x);输出如下:123.456000,1.234560e+002,123.456上例可以看出,数x用%f格式输出占10列,用%e格式输出占13列,用%g格式输出时选择了宽度较小的一种,并且无意义的零没有输出。2、格式化输入函数scanf()(25分钟)格式化输入函数的功能:按用户指定的格式从键盘上同时输入多个相同或不同类型的数据,并将键盘输入的数据转换为指定的格式存放到对应变量的内存地址中。格式:scanf(“格式字符”,地址列表)例如:scanf(“%d%d%d”,&a,&b,&c);(1)格式字符“格式字符”是由“%”和格式符组成的用双引号括起来的字符串,如%c、%d等。作用是将输入数据转换为指定格式后,存入到由地址表所指的相应变量中。scanf函数中使用的格式字符如表3-2所示。格式字符说明d输入十进制整数o输入八进制整数x输入十六进制整数c输入单个字符s输入字符串f输入浮点数(小数或指数形式)e输入浮点数(指数形式)hd,ho,hx输入短整型数据ld,lo,lx输入长整型数据lf,le输入长浮点型数据(双精度)(2).地址表列scanf函数中的“地址表列”部分是由变量的地址组成的,如果有多个变量,则各变量之间用逗号隔开。地址列表中的地址,是由地址运算符“&”后跟变量名组成的,例如,&a、&b分别表示变量a和变量b的地址。这个地址是编译系统在内存中给a、b变量分配的存储空间,用户不必关心具体的地址是多少。scanf(“%d%d%d”,a,b,c)×原因:scanf()只能采用地址表列,不能采用变量表列【例3.4】从键盘上输入一个整型数、一个浮点数和一个字符,分别存入变量i、f和c中。main(){inti;floatf;charc;scanf(″%d,%f,%c″,&i,&f,&c);printf(″i=%d,f=%lf,c=%c″,i,f,c);}运行程序,输入10,2.1,a↙显示:i=10,f=2.100000,c=a说明:在使用scanf函数时,应该注意以下几个问题:1)在scanf函数“格式字符”部分中的每个格式说明符都必须在“地址表”中有一个变量与之对应,例如:inti;floatf;charc;scanf(“%d%f%c”,&i,&f,&c);上述程序中,格式说明符必须要与相应变量的类型一致,即:“%d”与&i对应;“%f”与&f对应;“%c”与&c对应。(2)当格式说明符之间没有任何字符时,在输入数据时,两个数据之间要使用“空格”、“Tab”或“回车”键做间隔。例如:Scanf(“%d%d”,&i,&j);/*格式说明中没有其它字符*/输入数据:3└┘4↙或:3Tab键4↙或:3↙4↙3)在格式输入中,不能有转义符‘\n’,否则语法错。如果格式说明符之间包含其他字符,则输入数据时,应输入与这些字符相同的字符做间隔,例如:scanf(“a=%d,b=%d”,&a,&b);输入数据时应,a=3,b=4↙4)当用%c格式输入时,空格、转义符都作为有效字符输入。例如:Scanf(“%c%c%c”,&c1,&c2,&c3);若输入:a└┘b└┘c↙则c1的值为a,c2的值为└┘,c3的值为b。正确的方法为:abc↙(5)输入实数时,不能规定精度。例如:Scanf(“%7.2f\n”,&a);是错误的。(6)如果在%后有一个“*”字符,表示读入的数据跳过,不赋给任何变量。例scanf(“%2d%3d%*3d%2d”,&a,&b,&c);printf(“a=%d,b=%d,c=%d\n”,a,b,c);运行:输入12└┘345└┘678└┘92↙显示:a=12,b=345,c=92给学生着重强调:若有多个scanf输入函数,需要从第2个scanf函数起,每个均需要在双引号内最前面加一个空格字符,以吸收上一个数据的回车键。运用scanf()时应注意的一些问题1)如果在“格式控制字符串”中除了格式转换说明符以外还有其它字符,则在输入数据时在对应位置应当输入与这些字符相同的字符。例1:scanf(“%d,%d,%d”,&a,&b,&c);应当输入3,4,5CR不能输入345。2)在输入一个或多个数据时,以回车键作为结束数据输入。3)在输入多个数值型数据时,则在输入的数据间至少用一个空格或TAB键或回车键分隔。例如:inta,b,c;scanf(“%d%d%d”,&a,&b,&c);输入:1234(tab)567CR后结果:a=12,b=34,c=567floata,c;charb;scanf(“%d%c%f”,&a,&b,&c);输入:1234a123o.26CR后,a=1234.0,b=’a’,c=123.0(而不是希望的1230.26)3、程序设计举例(30分钟)(1)程序设计的一般方法程序=算法+数据结构算法:为解决一个实际问题所采取的方法和步骤.数据结构即程序中程序中用到哪些数据,如何定义和表示这些数据.C语言编程前,应针对具体的问题,分析找出解决问题的算法与解题思路。一般先构思出程序思路,对于复杂的程序,可以再依据思路写出流程图,最后根据流程图写出程序代码。编写程序应分三步:①定义变量;②输入数据;③计算并输出结果。编好程序后,静态检查程序,即按计算机运行的过程,用数据进行检验运行结果,以此来判断程序的正确与否。【例3.5】输入三角形三条边,求其面积。设计思路:三角形的面积计算公式用海伦公式:area=其中:a,b,c为三角形的边长,s是三角形的半周长,area为三角形的面积.分析:1.定义需要使用的变量a,b,c,s和area。2.输入变量a,b,c的值。3.计算三角形的半周长s的值。4.计算三角形的面积area的值。5.输出变量area的值。程
本文标题:06《C语言程序设计》教案第三章程序的控制结构—顺序结构
链接地址:https://www.777doc.com/doc-3118454 .html