C语言程序设计案例教程(一)160

上传人:ra****d 文档编号:253088152 上传时间:2024-11-28 格式:PPT 页数:160 大小:1.21MB
收藏 版权申诉 举报 下载
C语言程序设计案例教程(一)160_第1页
第1页 / 共160页
C语言程序设计案例教程(一)160_第2页
第2页 / 共160页
C语言程序设计案例教程(一)160_第3页
第3页 / 共160页
资源描述:

《C语言程序设计案例教程(一)160》由会员分享,可在线阅读,更多相关《C语言程序设计案例教程(一)160(160页珍藏版)》请在装配图网上搜索。

1、单击此处编辑母版文本样式,,第二级,,第三级,,第四级,,第五级,,单击此处编辑母版标题样式,,,Date:,28 November 2024,,Date:,28 November 2024,C语言程序设计案例教程,(一,),,,Date:,28 November 2024,第一章,,c语言程序设计根底,,授课要点,C,语言的应用及学习方法,,C,语言教学组织形式、考核方式,,第一个,C,程序,,,C,语言游戏案例演示,中国象棋,,贪吃蛇,,推箱子游戏,,求解最优交通路径,,常胜将军,,,,,目标案例:学生成绩管理系统,学生成绩管理系统具有以下根本功能:,,〔1〕初始化,,〔2〕录入学生信息,

2、,〔3〕计算每位学生〔假设四门课程〕的总成绩和平均成绩,,〔4〕对学生的根本信息进行添加、删除、修改,,〔5〕查看全部学生或者某个学生的成绩,,〔6〕平安退出系统,,教学目标,熟练使用编程工具进行程序的录入、编译、调试、运行,,培养良好的调试与标准化编程习惯,,运用一定算法完成求最大值、制作菜单、字符串操作、排序等常见任务,,能用C语言编写出类似“计价器〞、“学生成绩管理系统〞等软件,,三种能力:编码能力、调试能力、阅读代码能力,,为什么要学习,C,语言,1. C语言与UNIX的开展与历史,,2. C编程技能对学生个人开展的影响,,〔1〕本专业的毕业生的就业技能包括哪些,在就业市场的定位,,〔

3、2〕C语言编程技能对就业技能的影响,,〔3〕C语言学习对后续课程学习的作用,,,就业品质和技能,1.诚信,,2.勤奋,,3.有创新能力和创造性,,4.熟悉软件设计开发流程和方法;,,5.具有较强的专业技能,JAVA/C/C++根底扎实 ;,,6.沟通能力强,有良好的团队协作精神;,,7.良好的英语或日语听说读写能力,,8.有开发工作经验者优先,,C,语言编程技能对就业技能的影响,对于那些要求具有高效率、良好实时性或者说与操作系统内核紧密关联的程序来说,,c,是很好的选择。这类语言对程序员,(,或者企业,),来说具有无可替代的价值。,,C,语言学习对后续课程学习的作用,,课程要求,仔细阅读教材,

4、做到课前预习、课后复习,,认真、独立、按时完成并提交作业,,重视上机实践,有效利用珍贵的上机时间,,,,教学组织形式:小组教学模式,促使全体同学积极、努力学习。,,锻炼全体同学的团队协作和沟通协调能力。,,最根本的目的是以良好的学习效果来为家长、为自己负责。,,组长职责,组长是全体组员的直接领导。,,组长直接对老师负责,要与老师保持良好的沟通。,,组长拥有对组员进行考核甚至开除的绝对权力。,,组长必须以身作那么为组员做好典范。,,本周内,组长自愿报名,,由组长在教学班范围内“招兵买马〞确定自己的组员,各小组4~5人。,,没有参加任何小组的学生平时成绩不得超过15分,,执行一段时间后,假设组长不

5、负责任,表现不好,可以更改,但必须由所有组员向教师提出申请,由教师批准并产生其他组员,组长的产生,,学习方法,勇于发现问题,,独立思考〔分析问题〕,,注重实践〔编写程序、解决问题〕,,小组学习方法〔教师-组长-组员〕,,案例演示:第一个,C,程序,,/* example1.1 The first C Program*/,,#include ,,void main(),,{,,printf(“This is a C program.\n〞);,,},注释,编译预处理,函数,语句,输出:,,This is a C program.,,[例1.,1,],运行结果演示,单击编译、连接、运行,

6、输入源程序,弹出运行结果窗口,运行结果,,学生模仿,在屏幕上输出两行信息!,,〔在作业本上完成〕,,,,讨论并总结,1,.,C,语言的重要性,,2.,学习,C,语言的方法,,3,.,C,语言主要用在哪些方面,,4,.目前流行的编程语言有哪些,,学以致用,讨论程序设计语言的用途,比照学生成绩管理系统,如果是通讯录,应该有哪些功能?,,作业,——,每人必做,阅读教材,1,页至,9,页,,,Date:,28 November 2024,第一章,,c语言程序设计根底,,授课要点,标准格式输出函数,printf(),,,案例回忆,【,例,1】,原样输出一行语句。,,程序名为,1_3.cpp,。,,#in

