C语言学习教案公开课一等奖省优质课大赛获奖课件_第1页
C语言学习教案公开课一等奖省优质课大赛获奖课件_第2页
C语言学习教案公开课一等奖省优质课大赛获奖课件_第3页
C语言学习教案公开课一等奖省优质课大赛获奖课件_第4页
C语言学习教案公开课一等奖省优质课大赛获奖课件_第5页
已阅读5页,还剩45页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

一、目标1.了解C程序组成,初步掌握语句分类;2.了解结构化程序设计方法、程序三种基本控制结构;3.掌握putchar和getchar函数使用方法;4.熟练应用printf和scanf函数编程;5.了解、掌握次序结构程序设计步骤,能独立编写次序结构程序;6.养成良好编程习惯,确保程序正确性。概述二、本章内容、重点、难点内容:变量定义、赋值语句、输入输出语句。输出函数printf(“格式控制”,输出列表)输入函数scanf(“格式控制”,地址列表)难点是格式控制,地址列表概述例:#include<stdio.h>main(){inta=3,b=-5,c;c=a*b/2;printf("c=%d\n",c);}开始结束次序结构:就是程序中语句按先后次序逐条执行结构。概述3.1.1C程序组成

C程序:由一个或多个“*.C”文件组成*.C文件:由预编译命令、函数组成。其中:

预编译命令如:#define、#include

函数包含一个主函数、一个或多个其它函数

函数:由说明部分、语句组成3.1C语句概述C语言源程序是由语句组成。预编译命令函数1……函数m

程序组成f1.cf2.c┆┆fn.c预编译命令main(){……}函数1……函数n……┆……说明部分语句3.1C语句概述3.1.2C语句分类按功效可分成:①表示式语句描述要执行操作运算。②流程控制语句描述程序执行走向。3.1C语句概述C语句表示式语句流程控制语句简单赋值表示式语句流程控制结构循环限定转向语句流程转向语句复合函数调用语句空语句选择无条件转向语句3.1C语句概述3.2.1什么是结构化程序设计

结构化程序设计思想:不用或少用无条件转向语句(goto语句);改进并统一每个模块控制结构及模块间联络。3.2结构化程序设计结构化程序设计:是一个程序设计技术,采取:自顶向下、模块化、逐步细化、结构化编程设计方法。利用:次序、分支、循环三种控制结构。控制遵照标准是:单入口、单出口。结构化程序设计强调程序设计格调和程序结构规范化,提倡清楚结构。3.2结构化程序设计3.2.2三种基本结构1.三种基本结构次序结构选择结构循环结构一句句次序往下执行If三种形式Switch多分支当型条件为真时执行循环体(含for循环)直到型执行循环,直到条件为真时停顿3.2结构化程序设计2.流程图表示AB┄PAB真假PA真假PA假真次序结构选择结构循环结构当型直到型3.2结构化程序设计输出:从内存→外设(打印、显示、存盘)。输入:从外设→内存。C语言用编译系统提供函数实现输入输出。没有输入输出语句。3.3数据输出3.3.1putchar函数(单个字符输出函数)格式:putchar(字符变量|字符常量)功效:向终端输出一个字符。含控制和转义字符。说明:终端默认为是显示器。变量常量例:charc=‘8’;putchar(c);putchar(‘A’);注意:该函数包含在stdio.h头文件中。3.3数据输出例3-1用putchar函数输出字符。#include<stdio.h>main(){chara='O',b='K',c='!';

putchar(a);putchar(b);putchar(c);

/*输出一个回车符*/putchar('\n');

3.3数据输出/*用8进制表示字符'A'*/putchar('\101');/*用16进制表示字符'z'*/putchar('\x7a');

/*用8进制表示回车换行*/putchar('\015');putchar('\012');getch();}putchar功效简单,只能输出一个字符;完全可被printf代替;但优点是:生成代码短3.3.2printf函数(格式输出函数)1.普通格式:printf(“格式控制符”,输出列表)功效:将输出列表项按格式控制符给定格式输出。说明:⑴格式控制符用双引号括起来字符串。有3种:①格式申明符,如:%c、%d、%f、%s等。为输出列表指定输出格式。②普通字符,原样输出。③转义字符,按转义输出。如:\n、\015等。3.3数据输出⑵输出列表是要输出常量或表示式。输出列表项与格式符从左到右一一匹配。其中:①个数相等时,按格式符类型一一输出;②输出列表个数>格式符个数时,多出不输出;③格式符个数>输出列表个数时,多出乱输出。

