C语言程序设计案例教程教学课件汇总完整版电子教案_第1页
C语言程序设计案例教程教学课件汇总完整版电子教案_第2页
C语言程序设计案例教程教学课件汇总完整版电子教案_第3页
C语言程序设计案例教程教学课件汇总完整版电子教案_第4页
C语言程序设计案例教程教学课件汇总完整版电子教案_第5页
已阅读5页,还剩1068页未读 继续免费阅读

下载本文档

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

文档简介

1、C语言程序的特点Teacher teaching designCONTENTS 目 录C语言程序的特点C语言的结构组成案例分析仿真演练标识符C语言程序的特点PART 011、C语言提供的语句简洁、使用方便、格式紧凑,语法灵活。C语言一共有32个关键字,9种控制语句,语句简练,书写自由。以下关键字由系统定义,不能用作其他定义。C语言程序的特点与数据类型相关的关键字:char(字符型) int(整型) short(短整型) long(长整型) signed(有符号)unsigned(无符号) float(单精度实型或单精度浮点型 ) double(双精度浮点型)enum(枚举型) struct(结

2、构体类型) typedef(自定义类型)union (共用体类型或公用体类型或联合体类型)与存储类型相关的关键字auto(自动类型) register(寄存器类型) static(静态类型) extern(外部类型)C语言程序的特点与控制语句相关的关键字if(如果) else(否则) switch(开关) case(事例) default(预置默认) do(做或干) while(在期间,与同时,虽然) for(C语言表示在于从“控制变量”等于“初值”开始,循环) break(中断或终止当前循环或终止switch) continue(继续) goto(转移) return(返回)其他关键字con

3、st( 表示定义常量,在程序运行过程中,常量的值不能改变) sizeof(C语言的关键字但并不是函数表示某某类型的大小长度) volatile(volatile的本意是“易变的”,volatile定义的变量,它的值在编译时是会改变的)9种控制语句if()else switch()case for() while()dowhile() continue break goto return C语言程序的特点2、C语言有34种运算符,有算术、关系、逻辑、位、赋值、指针、条件、逗号、下标、类型转换等;3、C语言是格式化模块化程序设计语言主,采用自顶向下、逐步求精的结构化程序设计方法,即化整为零,分工合

4、作、资源共享。4、C语言具在移植性、通用性的特点;C语言的结构组成PART 02C语言的结构组成案例1、请同学们观察分析以下程序的结构 (程序功能是:求两数之和 ),完成任务。#include /*头文件*/ main( ) /*主函数*/ 函数首部 int a,b,sum; /*声明部分,定义变量*/ a=123;b=456; /*给变量赋值*/sum=a+b; /*通过求各运算把结果存储在变量单元*/printf(sum is %dn ,sum); /* 输出sum的值*/C语言的结构组成案例2、阅读以下程序(程序功能是:求两数中的最大值 )int max(int a,int b); /*

5、函数说明*/main() /*主函数*/ int x,y,z; /*变量说明*/int max(int a,int b); /*函数说明*/ printf(input two numbers:n);scanf(%d%d,&x,&y); /*输入x,y值*/ z=max(x,y); /*调用max函数*/ printf(maxmum=%d,z); /*输出*/ int max(int a,int b) /*定义max函数,指明函数类型,形参名称及数据类型*/ if(ab) /*if条件判断指如果条件成立 执行下面程序段*/return a; /*上述条件成立,把变量a值返回主调函数*/else

6、/*指if条件不成立,执行下面程序段*/return b; /*把变量b值返回主调函数*/C语言的结构组成1、C程序的基本单位是 函数 。2、C程序中语句都以 分号 作为结束标记。3、C语言的源程序是存放在扩展名为 .C 文件中。4、C语言中,以 /* */为标记组成的内容称为 注释 ,它不被系统编译和执行,目的是帮助阅读程序,增强程序的 。5、C源程序是由函数构成的,每一个C程序只有一个main()函数,它代表程序开始执行的起始位置,C程序执行时总是从 主函数( main() ) 开始,main() 函数可以在任何位置。6、案例2中的max函数,其函数说明各部分如下所示,请填充各部分所指的内

7、容。函数类型 函数名 函数参数表 ( int ) ( max ) ( int a, int b )7、一个函数由 函数首部 和 函数体 两部分组成。其中函数首部包括:函数类型 、函数名 、函数参数 三部分。函数体包含在一对 花括号 中。且其中可以包含多对,即可以嵌套。最外层的大括号是函数的开始和结束的标志。函数体部分包含 函数变量声明部分 和 函数执行部分 两部分。提醒:请务必注意函数说明部分与函数定义部分在格式上的区别?9、函数之间的调用。函数的调用从 main()开始,先由main()函数调用其他函数,然后其他函数再发生若干级调用,然后根据调用顺序层层返回到调用点,最后返回到 main()