7、clude /*,文件包含*,/,,void main() /*,主函数*,/,,{,,printf(“Hello,world!.\n"); /*,输出信息*,/,,},,,程序输出结果,:,,Hello,world!,【模仿练习】输出自己的姓名。,,运行显示如下图:,,C程序的根本结构,2.C,程序的书写格式,1.C,程序的结构特点,,C程序的结构特点,1. C程序是由函数构成的。,,,,2. C程序总是从main函数开始执行。,,,3. C程序语句和数据定义必须以分号“;〞结束。,,,4.C语言严格区分大小写。,,,5.C语言

8、用/*注释内容*/形式进行程序注释。,一个C源程序可由一个main函数和假设干个其他函数组成,其中必须有一个且只能有一个main函数。,,,main,函数始终是,C,程序执行时入口处。,,C语言中,分号是程序语句的结束标志,也是C语句的必要组成局部。,如变量,a,和变量,A,系统认定为两个不同的变量。,,在“/*〞和“*/〞之间的所有字符都为注释符,C系统不对注释符进行编译 。,,C,语言程序的构成:,,程序 文件 函数 语句 单词 字符,,C程序的结构特点,任何函数〔包括主函数main()〕都是由函数说明和函数体两局部组成。,,其一般结构如下:,[函数

9、类型] 函数名(函数参数表) /*函数说明局部*/,,{ 说明语句局部; /*函数体局部*/,,执行语句局部;,,},,C程序的,书写格式,,1. C,程序书写格式自由。,,,,,2.C,程序书写采用缩进格式。,,,,3.,程序中适当使用注释信息。,,根据语句的附属关系,程序书写时采用缩进格式,使程序语句的层次结构清晰,提高程序的可读性。同一层次语句要左对齐,不同层次的语句要缩进假设干个字符,这样程序层次清楚,便于阅读和理解。,对于短语句可以多条语句书写在同一行,也可以将长语句分写在多行。但需要注意,分行时不能将一个单词分开,也不能将双引号引起来的字符串分开。我们提倡

10、一行一条语句的风格。,,,标准格式输出函数printf(),【例2】输出十进制整数。,,程序名为1_4.cpp。,,#include /*文件包含*/,,void main() /*主函数*/,,{,,int iNum1 = 10, iNum2 = 5; /*定义整型变量*/,,printf(“%d\n〞,iNum1); /*输出iNum1*/,,pr

11、intf(“%d,%d\n〞,iNum1,iNum2); /*输出iNum1、iNum2*/,,printf(“%d\t%d\n〞, iNum1,iNum2); /*输出iNum1、iNum2*/,,},,程序输出结果:,,标准格式输出函数printf(),【模仿练习】输出三名学生的成绩〔整数〕。,,运行结果如以下图所示:,,标准格式输出函数printf(),【例3】输出十进制浮点数。,,程序名为1_5.cpp。,,#include /*文件包含*/,,void main()

12、 /*主函数*/,,{,,float fNum1 = 10.679, fNum2 =5.3124; /*定义实型变量*/,,printf(“%f\n〞, fNum1); /*输出fNum1*/,,printf(“%f,%f\n〞, fNum1, fNum2); /*输出fNum1、fNum2*/,,printf(“%f\t%f\n〞, fNum1, fNum2);

13、 /*输出fNum1、fNum2*/,,},,程序输出结果:,,标准格式输出函数printf(),【模仿练习】输出三名学生的成绩(浮点数)。,,运行结果如以下图所示:,【,说明,】,要控制显示位数见教材表,1.6,,标准格式输出函数printf(),【例4】输出一个字符。,,程序名为1_6.cpp。,,#include /*文件包含*/,,void main() /*主函数*/,,{,,char ch=‘a’;

14、 /*定义字符型变量*/,,printf(“ch=%c\n〞,ch); /*输出字符*/,,},,程序输出结果:,,标准格式输出函数printf(),【例5】输出一个字符串。,,程序名为1_7.cpp。,,#include /*文件包含*/,,void main() /*主函数*/,,{,,char str[10]=“abcde〞; /

15、*定义一个字符串变量*/,,printf(“%s\n〞,str); /*输出字符串*/,,},,程序输出结果:,,标准格式输出函数printf(),【模仿练习】输出两名学生的姓名。,,运行结果如以下图所示:,,标准格式输出函数printf(),C语言本身没有输入和输出语句,而输入和输出的操作是由库函数scanf和printf等函数来完成的。程序在调用这些库函数时,必须在源文件的开始处加上头文件的“包含命令〞,格式如下:,,#include 或#include "库函数头文件名",,格式输

16、出函数printf()解释,printf()函数的作用:向计算机系统默认的输出设备〔一般指终端或显示器〕输出一个或多个任意类型的数据。,printf()函数的一般格式如下:,,printf(“格式字符串〞 [,输出项表]);,,讨论并总结,输出函数,printf(),的格式应注意什么?,,转义字符的使用,,学以致用,寻找身边的例子,实现信息的输出:,,例如:输出显示自己的名片,输出一棵圣诞树等等,格式自由发挥,,,作业,——,每人必做,见习题,word,文档第,2,次,,,,Date:,28 November 2024,第一章,,c语言程序设计根底,,授课要点,标准格式输入函数,scanf(

17、),,单个字符输出函数,putchar(),,单个字符输入函数,getchar(),,,标准格式输入函数scanf(),【例6】输入一个十进制整数。,,程序名为1_8.cpp。,,#include /*文件包含*/,,void main() /*主函数*/,,{,,int iNum; /*定义整型变量*/,,scanf(“%d〞, /*输入

