C语言

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

第1章程序设计概述第1章程序设计概述1.1程序的概念1.2程序设计语言1.3初识C程序1.4C程序的基本语法1.5C程序设计方法1.6常见C程序的错误1.1程序的概念•程序(program):是用某种程序设计语言编写指示计算机完成特定功能的命令序列的集合,如:–IE浏览器iexplore.exe程序–网络聊天qq.exe程序–洗衣机洗衣程序•程序是人类驾驭计算机的手段–谷歌围棋人工智能程序AlphaGo–Mobike&OFO1.2程序设计语言•程序设计语言–是计算机能够理解和识别的一种语言体系,用于描述程序中操作过程的命令、规则的符号集合,是进行程序设计的工具。•编程–设计一组控制计算机的命令集的过程,需要人们事先经过缜密的思考和设计,程序强调严谨的逻辑和结构。1.2程序设计语言•程序设计语言的发展机器语言汇编语言高级语言例:要使两个存储单元中的数的相加,最后结果存放在其中一个单元中10011100000000000000000110001010000001000100011000010000000001001000100000000100MOVSI,10HMOVAL,[SI]INCSIADDAL,[SI]MOV[SI],ALintx=6,y=7;y=x+y;1.2程序设计语言•高级语言:独立于机器,表达方式更接近于被描述的问题,而不需要去关心与机器相关的实现细节•第一个高级语言–1954年,FORTRAN•影响较大的高级语言–FORTRAN、ALGOL、COBOL、BASIC、LISP、Pascal、VB、C、C++、C#、Delphi、JAVA、Python、PHP等1.2程序设计语言•面向过程程序设计语言–以函数为基本程序结构单位,程序的设计以过程为核心。先用函数实现解决问题所需要的每个步骤,再根据既定的功能依次调用函数。–程序=算法+数据结构+程序设计语言+语言环境–如:C、Pascal等1.2程序设计语言•面向对象程序设计语言–以类为基本程序结构单位,程序的设计以类为核心,数据及操作封装在类中。–程序=类+类+…+类–类=数据结构+算法+程序设计语言+语言环境–如:C++、JAVA、Python等1.2程序设计语言•高级语言的翻译–高级语言不能被计算机直接执行,必须先由一种翻译程序将这些程序翻译成能被计算机识别和执行的机器语言–翻译程序的种类•编译程序•解释程序1.3初始C程序1.3.1C语言概述1.3.2数值计算的C程序1.3.3简单游戏的C程序1.3.4C程序的实现过程1.3.1C语言概述•C语言演变–BCPL=B=C=C++•C可作为系统程序的设计语言–如编写Windows、Linux、嵌入式等操作系统•C可作为应用程序的设计语言–如编写计算器、游戏、图像处理等1.3.1C语言概述•C是最受欢迎的、应用最广泛的编程语言之一2017年2月TIOBE编程语言排行榜1.3.2数值计算的C程序•实现“鸡兔同笼”问题穷举法的C程序/*功能:已知鸡兔的总头数和总脚数,求解鸡兔的数量各有多少*/#includestdio.hintmain()//主函数{inthead,feet;//head为鸡兔头的总数、feet为鸡兔脚的总数intchicken,rabbit;//chicken为鸡的数量、rabbit为兔的数量scanf(%d%d,&head,&feet);//获取键盘输入的头数与脚数/*反复穷举可能符合条件的解法,直到获得求解结果结束*/for(chicken=1;chicken=head;chicken++){rabbit=head-chicken;if(chicken*2+rabbit*4==feet)break;}printf(\nchicken=%d,rabbit=%d,chicken,rabbit);//屏幕输出鸡兔的数量return0;}•执行结果1.3.3简单游戏的C程序•简单的“走迷宫”小游戏的C程序功能是:已知一个6*6阶的迷宫、实现让小球从起点走出迷宫*/#includestdio.h#includeconio.h#includewindows.h#includemove.hintmain(){//迷宫图,大写字母O为小球起始位置,#字符为迷宫栅栏charm[6][7]={######,#O#,####,###,###,######};inti,x,y,exitX,exitY;charch;x=1,y=1,exitX=1,exitY=5;//x,y为小球初始位置,exitX,exitY为迷宫出口位置1.3.3简单游戏的C程序•简单的“走迷宫”小游戏的C程序for(i=0;i6;i++)puts(m[i]);//初始迷宫图输出到屏幕//小球没走到迷宫出口,根据迷宫状态选择一个方向移动while(x!=exitX||y!=exitY){ch=getch();move(m,ch,&x,&y);//小球在用户指定方向移动一步system(cls);//清屏for(i=0;i6;i++)puts(m[i]);//小球移动一步后的迷宫图输出到屏幕}printf(Congratulationsonwinningthemaze!);Sleep(5000);//暂停5秒钟左右return0;}1.3.3简单游戏的C程序•简单的“走迷宫”小游戏的执行结果1.3.4C程序的实现过程•C程序实现的4个过程:–编辑(EDIT)–编译(COMPILE)–连接(Link)–执行(EXECUTE)1.3.4C程序的实现过程•C程序的集成开发环境集编辑(EDIT)、编译(COMPILE)、连接(Link)、执行(EXECUTE)与一体,并提供调试(debug)手段和帮助(help)的开发软件。1.3.4C程序的实现过程•几种常用的C语言集成开发工具开发工具运行环境各工具的差异基本特点TurboCDOS不能开发C++语言程序(1)符合标准C(2)各系统具有一些扩充内容(3)能开发C语言程序(集程序编辑、编译、连接、调试、运行于一体)BorlandCDOSMicrsoftCDOSVisualC++Windows能开发C++语言程序(集程序编辑、编译、连接、调试、运行于一体)DevC++WindowsBorlandC++DOS、WindowsVisualStudioWindowsCodeBlocksWindows、Mac1.4C程序的基本语法1.4.1C程序的基本结构1.4.2C程序的基本元素1.4.3C程序的编程风格1.4.1C程序的基本结构/*功能:已知x与y的值,把x除以y的结果放到z中,并在屏幕上打印输出*/#includestdio.hintmain(){intx,y;doublez;x=20;y=5;z=(double)x/y;printf(z=%.1f\n,z);//输出两个整数相除的结果return0;}•从宏观上讲,C程序的基本结构包括:编译预处理命令、函数定义。main函数定义编译预处理命令•从微观上看,一个C程序也可以被看成是由若干行组成的,而每一行由字符的序列构成的。1.基本字符集:–大写英文字母:A~Z–小写英文字母:a~z–阿拉伯数字:0~9–28个标点符号和运算符–下划线(_)、空格符、制表符和换行符1.4.2C程序的基本元素1.4.2C程序的基本元素2.标识符用来命名如语句的种类、变量的名称、函数的名称等的各种程序元素,应满足以下规则:–以字母(不论大小写)或下划线(_)开头;–随后可以跟若干个(包括0个)字母、数字、下划线。1.4.2C程序的基本元素2.标识符•关键字:C语言的编译系统已经给予固定意义的标识符.–数据类型名:int、double–语句的种类:if、for–程序元素的其他性质:define、static•标准标识符:C语言的程序设计环境中,已经被给予指定意义的标识符–printf格式化输出库函数的函数名–scanf格式化输入库函数的函数名–INT_MAX整数类型的最大数据1.4.2C程序的基本元素2.标识符•用户定义的标识符–除了关键字和标准标识符之外的其他标识符。在不混淆的情况下,把“用户定义的标识符”简单地说成“标识符”。–通常用来命名程序中的变量、函数或其他程序元素。•合法的用户定义标识符如:xy2_imaxELSEXA_to_B•非法的用户定义标识符如:5xelse#Nosumtwore-inputmain1.4.2C程序的基本元素3.注释注释的一般形式是:–/*一行或多行注释*/–//当前行注释1.4.3C程序编程风格•良好的编程风格(1)代码形成锯齿形书写格式。(2)为增加程序的可读性,程序的主要语句要有适当注释。(3)标识符命名尽量做到“见名知意”的原则。(4)一行只写一个语句。(5)为使程序的结构更清晰,可使用空行或空格。(6)输入数据前要有适当的提示,输出结果时要有说明。1.5C程序设计方法1.5.1问题分析1.5.2算法设计1.5.3程序编写1.5.4运行调试1.5C程序设计方法•编程工具确定后,程序设计的四个步骤:问题分析算法设计程序编写运行测试1.5.1问题分析•问题分析的过程包括–问题的定义•明确解决问题需要考虑的已知信息,和需要达到的目标。–(1)已知什么–(2)求什么。•如:已知同笼中鸡兔的头数与脚数,求鸡兔各有多少只–问题的解决方案。•根据已知条件,寻求结果的方法和途径•如:鸡兔同笼问题的“穷举法”1.5.2算法设计•算法:解决问题所需的有限步骤•算法设计:就是设计程序执行步骤,这些步骤都应该是明确定义、可以执行的,而且每个步骤的执行顺序是确定的,并且能够在有限步骤内执行完毕。1.5.2算法设计•求三个整数中的最大值的算法举例:第1步:输入三个正整数a,b,c;第2步:如果a大于b,则将a的值赋给max,否则将b的值赋给max;第3步:如果c大于max,则将c的值赋给max;第4步:打印:“最大值为”max1.5.2算法设计•编程问题的最基本的算法设计可归结为以下三步:(1)获得数据(2)执行计算(3)显示结果1.5.2算法设计•算法的描述:–自然语言–伪代码–流程图1.5.2算法设计•流程图几种基本图形•C语言的三种控制结构用流程图1.5.2算法设计•求三个数中的最大值问题的流程图1.5.3程序编写•C程序=数据+操作•数据:即确定数据的存储方式–已知信息的数据–计算过程产生中间数据–待求结果的数据•操作:即算法,用语句实现–符合程序语言的语法规则1.5.4运行调试•发现错误–设计测试用例•错误的定位–设置断点–单步跟踪–观察变量的值1.6常见C程序的错误1.6.1语法错误——编译错误1.6.2语法错误——连接错误1.6.3逻辑错误——结果不正确1.6.4逻辑错误——运行时错误1.6常见C程序的错误•认识程序错误–语法错误•编译错误•连接错误–逻辑错误•运行结果不正确•运行时错误1.6.1语法错误——编译错误•是指不符合C语言定义的语法书写规则•编译时能自动检查出语法错误,只需根据错误提示进行修改•程序语句末缺少分号“;”的编译错误示例缺少分号“输出”窗口1.6.1语法错误——编译错误•C语言的错误信息的形式•双击上述错误信息,修改1.6.1语法错误——编译错误•编译错误修改提示:–错误信息往往只能起提示作用,不是特别精确反映错误产生的原因,更不会告诉你如何修改。–根据提示能快速反应错误产生的原因需要经验的积累。–一条语句错误可能会产生若干条错误信息,只要修改了这条错误,其他错误会随之消失。–特别提示:一般情况下,第一条错误信息最能反映错误的位置和类型,所以调试程序时务必根据第一条错误信息进行修改,修改后,立即重新编译程序,如果还有很多错误,再一个一个地修改。–即每修改一处错误要重新编译一次程序。1.6.2语法错误——连接错误•连接错误,是编译成功后,连接器连接外部程序的时候产生的错误。•系统函数printf错写成print后的连接错误示例1.6.2语法错误——连接错误•连接错误修改提示:–连接错误不提示出错

1 / 50
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功