8、函数结束。标识符PART 03标识符C语言规定标识符只能由字母 、 数字和下划线三种字符组成,且第一个字符必须为字母或下划线 。例如:sum,day,_class,student_No,a1等都是合法的标识符。2a_q,a#_12,$abc等都是非法的标识符。须注意的是:1标识符不能和C语言的关键字重名。如:if(C语言的关键字),main(C语言的关键字)都是不合法的标识符。2在C语言中,大写字母和小写字母被认为是两个不同的字符。如:max和MAX是两个不同的标识符。3ANSI C标准没有规定标识符的长度,但各个C编译系统都有自己的规定。在Turbo C中规定标识符的长度不超过32个字符,如

9、果超过只有前32个字符有效。仿真演练 体验探索PART 04仿真演练 体验探索1、以下叙述中错误的是( C )。A)C语句必须以分号结束B)C语言的关键字以及数据定义常以小写字母作为书写形式C)函数定义后其结尾要加分号D)函数名后圆括号内是形式参数表,有多个参数则用逗号分隔2、一个C程序的执行是从( A )A)main()函数开始,直到main()函数结束 B)第一个函数开始,直到最后一个函数结束C)第一个语句开始,直到最后一个语句结束D)main()函数开始,直到最后一个函数结束3、在一个C程序中( B )A) main函数必须出现在所有函数之前 B) main函数可以在任何地方出现C) m

10、ain函数必须出现在所有函数之后 D) main函数必须出现在固定位置仿真演练 体验探索4、C语言程序的基本单位是( A )。A)函数 B)过程 C)子程序 D)主程序和子程序5、用C语言编写的代码程序( B )A)可立即执行 B)是一个源程序 C)经过编译后即可执行 D)经过编译解释后才能执行6、以下叙述不正确的是 ( D )A)一个C源程序可由一个或多个函数组成B)一个C源程序必须包含一个main函数C)C程序的基本组成单位是函数D)在C程序中,注释说明只能位于一条语句的后面7、C语言源程序要正确地执行,必须要有( C )函数A)printf()函数 B)自定义函数 C)main()函数

11、D)不需要函数仿真演练 体验探索8、C语言是下列语言中哪一种( B )A)汇编语言 B)高级语言 C)低级语言 D)机器语言9、在C程序中,可以作为用户标识符的一组标识符是( B )。A) void define WORD B) as_b3 _224 ElseC) Switch -wer case D) 4b DO SIG10、下列选项中,是C语言提供的合法的关键字的是( C )。A)swicth B)cher C)default D)CaseC 程序的开发过程Teacher teaching designCONTENTS 目 录提出问题 引入新课C语言开发步骤C程序开发环境案例分析仿真演练常

12、用的定界符提出问题 引入新课PART 01提出问题 引入新课1、C语言的基本数据类型是: 、 、 、 。2、C语言是下列语言中哪一种( )A)汇编语言 B)高级语言 C)低级语言 D)机器语言3、以下不是C语言的特点是( )A)C语言简洁、紧凑 B)能够编制出功能复杂的程序 C)C语言可以直接对硬件进行操作 D)C语言移植性好4、C语言编写的程序称( )A)高级程序 B)源程序 C)目标程序 D)C#程序5、结构化程序设计的思想是:采用自顶向下,逐步求精的结构化程序设计思想。C语言开发步骤PART 02开发步骤1、C源程序的编辑任选一种文字处理软件如word、记事本等编辑源文件。检查确认无误后

13、,保存扩展名为.C的源文件。2、编译C源文件 编译是对源文件词法和语法进行检查和翻译的过程。编译时先处理头文件如#include等,将其包含在源文件中一并进行分析,产生中间代码,最后由代码生成器生成目标文件存于文件系统中。其文件扩展名为.obj的目标文件。3、链接过程编译生成的目标文件不能直接运行,因为目标文件是一个可浮动的程序模块,必须通过链接程序,将编译生成的目标文件,与其他目标文件、库函数链接在一起,形成一个可执行文件。可执行文件的扩展名为.exe可执行程序。开发步骤4、执行过程 可执行文件,可以脱离编译系统而独立存在。在操作系统支持下,单击运行按钮或键入文件名即可立刻执行。 程序能运行

14、,并不意味着结果一定正确,如果存在逻辑性错误是难以发现的,这就要求程序员从算法到程序设计各个环节认真检查,跟踪测试,再经历“编辑编译链接运行”全过程,直到达到预期目的为止。C程序集成开发环境PART 03集成开发环境(一)Turboc 2.0的安装和启动(1)、安装过程(略)(2)、启动过程:运行Turboc 2.0时,只要在TC目录下运行主程序TC.EXE即可进入Turboc 2.0集成开发环境。(3)、安装完毕后将在当前目录下建立一个TC子目录,TC目录还建立两个子目录LIB和 INCLUDE,其中LIB子目录用于存放库文件,INCLUDE子目录中存放所有头文件。(4)Turboc 2.0