18、iNum*/,,printf(“%d\n〞,iNum); /*输出iNum*/,,},,程序输出结果:,,标准格式输入函数scanf(),【例7】输入两个十进制整数。,,程序名为1_9.cpp。,,#include /*文件包含*/,,main() /*主函数*/,,{,,int iNum1,iNum2; /*定义整型变量*/,,scanf(“%d%d〞,

19、 /*输入iNum1,iNum2*/,,printf(“%d\t%d\n〞,iNum1,iNum2); /*输出iNum1,iNum2*/,,},,程序输出结果:,,标准格式输入函数scanf(),【例8】输入两个十进制整数。,,程序名为1_10.cpp。,,#include "stdio.h" /*文件包含*/,,void main() /*主函数*/,,{,,int iNum1,iNum2; /*定义整型

20、变量*/,,scanf(“%d,%d〞, /*输入iNum1,iNum2*/,,printf(“%d\t%d\n〞,iNum1,iNum2); /*输出iNum1,iNum2*/,,},,程序输出结果: 注意输入时防止如下错误:,,标准格式输入函数scanf(),【模仿练习】按如下要求输入两名学生的成绩〔整数〕并输出显示在屏幕上。,,运行结果如以下图所示:,,标准格式输入函数scanf(),【例9】输入十进制浮点数。,,程序名为1_11.cpp。,,#include "st

21、dio.h" /*文件包含*/,,void main() /*主函数*/,,{,,float fNum1, fNum2; /*定义实型变量*/,,scanf(“%f%f〞, /*输入fNum1, fNum2 */,,printf(“num1=%f\n〞, fNum1); /*输出fNum1*/,,printf(“num1=%f\tnum2=%f\n〞,fNum1,fNum2); /*输出fNum1、fNum2*/,,},,程序输出结果:,,

22、标准格式输入函数scanf(),【模仿练习】按如下要求输入两名学生的成绩〔浮点数〕并输出显示在屏幕上。,,运行结果如以下图所示:,,标准格式输入函数scanf(),【例10】输入一个字符。,,程序名为1_12.cpp。,,#include "stdio.h" /*文件包含*/,,void main() /*主函数*/,,{,,char ch; /*定义字符型变量*/,,scanf(“%c〞,

23、/*输入一个字符*/,,printf(“你输入的字符是:%c\n〞,ch); /*输出字符*/,,},,程序输出结果:,,标准格式输入函数scanf(),【,思考,】,以下程序应如何输入?,,#include,,void main(),,{,,char ch1,ch2;,,scanf("%c%c",,,printf("ch1=%c,ch2=%c\n",ch1,ch2);,,},,正确输入后的程序结果显示如右图,:,【,思考,】,产生右图结果的原因是什么?,,标准格式输入函数scanf(),【例11】输入一个字符串。,,程序名为1_13.

24、cpp。,,#include "stdio.h" /*文件包含*/,,void main() /*主函数*/,,{,,char str[10]; /*定义一个字符串变量*/,,scanf(“%s〞,str); /*输入一个字符串*/,,printf(“你输入的字符串是%s\n〞,str); /*输出字符串*/,,},,程序输出结果:,,标准格式输入函数scanf(),【模仿练习】按如下要求输入一名学生的

25、姓名并输出显示在屏幕上。,,运行结果如以下图所示:,【,注意,】,%,s,遇空格、回车表示结束。,,运行结果如右图所示:,,标准格式输入函数scanf(),格式输入函数,scanf(),解释,格式控制输入函数scanf作用是:按指定的格式从标准输出设备〔键盘〕输入数据。,函数scanf()的使用格式为:,,scanf(“格式控制〞,地址列表) ;,,单个字符输出函数putchar(),【,例,12】,输出一个字符。,,程序名为,1_14.cpp,。,,#include "stdio.h" /*,文件包含*,/,,main() /*,主函数*,/,

