(15)--第02章 C语言概述C语言程序设计.ppt
《(15)--第02章 C语言概述C语言程序设计.ppt》由会员分享,可在线阅读,更多相关《(15)--第02章 C语言概述C语言程序设计.ppt(80页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第2章 C语言概述本章内容2.1简单C程序2.2C语言程序开发与环境2.3C语言的基本组成2.4C语言特点2.5学好C语言的关键2.6C语言的发展史本章学习目标了解C语言的发展历史和主要特性了解C语言的基本组成掌握C程序的基本结构掌握C程序开发的基本步骤和调试过程具有简单C语言程序设计和开发能力学习导引C语言是国际上最广泛流行的高级程序设计语言之一C语言具有语言简洁、使用灵活、移植性好、直接控制硬件等特点C语言由标识符、关键字、表达式、语句和函数等组成C程序是由函数组成的,函数由语句组成一个程序至少要有一个main函数TIOBE排行榜https:/ 简单C程序2.1.1入门程序2.1.2求面积
2、2.1.3求某日为一年中第几天2.1.4统计字符串中不同字符的个数2.1 简单C程序学习一门新的程序设计语言学习一门新的程序设计语言、掌握一个、掌握一个编程工具与环境编程工具与环境的唯一途的唯一途径径就是就是从从编写编写简单程序简单程序开始开始编辑源程序、编译程序、生成程序、调试程序、测试程序、发布编辑源程序、编译程序、生成程序、调试程序、测试程序、发布程序程序C语言的学习从编写语言的学习从编写4个简单程序开始个简单程序开始2.1.1 入门程序程序员编写C语言的第一程序,显示字串“Hellotheworld.”/*ThisisthefirstCprogram*/*第1行注释*/#include
3、/*第2行包含头文件*/intmain()/*第3行main函数头*/*第4行函数体的开始*/printf(“Hellotheworld.n);/*第5行显示字符串到屏幕上的函数*/return0;/*第6行正常执行完毕的返回值0*/*第7行函数体的结束*/保存到hello.c源程序文件,在Windows中使用VisualC+6.0工具编译连接生成hello.exe,执行hello.exe程序,则屏幕上显示“Hellotheworld”2.1.1 入门程序解释任何C语言源程序都是由函数组成的函数由函数头和函数体组成函数体中包含一些语句,用于完成指定的计算操作每个C语言源程序有且仅有一个main
4、函数,main函数是程序开始执行的唯一入口、执行的主要框架(调用库函数、用户自定义函数来完成设计的功能)2.1.1 入门程序解释使用库函数,需要使用编译预处理命令-宏包含命令include,指引相应的头文件,例如本程序的库函数printf需要的头文件stdio.h#include编译预处理命令include是一条文件包含命令,它是将其后尖括号或双引号“”内的头文件stdio.h包含到源程序中,主要目的是让stdio.h头文件中的printf函数原型包含到源程序中,让程序员按照指定的函数格式使用编译预处理命令还有define、ifdef、ifndef等等。2.1.1 入门程序解释源程序第37行是
5、main的定义main是函数名;函数体是从开始,到结束本程序中main函数体只有一个printf函数和一个return语句构成本程序中main函数返回值类型是int,指明了return语句后面表达式的数据类型定义或调用的函数名之后是用一对圆括号()括起来的参数列表,即使没有参数,函数后的()不能省略/*ThisisthefirstCprogram*/*第1行注释*/#include/*第2行包含头文件*/intmain()/*第3行main函数头*/*第4行函数体的开始*/printf(“Hellotheworld.n);/*第5行显示字符串到屏幕上的函数*/return0;/*第6行正常执行
6、完毕的返回值0*/*第7行函数体的结束*/2.1.1 入门程序解释源程序第5行是main函数体中调用printf函数语句调用函数是按照函数定义的形式参数要求,给出实际参数列表,并用一对圆括号括起来即可。在本例中用双引号括起来的字符串就是printf的一个参数。执行printf函数就把其参数的字符串在屏幕上显示出来。查看显示结果,发现没有显示出来“n”这两个字符,它们是C语言的转义符,表示回车换行的意思,即在显示过程中遇到它,从下一行的最左端开始接着输出。printf函数的后面分号;表示函数语句结束C语言是区分大小写字母的。例如,printf和PRINTF并不相同。/*Thisisthefirs
7、tCprogram*/*第1行注释*/#include/*第2行包含头文件*/intmain()/*第3行main函数头*/*第4行函数体的开始*/printf(“Hellotheworld.n);/*第5行显示字符串到屏幕上的函数*/return0;/*第6行正常执行完毕的返回值0*/*第7行函数体的结束*/2.1.1 入门程序解释源程序的第6行是return语句return语句的作用是将其后面的表达式的值作为main执行的结果值返回给调用main函数的上级程序或操作系统本例中,函数正常执行完毕,把表示正常的0返回。如果在main函数中存在一些异常,可以按照协商好的值表示这些异常,如1表示文
8、件不存在,2表示网络不通等return语句另外一个作用是结束函数的执行,即使后面还有语句也得结束,所以程序员要正确应用return语句,否则函数不能实现指定的目标/*ThisisthefirstCprogram*/*第1行注释*/#include/*第2行包含头文件*/intmain()/*第3行main函数头*/*第4行函数体的开始*/printf(“Hellotheworld.n);/*第5行显示字符串到屏幕上的函数*/return0;/*第6行正常执行完毕的返回值0*/*第7行函数体的结束*/2.1.1 入门程序解释源程序第1行是注释(Comments)信息块注释包含在/*与*/之间的内
9、容,还有行注释,即/之后的单行注释C语言中,注释是为了增加程序的可读性,人为增加的文本信息,主要用来说明程序的功能、用途、符号的含义、程序的实现方法、编程的人与合作者、编程的时间与版本等,注意块注释不能嵌套预编译处理时将所有的注释都用空格(或者空白符)代替,所以注释的多少内容都无关紧要注释是一个非常重要的机制,没有注释的程序就不能算是高质量的程序,一定要养成对程序加注释的习惯/*ThisisthefirstCprogram*/*第1行注释*/#include/*第2行包含头文件*/intmain()/*第3行main函数头*/*第4行函数体的开始*/printf(“Hellotheworld.
10、n);/*第5行显示字符串到屏幕上的函数*/return0;/*第6行正常执行完毕的返回值0*/*第7行函数体的结束*/2.1.2 求面积一般程序要处理输入的数据,把执行结果输出。本例输入圆的半径,自动计算出来圆的面积/*ThisisthesecondCprogram*/*第1行*/#include/*第2行*/#definePI3.1415926/*第3行宏定义的值*/intmain()/*第4行*/*第5行*/floatr,area;/*第6行变量r代表半径,s代表面积*/printf(请输入圆的半径:);/*第7行在屏幕上显示提示信息*/scanf(%f,&r);/*第8行从键盘输入浮点
11、数到变量r*/area=PI*r*r;/*第9行按照圆的面积求解s的值*/printf(圆的面积:%fn,area);/*第10行显示面积s的值*/return0;/*第11行*/*第12行*/请输入圆的半径:10.6圆的面积:352.9893802.1.2 求面积解释源程序的第3行宏定义了的值,并用宏名PI来代表。通常宏定义中用全部大写的标识符作为宏名,代表了宏的值。本程序用一个标识符代表一个常量,称为符号常量,即标识符形式的常量;符号常量通常用#define宏定义。本例中宏PI代表了“3.1415926“这个文本串。在编译之前的预处理中,所有出现PI的地方都用“3.1415926“这个文本
12、串来替换当设定圆的面积精度不高时,可以在宏定义处,简单修改“3.14”就可以修改整个源代码中所有的PI,这就是宏定义的优越之处/*ThisisthesecondCprogram*/*第1行*/#include/*第2行*/#definePI3.1415926/*第3行宏定义的值*/intmain()/*第4行*/*第5行*/floatr,area;/*第6行变量r代表半径,s代表面积*/printf(请输入圆的半径:);/*第7行在屏幕上显示提示信息*/scanf(%f,&r);/*第8行从键盘输入浮点数到变量r*/area=PI*r*r;/*第9行按照圆的面积求解s的值*/printf(圆的
13、面积:%fn,area);/*第10行显示面积s的值*/return0;/*第11行*/*第12行*/2.1.2 求面积解释源程序的第6行是变量声明或变量定义定义r和area两个浮点类型变量,存储输入半径值、按公式求解的面积值float是C语言的关键字,表示其后的r和s两个变量是单精度浮点类型变量的声明通知编译器分配两个能够存储浮点数的存储单元,并通过变量名按照float规范使用这存储单元/*ThisisthesecondCprogram*/*第1行*/#include/*第2行*/#definePI3.1415926/*第3行宏定义的值*/intmain()/*第4行*/*第5行*/floa
14、tr,area;/*第6行变量r代表半径,s代表面积*/printf(请输入圆的半径:);/*第7行在屏幕上显示提示信息*/scanf(%f,&r);/*第8行从键盘输入浮点数到变量r*/area=PI*r*r;/*第9行按照圆的面积求解s的值*/printf(圆的面积:%fn,area);/*第10行显示面积s的值*/return0;/*第11行*/*第12行*/2.1.2 求面积解释源程序的第8行是scanf函数语句,用于输入r变量的值scanf函数的参数分为两部分:一是双引号的内容,用于指定输入的数据的格式,%f就是说明按照十进制浮点数形式输入数值;二是输入的数据存放的变量地址scanf
15、需要知道变量在内存中的确切位置,为此引入取变量地址运算符&,&r的含义就是“变量r的地址”。执行scanf函数,显示光标,等待用户输入,从键盘读入浮点数,经过scanf函数格式转换为C语言中单精度浮点数的内存映像,送到变量r,便于后面程序,引用变量r的值/*ThisisthesecondCprogram*/*第1行*/#include/*第2行*/#definePI3.1415926/*第3行宏定义的值*/intmain()/*第4行*/*第5行*/floatr,area;/*第6行变量r代表半径,s代表面积*/printf(请输入圆的半径:);/*第7行在屏幕上显示提示信息*/scanf(%
16、f,&r);/*第8行从键盘输入浮点数到变量r*/area=PI*r*r;/*第9行按照圆的面积求解s的值*/printf(圆的面积:%fn,area);/*第10行显示面积s的值*/return0;/*第11行*/*第12行*/2.1.2 求面积解释源程序的第9行是求面积表达式,并把PI、r、r三个数的乘积值赋值给变量s在C语言中两个数相乘的运算符是*操作数和运算符写成的式子,在C语言中称为表达式,表达式PI*r*r表示了求出PI*r的积再与r相乘,即求解出圆的面积值通过运算符“=“赋值给变量area,即把结果值放到area变量所代表的内存中。C语言的赋值运算,把右边的表达式计算的结果赋值给
17、左边的变量。/*ThisisthesecondCprogram*/*第1行*/#include/*第2行*/#definePI3.1415926/*第3行宏定义的值*/intmain()/*第4行*/*第5行*/floatr,area;/*第6行变量r代表半径,s代表面积*/printf(请输入圆的半径:);/*第7行在屏幕上显示提示信息*/scanf(%f,&r);/*第8行从键盘输入浮点数到变量r*/area=PI*r*r;/*第9行按照圆的面积求解s的值*/printf(圆的面积:%fn,area);/*第10行显示面积s的值*/return0;/*第11行*/*第12行*/2.1.2
18、求面积解释源程序的第10行printf函数是输出结果通常printf函数的参数分为两部分:一是双引号的内容,用于指定输出提示信息的字符和输出的格式字符串,其中%f是指定按照十进制浮点数输出;二是输出的变量列表,逗号分开在执行printf函数时,双引号内的常规字符原样输出,变量序列中的值按照格式要求在相应的%开始的字符串位置输出,本语句即用变量area的十进制串352.989380取代%f/*ThisisthesecondCprogram*/*第1行*/#include/*第2行*/#definePI3.1415926/*第3行宏定义的值*/intmain()/*第4行*/*第5行*/float
19、r,area;/*第6行变量r代表半径,s代表面积*/printf(请输入圆的半径:);/*第7行在屏幕上显示提示信息*/scanf(%f,&r);/*第8行从键盘输入浮点数到变量r*/area=PI*r*r;/*第9行按照圆的面积求解s的值*/printf(圆的面积:%fn,area);/*第10行显示面积s的值*/return0;/*第11行*/*第12行*/2.1.3 求某日为一年中第几天编写用户自定义函数intmonthdays(intiyear,intimonth),实现判断是否为闰年;从而求解某年某月的某天是该年的第几天程序首先从键盘输入年月日到变量year、month、day;其
20、次调用自定义函数求解year年的前(month-1)月的天数,再加上当月天数day就是所求解决自定义函数intmonthdays(intiyear,intimonth)先按照平年计算第1月-第imonth月的天数,如果为第3月-12月再进行闰年判断,决定是否再加上一天。2.1.3 求某日为一年中第几天/*This is the third C program*/*第1行*/#include /*第2行*/int monthdays(int iyear,int imonth);/*第3行,自定义函数声明*/int main()/*第4行*/*第5行*/int year,month,day,day
21、s;/*第6行,定义四个变量*/printf(请按照yyyy-mm-dd格式输入年月日:);/*第7行*/scanf(“%d-%d-%d”,&year,&month,&day);/*第8行,输入日期*/days=day+monthdays(year,month);/*第9行调用自定义函数参与计算*/printf(%d月%d日是%d年的第%d天n,month,day,year,days);/*第10行*/return 0;/*第11行*/*第12行*/2.1.3 求某日为一年中第几天int monthdays(int iyear,int imonth)/*第13行,自定义函数实现*/*第14行*
22、/int days=0;/*第15行,定义累加器,并初始化为0*/switch(imonth)/*第16行,多分枝语句switch判断*/case 1:days=0;break;/*第17行,1月之前天数为0天*/case 2:days=31;break;/*第18行,2月之前天数为31天*/case 3:days=59;break;/*第19行,3月之前天数暂定31+28天*/case 4:days=90;break;/*第20行,4月之前天数暂定59+31天*/case 5:days=120;break;/*第21行,5月之前天数暂定90+30天*/case 6:days=151;brea
23、k;/*第22行,6月之前天数暂定120+31天*/case 7:days=181;break;/*第23行,7月之前天数暂定151+30天*/2.1.3 求某日为一年中第几天 case 8:days=212;break;/*第24行,8月之前天数暂定181+31天*/case 9:days=243;break;/*第25行,9月之前天数暂定212+31天*/case 10:days=273;break;/*第26行,10月之前天数暂定243+30天*/case 11:days=304;break;/*第27行,11月之前天数暂定273+31天*/case 12:days=334;break;
24、/*第28行,12月之前天数暂定304+30天*/default:return-1;/*第29行,若imonth值不是112则返回-1表示出错*/*第30行,结束switch语句*/if(imonth2)&(iyear%400=0|(iyear%4=0&iyear%100!=0)/*第31行,imonth为312月则需要闰年判断*/days=days+1;/*第32行,if条件成立则天数再增加1天*/return days;/*第33行,返回imonth月之前天数*/*第34行,自定义函数结束*/2.1.3 求某日为一年中第几天在Windows操作系统中运行该程序编译生成的可执行程序days.
25、exe时,首先显示按照yyyy-mm-dd格式输入年月日信息,光标闪烁等待用户输入,切记用中划线分隔开输入的三个数,如下所示输入2020-07-29,再输入回车键。将计算出7月29日是2020年的第221天,运行结果如下所示:请按照yyyy-mm-dd格式输入年月日:2020-07-297月29日是2020年的第211天 2.1.3 求某日为一年中第几天源代码由主函数main()和自定义函数monthdays()组成,主函数中调用自定义函数,不仅使程序简洁,同时也使main函数的逻辑结构清晰,提高程序的可读性,使程序的正确性得到保证从本程序中可以看出,函数具有封装性、可重用性,大大提高了C程序
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 15-第02章 C语言概述C语言程序设计 15 02 语言 概述 语言程序设计
限制150内