15、集成开发环境的界面操作介绍1、采用投影仪进行直观演示教学:(略);集成开发环境2、完成以下内容:(课堂上完成)(1)在Turboc 2.0集成开发环境编辑状态,要激活主菜单可以按功能键:F10 。(2)默认的C语言源文件的文件名后缀为:.C 。(3)文件存盘的热键是:F2。(4)运行程序的热键是:CTRL+F9、显示程序运行结果的热键是:ALT+F5。(5)将一个C源文件编译生成.OBJ目标文件的热键是:ALT+F9。(6)把当前.OBJ文件及库文件连接生成可执行.EXE文件的热键是:F9 。(二)wintc运行环境界面操作介绍(1)安装和启动(略)。(2)界面介绍:采用投影仪进行直观演示教学

16、。常用的定界符PART 04常用的定界符1、花括号和 2、尖括号 3、圆括号(和) 4、方括号和5、注释符/*和*/ 6、 双引号“ 7、单引号 定界符包括: 仿真演练 体验探索PART 05仿真演练 体验探索【编辑第一个程序】L1/*这是我的第一个程序*/L2 #includeL3 void main()L4 L5 printf(welcome to learning c language);L6 仿真演练 体验探索【编辑第二个程序】 L1/*这是我的第一个程序*/L2 #include L3 void main( )L4 L5 int a,b,sum; L6 a=123;b=456; L7

17、 sum=a+b; L8 printf(sum is %dn ,sum); L9 仿真演练 体验探索(一)、根据上述程序思考以下内容:1、程序1、程序2中L1行的含义是:2、程序1、程序2中L2行的含义是:3、程序1、程序2中L3行的含义是:4、程序1的L4、L6行,程序2的L4、L9行的含义是:5、程序2的L5行的含义是:6、程序2的L6行的含义是:7、程序2的L7行的含义是:8、程序2的L8行的含义是:9、程序中的分号作用是:(二)想一想 编辑C源程序在书写方面要注意些什么?格式化输出函数Teacher teaching designCONTENTS 目 录数据的输出函数输出函数格式说明符

18、明确考点 交流提升案例分析 仿真演练数据的输出函数PART 01数据的输出函数printf函数(称为格式输出函数)printf函数所以称为格式输出函数,按用户指定的格式,把数据输出到显示器屏幕上。其关键字最末一个字母f是format的缩写,即为“格式” 的意思。 1) printf函数调用的一般形式:printf(“格式控制字符串”,输出表列)功能:按“格式控制字符串”的指定格式,输出对应的变量 。说明: (1)格式控制字符串用于指定输出格式。格式控制串可由格式字符串和非格式字符串(普通字符)两种组成。格式字符串是以%开头的字符串,在%后面跟有各种格式字符,以说明输出数据的类型、形式、长度、小

19、数位数等。如:“%d”表示按十进制整型输出;“%ld”表示按十进制长整型输出;“%c”表示按字符型输出等。(2)非格式字符串在输出时原样照印,在显示中起提示作用。(3)输出表列中给出了各个输出项,要求格式字符串和各输出项在数量和类型上应该从左到右一一对应。数据的输出函数2)输出表列(1)变量输出表属于可选内容。如果输出的数据多于1个,相邻之间用逗号分隔。如: printf(How do you do !n); printf(a=%d b=%dn, a, b); (2)变量输出表内容可以是表达式:如: printf(%d,3*a+5);(3)“格式控制字符串”中的格式字符,必须与“输出表列”中输

20、出项的数据类型 一致,否则会引起输出错误。如初学者会无意间出现如下的错误,看着莫名其妙的程序结果却不知道是怎么回事: int a=10; printf(%f,a);输出函数格式说明符PART 02格式说明符格式字符意 义d以十进制形式输出带符号整数(正数不输出符号)o以八进制形式输出无符号整数(不输出前缀0)x,X以十六进制形式输出无符号整数(不输出前缀Ox)u以十进制形式输出无符号整数f以小数形式输出单、双精度实数e,E以指数形式输出单、双精度实数g,G以%f或%e中较短的输出宽度输出单、双精度实数c输出单个字符s输出字符串格式说明符printf 附加格式说明字符 (如 %m.nf和 %m.

21、ns等):标 志意 义-结果左对齐,右边填空格m( 正整数)数据最小宽度n( 正整数)对实数表示输出n位小数,对字符串表示截取的字符个数字母l用于长整型整数,可以加在格式符d,o,x,u前面。 #对c,s,d,u类无影响;对o类,在输出时加前缀0;对x类,在输出时加前缀0 x;对e,g,f 类当结果有小数时才给出小数点空格输出值为正时表示以空格,为负时加以负号明确考点 交流提升PART 03明确考点 交流提升(1)格式字符d以带符号的十进制整数形式输出允许形式:%d 、%md、%-md 、%ld等。%d按整型数据的实际长度输出;%md -m是正整数,表示输出数据宽度,若m小于数据的实际位数,m