26、,{,,char ch1,ch2,ch3; /*,定义字符变量*,/,,ch1=‘O’; /*,为字符变量赋初值*,/,,ch2=‘K’;,,ch3=‘\n’;,,putchar(ch1); /*,输出字符变量值*,/,,putchar(ch2);,,putchar(ch3);,,},,程序输出结果,:,,单个字符输出函数putchar(),字符输出函数,putchar(),解释,字符输出函数putchar的一般格式为:

27、 putchar(c),,,putchar作用:在标准输出设备〔显示器〕上输出c对应的一个字符。,,用putchar()函数可以输出字符变量、控制字符。,,,,如,char c=’Y’;putchar(c);输出结果为Y。,,如, char c=’\n’;putchar(c);输出结果为一换行符。,,单个字符输出函数putchar(),【,模仿练习,】,用,putchar(),函数输出自己的英文名字,:,,屏幕显示如下:,,单个字符输入函数getchar(),【,例,13】,从输入设备读入字符后输出该字符。,,程序名为,1_15.cpp,。

28、,,#include "stdio.h" /*,文件包含*,/,,main() /*,主函数*,/,,{,,char ch; /*,定义字符变量*,/,,ch=getchar(); /*,输入一个字符*,/,,putchar(ch); /*,输出字符变量值*,/,,},,程序输出结果,:,,单个字符输,入,函数,g,etchar,(),字符输入函数,getchar(),解释,字符输入函数getchar的一般格式为:,,getchar( ),,get

29、char作用:在标准输入设备〔键盘〕读入一个字符。,,如:,,char c;,,c=getchar();,,执行时,要求输入一个字符,如输入:3,,,那么输入的字符’3’就赋给了变量c。,【,注意,】,在一个函数中要用到,getchar(),、,putchar(),函数时,应该在函数的前面,(,或在本文件开头,),用,#include,,讨论并总结,输出函数,scanf(),的格式应注意什么?,,使用,putchar(),时,应注意什么?,,使用,getchar,(),应注意什么?,,学以致用,寻找身边的例子,实现信息的输出:,,例如:输出显示自己的名片,输出一棵圣诞树等等,格式自由发挥,,,

30、作业,——,每人必做,实现学生根本信息的输入、输出,,,Date:,28 November 2024,第二章,,数据类型及表达式,,根本数据类型,,常量,,变量,,授课要点,,【例2.1】关于常量、变量及数据类型说明的程序实例。,,#include,,main(),,{,,int iNum=108; /*定义整型变量iNum并赋予常量值108 */,,float fGrade=95.5; /*定义单精度实型变量fGrade并赋予实型常量值95.5 */,,char ch=‘A'; /*定义字符变量ch并赋予字符常量值‘A' */,,char str[10]=“WenHe〞; /*定

31、义字符数组str[10] */,,printf("学号:%d\n",iNum); /*输出各变量的值 */,,printf("姓名:%s\n",str);,,printf("成绩:%f\n",fGrade);,,printf("等级:%c\n",ch);,,},案例回忆,,,问题分析〔能否缺少数据类型定义〕,将【例2.1】的变量定义局部删掉,程序改为:,,#include,,void main(),,{,,printf("学号:%d\n",iNum); /*输出各变量的值 */,,printf("姓名:%s\n",str);,,printf("成绩:%f\n",fGrade);,,pr

32、intf("等级:%c\n",ch);,,},编译结果,结论:变量在使用之前必须先定义!,,程序举例,【例2.2】关于常量、变量及数据类型说明的程序实例。,,#include,,void main(),,{ int a=3; /*定义整型变量a并赋予常量值3 */,,short r=6; /*定义短整型变量r并赋予常量值6*/,,char c='a'; /*定义字符变量c并赋予字符常量值'a' */,,float pi=3.14; /*定义单精度实型变量pi并赋予实型常量值3.14 */,,double s; /*定义双精度实型变量s */,,s=pi*r*r;

33、 /*将pi*r*r值赋给s */,,printf(“int:%d,short:%d,char:%d,float:%d,double:%d\n〞,sizeof(a),sizeof(r),sizeof(c),sizeof(pi),sizeof(s));,,/*输出各变量占内存的字节数 */,,printf("a=%d,r=%d,c=%c,pi=%f,s=%lf\n",a,r,c,pi,s);,,/*输出各变量的值 */,,},,问题分析〔不同类型的表示〕,,结果分析:变量可以被定义成不同的数据类型并赋值,不同类型的数据在内存中所占的字节数不同,通过sizeof()求得数据宽度。短整型、整型、字符

34、型、单精度实型、双精度实型在内存中分别占2字节、4字节、1字节、4字节和8字节〔不同运行环境结果会有所差异,这里仅是Visual C++6.0的结果〕。同时,这些数据在输出时所使用的输出格式控制符也不相同,分别为%d、%d、%c、%f和%lf形式。由此可见,数据表现为常量或变量,数据又具有不同的数据类型,不同数据类型的数据存储格式不同,数据的输出格式控制也不相同。注意:在Trubo C环境下,整型数据存储时在内存中占2字节。,运行结果,,“数据类型〞的意义:,,定义了数据占用的内存空间大小,,定义了数据在内存中的存储格式,,决定了数据的运算规那么〔自身的行为〕,,为编译器提供了检查依据,数据类

35、型的意义,数据类型是防止程序错误的初级〔根本〕手段,不是全部手段;,,C,语言的数据类型,单精度实型,(float),双精度实型,(double),整型 〔int),字符型,(char),枚举类型,数组类型,结构体类型,共用体类型,实型,根本类型,构造类型,空类型,(void),指针类型,,数据类型,,1.,整型数据,2.,实型数据,3.,字符型数据,,数据的存储格式、范围,,整型数据的取值范围实例,【例2.3】观察以下程序的运行结果。,,#include,,main(),,{,,short sNum=32768;,,printf(“%d\n〞,sNum);,,},,运行结果如以下图所示:

