版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第1章
C
语言概述.pptx第2章算法
.pptx第3章
C
程序设计基础.pptx第4章顺序结构程序设计.pptx
第5章选择结构程序设计.pptx
第6章循环结构程序设计.pptx
第7章数组
.pptx第8章函数
.pptx第9章指针
.pptx第10章预处理命令.pptx第11章用户自定义数据类型.pptx
第12章文件
.pptx第
1
章全套可编辑PPT
课件C语言概述在现实生活中,人与人之间的交流用的是语言,如汉语、英语、法语等。那么,人与计算机之间交流用的是什么呢?答案是编程语言。比如,要让计算机帮助人们做一些事情,此时可利用编程
语言编写程序来告诉它怎么做,而C
语言就是一种通用的、过程式的编程语言。本章首先介绍了C
语言的发展和特点,然后通过一个简单的C语言程序实例,让读者了解C
语
言程序结构及其格式特点,最后介绍了C
程序的开发步骤及开发环境,其目的是使读者能够通过编
写一个简单的C语言程序练习使用开发环境。>
了
解C
语言的发展>
了
解C
语言的特点>熟
悉C
语言程序结构及格式特点>
熟
悉C
程序的开发步驟>
掌握使用Visual
C++6.0编译器开发C程序的方法
>
了解使用Dev-C++编译器开发C程序的方法学习目标163C语言的发展C语言的特点第一个C语言程序C程序的开发步骤开发环境1.1/1.2/1.3/1.4/
1.5/常见错误分析.C
语言的发展在介绍C
语言的发展之前,我们先来看一下计算机语言经
历的几个发展阶段。PART1.1汇编语言阶段汇编语言是机器语言的升级版,
它用英文字母或符号串代替了机器语
言中的二进制码,因此,汇编语言也
称符号语言,它比机器语言程序便于
阅读和理解。机器语言阶段机器语言是低级语言,是用二进
制代码表示的一种机器指令的集合。其特点是计算机可以直接识别和执行,
不需要进行任何的解释和翻译。1.1
C语言的发展—5—高级语言是为了使程序语言能更贴近人类的自然语言,同时又不依赖于计算机硬件而产生的。这种语言的语法形式类似英文,易于被人们理解和使用。早期使用较多的高级语言主
要有FORTRAN
、ALGOL
、BASIC
、COBOL
、LISP
、Pascal
、VB
等,当然也包括C语言。
不过,随着时代的发展,早期流行的很多语言(如FORTRAN、COBOL
等)都已被淘汰。
目前
,C
语言主要用于教学及嵌入式系统的应用程序开发,实际开发中使用较多的编程语言
主要有Java
、C++
、C#
、PHP
、JavaScript
、Python
等。高级语言阶段
1.1
C语言的发展—6—C语言的原型是ALGOL
60语言(也称为A语言)。1963年,剑桥大学将ALGOL
60语言发展成为CPL(Combined
Programming
Language)语言。1967年,剑桥大学的MartinRichards
对CPL
语言进行了简化,于是产生了BCPL(Basic
Combined
ProgrammingLanguage)
语言。1970年,美国AT&T贝尔实验室的KenThompson以BCPL语言为基础,设计
出了简单且接近硬件的B
语
言(
取BCPL
的第一个字母)。但B
语言过于简单,功能有限。1972~1973年间,美国贝尔实验室的D.M.Ritchie在B语言的基础上设计出了一种新的语言,他
取了BCPL的第二个字母作为这种语言的名字,这就是C语言。C语言与UNIX操作系统有着密切的联系,开发C语言的最初目的是为了更好地描述UNIX操
作系统。C语言的出现,促进了UNIX操作系统的开发,同时随着UNIX的日益广泛使用,C语言
也迅速得到推广。1.1
C语言的发展—7—1983年,美国国家标准协会(ANSI)
对
C
语言进行了标准化,经过多次修订,C语言标准于1988年完成并在1989年12月正式通过,我们把这一C
语言版本称为C89。
最新的C
语言标准
C99
于1999年颁布,并在2000年3月被ANSI
采用。C
语言对现代编程语言有着巨大的影响,许多现代编程语言都借鉴了大量的C
语言特性。如
C++
包括了所有C
特性,但增加了类和其他特性以支持面向对象编程;又如,Java
是基于C++的,所以也继承了许多C
语言的特性;而C#
是由C++和Java发展起来的一种语言,所以它也继
承了C
语言的许多特性。1.1
C语言的发展—8—C
语言的特点C
语言之所以能够流行起来,归功于它有以下一些主要
特点。PART1.2简洁C
语言是现有程序设计语言中
规模最小的语言之一。C语言只有
37个关键字(见附录3)、9种控
制语句,压缩了一切不必要的成
份。C
语言表达方法简洁,使用一
些简单的方法就可以构造出相当
复杂的数据类型和程序结构。灵活C
语言的语法限制不太严格,
程序设计的自由度比较大,程序
的书写格式与变量的类型使用都
很灵活,如整型数据、字符型数
据和逻辑型数据可以通用。1.2
C语言的特点—10—功能丰富C语言具有丰富的数据类型,
包括整型、实型、字符型、数组类
型、指针类型、结构体类型、共用
体类型、枚举类型等。C
语言还具
有多种运算符(共34种,见附录
4),灵活使用各种运算符可以实现
其他高级语言难以实现的运算。模块化和结构化C
语言用函数作为程序模块,以实现程序的模块化;C
语言具有
结
构
化
的
控
制
语
句
,
如
if...else语句、while语句、
do...while语
句
、switch语句和
for语句等。1.2C语言的特点—11—具有低级语言的功能C
语言允许直接访问物理地址,能进行位操作,能实现汇编语言的大部分功能,可以直接对硬件进行操作。因此,C
语言既具有高级语言的功能,又具有低级语言
的功能,故有人把C
语言称为“高级语言中的低级语言”或“中级语言”。由于C
语
言的双重性,所以它既可以用来编写应用软件,又可以用来编写系统软件。1.2C语言的特点—12—这一节的内容相对比较抽象和不好理解,读者待学习完这本教材后再来回顾一下,会有更好的领悟。C
语言生成的目标代码质量高,程序执行效率高。C
语言一
般只比汇编程序生成的目标代码
效率低10%~20%。C
语言是通过编译和连接来得到可执行代码的,由于C
语言
的编译系统相当简洁,因此很容
易移植到新的系统。执行效率高
可移植性好1.2
C语言的特点提示—13—第一个C
语言程序与用其他语言编写的程序相比,C语言较少要求“形式
化的内容”。
一个完整的C
程序可以只有寥寥数行。PART1.3由于读者刚开始接触C
语言,在这里我们先不长篇论述C
程序的全部组成部分,只介绍C
程序的基本组成部分。在读者会写简单的C程序之后上,通过后面章节的学习再逐步深入掌握C
程序的完整结构。下面以一个简单的例子说明C
程序的基本结构。#include<stdio.h>int
main()printf("你
好
,C语言!\n");
return
0;/*编译预处理指令*1
/*主函数的函数头*1
/*函数体的开始标记*//*输出要显示的字符串*1
/*程序返回值0*//*函数的结束标记*11.3第一个C语言程序
>
1.3.1最简单的C语言程序结构【例1
-1】只有一行输出的C程序。—15—
1.3第一个C语言程序
>
1.3.1最简单的C语言程序结构【运行结果】
程序运行结果如图所示。该程序运行结果的第1行是程序运行后输出的结果,第2行是任何一个C
程序在VisualC++6.0
环境下运行都会自动输出的一行信息,告诉用户:“如果想继续,请按任意键”。当用户按任意
键后,屏幕上不再显示运行结果,返回程序窗口。'E:\代码\第1章\Debug\1-1.exe"你
好
,C语言
!Press
any
key
to
continue【程序说明】回
X—16—II运行界面默认情况下显示的是黑底白字,为了美观可以进行设置。方法如下:(1)右击运行窗口的标题栏,在弹出的快捷菜单中选择“属性”选项,如图所示。(2)这时会弹出“属性”对话框,在属性对话框中选择最后一个选项卡“颜
色”,在这里可以根据需求设置“屏幕文字”和“屏幕背景”的颜色,如图所示。在本书中所有运行结果截图均采用白底黑字模式。
1.3第一个C语言程序'E\代码\第1章\Debug\1-1.exe'你
好
,C
语
言
!Press
any
key
to
continu用>
1.3.1最简单的C语言程序结构x关闭(C编辑(E)
默认值(D)
属性(P)还原(R)移动(M)大小(S)最小化(N)
最大化(X)小技巧—17—例1-1的程序是一个由头文件和主函数组成的简单C
语言程序,下面分别解释一下各行程序的意义。第1行:#include<stdio.h>这是一个预处理操作。include
称为文件包含命令,后面尖括号中的内容称为头文件,stdio.h是C语
言的系统文件,stdio是“standardinput&output(标准输入输出)”的缩写,.h是文件的扩展名。由
于程序的第4行使用了库函数printf,编译系统要求程序提供有关此函数的信息(例如对这些输入输出函数的声明和宏的定义、全局变量的定义等),所以此处需要这条命令。第2行:int
main()这一行代码是函数头,其中main是函数的名字,表示“主函数”,main
前面的int表示函数的返回值是int类型(整型)。每个C
语言程序都必须有一个main函数。第3行到第6行:printf("
你好,C语言!\n");return
0;1.3第一个C语言程序
>
1.3.1最简单的C语言程序结构—18—由花括号{}括起来的部分是函数体,该程序主函数的函数体由两条语句构成,每条语句后都要加分号,表示语句结束。其中printf是C
编译系统提供的函数库中的输出函数,用来在屏幕输出内容,输出
语句中双引号中间可以是字母、符号及中文字符等;
“return0;”的作用是当main函数执行结束前将
整数0作为函数值,返回到调用函数处。在程序各行的右侧都可以看到一段关于这行代码的文字描述(用/**/括起来),称为代码注释。其
作用是对代码进行解释说明,为日后自己阅读或者他人阅读源程序时方便理解程序代码含义和程序设计
思路。1.3第一个C
语言程序
>
1.3.1最简单的C语言程序结构—19—C
程序是由函数构成的,函数是C程序的基本单位。
任何一个C语言源程序必须
包含一个且仅包含一个
main函数,可以包含零个
或多个其他函数。一个C程序由一个或多个源程序文件组成。一个
规模较小的程序,往往只
包括一个程序文件。本书中的例子都是基于一个源
程序文件的。通过对例1-1的介绍,我们可以看到一个C语言程序的结构主要有以下特点:>
1.3.1最简单的C语言程序结构1.3第一个C语言程序—20—0102一个函数由两部分组成:函数头和函数体。函数头如
例1-1中的intmain()。函数
体为函数头下面花括号{}内
的部分。若一个函数内有多
个大括号,则最外层的一对{}
为函数体的范围(关于函数
的组成可参见第8章)。一个C程序总是从main
函数开始执行,到main函数
结束,与main函数所处的位
置无关(main
函数可以位于
程序的开始位置,也可以位
于程序的末尾,还可以位于
一些自定义函数的中间)。>
1
.3
.
1最简单的C
语言程序结构1.3第一个C语言程序—21—0403
1.3第一个C语言程序一个好的、有使用价值的源程序都应当加上必
要的注释,以增加程序的
可读性。C程序的每个语句和数据定义的最后必须有一个
分号。分号是C语句的必要
组成部分,必不可少。>
1.3.1最简单的C语言程序结构—22—0605C
语言允许用两种注释方式:①以/开始的单行注释。这种注释可以单独占一行,也可以出现在一
行中其他内容的右侧。此种注释的范围从/开始,以换行符结束,即这种
注释不能跨行。若注释内容一行内写不下,可以用多个单行注释。如:printf("你
好
,C语言!\n");//
输出要//显示的字符串②以/*开始,以*/结束的块式注释。这种注释可以单独占一行,也可
以包含多行。编译系统在发现一个/*后,会开始找注释结束符*/,把二者
间的内容作为注释,如例1-1中的注释。1.3第一个C语言程序
>
1.3.1最简单的C语言程序结构知识库—23—在程序中,可以使用英文的大写字母,也可以使用小写字母。但要注意的是,在C
语
言中是区分字母大小写的,也就是说,大写字母和小写字母代表不同的字符,如
'a’和'A
'是
两个完全不同的字符。
一般情况下,C语言程序中使用小写字母较多,但在定义常量时会使
用大写字母。函数体中的大括号用来表示程序的结构层次,需要注意的是:左右大括号要成对使用。在编写程序时,为了防止对应大括号的遗漏,建议先将两个对应的大括号
输入程序中,再往括号中添加代码。通过上面的实例可以看出,C
语言编写有一定的格式特点,具体如下:1.3第一个C语言程序>
1.3.2
C语言程序的格式特点小技巧—24—在程序中的空格、空行、跳格并不会影响程序的执行。合理地使用这些空格、空行,可以使编写出来的程序更加规范,有助于日后的阅读和整理。C
程序书写格式自由,一行内可以写多个语句,
一个语句可以分写在多行上。但为了有
良好的编程风格,最好将一条语句写在一行。代码缩进统一为4个字符。建议不使用空格,而用【Tab】键,如例1-1中的第4行和第5
行。例如,以下程序完全是正确的,但是由于书写格式不规范,因而不利于阅读和理解,应参照例1-1的格式来进行书写。#include<stdio.h>int
main(){printf("你好,C语言!\n");return0;}1.3第一个C
语言程序>
1.3.2
C语言程序的格式特点—25—C程序的开发步骤学习C
语言就是学习C
语言编程的过程。C
程序的开发从
确定任务到得到结果一般要经历以下几个步骤。PART1.4需求分析是指对要解决的问题进行详细的分析,弄清楚问题的要求,包括需要输入什么数据,要得到什么结果,最后应输出什么等。这个过程好比是考试时候的审题,
一定要领会题目的要求,如若不然解题过程再漂亮也是无济于事的。算法设计是指对要解决的问题设计出解决问题的方法和具体步骤。例如,要求解
一个1到100的累加问题,首先要选择用什么方法求解(直接累加计算还是用等差数列
的求和公式进行计算);然后把求解的每一步清晰地描述出来。描述算法有多种方式,
详见第2章。需求分析
算法设计1.4
C程序的开发步骤—27—2编写程序是把算法设计的结果变成一行行代码,输入到程序编辑器中,然后将此源程序以文件形式保存到自己指定的文件夹内。文件用.c
作为后缀,如file.c。编译程序需要利用编译器把送入的源程序翻译成机器语言,也就是编译器对源程
序进行语法检查并将符合语法规则的源程序语句翻译成计算机能识别的语言。如果经
编译器检查,发现有语法错误,那就必须修改源程序中的语法错误,然后再编译,直
至没有语法错误为止。这时,会在源程序所在的目录中自动生成一个目标文件。在
Visual
C++6.0中,目标文件的后缀为.obj,
如file.obj。
1.4
C程序的开发步骤编译程序编写程序—28—43经过编译得到的目标文件还不能供计算机直接执行。前面已经介绍过,
一个程序可能包含若干个源程序文件,而编译是以源程序文件为对象的,
一次编译只能得到一
个与源程序文件相对应的目标文件,所以我们必须把所有的目标文件连接装配起来,
再与函数库相连接,生成一个可供计算机直接执行的文件,称为可执行文件(在
Visual
C++6.0中,可执行文件的后缀为.exe,
如file.exe)。编译程序时显示的错误信息是寻找错误原因的重要信息来源,读者要学会看这些错误信息,并且每一次碰到错误并且最终解决了错误时,要记录错误信
息以及相应的解决方法,这样以后再看到类似的提示信息就能够熟练反应出是
源程序哪里出现了问题,从而提高程序调试效率。1.4
C程序的开发步骤连接程序提示—29—5即使一个程序只包含一个源程序文件,编译后得到的目标文件也不能直接运行,也需要经过连接阶段,这是因为要与函数库进行连接,才能生成可
执行文件。在连接过程中,一般不会出现连接错误,如果出现了连接错误,说明源
程序中存在子程序调用混乱或参数传递错误等问题。这时需要对源程序进行
修改,再进行编译和连接,如此反复进行,直至没有连接错误为止。提示小技巧1.4
C程序的开发步骤—30—运行可执行文件,得到运行结果。能得到运行结果并不能说明程序是正确的,要对运行结果进行分析,分析其是否合理。而且不能只看到某一次结果正确,就认为程
序没有问题,需要多设计几组数据,检查程序对不同数据的运行情况。如发现某一组
的运行结果与预期的结果不同,就表明计算机的程序存在有逻辑错误,此时就需要重
新去修改源程序直至没有错误为止。1.4
C程序的开发步骤运行程序—31—6程序调试是指将编写的程序投入实际运行前,通过编译或运行程序等方法对程序进行测试,以修正程序语法错误和逻辑错误的过程。查找逻辑错误时,如果程序不大,可以用人工方法模拟计算机对源程序
的执行过程,分析出逻辑错误,并对错误进行修改处理;如果程序比较大,
人工模拟显然行不通,这时可通过单步执行程序,
一步步跟踪程序的运行。
一旦找到问题所在,可修改源程序并重新编译、连接和执行程序,直至程序
无逻辑错误为止。如同正式的产品都有产品说明书一样,正式提供给用户使用的程序,也必须向用户提供程序说明书。程序说明书也称为用户文档,应包含程序名称、程序功能、运行
环境、程序的装入和启动、需要输入的数据,以及使用注意事项等内容。1.4
C程序的开发步骤知识库编写程序文档—32—开发环境如前所述,用C语言编写的源程序必须经过编译和连接才能运行,这就需要用到C编译系统。目前使用的大多数C编译系统都被集成在某个集成环境(IDE)
中,即把程序的编辑、编译、连接和运行等操作
全部集中在一个界面中进行。C语言开发环境有很多,如Linux
操作系统下的GCC;Windows
操作
系统下常用的有Turbo
C2.0
、Turbo
C++3.0
、Dev-C++
、C-Free和
Visual
C++6.0等。PART1.5的
MerotofVisualC…文件旧调项由查者M
插入①
I
程白组建(图)工具①份口MO
助(H
主菜单国工具栏项目工作区窗口
程序编辑窗口调试信息窗口组建(调试X在文件中查找X在文件2中查找X结果XsoL
Debgting
7就绪Visual
C++6.0是一个功能强大的可视化软件开发工具,它集合了程序的代码编辑、程序编译、连接、运行和调试等功能。Visual
C++6.0也是全国计算机二级考试中指定的编译器。本书中所有程序的
编写都是基于Visual
C++6.0开发环境的。下面结合一个实例介绍其用法。安装完成VisualC++6.0后,执行“开始”菜单中的MicrosoftVisual
C++6.0
命令,或者双击桌面上的
VisualC++6.0图标,可启动Visual
C++6.0开发环境,得到如图所示操
作界面。
1.5开发环境
1启动Visual
C++6.0>
1.5.1VisualC++6.0—34—区%如上图所示,主窗口的顶部为主菜单栏,主菜单栏下面是工具栏,工具栏中包含常用的工具按钮,如编辑程序相关的按钮和调试程序相关的按钮等。主窗口的左侧是项目工作区窗口,用来显示所设定的
工作区信息;主窗口的右侧是程序编辑窗口,用来输入和编辑源程序(这时不能输入程序,需要新建文
件后方可进行输入);主窗口的下部是调试信息窗口,用来将编译、连接等结果信息进行显示。在Visual
C++6.0中,各菜单项名称后都有一对括弧,括弧中有一个带下划线的字母,如“文件(F)”,它表示用户可以通过按【AIt+F】组合键打
开下拉菜单。>
1.5.1VisualC++6.01.5开发环境提示—35—0
MiorototVoudC
…文件D调D
mlo顾入④
IGD门
HQ-
Cl+0I开工2作空Wrngnoa8
存a晶y-田量正文件B工作空用B通#00n
I具①
Oow
00四
国创建一个新文件->(
1
)
在Visual
C++6.0主窗口的主菜单栏中选择“文件”选项,然后在其下拉菜单中单击“新建”
按钮,如图所示。
1.5开发环境
2
新建一个C源程序组
建(
调
试X
在文件中直找X
在文阵冲查找X结果X
第L
Debottint
7创建一个新的文档,工程或者工作空间>
1.5.1
Visual
C++6.0—36—
1.5开发环境
>
(2)此时会弹出“新建”对话框,如图所示。选择此对话框左上角
的“文件”选项卡,选择其中的
“C++Source
File”选项;在右半部分的“文件名(N)”
文本框中输入源程序文件的名字,如图
中输入为“1-1.c”;
“
位
置(C)”
文本框中是源文件的保存
地址,可以通过单击右
…的
按钮修改源文件存储路径。>
1.5.1
Visual
C++6.0建文件
工程
|
工作区
其它文档选择“文件”选项卡
输入文件名称文件的保存地址
修改地址按钮文件名酬位置iG代码第1章Blnary
fleAc
Saurcefle选择文件类型确定
取消—37—
1.5开发环境
>
(3)单击上图中的“确定”按钮后,
回到VisualC++6.0主窗口,此时光标
在程序编辑窗口闪烁,表示程序编辑窗
口已激活,可以编辑源程序了。输入例
1-1程序,如图所示。在图最下面一行的矩形框中显示了“行
6,列49”,表示光标的当前位置是第6行第49列。当光标位置改变时,显示的
数字也随之改变。>1.5.1
Visual
C++6.0密口W
帮助(H数的国数头/printf("
你好,C
语言!m");
/
的悸得第,1*函数的结束标记·4组建人调试X在文件中查执X在文件2中查找X结果XLD就绪显示行和列—38—
1.5开发环境
>
(4)在主菜单栏中选择“文件”
选项,在其下拉菜单中选择“保
存”菜单项,保存文件,如图所
示。也可以单击工具栏中的“保
存”工具按钮日
,或者直接按【Ctrl+S】快捷键来保存文件。00
Microsoft
Visual
C++-[1-1.c]日文件(E
编辑(E)
查看V新建(N)…圈备!卧t
main()
/
*
函译数预的处函理数指
令函关闭工作空间K/*函数的结束标记*/保存文件页面设置(U)..昌
打
印(P)…数出序
trfn("0;你
好
,C
语
言
!
\n");/*
醇释,>
1.5.1
Visual
C++6.0打开Q).
Ctrl+0关闭O打开工作空间(W工程(P)
组建(B)
奋口W帮助(H—39—日保存(S保存全部L在Visual
C++6.0环境中,编写C
程序时有时可能会出现中文乱
码,如注释中的中文变成了乱码。具体的解决方法是:选择“工
具”>“选项”菜单,打开“选项”
对话框,如图所示。打开“格式”选项卡,在“类别”中选择“所有
窗口
”
,在
“
字体
”
中选择
“Fixedsys”,然后单击“确定”
按钮即可。远项格
式类别M:有
向陈窗口露Hegisters
W
dow全部重置凶声
明示
例背景B]:AaBbCcXxYy2z取
消in。
1.5开发环境
>
1.5.1VisualC++6.0小技巧编
译|目
录|
工
作
区|
宏
|
数
据
查
看
|
帮
助
系
统颜色[G文本选择前镨误标记箭头—40—当书断当前景回]字体旧大
小
5yFxedsys确
定>(1
)
在Visual
C++6.0环境中,要编译源程序可单击主菜单栏中的“组
建”按钮,在其下拉菜单中选择“编
译[1-1.c]”菜单项,如图所示。也可
以单击工具栏中的“编译”工具按
钮
,或者直接按【Ctrl+F7】快
捷键来编译程序文件。
1.5开发环境
3
编译程序的
MecrosotVisualC++-[EA化胸篇1章
1-1d组建间工具D
密口w期H档全部里建开始调试QprntFC“你好,语言!
a);
/>
1.5.1VisualC++6.0编译预处理指令的值编译程序编译图标1*函数的结束标记*/—41—
1.5开发环境
>(2)在选择编译命令后,屏幕上出
现一个对话框如图,该对话框的意思
是询问是否同意建立一个默认的项目
工作区。单击“是(Y)”
按钮,表
示同意由系统建立默认的项目工作区,
然后开始编译程序。>
1.5.1VisualC++6.0Microsoft
Visual
C++This
build
command
requires
an
active
project
workspace.
Would
you
like
to
create
a
default
projectworkspace?是(Y)
否(N)—42—
1.5开发环境
>(3)编译时,编译系统会详尽检查
源程序中有无语法错误,然后在主
窗口下部的调试信息窗口输出编译
信息,如图所示。例1-1的编译结果为“0error(s),0warning(s)”,且产生了一个名为“1-1.obj”的目标
文件。01-1-McrosoftViualC…·1-1c]文件F
读旧查署(V
播入①工程(P)
但速B)
工具T管口IM帮助H围▼
幽
品1-1classessCassv..
DFlevies
dll1-1.obi-error(s),a
warning(s)情式)在文庄中查找X在文件2中查我行1
.
列1>1.5.1Visual
C++6.0—43—
1.5开发环境
如果程序中存在语法错误,则会
在调试信息窗口中输出错误提示信息,
如图所示。编译结果为“1
error(s),0
warning(s)”,
说明有一个错误,双
击错误提示语就会有箭头指向对应的
有错误的代码行。修改错误再编译,直到没有错误为止。1-1-MieorotVsualC++-[-1c]D
文件D端温E
看V
插入①
I程B
组(B)I
具①密口M)
帮助H医
日A
图
善理1-1
classesprintrt
“你好,c
诱言!M”);
/
望禁李导,
F
箭头指向错误行OFlevey
6l-ton+1guration:1-1-Win?2
Debug--Corpiling.依
在
M
-1.EOHtrrortz143H
sntX
er按
行cx时击坩。1-1.ob1-1error(5),0
warning(s)组建人调认X
在文件中查我X
在文件冲雷我]nlahWbatrey>1.5.1Visual
C++6.0错误提示语行6.列1
EccoL
质血—44—C-+-1-lx组建B
I具①
窗
口W
棘
助H序1-1eiasses开始调试D)程注接调试程序。!
执
行
|1
-1ose]arl+F5IChssv..
DFleVlewcopfling.
…1-1.nhj-aprrar(s),awarning(s)组建调试入在文件中查找入在文件冲查找行5.列14
AECcoL
随
盖在得到目标程序“1-1.obj”
后,还需要进行连接方可生成可执行文件。此
时选择“组建”>“组建[1-1.exe]”选
项,如图所示。也可以单击工具栏中的
“组建”工具按钮,或者直接按【F7】
快捷键来组建程序文件。
1.5开发环境
4
连接程序>
1.5.1VisualC++6.0组建图标番学行组建程体的的
始标—45—称除工程配置B)01-1-MicrosoftVisul组建程序后得到可执行文件,如图所示。在主窗口下部的调试信息窗口输出连接信息“1-1.exe-0err
or(s),0warning(s)”,意思是生成可执行文件“1-1.exe”,零个错误和零个警告。
1.5开发环境
---
Configuration:1-1-Win32
Debug---error(s),目warning(s)×Linking...
1-1.exe
-B组建人调试入在文件1中查找入在文件2中查找4]>
1.5.1VisualC++6.0—46—>
1.5.1VisualC++6.0的1-
1-MlcrosstWsua
C…-1-121文4①
D
重
插
N
祖建61
IA①
密D0Minkdng.1-1.exe-0
error(5)
。0
waraing(5)组建人诉证X在文件中查我入文件冲查在得到可执行文件后,就可以直接
运行“1-1.exe”了。为此,可选择“组
建”>“执行[1-1.exe]”
菜单,如图所
示。也可以单击工具栏中的“运行”工
具按钮!,或者直接按【Ctrl+F5】快
捷键来执行程序。
1.5开发环境
5
运行程序行5.列1
Rrcco读取微体开运行
程序运行
图标—47—
1.5开发环境
'E:\
代码\第1章\Debug\1-1
.exe"你
好
,C语言!Press
any
key
to
continue程序运行后,屏幕切换到输出结果窗口,显示运行结果,如图所示。>
1.5.1VisualC++6.0回
X—48—IIDev-C++
是一个Windows
下的C和C++
程序的集成开发环境,使用MingW32/GCC
编译器,遵循C/C++标准。由于Dev-C++本身较为小巧和快速,所以很多初学者选择该环境。如同介绍Visual
C++6.0一样,在介绍Dev-C++
时,还是通过例1-1来讲解如何使用该开发工具来进行C
程序的开发。安
装Dev-C++之后,执行“开始”菜单中的Dev-C++命令,或双击桌面上
的Dev-C++
图标,可启动开发环境,进
入到Dev-C++
界面,如图所示。由图可
以
看
出
,Dev-C++
的界面与VisualC++
6.0大体类似。
1
.
5
开发环境
1
启
动Dev-C++>
1.5.2Dev-C++铝8
面
志
调
试
同
烟工具
栏主菜单—49—Dev-C++界面支持多种语言,要显示中文版界面,可在主菜单
“Tools”中选择“Environment
Options”选项,在弹出的对话框中
选择“General”选项卡,在
“Language”下拉列表中选择“简
体中文/Chinese”选项,然后单击
“OK”按钮即可,如图所示。EnvironmentOptionsGental
oiectotea
Eaten
Progam6Fe
Asocuton图Defaut
to
C·on
new
project□Cetabacups
when
opuning
files□Mnimize
on
run□Show
toolbas
in
full
screen区Enablemultlinetabs
inediter区Pauseconscle
programsafter
return□Check
file
ssocistions
on
startupDebugVariablesBrower□Watch
varable
under
meuteProjectAutoOpenCompilationProgressWindow☑Showduringcompilation□Auto
clore
aftter
complationXCncel
1.5开发环境
小技巧>
1.5.2
Dev-C++O0ny
firgt
file0pned
fles
at
previous
dosingRecentfie
lint
length—50—>
(1)在编写程序前,首先要创建一个新的文件,具体方法为:在Dev-C++界面中选择“文件”>“新建”>“源
代码”菜单项,或者按【Ctrl+N】快
捷键,这样就可以创建一个新的文件,
如图所示。接下来就可以在编辑区域
编写C
语言程序了。倡
日
器口图器其山滥为
新建一个文件tW
编辑区域四导圳L
1.5开发环境
2
新建源程序>
1.5.2Dev-C++at|
已
sz结—51—
1.5开发环境
■未非名1-Dev
-C++511文件阴端境旧
搜素[5视型M
项目[PI
运行[R]I
具[J]AStyle
密Dw]帮助[H□日白电电@回园日
器口图品|
#山
滥国项日管理>
(2)如图所示,输入例1-1的C语言源程序。调武
素培果总行数6
长魔293
插入
在0031秒内电成解析main()printt(你好,(语言!\n”);/”
returs将程序代
码输入其中>
1.5.2Dev-C++品
编
译
器列
4
5
要是示的半片的结束标记/nclude
cstdio.h>
端泽预处理指—52—编翠日志已选择
回40Int日
1.5开发环境
>
(3)选择“文件”>“保存”菜单项,
弹出“保存为”对话框,如图所示。选择要保存文件的路径,在保存类型
中选择“C
source
files(*.c)”选
项
,
在文件名中输入源程序的名字,然后
单击“保存”按钮。第1章
6没有与瘦素条件四配的项保存为保存在T)最近访问保
在C)选择保存类型选择文件保存路径>
1.5.2Dev-C++1-1C
towca
fla
(e)输入源程序名字文件名00存类型T
):—53—选择“运行”>“编译”菜单项,或者按快捷键【F9】,也可单击工具栏中的“编译”工具按钮,都可以一次性完成程序的预处理、编译和连接过程,如图所示。E:A代码第
11
++5.11文件[F]编
编
译
程
序
图
4项目[P]运行[R]工具[J]AStyle奋口W]帮助[H]偏译Q]
F9
CCC
4.8.164-bit
Release运行[R]
F10山
包
编译运行[o]
F11项目管理
查看类调试
1-1.c
品全部重新编译[R](U)
F12
1.5开发环境
3
编译和连接程序>
1.5.2
Dev-C++—54—编译结束后,如果编译正确,编译器将会在屏幕下半部分的“编译日志”标签页中显示编译结果,如图所示。吕编译器资源编译日志调试搜索结果关闭中止
输出文件名:E:\
代码\第1章\1-1.exe-输出大小:127.9296875KiB-编译时间:0.16sShortencompilerpathsII
1.5开发环境
>
1.5.2
Dev-C++警告:0—55—
1.5开发环境
如果程序中存在语法等错误,则编译
过程失败,编译器将会在屏幕下半部分的
“编译器”标签页中显示错误信息,并且
将源程序相应的错误行标成红色底色,如
图所示。t
代四第1章)1-La
·DrvC511文件阴
婚国]接素内口
圆
明刷口
四显示错误信息》
调比国京地果行除
1
已
进
降
0
总
行
数
长度:202错误行在08内内成料研>
1.5.2
Dev-C++—56—4
运行程序程序编译通过后即可运行程序,为此,
可选择“运行”>“运行”菜单项,或者
按【F10】快捷键,也可在工具栏中单击
“运行”工具按钮□,如图所示。E
代励第1m1-1c-Dey-C4+511文件门
编
碱日
窗案向口母器具
]AStyle文
件语法5
]MCw10F12Ctl+F9品
口难冒理运行程序白
清
除m性的分析博注附偏想28品器色原W前数检Shertancomple
pat2031.5开发环境>
1.5.2
Dev-C++—57—Dev-C++
还支持编译运行一键完成,为此,可选择“运行”>“编译运行”菜
单项,或者按快捷键【F11】,也可单击
工具栏中的“编译运行”工具按钮
图
,
如图所示。
1.5开发环境
E
代
局
第1
章
1
-
1x·Dv
C311义
件
阴
满
福因
]
擅
案[S]口图口项日管理编译运行
程序品
翠
源满革g满译运行o]全部重新调译[R](U)调法检查闯游检查当前文件酒却SIM数V0编Make
文件合清除阴曲性能分析阴珍性能信息四切换断卓J调试9hortencampier
paths1
列
1
已
选
择
6
长
度
2
9
3
插
入FuF12Cml+F9F4F5>
1.5.2
Dev-C++—58—标
1.5开发环境
程序执行后,会弹出输出结果窗口,如图所示。第一行为程序的输出,下面
几行都是Dev-C++默认输出,包括分割
线、程序运行时间与返回值等提示信息。
此时可按任意键结束程序运行并关闭该
窗口。1.5.2Dev-C++E:\代码\第1章\1-1.exe你好,C语言!Process
exited
after
8.2269
secondswith
return
value
请按任意键继续。m—59—常见错误分析PART1.6分号是C
语言程序语句的重要组成部分,每条语句及数据定义末尾必须有分号。很多初学者在编写
程序时很容易漏写。例如:#include<stdio.h>int
main()printf("HelloWorld!\n")/*语句后少了分号*1return
0;--Configuration:1-2-Win32Debug-corppiling...代码第1章\1-2.C(5):
error
C21执行
cl.exe时出错.1-2.obj-1error(s),0warning(s)组
建人调试X在文件1中查找入在文件2中查找]1
语句后少分号1.6常见错误分析编译报错信息如图所示。—61—提示语法错误,第5行“return”前缺少分号。上述程序在编译时,编译器在“printf(”HelloWorld!/n“)”语句后没有发现分号,会接着检查下一行是否有分号,编译器会认为“return
O”也是上一行语句的一部分,直到分号结束。由于编译器在第5行才判断出语句有错,所以系统提示的
是第5行有错误。在调试程序时,如果在编译器指出有错的行中找不到错误,应该在该行的上下行中检查。【错误分析】1.6常见错误分析小技巧—62—C
语言的语句中只识别英文字符(提示信息和注释信息除外),中文字符无法编译。例如:#include
<stdio.h>int
main()
1.6常见错误分析---Configuration:1-3-Win32Debug-conpiling.1-3.cE:
代码第1章\1-3.c(4):error
C2018:unknoun
character
'·Qxa1:
·
::
代
\第第11章
--
..((
))
wer
r
C212446r:isnytntax
errorff:
riestsingt‘
'sbefo
rifdfe
tifie
e'WorldE:\代码\第1章\1-3
.c(4)error
C2018:unknown
character‘Oxa1*E:A
代
码
第
1
音
\
1
-
3
.c(4)
:error
C2M18:unknown
character
‘"0x0744cc3311\\码码EEprintf(“Hello
World!\n”);/*使用了中文双引号*1return
0;2
语句中出现中文字符执行
cl.exe
时出错.1-3.obj-1error(s),0warning(s)组建人调试X在文件1中查找X
在文件2中查找E:\代码第1章\1-3.c(4)
:error
C2018:unknown
characterBxbOE:\代码第1章\1-3.c(4)errorC2065:'Hello*
:undeclaredidentifier
E:\代码\第1章\1-3.c(4)编译报错信息如图所示。—63—此程序之所以出现错误,是因为printf函数中使用了中文双引号。类似于“unknown
character”这样的错误,就是在编译时发现了编译器无法处理的字符,这时候就要考虑是否使用了中文标点
符号了。【错误分析】1.6常见错误分析—64—
---Configuration:1-4-Win32
Debug-Compiling-.
-:
.c代码\第1章\1-4.c(6):fatal
error
C1004:unexpected
end
of
file
found执行ci.exe时出错.1-4.obj-1
error(s),θ
warning(s)亚
组建人调试入在文件1中查找X
在文件2中查找]\4E1printf("HelloWorld!\n");return0;
/*
少了右大括号*1编译报错信息如图所示。例如:#include<stdio.h>int
main()C
语言的函数体中,左右大括号要成对使用。初学者在编写程序时很容易忘掉右边的大括号。3
大括号不成对出现1.6常见错误分析—65—错误提示,第6行发现严重错误(意外的文件结束)。
一般来说,当出现“unexpectedendoffilefound”这样的错误时,我们就要考虑是否漏掉了大括号。【错误分析】1.6常见错误分析—66—print("HelloWorld!\n");/*printf函数名写错了*1return
0;编译结果没有错误信息,在连接完程序后提示连接错误,如图所示。--Configuration:1-5-Win32
Debug--Linking..1-5.obj:error
LNK2001:unresolved
external
symbol_printDebug/1-5.exe:fatal
error
LNK1120:1
unresolved
externals执行
link.exe
时
出错
·1-5.exe-1error(s),0warning(s)匝
组
建
人调试入在文件1中查找入在文件2中查找4]了问题。例如:#include<stdio.h>
intmain(){一般情况下,程序编译完成后如果没有错误,在连接程序时就很少发生错误了,除非是调用函数出4
程序连接出错1.6常见错误分析—67—[编译没有错误,说明语法没有错。在连接时出现“unresolvedexternalsymbol_print”错误信息,表示编译器遇到无法解析的外部符号print。一般来说,当遇到这类错误时通常需要检查函数名是否输错。【错误分析】1.6常见错误分析—68—
本章小结
本章首先讲解了C语言的发展史,从中可以看出其重要的地位。然后讲解了C语言的特点,通过特点
的介绍进一步验证了C语言的重要性。接下来通过一个简单程序介绍了C程序的基本结构和格式特点,从而引出C程序的开发步骤。最后介绍了两种比较流行的C
程序开发环境。通过实例的创建、编译、连接和
运行,详细说明了如何使用这两种集成开发环境进行C
语言程序的开发。通过本章的学习,读者应重点掌握以下内容。
为了以后在编程中少犯格式上的错误,应重点掌握C语言程序结构及其格式特点。熟悉C
语言开发步骤,包括需求分析、算法设计、编写程序、编译程序、连接程序、运行程序和编写程序文档。熟练掌握Visual
C++6.0集成开发环境的使用,为以后的学习提供了验证程序结果的方法。总体而言,C语言程序设计是一门实践性非常强的课程,只有多编写程序,多调试程序,才能从实践中学到真谛,才能掌握这门课程的要领。—69—感谢观看第
2
章算
法通过第1章的学习,我们知道了C
语言程序的开发步骤包括了需求分析、算法设计、编写程序、编译程序、连接程序、运行程序和编写程序文档七个部分。其中,算法设计在C
程序开发中起到了至关重要的作用,可以说没有正确的算法就不能编写出正确的程序。本章首先介绍了算法的概念和特性,然后重点介绍了算法的表示方式,最后通过实例介绍了使用三种基本结构流程图和N-S
流程图方式表示算法的方法。>
了解算法的概念>
熟悉算法的特点>
了解使用自然语言描述算法的方法>
掌握使用三种基本结构流程图表示算法的方法>
掌握使用N-S流程图表示算法的方法学习目标应用举例2/
算法的特点21/算法的表示算法的概念算法的概念PART2.1我们说做任何事情都需要一定的方法和步骤。例如,用手机在京东上买一本书,方法和步骤为:打开京东APP→搜索书→加入购物车→结算→填写送货地址→提交订单→完成付款。这些步
骤都是按一定的顺序进行的,缺一不可。在日常生活中,由于人们养成了习惯,所以并没有意识到每件事都需要事先设计出“行动步
骤”,例如,把水果放入冰箱,就至少需要三步:打开冰箱门→将水果放进去→关上冰箱门。所以说从事任何工作和活动,都必须事先想好进行的步骤,然后按部就班地进行,才能够避免出错。
在这里,我们把为解决一个问题而设计的方法和步骤称为“算法
”。2.1算法的概念—75—广义地说,算法是为解决一个问题而提出的准确而完整的方案,是一系列解决问题的方法和步骤。计算机算法是对计算机上执行的运算过程的具体描述,包括数值运算算法和非数值运算算
法。数值运算的目的是求数值解,例如,求三角形面积、求一元二次方程式的解等。非数值运算
涉及面比较广,常见的有人事信息管理、图书管理等。此外,有时对于同一个问题,不同的人会有不同的解题方法和步骤。例如,计算
S=1+2+3+..+99+100的值。有人会采用逐个数相加的方法,先计算1加2,再加3,再加4,如此
反复,
一直加到100;而有人会利用等差数列的求和公式S=(a1+an)n/2来进行计算。显然,相比
前者,后者计算要简单得多。由此可见,对于同一个问题的解题方法还有优劣之分,我们都希望设计出来的方法能够简单、
运算步骤少,因此,为了有效地进行解题,不仅需要保证算法正确,还需要考虑算法的质量。2.1算法的概念—76—算法的特点PART2.2算法中每步操作的含义都必须是明确的,不能出现任何二义性,必须为要执行的每步操作作出严格
而清楚的规定。例如,让大家做一个动作——举起手摸自己的耳朵,大家会发现不同的人完成的动作各
不相同,有的人用左手摸左耳朵,有的人用右手摸右耳朵,还有人用双手摸耳朵,甚至有的人愣在那里
没有做动作...这是因为这个操作是不明确的。一个算法必须在执行有限个操作步骤后终止,且每一步都可在有限的时间内完成,不能无限地执行下去。例如,上面的等差数列的求和,我们必须设一个整数的上限(如100),也就是加到那个数为止。
如果没有这个上限,那么一直会累加下去而没办法停止。一般来讲,
一个有效的算法应该具有以下5个特点。2.2算法的特点确定性有穷性—78—有效性也称可行性,即算法中的每步操作都应该能有效执行,一个不可执行的操作是无效的。例如,
一个数被0除,这个操作就是无效的,应当避免这种操作。这里的输入是指在算法开始之前所需要的初始数据。这些输入的多少取决于特定的问题。例如,求
等差数列1+2+3+...+n的累加时,我们需要输入n的值;再如,第1章的例1-1中只输出一句话,没有输入。2.2算法的特点43有零个或多个输入有效性—79—所谓输出,是指算法最终所求的结果。编写程序的目的就是要得到一个结果,如果程序运行完没有
任何结果输出,那编写程序也就没有意义了。因此,在一个完整的算法中至少会有一个输出。算法的输出不一定就是计算机的打印输出或屏幕输出,
一个算法得到的结果就是算法的输出。2.2算法的特点5有一个或多个输出提示—80—算法的表示对于一个问题的求解步骤,需要一种表达方式,即算法的表示,也称算法的描述。表示一个算法,可
以用不同的方法,常用的方法有自然语言、流程图
和
N-S流程图等。PART2.3自然语言就是人们日常使用的语言,可以使用汉语、英语或者其他语言。用自然语言表示的算法通俗易懂,易于理解,下面通过几个实例来具体介绍。利用公式S=a×a计算出面积。输出周长L和面积S的值。输入正方形的边长a的值。利用公式L=4×a
计算出周长。根据正方形的边长a,
计算正方形的周长L
和面积S。【例2-1】2.3.1自然语言2.3算法的表示用自然语言方式表示如下:—82—
2.3算法的表示
2.3.1自然语言【例2-2】
输入任意两个数x和y的值,求两数中较大的值max。
用自然语言方式表示如下:输入x和y的值。判断x是否小于等于y。如果x小于等于y成立,将y的
值赋给max。如果x小于等于y不成立,将x的
值赋给max。输出max的值。—83—
2.3算法的表示
2.3.1自然语言【例2-3]
求S=1+2+3+...+n的值。用自然语言方式表示如下:i的值加1。判断i的值是否大于
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年企业废气处理与回收利用合同
- 2024年化工设备及配件买卖合同
- 2024医疗软件开发商与医院就电子病历系统开发的合同
- 2024年东莞市分手协议标准文本
- 2024土地使用权抵押反担保合同
- 2024年娱乐场所管理承包合同
- 2024城市轨道交通信号系统研发合同
- 2023年杭州地铁应届生及专业管理人员招聘考试真题
- 2024医疗机构关于干细胞技术研发与合作的合同
- 2024光电产品出口代理合同
- 2023年碳素材料行业分析报告及未来五至十年行业发展报告
- 牧原人才测评试题及答案
- 区域销售目标管理
- 上肢筋伤-骨伤科
- 医院感染风险评估表(适用于病房、换药室、治疗室、注射室)
- 楼盘包销方案
- 新生儿NEC个案护理
- 美国总统大选与民主课件
- 高通量计算材料结构搜索
- 伤口疼痛管理减轻患者痛苦
- 汽车事故应急预案
评论
0/150
提交评论