22、不起作用;%-md-数据宽度小于m时,负号”-”要求结果左对齐,右边填空格;%md-数据宽度小于m时,结果右对齐,左边填空格;%ld-字母l用于长整型数据输出,还可以加在格式符o,x,u前面。明确考点 交流提升【例1】格式符d的使用。 main() int n1=111; long n2=222222; printf(n1=%d,n1=%4d,n1=%-4d,n1=%2dn,n1,n1,n1,n1); printf(n2=%ld,n2=%9ld,n2=%2ldn,n2,n2,n2); printf(n1=%ldn,n1); 运行结果:n1=111,n1=111,n1=111,n1=111n2=

23、222222,n2=222222,n2=222222请思考为什么产生这样的结果?整数还有下面的输出形式:%o(小写字母o )-整数八进制无符号形式输出;%x -整数十六进制无符号形式输出。%u-对于unsigned型数据,以十进制无符号形式输出。明确考点 交流提升(2)、格式字符f以小数形式,输出单精度和双精度实数允许形式:%f、%m.nf、%-m.nf 、%mf、%.nf等。%f - 按系统默认宽度输出实数:整数部分全部输出,小数部分输出6位。单精度变量的输出有效位是7位;双精度变量的输出有效位是16位。%-m.nf - m是正整数,表示数据最小宽度;n是正整数,表示小数位数,m和负号的用法

24、与前面相同。%g - 让系统根据数值的大小,自动选择%f或%e格式、且不输出无意义的零。 【例2】 输出实数的有效位。 main( ) float x=11111.111,y=33333.333; printf(x+y=%fn,x+y); 程序运行结果 : x+y=44444.443359,但有效数字只有7位:44444.44。双精度变量的输出与此类似,只是有效位是16位。明确考点 交流提升【例3】 思考题:以下输出语句的结果:printf( %fn,12.3); 12.300000printf( %2fn,12.3); 12.300000printf( %10fn,12.3); 12.300

25、000printf( %.3fn,12.3); 12.300printf( %10.3fn,12.34567); 12.346 printf( %5.3fn,12.3) 12.300printf( %10.3fn,12.3); 12.300printf( %5.3fn,12.34444); 12.344明确考点 交流提升(3)、格式字符e以指数形式输出实数允许形式:%e、%m.ne、%-m.ne 、%me、%.ne等m限定输出实型数据的总宽度,n-1限定输出的小数位数。 %e -以标准指数形式输出:尾数中的整数部分大于等于1、小于10,小数点占一位,尾数中的小数部分占5位;指数部分占4位,其中

26、e占一位,指数符号占一位,指数占2位,共11位(不同系统的规定略有不同)。如,3.33333e-03。【例4】思考题:以下%e的输出格式事例,思考以下输出语句的结果:printf( %en,12.3); 1.23000e+01printf( %2en,12.3); 1.23000e+01printf( %15en,12.3); 1.23000e+01printf( %.3en,12.3); 1.23e+01printf( %15.3en,12.3); 1.23e+01 printf( %5.3en,12.3); 1.23e+01printf( %15.3en,12.345); 1.23e+01

27、 明确考点 交流提升4、格式字符c输出一个字符 允许形式:%mc %c -以字符形式输出一个字符。【例5】字符和整数的输出。 main() char ch=a; int i=97;printf(ch=%c,ch=%cn, ch,i); /*c,i以字符形式输出*/printf( i=%d,i=%dn, ch,i); /*c,i以整数形式输出*/printf( ch=%2cn, ch);/* m限定输出字符的总宽度,m大于字符宽度则字符左端填充空格*/ 程序运行结果 :ch=a, ch=ai=97,i=97ch= a明确考点 交流提升5、格式符s输出一个字符串允许形式:%s、%m.ns %s-输

28、出一个字符串。%m.ns-m是正整数,表示允许输出的字符串宽度;n是正整数,表示对字符串截取的字符个数。【例6】输出字符串。 main() printf(%s,%3s,%-9sn,student, student , student ); printf(%8.3s,%-8.3s,%3.4sn,student ,student ,student ); 运行结果 :student, student, studentstu, stu, stud说明: 如果想输出字符 % ,可以在“格式控制字符串“中连续用两个%表示,如, printf(“%5.2f%”,1.0/2); 输出结果为:50.00%。仿真

29、演练 体验探索PART 04案例分析 仿真演练1、以下程序运行后的输出结果是( )。 main() int x=0210; printf(%Xn,x); 2、以下程序运行后的输出结果是 ( ) 。 main() char c; int n=100; float f=10; double x; x=f*=n/=(c=50); printf(%d %fn,n,x); 3、有以下程序运行后的输出结果是( ) main() int m=0256,n=256; printf(%o %on,m,n); A)0256 0400 B)0256 256 C)256 400 D)400 400 4、有以下程序运行