36、,,整型数据分类及取值范围,整型数据分为一般整型〔int〕、短整型〔short〕和长整型〔long〕,并且每一种类型又分为带符号〔signed〕和无符号〔unsigned〕两种类型 。整型数据的特性见下表:,数据类型名,,说明,,Visual C++ 6.0,环境,,Turbo C2.0,环境,,字节,,取值范围,,字节,,取值范围,,short [int],,短整型,,2,,-32768~32767,,2,,-32768~32767,,signed short [int],,带符号短整型,,2,,-32768~32767,,2,,-32768~32767,,unsigned short [i

37、nt],,无符号短整型,,2,,0~65535,,2,,0~65535,,int,整型,4,,-2147483648~2147483647,2,,-32768~32767,signed [int],,带符号整型,,4,,-2147483648~2147483647,,2,,-32768~32767,,unsigned [int],,无符号整型,,4,,0~4294967295,,2,,0~65535,,long [int],,长整型,,4,,-2147483648~2147483647,,4,,-2147483648~2147483647,,signed long [int],,带符号长整型,

38、,4,,-2147483648~2147483647,,4,,-2147483648~2147483647,,unsigned long [int],,无符号长整型,,4,,0~4294967295,,4,,0~4294967295,,,实型数据分类,,实型数据分为单精度实型〔float〕、双精度实型〔double〕和长双精度实型〔long double〕。具体情况见下表所示 :,数据类型名,,说明,,Visual C++ 6.0,环境,,Turbo C2.0,环境,,字节,,取值范围,,有效数字,,字节,取值范围,,有效数字,float,,单精度实型,,4,,-3.4,×,10,38,~3.

39、4,×,10,38,,6~7,,4,,-3.4,×,10,38,~3.4,×,10,38,,6~7,,double,,双精度实型,,8,,-1.7,×,10,308,~1.7,×,10,308,,15~16,,8,,-1.7,×,10,308,~1.7,×,10,308,,15~16,,long double,,长双精度实型,,8,,,15~16,,10,,-1.2,×,10,4932,~1.2,×,10,4932,,18~19,,1.7×10308~1.7×10,308,,字符型数据分类,,字符型数据分为一般字符型〔char〕、带符号字符型〔signed char〕和无符号字符型〔unsig

40、ned char〕三种类型。具体情况见下表所示 :,数据类型名,,说明,,字节,,取值范围,,char,,字符型,,1,,-128~127,,signed char,,带符号字符型,,1,,-128~127,,unsigned char,,无符号字符型,,1,,0~255,,,根本数据类型,,常量,,变量,,授课要点,,,标识符,,定义:用来标识变量、常量、函数等的字符序列,,组成:,,只能由字母、数字、下划线组成,且第一个字母必须是字母或下划线,,大小写敏感,,不能使用关键字,,长度:最长32个字符,,命名原那么:,,见名知意,,不宜混淆 如l与I, o与0,例:判断以下标识符号合法性,

41、,sum Sum M.D.John day Date 3days,,student_name #33 lotus_1_2_3,,char a>b _above $123,,3days,#33,char,$123,a>b,常量与变量,,常量,,常量的存在形式,,5 数字/整型常量,,5.3 数字/浮点常量,,“Black〞 字符串常量,,'C' 字符常量,,推荐的常量表示,,#define Max 100,,Const int Max = 100;,,使用命名常量的好处,,增加程序可读性;,,减少书写错误;,,便于维

42、护;,,整型常量实例,在C语言中,整型常量有十进制、八进制、十六进制三种进制表示方法,并且各种数制均可有正〔+〕负〔-〕之分,正数的“+〞可省略。,【例2.4】定义一个八进制常量并显示在屏幕上 。,,#include ,,void main(),,{,,const int num1=89;,,const int num2=047;,,const int num3=0X8A;,,printf(“%d\n%x\n%0x\n〞,num1,num2,num3);,,},,运行结果如以下图所示:,,字符型常量,实例,,【例2.5】观察以下程序的运行结果 。,,#include ,,main(),,

43、{,,const int num1=97;,,const char ch='a';,,printf("%c\n",num1);,,printf("%d\n",ch);},,运行结果如以下图所示:,,字符型常量说明,,,〔1〕一般字符常量 :一般字符常量是用单引号括起来的一个普通字符,其值为该字符的ASCII代码值。如’a’、’A’、’0’、’?’等都是一般字符常量,但是’a’和’A’是不同的字符常量,’a’的值为97,而’A’的值为65。,字符型常量是由一对单引号括起来的一个字符。它分为,一般字符常量,和,转义字符,。字符常量在内存中占一个字节。,〔2〕转义字符 :C语言允许用一种特殊形式的

44、字符常量,它是以反斜杠〔\〕开头的特定字符序列,表示ASCII字符集中控制字符、某些用于功能定义的字符和其他字符。如’\n’表示回车换行符,’\\’表示字符“\〞。常用的转义字符见中所叙。,,,,ASCII,表,,字符串常量说明,,字符串常量也称字符串,由一对双引号括起来〔“〞〕的字符序列。,,,,字符串常量中的字符是连续存储的,并在最后自动加上字符’\0’作为字符串结束标志。如字符串“a〞在计算机内存中占两个连续单元,存储内容为字符’a’和’\0’。,,根本数据类型,,常量,,变量,,授课要点,,〔1〕数据类型:C语言的合法数据类型。如例中的int、short、char、float、doub