∴应确保:输出列表个数=格式符个数,以免犯错。3.3数据输出对不一样类型数据使用不一样格式符,惯用有9种:类型格式符输出说明可加修饰符整型d十进制有符号整数,不输出正号+l:表示长整型,如:%ldm:最小宽度,如:%3d-:输出左对齐o八进制无符号整数,不输出前导符ox,X十六进制无符号整数,不输出前导符0xu十进制无符号整数实型f以小数形式输出单、双精度数,隐含6位小数m.n:m最小宽度、n小数位数。%6.1f-:输出左对齐e,E以指数形式输出单、双精度数,隐含6位小数g,G选%f或%e中宽度短一个格式,省略尾部0字符型c以字符形式输出,只输出一个字符m.n:m最小宽度、n往左截取字符数。s输出字符串2.格式字符与格式修饰符3.3数据输出说明:数据类型必须与格式字符匹配,以免犯错;用“X”时,输出用大写字母A~F表示10~15;用“E”或“G”输出时,指数用大写字母表示;格式控制字符串中能够使用转义字符。3.3数据输出⑴整型类①%d格式输出十进制有符号整数,与修饰符组合有6种形式:%d以紧凑格式输出,即输出项间不留空格%md输出项占m列宽度,且右对齐%-md输出项占m列宽度,且左对齐%ld以长整型紧凑格式输出%mld输出项占m列宽度,且右对齐%-mld输出项占m列宽度,且左对齐3.3数据输出例inta=123,b=4567;longc=123456,d=654321;printf(“%d%d\n”,a,b);printf(“%5d%2d\n”,a,b);printf(“%-5d%-5d\n”,a,b);printf(“%ld%ld\n”,c,d);printf(“%-8ld%8ld”,c,d);输出:123456712345671234567123456654321123456

6543213.3数据输出②%o、%x、%u格式输出八进制、十六进制、无符号整数。与“l”、”m”、”-”符号结合,有类似%d六种格式。输出八进制、十六进制数不另带符号,符号位作为八进制、十六进制数一部分输出。利用不一样输出格式,能够方便实现不一样数值之间转换。3.3数据输出例3-2:输入十进制整数,分别以八进制、十六进制和无符号形式输出。说明:因为系统对不一样进制数不做任何标识,本例在各数前面补充输出字符0、0x、u。main(){inta;printf(“a(-32768~32767)=?”);scanf(“%d”,&a);printf(“a=%d0%o0x%xu%u\n”a,a,a,a);}3.3数据输出运行结果以下:a(-32768~32767)=?5678a=56780130560x162eu5678a(-32768~32767)=?-1a=-101777770xffffu65535-1绝对值原码取反-1补码假如看成有符号数就是-1;无符号数就是65535。16个1用八进制表示为177777;用十六进制表示为ffff。0000000000000001111111111111111011111111111111113.3数据输出⑵实型类输出单精度、双精度数使用相同三种输出格式。①%f以小数形式输出实数

*%f格式按系统默认精度输出实数。靠左放。单精度型输出6位小数,有效位数为7位;双精度输出有效位数16位,小数也是6位。整数部分全部输出,小数部分不一定全部有效。

比如:floatx=1234567.890123;doubley=1234567.890123;printf(“x=%f\ty=%f\n”,x,y);输出为x=1234567.875000y=1234567.8901233.3数据输出

*%m.nf格式输出占m列宽度,其中:小数为n位,第n+1位自动四舍五入;小数点占1位;右对齐输出;数据长度<m时,左端补空格。*%-m.nf格式含义同上。左对齐输出;数据长度<m时,右端补空格。3.3数据输出例3-3:输出实数时指定小数位。main(){floatf=123.456;printf(“%f\t%10f\t%10.2f\t%.2f\t%-10.2f\\t%10.0f\n”,f,f,f,f,f,f);}3.3数据输出*%e以标准指数格式输出实数。其中:小数点前仅1位非0数字;系统自动指定小数位数为5~6位(TC为5位);指数部分占:e占1位、指数符号1位、指数占2~4位;例:printf(“%e”,123.456789);输出:1.23457e+02/*TurboC*/

注意:不一样系统有区分。②%e以指数形式输出实数3.3数据输出

*%m.ne、%-m.ne格式含义同前。其中:n小数位数,有些系统少1位,TC即为n-1位当不指定n时,TC自动取n=5;m≤实际长度,按实际长度。

例:若f=123.456;

printf(“%e­­%10e­­%10.2e­­%.2e­­%-10.2e”,f,f,f,f,f);输出以下:

1.23456e+02­­1.23456e+02­­­­­1.2e+02­­1.2e+02­­1.2e+02­­­11列11列10列7列10列3.3数据输出③%g格式依据数值大小,自动选取%f或%e格式中宽度较小一个,且省略尾部无意义0。例:doublex=1234567890.123,y=4.56,z=78.9000;printf(“%%f=%f%%e=%e%%g=%gy=%gz=%g”,x,x,x,y,z);输出结果:%f=1234567890.123000%e=1.23457e+09%g=1.23457e+09y=4.56z=78.93.3数据输出①%c格式输出一个字符。整型数值在0~255范围内时,可用字符形式输出,系统自动输出其ASCII码字符;字符型数据也能够用整型数格式输出,系统按1字节数处理;也能够指定输出字符占列数。如:printf(“%3c\t%-3c”,’a’,’a’);结果为:­­a­­­­­a⑶字符类左对齐3.3数据输出②%s格式按紧凑格式输出字符串。例:printf(“%s%s\n”,”CHINA”,”OK!”);结果:CHINAOK!*%ms输出占m列;右对齐,不足左补空格;超出m按实际长度输出。%-ms左对齐,不足右补空格;其余同%ms。*%m.ns从串中左取n个字符,按m列输出;右对齐,不足左补空格。%-m.ns左对齐,不足右补空格;其余同%m.ns3.3数据输出#defineW“CHINA”main(){printf(“%3s,%7.2s,%.4S,%-5.3S\n”,W,W,W,W);}