30、后的输出结果是( ) main() int a=666,b=888; printf(%dn,a,b); A)错误信息 B)666 C)888 D)666,888 5、以下程序段的输出结果是( )main() int i=9; printf(%on,i); 6、以下程序运行后的输出结果是 ( ) main() int a,b,c; a=25; b=025; c=0 x25; printf(%d %d %dn,a,b,c); 案例分析 仿真演练案例分析 仿真演练7、有以下程序执行后输出结果是( )main( ) int x=102,y=012; printf(%2d,%2dn,x,y); A) 1

31、0,01 B) 02,12 C) 102,10 D) 02,108、已知字符A的ACSII码值为65,以下语句的输出结果是( ) main( ) char ch=B; printf(“%c %dn”,ch,ch); 9、 有以下程序语句 main() int n1=10,n2=20; printf( ,n1,n2); 要求按以下格式输出n1和n2的值,每个输出行从第一列开始,请填空。n1=10n2=20案例分析 仿真演练10、有以下程序运行后的输出结果是( )main() int a,b,d=25; a=d/10%9; b=a&(-1); printf(%d,%dn,a,b);A)6,1B)2

32、,1C)6,0 D)2,011、有以下程序运行后的输出结果是( )main() int c=35; printf(%dn,c&c); A)0B)70C)35D)112、若有以下程序段运行后的输出结果是( ) main() int a=2,b=5; printf(a=%d,b=%dn,a,b); A)a=%2,b=%5 B)a=2,b=5 C)a=%d,b=%d D)a=%d,b=%d格式化数据的输入函数Teacher teaching designCONTENTS 目 录数据的输入函数格式控制字符串附加格式说明符案例分析 仿真演练 数据输入格式明确考点 交流提升数据的输入函数PART 01数据

33、的输入函数数据的输入函数scanf函数称为格式输入函数,它可以按用户指定的格式从键盘上把数据输入到指定的变量中。1、 scanf函数的一般形式是: scanf(“格式控制字符串”,地址表列);功能:按“格式控制字符串”的要求,从键盘上把数据输入到变量中。说明:、地址列表中给出各变量的地址。地址是由地址运算符“&”后跟变量名组成的。例如:&a, &b【解析】分别表示变量a和变量b 的地址。这个地址就是编译系统在内存中给a,b变量分配的地址。变量的地址是C编译系统分配的,用户不必关心具体的地址是多少。、 变量地址表由若干个被输入数据的地址组成,相邻地址之间,用逗号分开。地址表中的地址,可以是变量的

34、地址,也可以是字符数组名或指针变量。和的关系是数量、类型及位置要从左至右一一对应,在格式控制字符串中指定变量接收输入值的位置和格式。例如:从键盘上输入三个整数: scanf(%d,%d,%d”,&a,&b,&c);思考:如果格式控制字符串与变量地址没有一 一对应时,会出现什么结果?如:、scanf(%d,%d,&a,&b,&c); 、 scanf(%d,&a,&b,&c);格式控制字符串PART 02格式控制字符串格式控制字符串、格式字符串的一般形式为:%*输入数据宽度长度类型其中有方括号的项为任选项。各项的意义如下:类型:表示输入数据的类型,其格式符和意义如输入数据的类型表所示。格式字符意义

35、d输入十进制整数o输入八进制整数x输入十六进制整数u输入无符号十进制整数f或e输入实型数(用小数形式或指数形式)c输入单个字符s输入字符串附加格式说明符PART 03格式举例(1)宽度n: 指定输入数据的列宽为n。 即,只接收输入数据中相应的n位,赋给对应的变量,多余部分舍去。 例如,scanf(%2c%c,&c1,&c2); printf(c1=%c,c2=%cn,c1,c2); 如果输入“abcd”,则系统将读取的“ab”中的“a”赋给变量c1;将读取的“cd”中的“c”赋给变量c2,所以printf()函数的输出结果为:c1=a,c2=c。思考:scanf(%5d,&a); 输入:123

36、45678 则a的值是 scanf(%4d%4d,&a,&b);输入:12345678 则变量a,b的值是 (2)抑制符号 *该字符可以使对应的数据输入后,被抑制,不赋给任何变量。如: scanf(%2d%*2d%2d,&x1,&x2); printf(x1=%d,x2=%dn,x1,x2); 如果输入112233,则输出结果为: (3)字符l-%ld.%lo,%lx,%lu,用于输入长整型数据;%lf,%le,用于输入实型数据。(4)字符h-%hd.%ho,%hx,用于输入短整型数据数据输入格式PART 04数据输入格式(1)如果相邻格式说明符之间,没有数据分隔符号(如%d%d ),则由键盘

37、输入的数据可以用空格分隔(至少一个),或者用Tab键分隔,或者输入1个数据后按“回车”,然后再输入下个数据。 例如,scanf(%d%d,&x1,&x2); 如果给x1输入11,给x2输入33,则正确的输入操作为:1133 或者:11 33(2)“格式控制字符串”中出现的普通字符(非格式字符),包括转义字符,需要原样输入。否则产生对应错误,这点务必注意,例如,scanf(%d,%d,&x1,&x2); 输入格式为:11,33 scanf(%d :%d,&x1,&x2); 输入格式为:11 :33 scanf(x1=%d,x2=%dn,&x1,&x2); 输入格式为: x1=11,x2=33n注