45、le等。,,〔2〕变量名表:变量名是C语言合法的标识符。变量名表可以包含多个变量名,彼此之间使用逗号分开,表示同时定义假设干个具有相同数据类型的变量,如: float a,b;,变量及类型定义,,1.,变量定义,变量定义一般格式:,数据类型 变量名表;,,如:,int a;,对变量定义说明如下:,,变量是指在程序执行过程中其值可以被改变的量。变量定义的实质是按照变量说明的数据类型为变量分配相应空间的存储单元,在该存储单元中存放变量的值。 C语言中,变量使用时遵循“先定义,后使用〞的原那么。,,变量及类型定义,,,,,,,,,,,,,,,,,,,Memory,Value(5),Name (a),

46、Type,,(int),int a = 5 ; /*,申请空间并初始化 *,/,一个变量必然包含以下概念:,,名字〔变量名〕,,类型〔变量占用空间〕,,值〔变量的内容〕,,地址〔变量在内存中所处的位置〕,,字节,Address,2.,变量的存储模式,,变量及类型定义,,3.,变量初始化及赋值,在【例2.2】中“s=pi*r*r;〞语句是通过赋值运算符“=〞将“pi*r*r〞的值赋给变量s,即该语句实现了给变量s的赋值。所以,变量值可以通过初始化取得,也可以在定义后,通过给变量赋值的方法取得。,在【例2.1】中,“int num=108; float grade=95.5; char ch

47、=‘A';〞的“=〞是赋值运算符,用来给变量赋值。所以,以上四条语句都是在定义变量的同时给变量赋了值,称为变量的初始化。变量初始化是指定义变量同时,给变量一个初始值。,,模仿练习,定义学生的学号、姓名、性别、年龄、两门功课的成绩并进行输入和输出。,,,讨论并总结,为什么要定义数据类型?,,不同数据类型的区别是什么?,,常量在使用时和变量的区别是什么?,,结论,1——,定义数据类型的,作用,,定义了数据占用的内存空间大小,,定义了数据在内存中的存储格式,,决定了数据的运算规那么〔自身的行为〕,,为编译器提供了检查依据,,结论,2——,不同数据类型的区别,内存空间大小不同,,数据表示有效位数不同,

48、,数据表示范围不同,,对应的运算和操作不同,,,结论,3——,常量和变量的区别,常量值在程序运行过程中不可改变,变量的值可改变,,常量有直接常量和符号常量,通常用大写,变量通常用标识符表示,通常小写,,,学以致用,根据对学生根本信息的数据类型定义,扩展到对教师信息〔姓名、年龄、工龄、工号、工资等信息〕的各种数据进行定义,对学校信息〔地址、名称、占地面积、类型、教职工人数、在校学生总数、部门个数等〕的各种数据进行定义等等,,作业,——,每人必做,在一个程序中定义学过的简单数据类型变量各一个,给各变量赋值并输出。,,在一个程序中定义学过的简单数据类型变量各一个,并且将各变量输入并输出,,,,Dat

49、e:,28 November 2024,第5次〔VC的使用〕,,授课要点,Visual C++ 6.0,的使用方法,,C,语言程序的开发过程,,C程序,案例,2. C,程序实例,(2),1. C,程序实例,(1),,案例回忆,,/* example1.1 The first C Program*/,,#include ,,main(),,{,,printf(“This is a C program.\n〞);,,},注释,编译预处理,函数,语句,输出:,,This is a C program.,,[例1.,1,],运行结果演示,输入源程序,弹出运行结果窗口,运行结果,,案例演示,【

50、,例,1.2】,输入两个整数,通过调用函数计算它们的和,然后输出和值。,,程序名为,1_2.cpp,。,,#include "stdio.h" /*,文件包含*,/,,int sum(int x,int y) /*,定义,sum,函数*,/,,{ int z; /*,声明定义变量,z*/,,z=x+y; /*,计算,z,等于,x,与,y,的和值*,/,,return (z); /*,将,z,的值返回,通过,sum,带回调用处*,/,,},,main() /*,主函数*,/,,{ int a,b,c; /*,声明定义变量,a,b,和,c*/,,scanf("%d%d

51、", /*,输入变量,a,和,b,的值*,/,,c=sum(a,b); /*,调用,sum,函数,将得到的值赋给,c*/,,printf("c=%d\n",c); /*,输出变量,c,的值*,/,,},,运行程序输入:,,90 7,,,程序结果:,,C=97,,,,,[例1.2],运行结果演示,输入源程序,弹出运行结果窗口,运行结果,输入,90,和,7,,并以空格作间隔符,以回车作输入结束符。,,案例演示,Visual C++ 6.0,的安装,,,,,,学生模仿,安装,Visual C++ 6.0,,,,,,Visual C++ 6.0集成环境,1.,启动,Visual C++ 6.0

52、,环境,2.,编辑源程序文件,3.,编译和连接,4.,执行,利用,Visual C++ 6.0,集成环境开发,C,程序的过程如下:,,Visual C++ 6.0集成环境,1.启动Visual C++ 6.0环境,,方法:单击 “开始〞-“程序〞-“Microsoft Visual studio 6.0〞-“Microsoft Visual C++ 6.0〞命令,启动Visual C++,VC6主窗口如下:,,,菜单栏,项目工作区,标题栏,输出区,工具栏,状态栏,文件编辑区,,Visual C++ 6.0集成环境,2. 编辑源程序文件 方法:单击 “开始〞-“程序〞-“Microsof

