《第1章C语言程序设计基本知识ppt课件.ppt》由会员分享,可在线阅读,更多相关《第1章C语言程序设计基本知识ppt课件.ppt(73页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物2022-8-7n本章内容本章内容 C C程序介绍程序介绍C程序的基本结构程序的基本结构C程序的上机步骤程序的上机步骤基本输入和输出方法基本输入和输出方法字符输入和输出字符输入和输出格式输入和输出格式输入和输出C C程序的运行环境程序的运行环境Visual C+ 6.0Visual C+ 6.0Turbo C 2.0Turbo C 2.0我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有
2、一个活的生物2022-8-7n重点和难点重点和难点 重点:重点: (1)掌握掌握C程序的基本结构;程序的基本结构; (2)掌握数据的输入输出;掌握数据的输入输出; 难点难点 (1)掌握数据的输入输出。掌握数据的输入输出。我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物2022-8-7 程序设计也可称为一门工程设计,它是根据程序设计也可称为一门工程设计,它是根据要解决的问题,使用某种程序设计语言,设计出要解决的问题,使用某种程序设计语言,设计出能够完成这一任务的计算机指令序列。能够完成这一任务的计算机指令序列
3、。 程序设计语言是人与计算机进行交流的一程序设计语言是人与计算机进行交流的一种形式语言,是人利用计算机分析问题、解决问种形式语言,是人利用计算机分析问题、解决问题的一个基本工具。就如同人类社会中,自然语题的一个基本工具。就如同人类社会中,自然语言是人与人之间用来表达意思、交流思想的工具言是人与人之间用来表达意思、交流思想的工具一样。自然语言是由字、词、句法和语法等构成一样。自然语言是由字、词、句法和语法等构成的一个系统;而计算机程序设计语言是由字、词的一个系统;而计算机程序设计语言是由字、词和语法等构成的指令系统。和语法等构成的指令系统。 我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在
4、这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物2022-8-7最初程序员使用的程序设计语言是原始的计最初程序员使用的程序设计语言是原始的计算机指令,即能够被计算机直接识别的一系列二算机指令,即能够被计算机直接识别的一系列二进制数,称为机器语言。进制数,称为机器语言。在机器语言的基础上,人们设计出了汇编语在机器语言的基础上,人们设计出了汇编语言,它可以将机器语言用一些便于人们记忆和阅言,它可以将机器语言用一些便于人们记忆和阅读的助记符来表示,如读的助记符来表示,如ADD、SUB、MOV等。等。计算机运行汇编程序时,首先将用助记符写成的计算机运行汇编程序时,首先
5、将用助记符写成的源程序转换成机器能够识别的指令,然后再运行源程序转换成机器能够识别的指令,然后再运行机器指令程序,得到所要的结果。机器指令程序,得到所要的结果。 程序语言的发展,总是从低级到高级,从具程序语言的发展,总是从低级到高级,从具体到抽象,直到可以用人的自然语言来描述。体到抽象,直到可以用人的自然语言来描述。 我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物2022-8-7【例例1.1】一个简单的一个简单的C程序程序 /* 功能:在屏幕输出一串字符串功能:在屏幕输出一串字符串*/#include v
6、oid main()printf(This is a c program.n);/*打印输出一行信息打印输出一行信息*/ 程序运行后,屏幕显示:程序运行后,屏幕显示: This is a c program. 分析分析 我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物2022-8-7(1)“ /*/”是程序的注释部分,注释内容是为了增加是程序的注释部分,注释内容是为了增加程序的可读性,系统不编译注释内容,自动忽略从程序的可读性,系统不编译注释内容,自动忽略从“/*”到到“*/”之间的内容。之间的内容。Vis
7、ual C+ 6.0中以中以“/”开头直到开头直到本行结束的部分也是注释。与本行结束的部分也是注释。与“/*/”的区别在于的区别在于“/”只能注释一行,不能跨行,这种注释也称为行注只能注释一行,不能跨行,这种注释也称为行注释,而释,而“ /*/”注释可以跨行,称为块注释。在注释可以跨行,称为块注释。在Turbo c2.0中没有所谓的行注释中没有所谓的行注释“/”,只能用,只能用“ /*/”来注释。来注释。(2)#include 是一条编译预处理命令,声明该程是一条编译预处理命令,声明该程序要使用序要使用stdio.h文件中的内容,文件中的内容,stdio.h文件中包含了输文件中包含了输入入sc
8、anf()和输出和输出printf()的定义。编译时系统将头文件的定义。编译时系统将头文件stdio.h中的内容嵌入到程序中该命令位置。中的内容嵌入到程序中该命令位置。C中编译预中编译预处理命令都以处理命令都以#开头。开头。C提供了提供了3类编译预处理命令:宏类编译预处理命令:宏定义命令、文件包含命令和条件编译命令。例定义命令、文件包含命令和条件编译命令。例1.1中出中出现的现的#include 是文件包含命令,其中尖括号内是文件包含命令,其中尖括号内是被包含的文件名。是被包含的文件名。 我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜
9、测没有错:表里边有一个活的生物2022-8-7(3)程序中定义了一个主函数程序中定义了一个主函数main(),其中,其中main是函数名,是函数名,void表示该函数返回值类型。程序执行从主函数开始。表示该函数返回值类型。程序执行从主函数开始。一个一个C的程序可以包含多个文件,每个文件又可以包含的程序可以包含多个文件,每个文件又可以包含多个函数。函数之间地位是相互平行、相互独立的。多个函数。函数之间地位是相互平行、相互独立的。一个一个C程序,必须有一个且只能有一个主函数程序,必须有一个且只能有一个主函数main()。执行程序时,系统先从主函数开始运行,其他函数只执行程序时,系统先从主函数开始运
10、行,其他函数只能被主函数调用或通过主函数调用的函数所调用,函能被主函数调用或通过主函数调用的函数所调用,函数可以嵌套调用,即在一个函数中调用另外一个函数。数可以嵌套调用,即在一个函数中调用另外一个函数。主函数可以带参数,也可以不带参数。函数在调用之主函数可以带参数,也可以不带参数。函数在调用之前,必须先定义好,定义函数要按照系统规定的格式前,必须先定义好,定义函数要按照系统规定的格式进行,后面再详细介绍。进行,后面再详细介绍。(4)由由括起来的内容是主函数括起来的内容是主函数main()的函数体,其中左大的函数体,其中左大括号括号“”表示函数的开始,右大括号表示函数的开始,右大括号“”表示函数
11、的结表示函数的结束。函数体部分由许多束。函数体部分由许多C语句组成,这些语句描述了函语句组成,这些语句描述了函数的功能实现。数的功能实现。 我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物2022-8-7(5) 函数体中只有一条语句,用于完成字符串的打印输出,函数体中只有一条语句,用于完成字符串的打印输出,printf()为屏幕打印输出函数,指定显示器为标准输出为屏幕打印输出函数,指定显示器为标准输出设备,双引号中的内容要原样输出,设备,双引号中的内容要原样输出,n表示回车换行,表示回车换行,“;”表示语句
12、结束,表示语句结束,C规定语句必须要用分号规定语句必须要用分号“;”结结尾。尾。 【例例1.1】小结:小结: 由以上分析可以看出,一个由以上分析可以看出,一个C程序的基本结构包括:程序的基本结构包括:以以#开头的若干个编译预处理命令,将程序所需要的头开头的若干个编译预处理命令,将程序所需要的头文件包含进来;然后是定义主函数和其他函数,当然文件包含进来;然后是定义主函数和其他函数,当然函数也可以在程序的起始部分先利用函数原型进行声函数也可以在程序的起始部分先利用函数原型进行声明,以后再进行定义;用大括号明,以后再进行定义;用大括号“”括起来的部分括起来的部分就是函数体部分,函数体部分主要包括各种
13、各样的语就是函数体部分,函数体部分主要包括各种各样的语句和注释信息,这部分应该是程序的主体部分,占的句和注释信息,这部分应该是程序的主体部分,占的比重也最大。比重也最大。 我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物2022-8-7/* 功能:求两个数功能:求两个数a和和b之和之和sum*/#include void main()int a,b,sum;/*定义三个整型变量定义三个整型变量*/a=123;/*给变量给变量a赋值为赋值为123*/b=456;/*给变量给变量b赋值为赋值为456*/sum=
14、a+b;/*变量变量a的值加上变量的值加上变量b的值,然后将两者的和的值,然后将两者的和 赋给变量赋给变量sum*/printf(sum is %dn,sum);/*输出变量输出变量sum的值的值*/【例例1.2】求两数之和求两数之和我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物2022-8-7【例【例1.3】求两数之较大者】求两数之较大者/* 功能:从键盘输入两个数,通过比较求得两个数的较大者,并打印输出功能:从键盘输入两个数,通过比较求得两个数的较大者,并打印输出*/#include int max(
15、int,int);/*声明函数声明函数max*/void main()int a,b,c;/*声明部分,定义变量声明部分,定义变量*/printf(请输入请输入a和和b的值:的值:);/*提示输入提示输入a和和b的值的值*/scanf(%d%d,&a,&b);/*从键盘输入变量从键盘输入变量a和和b的值的值*/c=max(a,b);/*调用调用max函数,将得到的值赋给函数,将得到的值赋给c*/printf(max= %dn,c);/*输出输出c的值的值*/*定义定义max函数,函数值为整型,形式参数函数,函数值为整型,形式参数x,y为整型为整型*/int max(int x,int y)in
16、t z; /*max函数中的声明部分,定义本函数中用到的变量函数中的声明部分,定义本函数中用到的变量z为整型为整型*/if(xy)z=x ;elsez=y ;return (z) ; *将将z的值返回,通过的值返回,通过max带回调用处带回调用处*/我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物2022-8-7该程序包括两个函数,一个是程序的入口该程序包括两个函数,一个是程序的入口函数主函数函数主函数main(),另一个是求两数之较大者,另一个是求两数之较大者的普通函数的普通函数max(),它代表某一种功
17、能,在主,它代表某一种功能,在主函数函数main()中调用了普通函数中调用了普通函数max(),如果把,如果把做菜比做做菜比做main()函数,那么在做菜过程中用了函数,那么在做菜过程中用了酱油就好比调用了酱油就好比调用了max()函数,实现调味功能。函数,实现调味功能。在程序的第二行声明了在程序的第二行声明了max()函数,就好比在函数,就好比在做菜之前要先把酱油准备好!做菜之前要先把酱油准备好! 我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物2022-8-7 由上面几个简单的由上面几个简单的C程序可知
18、,在编写程序可知,在编写C程序时,要注意书写格式,尽程序时,要注意书写格式,尽量遵循以下基本原则:量遵循以下基本原则: (1)一般情况下一行只写一条语句。短语句可以一行写多条,长语句可一般情况下一行只写一条语句。短语句可以一行写多条,长语句可以分成多行来写。分行原则是不能将一个单词分开,用双引号括起来的以分成多行来写。分行原则是不能将一个单词分开,用双引号括起来的字符串最好也不要分开,如果一定要分开,有的编译系统要求在行尾加字符串最好也不要分开,如果一定要分开,有的编译系统要求在行尾加上续行符上续行符“”。 (2)C程序书写时要尽量提高可读性。为此,采用适当地缩进格式书写程序书写时要尽量提高可
19、读性。为此,采用适当地缩进格式书写程序是非常必要的,表示同一类内容或同一层次的语句要对齐。例如,程序是非常必要的,表示同一类内容或同一层次的语句要对齐。例如,一个循环的循环体中的各语句要对齐,同一个一个循环的循环体中的各语句要对齐,同一个if语句中的语句中的if体内的若干条体内的若干条语句或语句或else体内的若干条语句要对齐。体内的若干条语句要对齐。 (3)C程序中大括号程序中大括号“”使用较多,其书写方法也较多,建议用户使用较多,其书写方法也较多,建议用户要养成使用大括号要养成使用大括号“”的固定风格。例如,每个大括号占一行,并与的固定风格。例如,每个大括号占一行,并与使用大括号的语句对齐
20、,大括号内的语句采用缩进使用大括号的语句对齐,大括号内的语句采用缩进4个字符的格式书写,个字符的格式书写,如例如例1.1所示。所示。 我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物2022-8-7|函数是函数是C程序的基本结构,一个程序的基本结构,一个C程序由一个程序由一个或多个函数组成,一个或多个函数组成,一个C函数由若干条函数由若干条C语句语句构成,一条构成,一条C语句由若干基本单词组成。语句由若干基本单词组成。|C函数是完成某个整体功能的最小单位,是相函数是完成某个整体功能的最小单位,是相对独立的模
21、块。简单的对独立的模块。简单的C程序可能只有一个主程序可能只有一个主函数,而复杂的函数,而复杂的C程序则可能包含一个主函数程序则可能包含一个主函数和任意多个其他函数。所有和任意多个其他函数。所有C函数的结构都包函数的结构都包括三部分:函数名、形式参数和函数体。括三部分:函数名、形式参数和函数体。 我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物2022-8-7| 下面给出下面给出C程序的一般格式。期中的程序的一般格式。期中的main为主函数名,为主函数名,sub1()到到subn()为子函数名。在为子函数名
22、。在C程序中,主函数名字是固程序中,主函数名字是固定的,其他的函数名则可以根据标识符的命名方法任意取定的,其他的函数名则可以根据标识符的命名方法任意取名。形式参数是函数调用时进行数据传递的主要途径,当名。形式参数是函数调用时进行数据传递的主要途径,当形式参数表中有多个参数时,相互之间用逗号隔开。有的形式参数表中有多个参数时,相互之间用逗号隔开。有的函数可以没有形式参数。大括号函数可以没有形式参数。大括号括起来的部分为函数体,括起来的部分为函数体,用来描述函数的功能,一般函数体由局部变量定义和完成用来描述函数的功能,一般函数体由局部变量定义和完成本函数功能的语句序列组成。程序在执行时,无论各个函
23、本函数功能的语句序列组成。程序在执行时,无论各个函数的书写位置如何,总是先执行数的书写位置如何,总是先执行main()函数,再由函数,再由main()函数调用其他函数,最终终止于函数调用其他函数,最终终止于main()函数函数。我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物2022-8-7包含文件包含文件子函数类型说明子函数类型说明全局变量定义全局变量定义类型类型 main()局部变量定义局部变量定义语句序列语句序列类型类型 sub1(形式参数表形式参数表)局部变量定义局部变量定义语句序列语句序列类型类型
24、 subn(形式参数表形式参数表)局部变量定义局部变量定义语句序列语句序列我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物2022-8-7 输入是将原始数据通过输入设备送入计算输入是将原始数据通过输入设备送入计算机,输出是将保存在内存中的计算结果送到输出机,输出是将保存在内存中的计算结果送到输出设备上。设备上。 C语言本身并不提供输入输出语句,有关输语言本身并不提供输入输出语句,有关输入输出操作都是由函数的调用来实现的。入输出操作都是由函数的调用来实现的。 为完成此操作,为完成此操作,C语言编译系统提供了输
25、入语言编译系统提供了输入输出函数。如字符输入函数输出函数。如字符输入函数getchar(),字符输出,字符输出函数函数putchar(),格式输出函数,格式输出函数printf()和格式输入和格式输入函数函数scanf(),这些函数都是针对系统特定的输入,这些函数都是针对系统特定的输入输出函数输出函数(如键盘、显示屏等如键盘、显示屏等)而言的。而言的。我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物2022-8-7n格式:格式:getchar()n功能:从键盘接收输入的一个字符。功能:从键盘接收输入的一个字
26、符。n说明:说明:getchar()的值可以送给字符变量,也可的值可以送给字符变量,也可以送给整型变量。以送给整型变量。 我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物2022-8-7【例例1.4】从键盘输入字符从键盘输入字符/* 功能:从键盘输入一个字符,并将其存入字符型变量功能:从键盘输入一个字符,并将其存入字符型变量c中中*/#include void main()char c;c=getchar();/*从键盘输入一个字符从键盘输入一个字符*/printf(c=%c.n,c);我吓了一跳,蝎子是多
27、么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物2022-8-7数据的输出一般是以终端显示器数据的输出一般是以终端显示器(屏幕屏幕)为处理对象。为处理对象。n格式:格式:putchar(c)n功能:向终端功能:向终端(一般为显示器一般为显示器)输出一个字符。输出一个字符。n说明:说明:c可以是字符型或整型变量,也可以是一个可以是字符型或整型变量,也可以是一个字符常量或整型常量。字符常量或整型常量。 我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活
28、的生物2022-8-7【例例1.5】从键盘输入字符,在屏幕上显示出来。从键盘输入字符,在屏幕上显示出来。/* 功能:从键盘输入一个字符,并用功能:从键盘输入一个字符,并用putchar(c)在屏幕上在屏幕上显示出来显示出来*/#include void main()char c;c=getchar();/*从键盘输入一个字符从键盘输入一个字符*/putchar(c); /*在屏幕上显示一个字符在屏幕上显示一个字符printf(n);我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物2022-8-7 格式输出函
29、数格式输出函数printf()的功能是按指定的格的功能是按指定的格式输出数据,其一般的调用格式为:式输出数据,其一般的调用格式为:printf(格式控制字符串格式控制字符串,参数表参数表); 其中其中printf是函数名,其后括号中的内容为是函数名,其后括号中的内容为该函数的参数:格式控制字符串用双引号括起来,该函数的参数:格式控制字符串用双引号括起来,用来规定输出格式,如用来规定输出格式,如%d用来输出整数,用来输出整数,%f用用来输出实数,来输出实数,%c用来输出字符;参数表中包含用来输出字符;参数表中包含零个或多个输出项,这些输出项可以是整数、实零个或多个输出项,这些输出项可以是整数、实
30、数、变量或表达式,多个输出项之间用逗号隔开。数、变量或表达式,多个输出项之间用逗号隔开。例如:语句例如:语句printf(%d%d,a,b);用来按十进制整用来按十进制整数形式输出变量数形式输出变量a和和b。 我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物2022-8-7【例例1.6】打印输出两个整型变量的值。打印输出两个整型变量的值。/* 功能:在屏幕上打印输出变量功能:在屏幕上打印输出变量a和变量和变量b的值的值*/#include void main()int a=8;int b=18;printf
31、(a=%d,b=%dn,a,b);我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物2022-8-7 格式输入函数格式输入函数scanf ()的功能是按指定的格式输入数的功能是按指定的格式输入数据,其一般的调用格式为:据,其一般的调用格式为: scanf(格式控制字符串格式控制字符串,参数表参数表); 其中其中scanf是函数名,其后括号中的内容为该函数的是函数名,其后括号中的内容为该函数的参数:格式控制字符串用双引号括起来,用来规定输入参数:格式控制字符串用双引号括起来,用来规定输入格式,其用法和格式,其用
32、法和printf()函数中规定的相同;参数表中至函数中规定的相同;参数表中至少包含一个输入项,且必须是变量的地址,多个输入项少包含一个输入项,且必须是变量的地址,多个输入项之间用逗号隔开。例如:语句之间用逗号隔开。例如:语句scanf(%d%d,&a,&b);用用来接收从键盘输入的两个十进制整数,并分别存放在变来接收从键盘输入的两个十进制整数,并分别存放在变量量a和和b。变量地址的表示形式是在变量名前加上一个。变量地址的表示形式是在变量名前加上一个“&”。d%d,a,b);用来按十进制整数形式输出变量用来按十进制整数形式输出变量a和和b。 我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在
33、这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物2022-8-7【例例1.7】从键盘输入两个整型变量的值。从键盘输入两个整型变量的值。/* 功能:从键盘输入变量功能:从键盘输入变量a和变量和变量b的值的值,并打印输出并打印输出*/#include void main()int a,b;printf(请输入变量请输入变量a和变量和变量b的值:的值:);scanf(“%d%d”,&a,&b); /*从键盘输入变从键盘输入变 量量a和变量和变量b的值的值*/printf(a=%d,b=%dn,a,b);我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美
34、丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物2022-8-7 C源程序要经过编辑、编译、连接、运行源程序要经过编辑、编译、连接、运行4个环节,才个环节,才能产生输出结果。能产生输出结果。 例:编制一个名为例:编制一个名为Ch01_01的程序,其操作流程图如的程序,其操作流程图如图所示。图所示。 编辑编辑编译编译连接连接运行运行源程序源程序 目标程序目标程序 可执行程序可执行程序 Ch01_01.cCh01_01.c Ch01_01.exe Ch01_01.exe Ch01_01.objCh01_01.obj我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一
35、个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物2022-8-71编辑编辑 编辑是在一定的环境下进行程序的输入和修改过编辑是在一定的环境下进行程序的输入和修改过程。程。C程序可以事先在纸上写好,也可以在编辑环境程序可以事先在纸上写好,也可以在编辑环境下直接输入到计算机中。用某种计算机程序设计语言下直接输入到计算机中。用某种计算机程序设计语言编写的程序称为源程序,保存后生成程序文件,编写的程序称为源程序,保存后生成程序文件,C源源程序在程序在Turbo c2.0环境下默认文件扩展名为环境下默认文件扩展名为“.c”,在,在Visual C+ 6.0环境下默认文件扩展名为
36、环境下默认文件扩展名为“.cpp”。C源程序也可以使用计算机所提供的各种编辑器进行编源程序也可以使用计算机所提供的各种编辑器进行编辑。辑。 我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物2022-8-72编译编译 编辑好的源程序不能直接被计算机所理解,源程编辑好的源程序不能直接被计算机所理解,源程序必须经过编译,生成计算机能够识别的机器代码。序必须经过编译,生成计算机能够识别的机器代码。通过编译器将通过编译器将C源程序转换成二进制机器代码的过程源程序转换成二进制机器代码的过程称为编译,这些二进制机器代码称
37、为目标代码。这些称为编译,这些二进制机器代码称为目标代码。这些目标代码保存在以目标代码保存在以“.obj”为扩展名的目标文件中。为扩展名的目标文件中。 编译阶段要进行词法分析和语法分析,又称源程编译阶段要进行词法分析和语法分析,又称源程序分析。这一阶段主要是分析程序的语法结构,检查序分析。这一阶段主要是分析程序的语法结构,检查C源程序的的语法错误。如果分析过程中发现有不符源程序的的语法错误。如果分析过程中发现有不符合要求的语法错误,就会及时报告给用户,将错误类合要求的语法错误,就会及时报告给用户,将错误类型显示在屏幕上。型显示在屏幕上。我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样
38、一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物2022-8-73连接连接 编译后生成的目标代码还不能直接在计算机上运编译后生成的目标代码还不能直接在计算机上运行,其主要原因是编译器对每个源程序文件分别进行行,其主要原因是编译器对每个源程序文件分别进行编译,如果一个程序有多个源程序文件,编译后这些编译,如果一个程序有多个源程序文件,编译后这些源程序文件还分布在不同的地方,因此,需要把他们源程序文件还分布在不同的地方,因此,需要把他们连接在一起,生成可以在计算机上运行的可执行文件。连接在一起,生成可以在计算机上运行的可执行文件。即使源程序仅由一个源文件构成,这个源文
39、件生成的即使源程序仅由一个源文件构成,这个源文件生成的目标程序也还需要系统提供库文件中的一些代码,故目标程序也还需要系统提供库文件中的一些代码,故也需要连接起来。也需要连接起来。 连接工作一般由编译系统中的连接程序来完成,连接工作一般由编译系统中的连接程序来完成,连接程序将由编译器生成的目标代码文件和库中的某连接程序将由编译器生成的目标代码文件和库中的某些文件连接在一起,生成一个可执行文件。可执行文些文件连接在一起,生成一个可执行文件。可执行文件的默认扩展名为件的默认扩展名为“.exe”。 我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的
40、猜测没有错:表里边有一个活的生物2022-8-74运行运行 一个一个C源程序经过编译和连接后生成了可执行文源程序经过编译和连接后生成了可执行文件,就可以在件,就可以在Windows环境下直接双击该文件运行该环境下直接双击该文件运行该程序,也可以在程序,也可以在Visual C+ 6.0的集成开发环境下运行。的集成开发环境下运行。 程序运行后,将在屏幕上显示运行结果或提示用程序运行后,将在屏幕上显示运行结果或提示用户输入数据的信息。用户可以根据运行结果来判断程户输入数据的信息。用户可以根据运行结果来判断程序是否有算法错误。在生成可执行文件之前,一定要序是否有算法错误。在生成可执行文件之前,一定要
41、保证编译和连接不出现错误和警告,这样才能正常运保证编译和连接不出现错误和警告,这样才能正常运行。因为程序中有些警告虽然不影响生成可执行文件,行。因为程序中有些警告虽然不影响生成可执行文件,但有可能导致结果错误。但有可能导致结果错误。 我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物2022-8-7nVisual C+ 6.0 IDE的启动与退出的启动与退出n新建工程新建工程n新建源程序文件新建源程序文件n编译、连接、和运行程序编译、连接、和运行程序 nTurbo C 2.0的启动的启动nTurbo C 2.
42、0的工作窗口的工作窗口nTurbo C 2.0的配置文件的配置文件n确定确定Turbo C 2.0的工作环境的工作环境 我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物2022-8-7n(1)启动启动Visual C+ 6.0 IDE,操作方法如下:操作方法如下: 在在Windows桌面上,单击桌面上,单击【开始开始】程序程序|【Microsoft Visual C+ 6.0】|【Microsoft Visual C+ 6.0】菜单命令,启动菜单命令,启动Visual C+ 6.0 IDE的主窗口,如图所示
43、。的主窗口,如图所示。 我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物2022-8-7n(2)退出退出Visual C+ 6.0 IDE,操作方法如下:,操作方法如下:单击单击【文件文件】|【退出退出】菜单命令,或单击窗口的菜单命令,或单击窗口的【关闭关闭】按钮,退出按钮,退出Visual C+。 我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物2022-8-7n在在“C:STUDENT”目录下,新建一个名为目录下,新
44、建一个名为“ch01_01”的工程。的工程。新建工程新建工程ch01_01的操作方法如下:的操作方法如下: (1)启动启动Visual C+。 (2)在在Visual C+主窗口中,单击主窗口中,单击【文件文件】|【新建新建】,弹出,弹出“新建新建”对话框。对话框。 (3)在在【新建新建】对话框中,单击选中对话框中,单击选中【工程工程】标签下的标签下的【Win32 Console Application】(Win32控制台应用程序控制台应用程序)项。然后在项。然后在【位位置:置:【文本框中指定新建工程的路径:文本框中指定新建工程的路径:“C:STUDENTch01_01”。最后在。最后在【工程
45、名称:工程名称:】文本框中,文本框中,输入新建工程的名称:输入新建工程的名称:“ch01_01”,如图所示。,如图所示。 我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物2022-8-7 我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物2022-8-7(4)单击单击【确定确定】按钮,进入按钮,进入“Win32 Console Application 步骤步骤1共共1步步】,选中,选中【一个空工程一个空工程(E)】项,如图
46、所项,如图所示:示: 我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物2022-8-7(5)单击单击【完成完成】按钮,弹出按钮,弹出【新建工程信息新建工程信息】对话框,对话框,显示即将新建的显示即将新建的Win32控制台应用程序的框架说明,控制台应用程序的框架说明,如图所示。如图所示。 说明:说明:“Empty Console application”说明将建立的是一个空的控制台应用程序。说明将建立的是一个空的控制台应用程序。“No files will be created or added to the
47、 project”说明即将创建的工程中没有任何文件。说明即将创建的工程中没有任何文件。我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物2022-8-7(6)在确认在确认Win32控制台应用程序的新建工程信息无误后,控制台应用程序的新建工程信息无误后,单击单击【确定确定】按钮,弹出按钮,弹出ch01_01工程编辑窗口,如图工程编辑窗口,如图所示:所示: 我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物2022-8-7(7)
48、单击单击【文件文件】|【关闭工作空间关闭工作空间】菜单命令,关闭工程菜单命令,关闭工程编辑窗口,回到编辑窗口,回到Visual C+主窗口。主窗口。(8)检查新建工程检查新建工程ch01_01。系统生成了一组相关的文件夹。系统生成了一组相关的文件夹与文件,打开与文件,打开“资源管理器资源管理器”窗口,单击窗口,单击“C:STUDENTch01_01”文件夹图标,窗口内容显示文件夹图标,窗口内容显示如图所示:如图所示: 我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物2022-8-7说明:当用说明:当用Vis
49、ual C+生成一个项目时,系统会产生出很多生成一个项目时,系统会产生出很多的文件,对这些不同类型文件的作用简单介绍如下:的文件,对这些不同类型文件的作用简单介绍如下:l .dsw文件:称为工作区文件:称为工作区(Workspace)文件,这是文件,这是Visual C+中级别最高的文件,可以用它直接打开工程。中级别最高的文件,可以用它直接打开工程。l .dsp文件:项目文件文件:项目文件(Project)文件,存放特定的应用程序文件,存放特定的应用程序的有关信息。如果的有关信息。如果dsw文件没有,可以用它直接打开工程。文件没有,可以用它直接打开工程。l .opt文件:选项文件,是工程关于开
50、发环境的选项设置。文件:选项文件,是工程关于开发环境的选项设置。此文件被删除后会自动建立,若更换了机器环境,因开发此文件被删除后会自动建立,若更换了机器环境,因开发环境变了,该文件也会重建。环境变了,该文件也会重建。l .ncb文件:无编译浏览文件文件:无编译浏览文件(no compile browser)。使用技。使用技巧:当自动完成功能出问题时,可以删除此文件,巧:当自动完成功能出问题时,可以删除此文件,build后会自动生成。此时后会自动生成。此时Debug文件夹下没有任何文件。文件夹下没有任何文件。 我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也