




已阅读5页,还剩2页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
C语言程序设计课程教案表授课题目第三章 程序的控制结构(2)顺序结构课时安排2授课时间教学目的和要求1掌握:格式输入、输出函数的调用。2熟悉:顺序结构程序设计的方法及应用。教学内容1基本内容:(1)数据的输入和输出格式输入、输出(2)程序举例2重点及难点:格式输入、输出的调用讲课进程和时间分配1、格式输出函数printf( ) (30分钟)(1)格式输出函数printf()格式:printf(“输出格式”,输出表列);功能:按用户指定的格式,把指定的任意类型的数据显示在屏幕上。输出格式由格式说明、按原样输出的字符、转义符三部分组成。格式说明:由“%”和格式字符组成,如%c和%f等,作用是将要输出的数据转换为指定格式后输出。 原样输出:即普通字符在输出时原样照印,在显示中起提示作用。 转义符为:n 换行、f 换页 或 t光标移到下一个制表位等。1)不含有%的普通字符串。此时第二部分没有参数,其结果是将该字符串照原样输出。其中可含有转义字符,如“n”例如:printf(“hello,the worle!n”)2)带有格式转换说明符的格式输出。格式转换说明符:由“%”字符开始,到格式字符终止。 注意:格式转换说明符的个数应与后面的参数个数相等,且前后位置要一一对应例如:printf(“%d%d%c”,a,b,c);3)普通字符串和格式转换说明符混合使用 例如: main() printf(“2+3=%d,2*3=%dn”,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,1234ld,输出长整型数据。 例如:long x=123456; printf(“%ld”,x); 此处若用%d就错了,因为整型的范围为-3276832767。2)o格式符。以八进制数无符号形式输出整数,即符号位作为数值部分输出。例如:int a=-1;printf(“%d,%o”,a,a);输出结果为:-1,177777这是因为-1在内存中以补码形式存放(见图3-2)。八进制数为从低位开始,以三位一组划分为一个八进制数。3)x格式符。以十六进制数无符号形式输出整数。例如:int a=-1;printf(“%x,%o,%d”,a,a,a);输出结果为:ffff,177777,-1十六进制数为从低位开始,见图3-2,以四位一组划分为一个数。4)u格式符。以十进制数无符号形式输出整数。一个有符号的(int)型数据可以用%d格式输出,也可以用%u格式输出。要注意两类数据的取值范围大小。例如:无符号数据的输出。main() unsigned int x=65535; int y=-1; printf(“x=%d,%o,%x,%un”,x,x,x,x); printf(“y=%d,%o,%x,%un”,y,y,y,y);运行结果为:x=-1,177777,ffff,65535y=-1,177777,ffff,65535 即-1的二进制形式以无符号形式输出时为整数65535。5)c格式符。用来输出一个字符。例如:char x=A;printf(“%c,%dn”,x,x);运行结果为:A,65可以看出,一个范围在0255的整数,既可以用%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.3sn”,”start”, ”start”, ”start”, ”start”);运行结果为:start,st,sta,sta7)f格式符。以小数形式输出实数,有以下用法: %f,整数部分全部输出,并输出六位小数。 %m.nf,输出数据共占m列,其中有n位小数。若数的总长度m,则左端补空格。 %-m.nf,与%m.nf用法基本一样,只是数据输出时靠左端,右端补空格。例如:输出实数时指定小数位数。main() float x=123.456; printf(“%f,%10f,%10.2f,%.2f,%-10.2fn”,x,x,x,x,x); 运行结果为:123.456001,123.456001,123.46,123.46,123.468)e格式符。以指数形式输出实数,有以下用法: %e,由系统自动指定给出6位小数,指数部分占5位(如e+001),其中“e”占1位,指数占3位。数值按规范化指数形式输出(即小数点前有且只有1位非零数字)。例如: printf(“%e”,12.345);输出结果为:1.234500e+001 %m .ne和%-m .ne。其中m限定了输出宽度,n限定了输出小数位数,若没有“-”且宽度小于m,则数据靠右端,左端补空格。否则,数据靠左端,右端补空格。例如:float x=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格式,输出时占宽度较小的一种,且不输出无意义的零。例如:float x=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() int i; float f; char c; 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函数“格式字符”部分中的每个格式说明符都必须在“地址表”中有一个变量与之对应,例如: int i; float f; char c;scanf(“%d%f%c”,&i,&f,&c);上述程序中,格式说明符必须要与相应变量的类型一致,即:“%d”与&i对应;“%f”与&f对应;“%c”与&c对应。(2)当格式说明符之间没有任何字符时,在输入数据时,两个数据之间要使用“空格”、“Tab”或“回车”键做间隔。例如:Scanf(“%d%d”,&i,&j); /*格式说明中没有其它字符*/输入数据:34 或: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.2fn”,&a);是错误的。(6)如果在%后有一个“*”字符,表示读入的数据跳过,不赋给任何变量。例scanf(“%2d %3d %*3d%2d ”,&a,&b,&c); printf(“a=%d,b=%d,c=%d n”,a,b,c); 运行:输入1234567892 显示:a=12,b=345,c=92给学生着重强调:若有多个scanf输入函数,需要从第2个scanf函数起,每个均需要在双引号内最前面加一个空格字符,以吸收上一个数据的回车键。运用scanf()时应注意的一些问题1)如果在“格式控制字符串”中除了格式转换说明符以外还有其它字符,则在输入数据时在对应位置应当输入与这些字符相同的字符。例1:scanf(“%d,%d,%d”,&a,&b,&c); 应当输入3,4,5 不能输入3 4 5。2)在输入一个或多个数据时,以回车键作为结束数据输入。3)在输入多个数值型数据时,则在输入的数据间至少用一个空格或TAB键或回车键分隔。例如:int a,b,c;scanf(“%d%d%d”,&a,&b,&c);输入:12 34 (tab)567后结果:a=12,b=34,c=567float a,c; char b;scanf(“%d%c%f”,&a,&b,&c);输入:1234a123o.26后,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的值。程序代码:#include main( ) float a,b,c,s,area; scanf(“%f ,%f ,%f”,&a,&b,&c ); s=1.0/2*(a+b+c); area=sqrt(s*(s-a)*(s-b)*(s-c); printf(“a=%7.2f,b=%7.2f,c=%7.2f,S=%7.2f n”, a,b,c,s); printf(“area =%7.2f n” ,area); 运行:输入3,4,6显示:a= 3.00, b=4.00, c=6.00, S= 6.50 area = 5.33注意:程序中的sqrt()是求平方根函数,需要调用数学库函数,所以,必须在程序的开始加上:#include 命令。 若把公式S=1.0/2*(a+b+c);写为S=1/2*(a+b+c);则最后的结果=0,因为1/2=0。 *不能省略练习:编程序:交换两数的值,并显示交换后的结果。(假设两数存放在变量a,b中)【例3.6】输入三个小写字母,输出其ASCII码和对应的大写字母。思路:当用格式%c来输入字符时,接收的是输入字符所对应的ASCII值。大小写字母间相差32,如:大写字母A的ASCII值为65,小写字母a的ASCII值为97。所以大写字母转换为小写字母应加上32。程序代码:main() char a,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 装饰材料行业品牌形象宣传策略考核试卷
- 羽绒制品生产环境与职业健康安全考核试卷
- 数字智慧方案5400丨某省高院智慧法院解决方案
- 园林景观设计调研
- 2025年一级建造师之一建机电工程实务能力提升试卷A卷附答案
- 2025年水镁石项目建议书
- 2025年一级建造师之一建港口与航道工程实务强化训练试卷A卷附答案
- 户外广告媒体设计要点解析
- 牙膏的介绍教学课件
- 2023抖音电商国货食品饮料消费洞察报告
- 孤独症儿童发展评估-评估表(最终版)
- 2023年劳动保险条例实施细则修正案全文
- 赴镇海炼化、燕山石化调研报告
- ARJ21机型理论知识考试题库(汇总版)
- 小型自选商场商品管理系统设计报告
- 泵站初步设计
- MT/T 548-1996单体液压支柱使用规范
- GB/T 16911-2008水泥生产防尘技术规程
- GB 16715.1-2010瓜菜作物种子第1部分:瓜类
- 2022妊娠期及产褥期颅内出血的临床特点和治疗策略(全文)
- 中小学“学思行悟”课堂教学改革行动实施方案
评论
0/150
提交评论