53、t Visual studio 6.0〞-“Microsoft Visual C++ 6.0〞命令,启动Visual C++,VC6主窗口如下:,,〔1〕建立新工程工程,,①单击“文件〞-“新建〞,弹出,,“新建〞对话框。,②单击“工程〞选项卡;单击,,“Win32 Console Application〞,,选项;“工程〞文件框中输入项,,目名,如“gc1〞和“位置〞框输入,,或选择新工程所在位置,单击,,“确定〞按钮。 弹出“Win32,,Console Application Step,,1of 1〞对话框。,,③单击“An empty project〞按钮和“完,,成〞按钮。系统显示“

54、新建工程信息〞对,,话框。单击“确定〞按钮。,单击“工程”,单击“,Win32 Console Application,”,输入项目名,选择新项目位置,单击“确定”,单击该选项,单击“完成”,单击“确定”,,Visual C++ 6.0集成环境,2.,编辑源程序文件,,〔2〕建立新工程中的文件,,①单击“文件〞-“新建〞,弹,,出“新建〞对话框。,② 选择“文件〞选项卡。单击,,“C++ Source File〞选项,在,,“文件〞文件框中输入文件名,,,单击“确定〞按钮。系统自动,,返回VC6主窗口。,③,显示文件编辑区窗口,在文件编辑,,区窗口输入源程序文件。,单击“文件”,输入文件名,单

55、击“,C++ Source file”,单击“确定”,选择“添加工程”,输入源程序,,Visual C++ 6.0集成环境,3. 编译和连接,,方法一:选择主窗口菜单栏中“编译〞菜单项;系统弹出下拉菜单,选择“构件〞菜单命令。,方法二:单击主窗口编译工具栏上的 “Build〞按钮进行编译和连接。,单击“编译”,〔1〕系统对程序文件进行编译和连接,生成以工程名称命名的可执行目标代码文件.exe。,,〔2〕编译连接过程中,系统如发现程序有语法错误,那么在输出区窗口中显示错误信息,给出错误的性质、出现位置和错误的原因等。如果双击某条错误,编辑区窗口右侧出现一个箭头,指示再现错误的程序行。用户据此对源

56、程序进行相应的修改,并重新编译和连接,直到通过为止。,单击“,Build”,,Visual C++ 6.0集成环境,4. 执行,,方法一:单击“编译〞菜单中“执行〞命令。,,方法二:单击主窗口编译工具栏上的 “Build Execute〞按钮来执行编译连接后的程序。,运行成功,屏幕上输出执行结果,并提示信息:“Press any key to continue〞。此时按任意键系统都将返回VC6主窗口。,在执行程序过程中出现运行错误。用户要修改源程序文件并且重新编译、连接和执行。,单击“编译”,单击“,Build Execute”,,C程序的开发过程,,1.,编辑,,2.,编译,,3.,连接,,

57、4.,运行,,C程序的开发过程,,1.,编辑,,,,,,,2.,编译,,〔1〕编辑指编辑创立源程序是将编写好的C语言源程序代码录入到计算机中,形成源程序文件。,,〔2〕我们用Visual C++ 6.0环境提供的全屏幕编辑器。,,〔3〕在VC 6.0环境中的源程序文件,其扩展名为.cpp,而在Turbo C 2.0环境中的源程序文件的扩展名为.c。,〔1〕编译源程序就是由C系统提供的编译器将源程序文件的源代码转换成目标代码的过程。,,〔2〕编译过程主要进行词法分析和语法分析,在分析过程中如果发现错误,将错误信息显示在屏幕上通知用户。经过编译后的目标文件的扩展名为.obj。,,C程序的开发过程

58、,3.,连接,,,,,,4.,运行,,〔1〕连接过程是将编译过程中生成的目标代码进行连接处理,生成可执行程序文件的过程。,,〔2〕在连接过程中,时常还要参加一些系统提供的库文件代码。经过连接后生成的可执行文件的扩展名为.exe。,运行可执行文件的方法很多,可在C系统下执行“运行〞命令。也可以在操作系统下直接执行可执行文件。,,可执行的程序文件运行后,将在屏幕上显示程序执行的结果。,,学生模仿练习,练习使用,Visual C++ 6.0,执行上述案例程序,,讨论并总结,在Visual C++6.0中新建C程序的方法〔注意扩展名〕,,查看程序编译错误提示的方法,,书写C程序应注意哪些问题,,学以致

59、用,设置障碍,使程序出现错误,查看编译错误提示,理解其含义。,,例如:某个符号漏掉〔例如分号〕,会出现什么样的错误提示?,,作业,——,每人必做,将教材中第一章的例题用Visual C++6.0环境编辑并运行,看看显示结果。,,执行“学生成绩管理系统〞,进一步体会其功能要求。,,,Date:,28 November 2024,第6次〔结构体〕,,本章主要知识点,根本的数据类型,,常量和变量,,结构体数据类型,,C语言各种运算符和表达式的应用,,数据类型,——,结构体,,复习,,结构体类型,,,结构体变量及初始化,,,授课要点,,问题引入,,学生是一个由学号、姓名、性别等,属性,组成的整体,如何