输出结果:CHINA,­­­­­CH,CHIN,CHI­­3.3数据输出3.4.1getchar函数(单字符输入函数)格式:getchar()功效:从终端输入一个字符。终端:普通指键盘。用途:可为字符变量、整型变量赋值;也可出现在表示式中。3.4数据输入例3-9:输入4个字符,可是字母、数字,查看结果。#include<stdio.h>main(){ charc; inti;

c=getchar(); printf("c=%-4c",c); i=getchar(); printf("i=%-5d",i);

printf("c1=%-4cc2=%c\n",getchar(),getchar());

getch();}/*从键盘上输入ABCD*/3.4数据输入函数屡次出现时,应将全部取值一次全部从键盘输完,不然所按回车键有可能成为函数值;函数每次从缓冲区取一个字符为值;getchar和putchar配合使用,如:c=getchar();putchar();putchar(getchar());4.函数最惯用在if或while语句中,如:if((ch=getchar())!=‘#’){……}while((ch=getchar()!=‘#’{……}注意:3.4数据输入3.4.2getch与getche函数1.getch()函数格式:getch()功效:等候击键,如处理输出屏幕一闪而过问题。执行过程:程序执行碰到此函数时,停留在输出屏幕(用户),当单击任意一键后,马上返回到编辑界面。按键不显示出来。2.getche()函数格式:getche()功效、执行过程:同上。区分是:按键显示出来。3.4数据输入例3-4:显示1~5平方。按任意键结束程序运行。#include<stdio.h>main(){inti;for(i=1;i<=5;i++)printf("%d*%d=%d\t",i,i,i*i);getch();/*运行后显示结果,按任一键后返回到编辑屏幕*/}3.4数据输入3.4.3scanf函数(格式输入函数)1.普通格式:scanf(“格式控制”,地址列表)功效:一次能够输入任何类型多个数据。说明:“格式控制”:含义类似printf函数;地址列表:若干个地址。能够是变量地址或字符串首地址。3.4数据输入例:inta,b,*p1=&a,*p2=&b;floatx,y;

scanf("%d%d%f%f",p1,p2,&x,&y);

说明:①变量地址是在编译连接阶段分配;②输入数据时,分隔两个数值型数据可用:一个或多个空格回车换行键Tab键3.4数据输入⑴格式控制①格式控制符类似printf函数类型格式符输入类型说明可加修饰符整型d十进制有符号整数字母l,表示长整型(%ld)o无符号八进制整数,前面可不加数字0x,X无符号十六进制整数,前面可不加0、xu无符号十进制整数实型f小数或指数形式实型数字母l,表示double型(%lf%le)e,E,g,G与f相同。e与f、g能够交换,大小写相同。字符型c单个字符,“%c%c%c”数据间无分隔符;“%c,%c,%c”数据间用逗号分隔s字符串,以非空格字符开始,以空格、回车结束。3.4数据输入②说明:“格式控制”中若有其它字符,应一并输入scanf(“a=%d,b=%d”,&a,&b)则应输入:a=3,b=4输入数据时不能要求精度,但可指定所占列数:scanf(“%7.2f”,&a)×scanf(“%4d%3d”,&a,&b)若输入:12345678则:a1234b5673.4数据输入对unsigned型变量所需数据,可用%u、%d或%o、%x格式输入。假如在%后有一个*号,表示跳过它指定列数:scanf(“%2d%*3d%2d”,&a,&b);若输入:12345678则:a12b67其中:%*3d表示读入三位整数,但不赋给任何变量。3.4数据输入输入多个数据时,必须注意数据之间分隔符:数值型、字符串型数据间,用空格或回车键分隔;字符型数据间不加任何分隔符;若数值型、字符串型、字符型数据混合输入,最好将字符型集中前置,数值型、字符串型集中后置。输入数据时,字符型之间仍不加任何分隔符,后面数据都用空格分隔。为了醒目,可在scanf函数前用printf做输入提醒。3.4数据输入⑵地址列表由若干个地址组成。地址列表施用对象用取地址符&用指针变量用用户标示符普通变量、数组元素普通变量指针变量、数组元素指针变量、字符指针变量、字符串指针变量字符数组名。如:charc[11];scanf(“%s”,c);3.4数据输入2.举例例3-5-2对输入十进制、八进制、十六进制数,都以十进制输出。#include<stdio.h>main(){ inta,b,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论