38、:这样的输入格式是很麻烦的,最好不这样设计。数据输入格式(3)输入数据时,遇到以下情况,该数据被认为输入结束: 遇到空格,或者“回车“键,或者“跳格”(Tab)键。 指定的输入宽度结束时。如“%5d”,只取5列。 遇到非法输入。如,输入数值数据时,遇到非数值符号 。(4)使用“%c”输入字符时,不要忽略空格的存在。如, scanf(%c%c ,&c1,&c2,); printf(c1=%c,c2=%c n,c1,c2); 如果输入:xy,则系统将空格赋值给c1,字母x赋值给c2。 思考练习:scanf(%c%c%c,&a,&b,&c);输入为:d e f则a,b,c的值分别是:(5) 有以下程

39、序main() int a;printf(input a numbern);scanf(%d,&a);printf(%ld,a);如果输入2时,结果为131074与题意不符,请思考结果不正确的原因? 数据输入格式 注意:(1)如果需要实现人机对话的效果,设计数据输入格式时,可以先用printf()函数输出提示信息,再用scanf()函数进行数据输入。 例如,把scanf(x1=%d,x2=%dn,&x1,&x2);改为: printf(x1=); scanf(%d,&x1); printf(x2=); scanf(%d,&x2);这样就可以有屏幕提示的效果了。(6)有以下程序main() in

40、t a,b,c; printf(input a,b,cn); scanf(%d%d%d,&a,&b,&c); printf(a=%d,b=%d,c=%d,a,b,c);思考如何从键盘上输入数据?学习提示:格式输入输出函数的规定比较繁琐,但不要死记硬背,可以先掌握一些基本的规则,多上机操作,随着以后学习的深入,通过编写和调试程序逐步深入自然地去掌握。明确考点 交流提升PART 05明确考点 交流提升【例1】main() char a,b;printf(input character a,bn);scanf(%c%c,&a,&b);printf(%c%cn,a,b);思考:如输入M N则变量a,b

41、的值是: ;如果赋值不正确如何修改?【例2】#include main() int a,b; char c,ch; printf(Enter integer a and b:); scanf(%d %d,&a,&b); printf(Enter character c and ch:); scanf(%c%c,&c,&ch); printf(a=%d b=%dn,a,b); printf(c=%d ch=%dn,c,ch);运行结果为:Enter integer a and b:123 456Enter character c and ch: ABa=123 b=456c=10 ch=65思考

42、:请分析程序运行后,结果产生的原因是?。明确考点 交流提升【例4】有以下程序main() int m,n,p; scanf(m=%dn=%dp=%d,&m,&n,&p); printf(%d%d%dn,m,n,p); 若想从键盘上输入数据,使变量M中的值为123,N中的值为456,P中的值为789,则正确的输入是( )A)M=123 N=456 P=789 B)M=123 N=456 P=789 C)M=123,N=456,P=789 D)123 456 78【例3】#include main() int a,b; char c,ch; printf(Enter integer a and b

43、:); scanf(%d %d,&a,&b); printf(Enter character c and ch:); scanf(%*c%c%c,&c,&ch); printf(a=%d b=%dn,a,b); printf(c=%c ch=%cn,c,ch);如输入以下数据Enter integer a and b:123 456Enter character c and ch:AB则输出结果是:明确考点 交流提升【例5】有定义语句:int b;char c10;,则正确的输入语句是( )A)scanf(%d%s,&b,&c);B)scanf(%d%s,&b,c);C)scanf(“%d%s

44、”,b,c); D)scanf(%d%s,b,&c);【例6】以下程序运行时若从键盘输入:10 20 30。输出结果是( )。#includemain() int i=0,j=0,k=0; scanf(%d%*d%d,&i,&j,&k); printf(%d%d%dn,i,j,k); 仿真演练 体验探索PART 06仿真演练 体验探索1、有以下程序若运行时从键盘上输入:6,5,65,66,则输出结果是( )。main() char a,b,c,d;scanf(%c,%c,%d,%d,&a,&b,&c,&d);printf(%c,%c,%c,%cn,a,b,c,d);A)6,5,A,B B)6,

45、5,65,66 C)6,5,6,5 D)6,5,6,62、已知字母A的ASCII码为65。以下程序运行后的输出结果是 ( )。 main() char a, b;a=A+5-3; b=a+6-2 ;printf(%d %cn, a, b);仿真演练 体验探索3、运行如下程序后其运算结果是( )main() char a,b; a=120; b=121; printf(%c,%cn,a,b);printf(%d,%dn,a,b); 4、运行如下程序,其结果为( )main() char a,b; a=a; b=b; a=a-32; b=b-32; printf(%c,%cn%d,%dn,a,b,

46、a,b); 仿真演练 体验探索5、数字字符0的ASCII值为48,若有以下程序运行后的输出结果是( )main() char a=1,b=2; printf(%c,b+); printf(%dn,b-a); A)3,2B)50,2C)2,2D)2,506、有以下程序main() char a=a,b; printf(%c,+a); printf(%cn,b=a+); 程序运行后的输出结果是( ) A)b,b B)b,c C)a,b D)a,c 数据类型概述Teacher teaching designCONTENTS 目 录C语言中数据类型标识符常量案例分析 仿真演练变量明确考点 交流提升C语