60、用一种数据类型来描述学生呢?,,,问题分析,学生的学号、姓名、性别等属性,都可以用根本数据类型来描述,如:,,学号可以表示为char acNum[15];,,姓名可以表示为char acName[20];,,成绩可以表示为float fScore;,,如果这些变量彼此独立,是不能描述学生这个整体的。我们如何将不同类型但彼此都属于同一个整体的信息表示出来呢?,,结构体为我们提供了解决方案。,,结构体类型的定义,定义的一般形式:,,,struct <,结构名,>,,{,成员列表,},;,,Eg: struct tagStudent_t /*,类型定义*,/,,{ c

61、har acNum[15]; /*,学号为字符串*,/,,char acName[20]; /*,姓名为字符串*,/,,float fScore; /*,成绩为浮点型*,/,,};,,,模仿练习,学生的,学号、姓名、性别、年龄、家庭住址、成绩,定义为一个学生结构体。,,结构体类型定义总结,,定义结构体的目的:将一些相关类型定义在一个整体里。,,结构体类型用一片连续的存储空间存放不同类型的成员,结构体成员和普通变量的存储方式、运算规那么相同。,,结构体成员允许为各种类型,包括结构体类型,但不允许嵌套定义〔不允许在定义结构体时,该结构体的成员变量定义结构体〕,,结构体类

62、型,,,结构体变量及初始化,,,授课要点,,问题引入,定义了学生类型的结构体,如何使用这种类型呢?,,问题分析,结构体类型的使用方法和其他根本类型一样,也必须定义结构体变量,才能使用。,,上例学生类型的变量存储空间表示如下:,acNum,acName,acSex,fScore,15B 20B 4B 4B,,结构体变量说明和引用,常用的说明方式:,,〔1〕定义后说明。,,根据上面定义有:struct tagStudent_t stStu1,stStu2;,,(2)在定义的后面说明。在定义的分号前放上stStu

63、1,stStu2,,(3)在定义后说明可以省略结构体名。,,(4)利用重命名类型说明 如:,,typedef struct tagStudent_t,,{,,…,,}Student_t;,,Student_t stStu1,stStu2;,,结构体变量的引用:结构体变量名.成员名,,例:stStu1.sex='f';,,结构体变量举例,,定义学生类型结构体,并为一个学生的各项值赋值并输出,,#include ,,struct tagStudent_t /*结构体类型定义*/,,{ char acNum[15];,,char acName[20];,,char acSex[4

64、];,,int iAge;,,};,,void main( ),,{ struct tagStudent_t stStu1; /*定义结构体stu,说明s1为结构体变量*/,,strcpy(stStu1. acNum,“20030311〞);strcpy(stStu1. acName,"xiaomin");,,strcpy(stStu1. acSex,〞男〞); stStu1.iAge=20;,,printf("Number=%s\nname=%s\n", stStu1.acNum, stStu1.acName);,,printf("sex=%s\nage=%d", stStu1

65、.acSex, stStu1.iAge);,,},,模仿练习,定义学生结构体,成员包括学号、姓名、性别、年龄、两门功课的成绩,定义结构体变量并为该结构体变量赋值,然后输出所有信息。,,,结构体变量总结,说明一个变量类型为结构体类型,必须先有结构体的定义,才能有该类型的变量。在使用结构体类型名定义时,不能把struct漏掉。如,,tagStudent_t stStu1,stStu2;为非法定义。,,,结构体变量的引用:结构体变量名.成员名,,,结构体每个成员变量必须单独赋值和使用,不允许对结构体变量整体赋值,除了定义时〔结构体变量的初始化〕,不允许将一个结构体变量赋值给另一个结构体变量。,,讨论

66、并总结,结构体类型定义后还需要定义结构体变量吗?,,输入输出结构体变量成员怎么表示?,,结论,1——,结构体类型与变量的区别,,结构体类型必须先定义,才有变量定义,,定义了结构体类型不分配存储空间,作用类似int等根本数据类型,,定义结构体类型后必须定义该类型的变量,才分配存储空间,该存储空间的大小和结构由结构体类型确定,,不能对结构体类型进行引用,结构体变量可引用,,例如:,,Student_t.acNum是非法的,而stStuu1.acNum是合法的。,,结论,2——,输入输出结构体变量成员怎么表示?,结构体成员变量的引用方式为,:,结构体变量名,.,成员变量名,,输入输出的方式根据成员变量的类型进行格式控制,其方法与普通变量相同,,学以致用,根据对学生根本信息的数据类型定义为结构体,扩展到对教师信息〔姓名、年龄、工龄、工号、工资等信息〕定义为结构体,对学校信息〔地址、名称、占地面积、类型、教职工人数、在校学生总数、部门个数等〕定义为结构体等等,,作业,——,每人必做,完成学生信息结构体的程序,,对教师信息〔姓名、年龄、工龄、工号、工资等信息〕定义为结构体,并输入和输出教师信息,,

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

相关资源

更多
正为您匹配相似的精品文档
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!