1、1.1 程序设计语言 1.2 简单C程序介绍 1.3 C语言基本词法 1.4 C程序运行环境 第一章 C语言概述退出退出第1页第第1 1章章 C C语言概述语言概述人与计算机交流信息使用语言称为人与计算机交流信息使用语言称为计算机语言或程序设计语计算机语言或程序设计语言言,通常分为机器语言、汇编语言和高级语言。,通常分为机器语言、汇编语言和高级语言。机器语言:机器语言:一个用二进制代码一个用二进制代码“0”和和“1”形式表示、能被计形式表示、能被计算机直接识别和执行语言,称为机器语言。算机直接识别和执行语言,称为机器语言。汇编语言:汇编语言:在机器语言基础上,设计出了汇编语言,它能够将在机器语
2、言基础上,设计出了汇编语言,它能够将机器语言用便于人们记忆和阅读助记符表示。机器语言用便于人们记忆和阅读助记符表示。高级语言:高级语言:是一个与硬件结构及指令系统无关,表示方式比较是一个与硬件结构及指令系统无关,表示方式比较靠近自然和数学表示式计算机程序设计语言。靠近自然和数学表示式计算机程序设计语言。用高级语言编写程序称为用高级语言编写程序称为“源程序源程序”,计算机不能识别和执,计算机不能识别和执行,而需要把用高级语言编写源程序翻译成机器指令,通常有行,而需要把用高级语言编写源程序翻译成机器指令,通常有编译和解释两种方式。编译和解释两种方式。节目录节目录1.1 程序设计语言第2页编译方式编
3、译方式是将源程序整个编译成等价、独立目标程序,然后经过连接程是将源程序整个编译成等价、独立目标程序,然后经过连接程序将目标程序连接成可执行程序。序将目标程序连接成可执行程序。解释方式解释方式是将源程序逐句翻译,翻译一句执行一句,边翻译边执行,不是将源程序逐句翻译,翻译一句执行一句,边翻译边执行,不产生目标程序,在整个执行过程中,解释程序都一直在内存中。产生目标程序,在整个执行过程中,解释程序都一直在内存中。C语言是一个结构化语言。它层次清楚,便于按模块化方式组织程序,语言是一个结构化语言。它层次清楚,便于按模块化方式组织程序,易于调试和维护。易于调试和维护。C语言表现能力和处理能力极强,它不但
4、含有丰富运语言表现能力和处理能力极强,它不但含有丰富运算符和数据类型,便于实现各类复杂数据结构。算符和数据类型,便于实现各类复杂数据结构。C语言集高级语言和低级语言功效于一体,既可用于系统软件开发,语言集高级语言和低级语言功效于一体,既可用于系统软件开发,也适合于应用软件开发。另外,也适合于应用软件开发。另外,C语言还含有效率高、可移植性强等特语言还含有效率高、可移植性强等特点。点。第3页第第1 1章章 C C语言概述语言概述节目录节目录1.2 简单C程序介绍1.2.1三个简单三个简单C程序实例程序实例【例1.1】用C语言编写一个程序,输出“C语言世界,您好!”。程序代码以下:#include
5、 void main()/*定义主函数*/printf(C语言世界,您好!n);/*输出C语言世界,您好!*/第4页说明说明:(1)#include是一条编译预处理命令,申明该程序要使用是一条编译预处理命令,申明该程序要使用stdio.h文件中内容,文件中内容,stdio.h文件中包含输出函数文件中包含输出函数printf()。编译。编译时系统将头文件时系统将头文件stdio.h中内容嵌入到程序中该命令位置。中内容嵌入到程序中该命令位置。C中编译预处理命令都以中编译预处理命令都以“#”开头。例开头。例1.1中出现中出现#include是文件包含命令,其中尖括号内是被包含文件名。是文件包含命令,
6、其中尖括号内是被包含文件名。(2)程序中定义了一个主函数程序中定义了一个主函数main(),其中,其中main是函数名,是函数名,void表表示该函数返回值类型。程序执行从主函数开始。一个示该函数返回值类型。程序执行从主函数开始。一个C语言程序语言程序能够包含多个文件,每个文件又能够包含多个函数。函数之间是能够包含多个文件,每个文件又能够包含多个函数。函数之间是相互平行、相互独立。一个相互平行、相互独立。一个C程序,必须有一个且只能有一个主程序,必须有一个且只能有一个主函数函数main()。第5页(3)用括起来是主函数用括起来是主函数main()函数体。函数体。main函数中全部操作语函数中全
7、部操作语句都在这一对之间。即句都在这一对之间。即main函数中全部操作都在函数中全部操作都在main函数函数体中。体中。(4)printf函数是一个由系统定义标准函数,可在程序中直接调用,函数是一个由系统定义标准函数,可在程序中直接调用,printf函数功效是把要输出内容送到显示器去显示,双引号中内函数功效是把要输出内容送到显示器去显示,双引号中内容要原样输出。容要原样输出。“n”是换行符,即在输出完是换行符,即在输出完“C语言世界,您语言世界,您好!好!”后回车换行。后回车换行。(5)每条语句用每条语句用“;”号结束。号结束。(6)/*/括起来一部份是一段注释,注释只是为了改进程序可括起来一
8、部份是一段注释,注释只是为了改进程序可读性,是对程序中所需部分说明,向用户提醒或解释程序意义。读性,是对程序中所需部分说明,向用户提醒或解释程序意义。/*是注释开始符号,是注释开始符号,*/是注释结束符号,必须成对使用。程序编是注释结束符号,必须成对使用。程序编译时,不对注释作任何处理。注释可出现在程序中任何位置。译时,不对注释作任何处理。注释可出现在程序中任何位置。第6页【例【例1.2】计算两数之和,并输出结果。】计算两数之和,并输出结果。程序代码以下:程序代码以下:#includevoidmain()inta,b,sum;/*定义三个整型变量定义三个整型变量*/a=123;b=456;/*
9、给变量给变量a、b分别赋值为分别赋值为123、456*/sum=a+b;/*变量变量a值加上变量值加上变量b值,然后将两数和赋给值,然后将两数和赋给变量变量sum*/printf(sumis%dn,sum);/*输出变量输出变量sum值值*/说明说明:(1)此程序一样也包含了一条#include 编译预处理命令,以一个main函数作为程序执行起点。(2)“int a,b,sum;”是变量申明。申明了三个含有整数类型变量a,b,sum。C语言变量必须先申明再使用。(3)“a=123;b=456;”是两条赋值语句。(4)“sum=a+b;”是将a,b两变量内容相加,然后将结果赋值给整型变量sum。
10、(5)“printf(sum is n,sum);”是调用库函数printf()输出sum结果。“%d”为格式控制,表示sum值以十进制整数形式输出。第7页【例【例1.3】编写程序,要求输入两个整数,输出其中较大数。】编写程序,要求输入两个整数,输出其中较大数。#includevoidmain()/*主函数主函数*/intmax(intx,inty);/*对被调函数对被调函数max申明申明*/inta,b,c;/*定义变量定义变量a、b、c*/printf(请输入请输入a和和b值:值:);/*提醒输入提醒输入a和和b值值*/scanf(%d%d,&a,&b);/*从键盘输入变量从键盘输入变量a
11、和和b值值*/c=max(a,b);/*调用调用max函数,将得到值赋给函数,将得到值赋给c*/printf(max=%dn,c);/*输出输出c值值*/intmax(intx,inty)/*定义定义max函数,函数值为整型,形式参数函数,函数值为整型,形式参数x,y为整型为整型*/intz;/*定义本函数中用到变量定义本函数中用到变量z为整型为整型*/if(xy)z=x;elsez=y;return(z);/*将将z值返回,经过值返回,经过max带回调用处带回调用处*/第8页说明:(1)本程序包含两个函数:一个是程序入口函数主函数main,另一个是被调用函数max。max作用是将x和y中较大
12、者值赋给变量z。return语句将z值返回给主调函数main。程序第4行 是对被调用函数max申明,max函数是一个用户自定义函数,因为在main函数中要调用max函数,而max函数位置在main函数之后,必须在调用max函数之前对max函数进行申明。(2)scanf是“输入函数”名字,它作用是从键盘上输入a、b值。&a和&b中“&”含义是“取地址”。此scanf函数作用是:将键盘上输入两个数值分别输入到变量a、b地址所标志单元中,也就是输入给变量a、b。第9页1.2.2 C程序组成和书写规则程序组成和书写规则1.C语言程序组成语言程序组成C程程序序是是由由函函数数组组成成,函函数数是是C程程
13、序序基基本本单单位位。一一个个源源程程序序最最少少包包含含一一个个main函数,即主函数,也能够包含一个函数,即主函数,也能够包含一个main函数和若干个其它函数。函数和若干个其它函数。main函函数数是是每每个个程程序序执执行行起起始始点点。一一个个C程程序序总总是是从从main函函数数开开始始执执行行,不不论论main函函数数在在程程序序中中位位置置。能能够够将将main函函数数放放在在整整个个程程序序最最前前面面,也也能能够放在整个程序最终,或者放在其它函数之间。够放在整个程序最终,或者放在其它函数之间。源程序能够有预处理命令,预处理命令通常放在源文件或源程序最前面。源程序能够有预处理命
14、令,预处理命令通常放在源文件或源程序最前面。每个语句都必须以分号结尾,但预处理命令、函数头和花括号每个语句都必须以分号结尾,但预处理命令、函数头和花括号“”之之后不加分号。后不加分号。标识符和关键字之间,最少加一个空格以示间隔,空格数目不限。标识符和关键字之间,最少加一个空格以示间隔,空格数目不限。源程序中需要解释和说明部分,可用源程序中需要解释和说明部分,可用“/*/”加以注释,注释是给加以注释,注释是给程序阅读者看,机器在编译和执行程序时,注释将被忽略。程序阅读者看,机器在编译和执行程序时,注释将被忽略。节目录节目录第10页1.2.2 C程序组成和书写规则程序组成和书写规则文件预处理 类型
15、 函数名(形式参数申明)函数体数据申明部分语句部分2.C语言程序书写规则语言程序书写规则在书写在书写C语言程序时,普通要注意以下几点:语言程序时,普通要注意以下几点:在在C语言中,即使一行可写多个语句,一个语句也可占多行,但提议一行只语言中,即使一行可写多个语句,一个语句也可占多行,但提议一行只写一个语句。写一个语句。普通用适当缩进格式书写程序,以提升程序可读性和清楚性。普通用适当缩进格式书写程序,以提升程序可读性和清楚性。除非另有约定,除非另有约定,C语言源代码普通用小写字母书写。语言源代码普通用小写字母书写。在程序代码中,应加上必要注释。在程序代码中,应加上必要注释。用用C语言写成函数结构
16、图所表示。语言写成函数结构图所表示。节目录节目录#includevoidmain()intx=10,y=20,z;z=x+y;printf(“z=%dn”,z);第11页1.3 C语言基本词法C语言作为计算机一个程序设计语言,有自己字符集、保留字和标语言作为计算机一个程序设计语言,有自己字符集、保留字和标识符及其组成规则,它们是识符及其组成规则,它们是C语言程序设计基础。语言程序设计基础。第12页1.3.1 字符集 字符是组成语言最基本元素。字符是组成语言最基本元素。C语言字符集由字母、数字、空白语言字符集由字母、数字、空白符、图形符号、转义字符组成。在字符常量、字符串常量和注释中还符、图形符
17、号、转义字符组成。在字符常量、字符串常量和注释中还能够使用汉字或其它可表示图形符号。能够使用汉字或其它可表示图形符号。字母:字母:小写字母小写字母az共共26个,大写字母个,大写字母AZ共共26个。个。数字:数字:09共共10个。个。空白符:空白符:空格符、制表符、换行符等统称为空白符。空白符只在字符空格符、制表符、换行符等统称为空白符。空白符只在字符常量和字符串常量中起作用。在其它地方出现时,只起间隔作用,常量和字符串常量中起作用。在其它地方出现时,只起间隔作用,编编译程序对它们忽略。所以在程序中使用空白符是否,对程序编译不发译程序对它们忽略。所以在程序中使用空白符是否,对程序编译不发生影响
18、,但在程序中适当地方使用空白符将增加程序清楚性和可读性。生影响,但在程序中适当地方使用空白符将增加程序清楚性和可读性。图形符号图形符号:表:表1.1列出了列出了C语言允许使用图形符号。语言允许使用图形符号。第13页1.3.1 字符集表1.1 C语言图形符号表符 号含 义符 号含 义符 号含 义波浪号_下画线;分号!感叹号减号双引号at符号+加号单引号#号=等号大于号%百分号反斜线,逗号异或号左花括号.句号&与符号右花括号?问号*星号左方括号/正斜线(左圆括号右方括号空格)右圆括号:冒号重音符号第14页转义字符:转义字符:转义字符是一个特殊字符常量。转义字符以反斜线转义字符是一个特殊字符常量。转
19、义字符以反斜线“”开头,后跟一个或几个字符。转义字符含有特定含义,不一样于字符开头,后跟一个或几个字符。转义字符含有特定含义,不一样于字符原有意义,故称原有意义,故称“转义转义”字符。比如,在前面各例题字符。比如,在前面各例题printf函数格式函数格式串中用到串中用到“n”就是一个转义字符,其意义是就是一个转义字符,其意义是“回车换行回车换行”。转义字。转义字符主要用来表示用普通字符不便于表示控制代码,如表符主要用来表示用普通字符不便于表示控制代码,如表1-2所表示列所表示列出了出了C语言惯用转义字符及其含义。语言惯用转义字符及其含义。第15页转义字符:转义字符:转义字符是一个特殊字符常量。
20、转义字符以反斜线转义字符是一个特殊字符常量。转义字符以反斜线“”开开头,后跟一个或几个字符。转义字符含有特定含义,不一样于字符原有头,后跟一个或几个字符。转义字符含有特定含义,不一样于字符原有意义,故称意义,故称“转义转义”字符。比如,在前面各例题字符。比如,在前面各例题printf函数格式串中用到函数格式串中用到“n”就是一个转义字符,其意义是就是一个转义字符,其意义是“回车换行回车换行”。转义字符主要用来。转义字符主要用来表示用普通字符不便于表示控制代码,下表所表示列出了表示用普通字符不便于表示控制代码,下表所表示列出了C语言惯用转义语言惯用转义字符及其含义。字符及其含义。转义字符转义字符
21、意义n回车换行t横向跳到下一制表位置v竖向跳格b退格r回车f走纸换页反斜线符单引号符a鸣铃ddd13位八进制数所代表字符xhh12位十六进制数所代表字符第16页【例1.4】分析下面程序,写出输出结果。main()int a,b,c;a=5;b=6;c=7;printf(%dnt%d%dn%d%dtb%dn,a,b,c,a,b,c);程序在第一列输出程序在第一列输出a值值5之后就是之后就是“n”,故回车,故回车换行;接着又是换行;接着又是“t”,于是跳到下一制表位置,于是跳到下一制表位置(设制表位置间隔为(设制表位置间隔为8),再输出),再输出b值值6;空两格;空两格再输出再输出c值值7后又是后
22、又是“n”,所以再回车换行;再,所以再回车换行;再空两格之后又输出空两格之后又输出a值值5;再空三格又输出;再空三格又输出b值值6;在今后在今后“t”跳到下一制表位置(与上一行跳到下一制表位置(与上一行6对对齐),但下一转义字符齐),但下一转义字符“b”又使退回一格,故又使退回一格,故紧挨着紧挨着6再输出再输出c值值7。第17页1.3.2 保留字保留字是由保留字是由C语言要求含有特定意义字符串,通常也称为关键字,语言要求含有特定意义字符串,通常也称为关键字,C语言保留字只能小写,用户定义标识符不应与保留字相同。如表语言保留字只能小写,用户定义标识符不应与保留字相同。如表1-3所表示列出了所表示
23、列出了C语言中能够使用全部保留字。语言中能够使用全部保留字。第18页关关 键键 字字含含 义义关关 键键 字字含含 义义关关 键键 字字含含 义义 char字符型字符型void空空值值 whilewhile循循环环 int整型整型const常量常量 dodo循循环环 long长长整型整型volatile可可变变量型量型 break终终止止 short短整型短整型auto自自动动 continue继续继续 float单单精度精度实实型型extern外部外部 goto转转向向 double双精度双精度实实型型static静静态态 return返回返回 unsigned无符号型无符号型registe
24、r存放器 switch开关开关语语句句 signed有符号型有符号型typedef类类型定型定义义 default默默认认 struct结结构体构体ifif语语句句 casecase分支分支 union共用体共用体elseelse语语句句 sizeof返回字返回字节节数数 enum枚枚举举forfor循循环环 include预处预处理命令理命令字字第19页C语言保留字分为以下几类语言保留字分为以下几类类型说明符:类型说明符:用于定义、说明变量、函数或其它数据结构类型。如前用于定义、说明变量、函数或其它数据结构类型。如前面例题中用到面例题中用到int,double等。等。语句定义符:语句定义符:
25、用于表示一个语句功效。如例用于表示一个语句功效。如例1.3中用到中用到ifelse就是条件就是条件语句语句定义符。语句语句定义符。预处理命令字:预处理命令字:用于表示一个预处理命令。如前面各例中用到用于表示一个预处理命令。如前面各例中用到include。第20页1.3.3 标识符及其组成规则 在程序中使用变量名、函数名、标号等统称为标识符。除库函数函数名由系统定义外,其余都由用户自定义。第一个字符必须是字母或下画线。第一个字符必须是字母或下画线。在第一个字母后面,能够是字母(在第一个字母后面,能够是字母(AZ,az)、数字()、数字(09)、下)、下画线(画线(_)组成字符串。)组成字符串。标
26、识符长度普通不超出标识符长度普通不超出8个字符。标准个字符。标准C语言不限制标识符长度,但它语言不限制标识符长度,但它受各种版本受各种版本C语言编译系统限制,同时也受到详细机器限制。比如,在语言编译系统限制,同时也受到详细机器限制。比如,在一些版本中一些版本中C语言要求标识符前语言要求标识符前8位有效,当两个标识符前位有效,当两个标识符前8位相同时,位相同时,则被认为是同一个标识符。则被认为是同一个标识符。在标识符中,大小写是有区分。比如在标识符中,大小写是有区分。比如BOOK和和book是两个不一样标识是两个不一样标识符。符。C语言关键字(保留字)不能作为标识符使用。语言关键字(保留字)不能
27、作为标识符使用。标识符即使可由程序员随意定义,但标识符是用于标识某个量符号。所标识符即使可由程序员随意定义,但标识符是用于标识某个量符号。所以,命名应尽可能有对应意义,方便阅读了解,做到以,命名应尽可能有对应意义,方便阅读了解,做到“见名知义见名知义”。第21页【例1.5】判断以下标识符,哪些是正当?哪些是不正当?a,x,3s,BOOK1,sum5,s*T,-3x,by-1,int,book1依据组成标识符语法规则,a,x,BOOK1,sum5,book1是正当,其中BOOK1和book1是有区分,因为C语言区分大小写,它们是两个不一样标识符。3s(标识符不允许以数字开头),s*T(*不允许出
28、现在标识符里),-3x(标识符不能以-开头),by-1(减号不允许出现在标识符里),int(关键字不允许作为标识符)是非法。第22页 C源程序要经过编辑、编译、连接和运行4个步骤,才能产生输出结果。1.4 C程序运行环境 编辑编译连接运行源程序 目标程序 可执行程序 (.c)(.exe)(.obj)第23页1编辑编辑 编辑是在一定环境下进行程序输入和修改过程。编辑是在一定环境下进行程序输入和修改过程。C程序能够事程序能够事先在纸上写好,也能够在编辑环境下直接输入到计算机中。用某先在纸上写好,也能够在编辑环境下直接输入到计算机中。用某种计算机程序设计语言编写程序称为源程序,保留后生成程序文种计算
29、机程序设计语言编写程序称为源程序,保留后生成程序文件。件。C源程序在源程序在Turboc2.0环境下默认文件扩展名为环境下默认文件扩展名为“.c”,在,在VisualC+6.0环境下默认文件扩展名为环境下默认文件扩展名为“.cpp”。第25页2编译编译编编辑辑好好源源程程序序不不能能直直接接被被计计算算机机所所了了解解,源源程程序序必必须须经经过过编编译译,生生成成计计算算机机能能够够识识别别机机器器代代码码。经经过过编编译译器器将将C源源程程序序转转换换成成二二进进制制机机器器代代码码过过程程称称为为编编译译,这这些些二二进进制制机机器器代代码码称称为为目目标标代代码码。目目标标代代码码保保
30、留留在以在以“.obj”为扩展名目标文件中。为扩展名目标文件中。编编译译阶阶段段要要进进行行词词法法分分析析和和语语法法分分析析,又又称称源源程程序序分分析析。这这一一阶阶段段主主要要是是分分析析程程序序语语法法结结构构,检检验验C源源程程序序语语法法错错误误。假假如如分分析析过过程程中中发发觉有不符合要求语法,就会及时汇报给用户,将错误类型显示在屏幕上。觉有不符合要求语法,就会及时汇报给用户,将错误类型显示在屏幕上。第26页3连接连接编编译译后后生生成成目目标标代代码码还还不不能能直直接接在在计计算算机机上上运运行行,其其主主要要原原因因是是编编译译器器对对每每个个源源程程序序文文件件分分别
31、别进进行行编编译译,假假如如一一个个程程序序有有多多个个源源程程序序文文件件,编编译译后后这这些些源源程程序序文文件件还还分分布布在在不不一一样样地地方方。所所以以,需需要要把把它它们们连连接接在在一一起起,生生成成能能够够在在计计算算机机上上运运行行可可执执行行文文件件。即即使使源源程程序序仅仅由由一一个个源源文文件件组组成成,这这个个源源文文件件生生成成目目标标程程序序也还需要系统提供库文件中一些代码,故也需要连接起来。也还需要系统提供库文件中一些代码,故也需要连接起来。连接工作普通由编译系统中连接程序来完成,连接程序将由连接工作普通由编译系统中连接程序来完成,连接程序将由编译器生成目标代
32、码文件和库中一些文件连接在一起,生成一个编译器生成目标代码文件和库中一些文件连接在一起,生成一个可执行文件。可执行文件默认扩展名为可执行文件。可执行文件默认扩展名为“.exe”。第27页4运行运行一一个个C源源程程序序经经过过编编译译和和连连接接后后生生成成了了可可执执行行文文件件,能能够够在在Windows环环境境下下直直接接双双击击该该文文件件运运行行程程序序,也也能能够够在在VisualC+6.0集成开发环境下运行。集成开发环境下运行。程序运行后,将在屏幕上显示运行结果或提醒用户输入数据程序运行后,将在屏幕上显示运行结果或提醒用户输入数据信息。用户能够依据运行结果来判断程序是否有算法错误
33、。在生信息。用户能够依据运行结果来判断程序是否有算法错误。在生成可执行文件之前,一定要确保编译和连接不出现错误和警告,成可执行文件之前,一定要确保编译和连接不出现错误和警告,这么才能正常运行。因为程序中有些警告即使不影响生成可执行这么才能正常运行。因为程序中有些警告即使不影响生成可执行文件,但有可能造成结果错误。文件,但有可能造成结果错误。第28页1.4.2 C1.4.2 C程序运行环境程序运行环境 1 Visual C+6.0 1 Visual C+6.0 1 Visual C+6.0 1 Visual C+6.0 开启开启开启开启 单击【开始】单击【开始】【程序】【程序】|【Microso
34、ftVisualStudio6.0】|【MicrosoftVisualC+6.0】命令,可开启】命令,可开启VisualC+6.0集成开发环集成开发环境,如图境,如图1.2所表示。所表示。第29页 在在“C:student”目录下,新建一个名为目录下,新建一个名为“chapter01_01”工程。新建工程。新建工程工程chapter01_01操作方法以下:操作方法以下:(1)开启开启VisualC+。(2)在在VisualC+主窗口中,单击【文件】主窗口中,单击【文件】|【新建】,弹出【新建】,弹出“新建新建”对话框。对话框。(3)在在“新建新建”对话框中,单击选中对话框中,单击选中“工程工程
35、”标签下标签下“Win32ConsoleApplication”(Win32控制台应用程序控制台应用程序)项。然后在项。然后在“位置位置”文本框中指定新文本框中指定新建工程路径:建工程路径:“C:studentchapter01_01”。最终在。最终在“工程名称:工程名称:”文文本框中输入新建工程名称:本框中输入新建工程名称:“chapter01_01”,如图所表示。,如图所表示。2.2.2.2.新建工程新建工程新建工程新建工程 第30页新建工程新建工程新建工程新建工程 第31页(4)单击【确定】按钮,进入单击【确定】按钮,进入“Win32ConsoleApplicationStep1of1”
36、对话框,选中对话框,选中“Anempteyproject(一个空工程一个空工程)”项,如项,如图图1.4所表示。所表示。新建工程新建工程新建工程新建工程 第32页(5)单击【完成】按钮,弹出单击【完成】按钮,弹出“新建工程信息新建工程信息”对话框,显示即将新对话框,显示即将新建建Win32控制台应用程序框架说明,如图所表示。控制台应用程序框架说明,如图所表示。新建工程新建工程新建工程新建工程 说明:说明:“Empty console application”说明将建立是一个空控制台应用程序。说明将建立是一个空控制台应用程序。“No files will be created or added
37、to the project”说明即将创建工程中没说明即将创建工程中没有任何文件。有任何文件。第33页(6)在确认在确认Win32控制台应用程序新建工程信息无误后,单击【确定控制台应用程序新建工程信息无误后,单击【确定】按钮,弹出】按钮,弹出chapter01_01工程编辑窗口。工程编辑窗口。新建工程新建工程新建工程新建工程 第34页(7)单击【文件】|【关闭工作空间】菜单命令,关闭工程编辑窗口,回到Visual C+主窗口。(8)检验新建工程chapter01_01。系统生成了一组相关文件夹与文件,打开“资源管理器”窗口,单击“chapter01_01”文件夹图标,窗口内容显示如图所表示。新
38、建工程新建工程新建工程新建工程 第35页说明:说明:当用当用VisualC+生成一个项目时,系统会产生很多文件,对这些生成一个项目时,系统会产生很多文件,对这些不一样类型文件作用简单介绍以下:不一样类型文件作用简单介绍以下:.dsw文件:工作区文件:工作区(Workspace)文件,是文件,是VisualC+中级别最高文件,中级别最高文件,能够用它直接打开工程。能够用它直接打开工程。.dsp文件:项目文件:项目(Project)文件,存放特定应用程序相关信息。假如文件,存放特定应用程序相关信息。假如没有没有dsw文件,能够用它直接打开工程。文件,能够用它直接打开工程。.opt文件:选项文件,是
39、工程关于开发环境选项设置。此文件被删除文件:选项文件,是工程关于开发环境选项设置。此文件被删除后会自动建立,若更换了机器环境,因开发环境变了,该文件也会重后会自动建立,若更换了机器环境,因开发环境变了,该文件也会重建。建。.ncb文件:无编译浏览文件:无编译浏览(nocompilebrowser)文件。当自动完成功文件。当自动完成功效出问题时,能够删除此文件,效出问题时,能够删除此文件,build后会自动生成。此时后会自动生成。此时Debug文文件夹下没有任何文件。件夹下没有任何文件。新建工程新建工程新建工程新建工程 第36页 在在“ch01_01”工程中,新建一个名为工程中,新建一个名为“c
40、h01_01.c”C源程序文件,程源程序文件,程序内容参考例序内容参考例1.1。在工程中新建源程序文件操作方法以下:。在工程中新建源程序文件操作方法以下:新建源程序文件新建源程序文件新建源程序文件新建源程序文件第37页(1)在Visual C+主窗口中,单击【文件】|【打开工作空间】菜单命令,弹出“打开工作区”对话框,在“查找范围】下拉列表中选中“C:STUDENTchapter01_01”文件夹,在列表框中单击选中名为“chapter01_01.dsw”文件,对话框显示如图所表示。新建源程序文件新建源程序文件新建源程序文件新建源程序文件第38页(2)单击【打开】按钮,进入单击【打开】按钮,进
41、入chapter01_01工程编辑窗口。工程编辑窗口。(3)单击【工程】单击【工程】|【添加到工程】【添加到工程】|【新建】菜单命令,弹出【新建】菜单命令,弹出“新建新建”对话对话框框.(4)在对话框中选中在对话框中选中“文件文件”标签,选中标签,选中“C+SourceFile”项。然后,在项。然后,在“文件名文件名”文本框中输入文本框中输入“chapter_01.c”。提议大家输入后缀名。提议大家输入后缀名“.c”,假如不输入后缀名,系统将自动添加默认后缀名,假如不输入后缀名,系统将自动添加默认后缀名“.cpp”。新建源程序文件新建源程序文件新建源程序文件新建源程序文件第39页(5)单击单击
42、“确定确定”按钮,然后在按钮,然后在chapter01_01工程编辑窗口中将出工程编辑窗口中将出现源程序文件编辑窗口,如图所表示。标题为现源程序文件编辑窗口,如图所表示。标题为“ch01_01.c”子窗子窗口出现字符输入光标闪烁,提醒输入源程序。口出现字符输入光标闪烁,提醒输入源程序。说明:现在窗口中有两个子窗口,一个是工程编辑窗口说明:现在窗口中有两个子窗口,一个是工程编辑窗口(主窗口主窗口),另一个是源程序编辑窗口。另一个是源程序编辑窗口。新建源程序文件新建源程序文件新建源程序文件新建源程序文件第40页(6)输入源程序全部内容,如图所表示。然后,单击【文件】输入源程序全部内容,如图所表示。
43、然后,单击【文件】|【保留【保留】命令,或按工具栏上【保留】按钮,将输入源程序内容保留到】命令,或按工具栏上【保留】按钮,将输入源程序内容保留到文件文件“C:STUDENTchapter01_01ch01_01.c”中。中。新建源程序文件新建源程序文件新建源程序文件新建源程序文件第41页程序源代码输入完成后,先手工检验一下源代码,检验有没有显程序源代码输入完成后,先手工检验一下源代码,检验有没有显著输入错误。著输入错误。编译程序。单击【编译】编译程序。单击【编译】|【编译【编译ch01_01.c】菜单命令,或按【】菜单命令,或按【Ctrl+F7】键,编译源程序】键,编译源程序(.c)。连接程序
44、。单击【编译】连接程序。单击【编译】|【构件【构件chapter01_01.exe】菜单命令,】菜单命令,或按【或按【F7】键,连接目标程序】键,连接目标程序(.obj),生成可执行程序,生成可执行程序(.exe)。运行程序。单击【编译】运行程序。单击【编译】|【执行【执行chapter01_01.exe】菜单命令,】菜单命令,或按【或按【Ctrl+F5】键】键。编译、连接、运行程序编译、连接、运行程序编译、连接、运行程序编译、连接、运行程序第42页 对于编译、连接和运行操作,对于编译、连接和运行操作,VC+还提供了一组快捷工具按钮,还提供了一组快捷工具按钮,如图如图1.16所表示。从左至右一
45、次是所表示。从左至右一次是Copmiles、Build、StopBuild、ExecutesProgram、Go、Insert/RemoveBreakpoint。Copmiles:编译:编译C或或C+源代码文件。源代码文件。Build:创建可执行文件。:创建可执行文件。StopBuild:停顿创建可执行文件。:停顿创建可执行文件。ExecutesProgram:执行程序。:执行程序。Go:开始或继续执行程序。:开始或继续执行程序。Insert/RemoveBreakpoint:设置或取消断点。:设置或取消断点。第43页5.调试程序调试程序调试程序是程序设计中一个很主要步骤,一个程序极难调试程序
46、是程序设计中一个很主要步骤,一个程序极难确保一次就能运行经过,普通都要经过屡次调试。确保一次就能运行经过,普通都要经过屡次调试。程序中错误普通分为源程序语法错误和程序设计上逻程序中错误普通分为源程序语法错误和程序设计上逻辑错误,编译时只能找出语法错误,而逻辑错误需要靠程辑错误,编译时只能找出语法错误,而逻辑错误需要靠程序员手工查找。序员手工查找。假如程序中存在语法错误,那么编译时会在输出窗口假如程序中存在语法错误,那么编译时会在输出窗口中给犯错误提醒。中给犯错误提醒。第44页6编辑下一个程序编辑下一个程序编辑下一个程序之前,要先编辑下一个程序之前,要先“结束结束”前一个程序。单击【文件】前一个程序。单击【文件】【结束】菜单命令即可。【结束】菜单命令即可。7打开已经有程序打开已经有程序单击【文件】【打开】菜单命令,在弹出单击【文件】【打开】菜单命令,在弹出“打开打开”对话框中,选对话框中,选择欲打开文件路径和文件名后,然后单击择欲打开文件路径和文件名后,然后单击“打开打开”按钮。按钮。.退出退出VisualC+6.0单击【文件】单击【文件】|【退出】菜单命令,或单击窗口右上角【关闭】按钮,【退出】菜单命令,或单击窗口右上角【关闭】按钮,即可退出即可退出VisualC+。第45页