47、言中数据类型PART 01数据类型众所周知,计算机内部使用二进制形式来存放各种信息,对不同的信息有着不同的解释,于是人们对信息的存放作出规定,即数据的组织形式。那么在C语言中,是如何规定数据的存放形式的呢?为了解决这一问题,C语言规定,程序中用到的任何一个数据类型必须首先指定其数据类型。于是C语言就根据不同的信息的存放形式及功能的不同,把数据划分为:基本类型(标准类型、构造类型、指针类型、空类型如图所示: 面对不同的对象或不同的信息出现、存放形式的不同,于是又把数据分为常量与变量变量、常量需要有名字,命名是要讲规则的,C语言中,标识符是用来标识变量名、符号常量名、文件名等的有效字符序列。所以先

48、介绍标识符的概念。标识符PART 02标识符语言规定标识符只能由 字母 、 数字和下划线三种字符组成,且第一个字符必须为为母或下划线。例如:sum,day,_class,student_No,a1等都是合法的标识符。2a_q,a#_12,$abc等都是非法的标识符。注意:1标识符不能和C语言的关键字重名。如:if(C语言的关键字),main(C语言的关键字)都是不合法的标识符。2在C语言中,大写字母和小写字母被认为是两个不同的字符。如:max和MAX是两个不同的标识符。3ANSI C标准没有规定标识符的长度,但各个C编译系统都有自己的规定。在Turbo C中规定标识符的长度不超过32个字符,如

49、果超过只有前32个字符有效。常量PART 03常量 程序在运行的过程中,其值不能被改变的量称为常量。常量又可分为直接常量(常数)、符号常量。从数据类型结构上分为整型常量、实型常量、字符常量、字符串常量。、常数是各种不同类型的具体数值,用数据本身的值直接表示。如整型常数据120,实型常数3.14,字符常数A,字符串常数“computer”。、符号常量(标识符形式的常量)符号常量则用一个标识符来代表一个常量,相当于为常量取了一个名字,但仍保持常量的性质,即它的值在运行过程中不能被改变。 符号常量名的取名规则是:以字母开头,由字母、数字和下划线组成,最好用大写字母表示,且不能与系统关键字相同。符号常

50、量的定义分为以下两种形式。1)使用宏定义命令定义格式是:#define 或为 #define 例如: #define PI 3.14159常量2)使用const命令定义格式是:const = ; const float PI= 3.1415926;const int N=10;const int x=10,y=20;例如:有如下程序#define PI 3.1415926#define R 2.0main()float s,c;s=PI*R*R;c=2.0*PI*R;printf(s=%f,c=%fn,s,c);在程序预处理时,凡是出现标识符PI的地方都将用数据3.1415926来替换, 出现

51、标识符R的地方都将用数据2.0来替换。如果用户要修改PI,R的值,则只在定义处修改即可。变量PART 04变量、变量的定义变量是指程序在运行的过程中,其值能被改变的数据称为变量。在使用前对变量进行定义,定义变量的数据类型和名称,甚至变量的初始值。变量可分为整型变量、实型变量、字符变量。注:知识拓展在程序中,数据连同其存储空间被抽象为变量。一个变量有一个名字,占一定的存储单元,在该存储单元中存储变量的值。变量名代表某个存储空间及其所存储的数据。存储空间首地址即为变量地址。程序中引用变量,实际上是对指定的存储空间的引用,因此必须先分配存储空间才能引用,即变量在引用前须先定义变量的类型,编译时就会根

52、据指定的类型分配其一定的存储空间,并决定数据的存储方式及操作方式。如:double a ;a 代表8个连续的存储单元,空间中的数据为变量值。变量、变量的取名规则以字母或下划线开头,由字母、数字和下划线组成,不能超过32个字符,不能用C语言中的关键字作为变量名,也不要与符号常量名和函数名同名。、定义变量的格式是: ;初始化定义格式是: =;例如:变量的定义(一般应在函数一开始就进行定义。)int a,b; /*定义两个整型变量a和b*/unsigned short c,d,f ;/*定义三个无符号短整型变量c、d、f*/float x,y,z=12.56;/*表示定义了三个变量但只是将12.56

53、赋给了变量z*/注:1、一个变量应有确定的类型,在一个程序中一个变量只能有一个类型,不能先后被定义为两个或多个类型。 2、不同类型的变量其存储单元的大小不同。3、对几个变量赋同一个初值,如果事先未定义好则不能采用连续赋值的形式,如语句int a=b=c=2;是错误的,应该写成int a=a,b=2,c=2;案例分析 交流提升PART 05案例分析 交流提升例1、C语言中定义了一个变量,该变量代表内存中的一个( )A)区域 B)单元 C)地址 D)容量【解析】C语言中定义的一个变量代表内存中的一个地址,也就是在内存中分配给这个变量一个单元,用来存放变量的值,这个内存单元的大小根据变量的类型不同而

54、不同,所以本题答案为C。例2、C语言中最简单的数据类型包括( )A) 整型、实型、逻辑型 B) 整型、实型、字符型 C) 整型、字符型、逻辑型 D) 整型、实型、逻辑型、字符型【解析】C语言中的数据类型有基本类型、空类型、指针类型、构造类型,但基本类型主要是指整型、实型、字符型三种,所以本题答案为B例3、下面符合C语言定义变量的格式是( )A) int a:=b; B)int a=b=c=2; C) int 18.5%3; D)int a=2,b=2,c=2;【解析】定义变量的基本语句格式是: ;如果在定义的同时又要为变量赋初值,格式是: = ;知道选项A中“:=”不是赋值号“=”; C语言中

55、规定对几个变量赋同一个初值,如果事先没有定义好变量类型,则不能采用连续赋值的形式,所以选项B错误;选项C不符合变量定义形式,所以错误;所以本题答案为D。案例分析 交流提升例4、以下选项中属于C语言的数据类型是( )A) 复数型 B) 字符型 C) 双精度型 D) 集合型【解析】C语言中基本数据类型有整型、实型、逻辑型,而双精度型只是属于实型中一种形式,而不能为单独的数据类型,由此可知本题的答案为B。例5、已知每千克牛肉的价格为20元,求买6斤需要多少钱。main()float sum; /*变量定义*/sum=20.0*6; /*给变量赋值*/printf(“sum=%dn”,sum);/*输

56、出*/程序运行结果:sum=120.000000分析:程序中的20.0和6都是常量,按其字面形式又可区分为不同类型,12.0是实型常量,6是整型常量。案例分析 交流提升例6、符号常量的使用。#define PRICE 20/*宏定义语句*/main()float num, sum; /*变量定义*/num=6.0;sum=num* PRICE;printf(“sum=%f”,sum); /*输出*/程序运行的结果为:sum=120.000000分析:程序中用标示符PRICE代表来代表价格常量20。其中#define是一条预处理命令(预处理命令都以#开头),称为宏定义命令(在后面章节中进一步介绍

57、),其作用是把该标识符定义为其后的常量值。一经定义,以后在程序中所有出现该标识符的地方均代之以该常量值。习惯上符号常量的标识符用大写字母,变量标识符用小写字母,以示区别。其目的是方便程序的阅读。案例分析 交流提升例7 分析如下程序main()int a=45,b=32,sum=0;svm=a+b;printf(“sum=%d”,sum);说明:(1)本例第5行错将sum写为svm,程序编译时,会报告svm未定义。如果C语言中没有对变量做”先定义”的要求,程序执行结果为0。错误就很难被编程者发现。(2)变量定义就是指定变量的类型,便于在编译时,检查对该变量的运算是否合法。仿真演练 体验探索PAR

58、T 06仿真演练 体验探索1、在C程序中,可以作为用户标识符的一组标识符是( )。 A)void define WORD B)as_b3 _224 Else C)Switch -wer case D)4b DO SIG2、下列选项中,是C语言提供的合法的关键字的是( )。 A)swicth B)cher C)default D)Case3、C语言中定义了一个变量,该变量代表内存中的一个( )。 A)区域 B)单元 C)地址 D)容量4、这段程序中的常量有:(多选) #define PI 3.14 main() int sum; sum = 10 + 15; printf(sum=%dn,sum

59、); printf(result is 25n); 这段程序中常量有: A. 10 B. sum C. 15 D. 25 E. main F. PI仿真演练 体验探索5、指出下面哪些是保留字(关键字):(多选) A. char B. abc C. printf D. int E. float F. define G. include H. PI 6、符号常量的值在其作用域内不能改变,也不能再被赋值。如:#define PRICE 20main() PRICE=25; 7、以下程序的输出结果是:#include main() int a=2,b=3,sum=0; sum=sum+a*b+c; p

60、rintf(sum=%d,sum); 8、以下程序的输出结果是:#include main() int a=2,b=3,s=0; float a=4.8; s=s+a*b+c; printf(s=%d,s);整型数据Teacher teaching designCONTENTS 目 录提出问题 引入新课整型常量明确考点 交流提升案例分析 仿真演练提出问题 引入新课PART 01提出问题 引入新课1、下列定义符号常量其格式正确的是( )A)#define PI=3.1415926 B)#define PI 10;C)#define PI 10 D)#define PI 2、在下列C语言程序中可以

温馨提示

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

评论

0/150

提交评论