370 likes | 465 Views
第 1 章 C 语言绪论. 《 C 语言程序设计 》 (Visual C++ 6.0 环境). 本章导读 本章通过 C 程序实例分析着手,使读者从宏观上整体把握和了解 C 程序的基本结构、 C 程序的开发调试过程, 对 C 程序开发设计有较深入的感性认识,进而强化对计算机语言和程序设计的理解,为进一步学习 C 语言程序设计打下基础。. 本章主要知识点 ( 1)Visual C++ 6.0 环境运行的 C 程序实例。 (2)C 程序的基本结构。 (3)C 语言的词法和输入 / 输出。 (4) 程序设计语言发展。. 返回本书目录.
E N D
第1章 C语言绪论 《 C语言程序设计》(Visual C++ 6.0环境) • 本章导读 本章通过C程序实例分析着手,使读者从宏观上整体把握和了解C程序的基本结构、C程序的开发调试过程, 对C程序开发设计有较深入的感性认识,进而强化对计算机语言和程序设计的理解,为进一步学习C语言程序设计打下基础。 • 本章主要知识点 • (1)Visual C++ 6.0环境运行的C程序实例。 • (2)C程序的基本结构。 • (3)C语言的词法和输入/输出。 • (4)程序设计语言发展。 返回本书目录
《 C语言程序设计》(Visual C++ 6.0环境) 1.1 Visual C++ 6.0环境运行的C程序实例 第1章 C语言绪论 1.2 C程序的基本结构 1.3 C语言的词法 1.4 C语言数据输入和输出 1.5 程序设计语言发展 返回本章导读
《 C语言程序设计》(Visual C++ 6.0环境) 1.1.1 C程序实例 1.1 Visual C++ 6.0环境运行的C程序实例 1.1.2 C程序的开发过程 1.1.3 Visual C++ 6.0集成环境 返回本章目录
《 C语言程序设计》(Visual C++ 6.0环境) 1. C程序实例(1) 1.1.1 C程序实例 2. C程序实例(2) 3. C程序实例(3) 返回本节目录
1.C程序实例1 《 C语言程序设计》(Visual C++ 6.0环境) 1.1.1 C程序实例(1) 【例1.1】输出一行信息:Thise is a C program. 程序名为l1_1.cpp。 #include "stdio.h" /*文件包含*/ main() /*主函数*/ { printf("This is a C program.\n"); /*输出信息*/ } 程序输出结果: This is a C program. 程序演示 返回本节目录
单击运行 运行结果 弹出运行结果窗口 输入源程序 [例1.1]程序演示 返回例题 返回本节目录
《 C语言程序设计》(Visual C++ 6.0环境) 2.C程序实例2 1.1.1 C程序实例(2) 【例1.2】输入两个整数,输出它们的和。 程序名为l1_2.cpp。 #include "stdio.h" /*文件包含*/ main() /*主函数*/ { int a,b,c; /*声明定义变量a,b和c*/ scanf("%d%d",&a,&b); /*输入变量a和b的值*/ c=a+b; /*计算c等于a与b的和值*/ printf("c=%d\n",c); /*输出变量c的值*/ } 运行程序输入: 90<CR> 7 <CR> 程序结果: C=97 程序演示 返回本节目录
单击运行 输入90和7,并以回车作分隔符和输入结束符。 运行结果 弹出运行结果窗口 输入源程序 [例1.2]程序演示 返回例题 返回本节目录
3.C程序实例3 《 C语言程序设计》(Visual C++ 6.0环境) 【例1.3】输入两个整数,通过调用函数计算它们的和,然后输出和值。 程序名为l1_3.cpp。 #include "stdio.h" /*文件包含*/ int sum(int x,int y) /*定义sum函数*/ { int z; /*声明定义变量z*/ z=x+y; /*计算z等于x与y的和值*/ return (z); /*将z的值返回,通过sum带回调用处*/ } main() /*主函数*/ { int a,b,c; /*声明定义变量a,b和c*/ scanf("%d%d",&a,&b); /*输入变量a和b的值*/ c=sum(a,b); /*调用sum函数,将得到的值赋给c*/ printf("c=%d\n",c); /*输出变量c的值*/ } 运行程序输入: 90 7<CR> 程序结果: C=97 1.1.1 C程序实例(3) 程序演示 返回本节目录
单击运行 输入90和7,并以空格作间隔符,以回车作输入结束符。 运行结果 弹出运行结果窗口 输入源程序 [例1.3]程序演示 返回例题 返回本节目录
1.编辑 2.编译 《 C语言程序设计》(Visual C++ 6.0环境) (1)编辑指编辑创建源程序是将编写好的C语言源程序代码录入到计算机中,形成源程序文件。 (2)本书用Visual C++ 6.0环境提供的全屏幕编辑器。在附录3中介绍Turbo C 2.0的环境情况。 (3)在VC 6.0环境中的源程序文件,其扩展名为.cpp,而在Turbo C 2.0环境中的源程序文件的扩展名为.c。 1.1.2 C程序的开发过程 (1)编译源程序就是由C系统提供的编译器将源程序文件的源代码转换成目标代码的过程。 (2)编译过程主要进行词法分析和语法分析,在分析过程中如果发现错误,将错误信息显示在屏幕上通知用户。经过编译后的目标文件的扩展名为.obj。 返回本节目录
《 C语言程序设计》(Visual C++ 6.0环境) 3.连接 4.运行 1.1.2 C程序的开发过程 (1)连接过程是将编译过程中生成的目标代码进行连接处理,生成可执行程序文件的过程。 (2)在连接过程中,时常还要加入一些系统提供的库文件代码。经过连接后生成的可执行文件的扩展名为.exe。 运行可执行文件的方法很多,可在C系统下执行“运行”命令。也可以在操作系统下直接执行可执行文件。 可执行的程序文件运行后,将在屏幕上显示程序执行的结果。 返回本节目录
利用Visual C++ 6.0集成环境开发C程序的过程如下: 《 C语言程序设计》(Visual C++ 6.0环境) 1.1.3 Visual C++ 6.0集成环境 1.启动Visual C++ 6.0环境 2. 编辑源程序文件 3. 编译和连接 4. 执行 返回本节目录
标题栏 菜单栏 工具栏 文件编辑区 项目工作区 输出区 状态栏 1.启动Visual C++ 6.0环境 《 C语言程序设计》(Visual C++ 6.0环境) 方法:单击 “开始”-“程序”-“Microsoft Visual studio 6.0”-“Microsoft Visual C++ 6.0”命令,启动Visual C++,VC6主窗口如下: 1.1.3 Visual C++ 6.0集成环境 返 回 返回本节目录
输入项目名 单击该选项 单击“完成” 单击“确定” 单击“工程” 选择新项目位置 单击“确定” 单击“Win32 Console Application” 2. 编辑源程序文件 《 C语言程序设计》(Visual C++ 6.0环境) (1)建立新工程项目 ①单击“文件”-“新建”,弹出 “新建”对话框。 1.1.3 Visual C++ 6.0集成环境 ②单击“工程”选项卡;单击 “Win32 Console Application” 选项;“工程”文件框中输入项 目名,如“gc1”和“位置”框输入 或选择新项目所在位置,单击 “确定”按钮。弹出“Win32 Console Application Step 1of 1”对话框。 ③单击“An empty project”按钮和“完 成”按钮。系统显示“新建工程信息”对 话框。单击“确定”按钮。 返 回 返回本节目录
输入文件名 单击“文件” 选择“添加工程” 单击“C++ Source file” 输入源程序 单击“确定” 2. 编辑源程序文件 《 C语言程序设计》(Visual C++ 6.0环境) (2)建立新项目中的文件 ①单击“文件”-“新建”,弹 出“新建”对话框。 1.1.3 Visual C++ 6.0集成环境 ②选择“文件”选项卡。单击 “C++ Source File”选项,在 “文件”文件框中输入文件名, 单击“确定”按钮。系统自动 返回VC6主窗口。 ③显示文件编辑区窗口,在文件编辑 区窗口输入源程序文件。 返回本节目录 返 回
单击“Build” 单击“编译” 3. 编译和连接 《 C语言程序设计》(Visual C++ 6.0环境) 方法一:选择主窗口菜单栏中“编译”菜单项;系统弹出下拉菜单,选择“构件”菜单命令。 1.1.3 Visual C++ 6.0集成环境 方法二:单击主窗口编译工具栏上的 “Build”按钮进行编译和连接。 (1)系统对程序文件进行编译和连接,生成以项目名称命名的可执行目标代码文件.exe。 (2)编译连接过程中,系统如发现程序有语法错误,则在输出区窗口中显示错误信息,给出错误的性质、出现位置和错误的原因等。如果双击某条错误,编辑区窗口右侧出现一个箭头,指示再现错误的程序行。用户据此对源程序进行相应的修改,并重新编译和连接,直到通过为止。 返回本节目录 返 回
单击“Build Execute” 单击“编译” 4. 执行 《 C语言程序设计》(Visual C++ 6.0环境) 方法一:单击“编译”菜单中“执行”命令。 方法二:单击主窗口编译工具栏上的“Build Execute”按钮来执行编译连接后的程序。 1.1.3 Visual C++ 6.0集成环境 运行成功,屏幕上输出执行结果,并提示信息:“Press any key to continue”。此时按任意键系统都将返回VC6主窗口。 在执行程序过程中出现运行错误。用户要修改源程序文件并且重新编译、连接和执行。 返 回 返回本节目录
《 C语言程序设计》(Visual C++ 6.0环境) 1.2 C程序的基本结构 1.2.1 C程序的结构特点 1.2.2 C程序的书写格式 返回本章目录
《 C语言程序设计》(Visual C++ 6.0环境) 任何函数(包括主函数main())都是由函数说明和函数体两部分组成。 其一般结构如下: 1.2.1 C程序的结构特点 [函数类型] 函数名(函数参数表)/*函数说明部分*/ { 说明语句部分;/*函数体部分*/ 执行语句部分; } 返回本节目录
1. C程序是由函数构成的。 2. 函数由函数说明和函数体组成。 3. C程序总是从main函数开始执行。 4.C程序语句和数据定义必须以分号“;”结束。 5.C语言严格区分大小写。 6.C语言数据输入和输出是由库函数实现的。 7.C语言用/*注释内容*/形式进行程序注释。 《 C语言程序设计》(Visual C++ 6.0环境) 一个C源程序可由一个main函数和若干个其他函数组成,其中必须有一个且只能有一个main函数。 1.2.1 C程序的结构特点 函数说明部分包括函数名、函数返回值类型、函数的形式参数(形参)名、形式参数类型。函数体即函数说明部分下面的用一对大括号括起来的部分{……} 。 main函数始终是C程序执行时入口处。 C语言中,分号是程序语句的结束标志,也是C语句的必要组成部分。 如变量a和变量A系统认定为两个不同的变量。 C语言本身没有输入输出语句。输入和输入操作是由库函数scanf和printf等函数来实现的。 返回本节目录 在“/*”和“*/”之间的所有字符都为注释符,C系统不对注释符进行编译 。
1. C程序书写格式自由。 2.C程序书写采用缩进格式。 3.程序中适当使用注释信息。 《 C语言程序设计》(Visual C++ 6.0环境) 对于短语句可以多条语句书写在同一行,也可以将长语句分写在多行。但需要注意,分行时不能将一个单词分开,也不能将双引号引起来的字符串分开。我们提倡一行一条语句的风格。 1.2.2 C程序的书写格式 根据语句的从属关系,程序书写时采用缩进格式,使程序语句的层次结构清晰,提高程序的可读性。同一层次语句要左对齐,不同层次的语句要缩进若干个字符,这样程序层次清楚,便于阅读和理解。 在书写程序时,适当地加入注释同样可增加程序的可读性。 返回本节目录
《 C语言程序设计》(Visual C++ 6.0环境) 1.3 C语言的词法 1.3.1 C语言的字符集 1.3.2 C语言的词法 返回本章目录
《 C语言程序设计》(Visual C++ 6.0环境) C语言的字符集是由ASCII字符集组成 1.3.1 C语言的字符集 (1)26个小写字母:a—z。 (2)26个大写字母:A—Z。 (3)10个数字:0—9。 (4)其他符号:+、-、*、/、=、,、.、_、)、(、&、^、%、$、#、@、!、~、<、>、?、’、;、:、”、)、[、]、{、}、-、\、空格。 返回本节目录
C语言使用一组字符来构造具有特殊意义的符号,我们称之为词法符号。主要有关键字、标识符、运算符、分隔符、常量及注释符等。 1.关键字 《 C语言程序设计》(Visual C++ 6.0环境) 1.3.2 C语言的词法 关键字是系统预定义的词法符号,具有特定的含义。ANSI C规定有32个关键字,C++又补充了29个关键字。C和C++均不允许对关键字重新定义,即程序员不能用这样关键字再定义其他含义。 关键字举例: int char float long if else for while sizeof static struct 返回本节目录
2.标识符 3.分隔符 4.其他 《 C语言程序设计》(Visual C++ 6.0环境) 标识符是指用来标识程序中用到的变量名、函数名、类型名、数组名、文件名以及符号常量名的有效字符序列。 C语言标识符命名必须符合语法规定:标识符是以字母或下划线开始,由字母、数字和下划线组成的符号串。 1.3.2 C语言的词法 分隔符是程序中的标点符号,用来分隔单词或程序正文。 (1)空格:作为单词之间的分隔符。 (2)逗号:作为变量之间或函数的多个参数之间的分隔符。 (3)冒号:作为语句标号与语句间的分隔符以及switch语句中case与语句序列之间的分隔符。 (4)大括号:作为函数体、复合语句等定界。 注释符前面已经介绍。运算符是对数据进行某种操作的单词,是系统预定义的函数,具体内容将在第2章详细介绍。常量是程序中由书写形式决定类型和值的数据。C语言常量有数字常量、字符常量和字符串常量。将在第2章中做详细介绍。 返回本节目录
《 C语言程序设计》(Visual C++ 6.0环境) 1.4.1 C语言格式输入/输出 1.4 C语言数据输入和输出 1.4.2 C语言字符数据输入/输出 1.4.3 C++ 的输入输出流 返回本章目录
标准函数库中定义了一些输入输出函数,程序在调用这些库函数时,必须在源文件的开始处加上头文件的“包含命令”,格式如下:标准函数库中定义了一些输入输出函数,程序在调用这些库函数时,必须在源文件的开始处加上头文件的“包含命令”,格式如下: #include <库函数头文件名> 或#include "库函数头文件名" 1.格式输出函数printf() 《 C语言程序设计》(Visual C++ 6.0环境) 1.4.1 C语言格式输入/输出 printf()函数的作用:向计算机系统默认的输出设备(一般指终端或显示器)输出一个或多个任意类型的数据。 printf()函数的一般格式如下: printf(“格式字符串” [,输出项表]); (1)“输出项列表”是需要输出的一些数据。数据可以有0项、1项或多个输出项,多个输出项之间用“,”分隔,并且输出项应与格式控制相匹配。 (2)“格式控制”是用双引号括起来的一串字符,也称格式控制字符串,包括格式说明、普通字符和转义字符3种。格式控制字符串的功能是指定输出数据的格式和类型。 下面均以【例1.2】和【例1.3】中的printf("c=%d\n",c);进行说明。其中,“c=”是普通字符,“%d”是格式说明,’\n’是转义字符,而c是输出项。 返回本节目录
下面分别对“格式控制”的3种形式进行说明 《 C语言程序设计》(Visual C++ 6.0环境) (1)普通字符:普通字符内容按照原样向输出设备输出。如“c=”在屏幕上输出结果就是:c= 1.4.1 C语言格式输入/输出 (2)格式说明:格式说明是以字符“%”开头,加上格式字符组成,表示对数据输出格式的控制,它与后面的数据输出项对应。格式说明与数据输出项的数据个数、数据类型及数据排放次序相匹配对应。如,格式说明“%d”与输出项“c”对应,即控制数据输出项c按格式说明"%d"规定的格式(十进制整数形式)输出。因此,据c值为97,输出结果是:97 如果,格式说明“%d”改为“%c”,则输出项c的值将按“%c”规定的格式(字符型数据)输出。因此,据c值为97,输出结果是:a ‘a’为97对应的ASCII字符。常用的格式字符情况如教材表1-1所示。 (3)转义字符:转义字符是以’\’开头和其他特殊字符组合而成的具有一定含义的字符。如’\n’ 表示“回车换行”符。转义字符是ASCII字符中的一种,主要用来控制外部设备。常用的一些转义字符及其含义见教材表1-4所示。 返回本节目录
2.格式输入函数scanf() 《 C语言程序设计》(Visual C++ 6.0环境) 格式控制输入函数scanf作用是:按指定的格式从标准输出设备(键盘)输入数据。 1.4.1 C语言格式输入/输出 函数scanf()的使用格式为: scanf(“格式控制”,地址列表) ; (1)“地址列表”是由接收数据变量的地址组成。求地址运算符为&,如&a,&b分别表示变量a和变量b的地址。若接收多个数据,则变量地址之间用 “,”分隔,并且地址列表与格式控制中的格式说明相匹配。 (2)“格式控制”基本同于printf函数的格式控制。格式控制的功能是规定输入数据的格式。格式控制包括格式说明和普通字符,一般不包括转义字符。 返回本节目录
注意:格式字符和附加格式字符使用应与输出项相匹配。注意:格式字符和附加格式字符使用应与输出项相匹配。 《 C语言程序设计》(Visual C++ 6.0环境) (1)格式说明之间有普通字符或转义字符时,则数据输入时,必须按它们的原样输入这些字符作为数据分隔符。如,scanf("%d,%d",&a,&b); 输入数据时,数据之间必须用“,”作为分隔符。可输入:90,7<CR>。 (2)连续输入多个数值型数据时,数据之间要用空格、Tab键或回车键作分隔符。如【例1.2】和【例1.3】中语句scanf(“%d%d”,&a,&b);输入数据时,数据之间可用空格、Tab键或回车键分隔符。可输入:90 7<CR>。 (3) 连续输入多个字符数据时,各字符间不输入分隔符。如,scanf( "%c%c",&a,&b); 输入数据时,连续输入相应的字符。可输入:AB<CR>。则将‘A’字符输给了变量a,将‘B’字符输给了变量b。 (4)数据型数据和字符型数据交叉输入时,若字符在前,则字符和数值型数据间可以加入分隔符(空格、Tab键和回车键);若数值在前,则数值和字符间不可以加分隔符(空格、Tab键和回车键)。 (5)输入数据时,可以指定数据所占列数,系统自动按它截取所需数据。如,scanf("%3d%3d",&a,&b);若输入:12345678<CR>系统自动将123赋给a,456赋给b。 (6)输入数据时不能规定精度。如,scanf("%5.2f",&a);是不合法的。 1.4.1 C语言格式输入/输出 返回本节目录
1.字符输出函数putchar() 2. 字符输入函数getchar() 《 C语言程序设计》(Visual C++ 6.0环境) 字符输出函数putchar的一般格式为: putchar(c) putchar作用:在标准输出设备(显示器)上输出c对应的一个字符。 输出的字符是括号中c所对应的一个字符。c可以是单字符数据、整型数据及其表达式。 如,char c=’Y’;putchar(c);输出结果为Y。 如,int a=98;putchar(a+1);输出结果为c。 1.4.2 C语言字符数据输入/输出 字符输入函数getchar的一般格式为: getchar( ) getchar作用:在标准输入设备(键盘)读入一个字符。 例如,char c;c=getchar();执行时,要求输入一个字符,如输入:3<CR>,则输入的字符’3’就赋给了变量c。 返回本节目录
C++程序中,还增加了特有的输入/输出流,由输入/输出流库提供。cin和cout是流库预定义标准输入流对象和标准输出流对象,分别连接键盘和显示器。头文件iostream.h包含了操作所有输入/输出流所需的基本信息。因此,大多数C++程序都将iostream.h头文件包括到用户的源文件中,即:#include <iostream.h> 1. 输出cout 《 C语言程序设计》(Visual C++ 6.0环境) 1.4.3 C++ 的输入输出流 输出流对象cout必须配合插入操作符<<使用。输出格式为: cout<<输出项1<<输出项2<<……<<输出项n; 功能:首先计算出各输出项的值,然后将其转换成字符流形式输出。 【例1.4】将【例1.1】使用输出流cout完成数据输出。程序名为l1_4.cpp。 #include <iostream.h> /*文件包含*/ main() /*主函数*/ { cout<<"This is a C program.\n"; /*输出信息*/ } 输入项还可以是各种控制字符或函数,如回车换行符’\n’等。常用的输入/输出流格式控制符见教材表1-5所示。使用格式控制符要包含头文件iomanip.h,即源文件开始应增加文件包含命令#include <iomanip.h>。 返回本节目录
2.输入cin 《 C语言程序设计》(Visual C++ 6.0环境) 输入流对象cin必须配合提取操作符>>来完成数据的输入。输入格式为: cin>>变量1>>变量2>>……>>变量n; 功能:读取用户输入的字符串,按相应变量的类型转换成二进制代码写入内存。执行到输入语句时,用户按语句中变量的顺序和类型键入各变量的值。输入多个数据时,以空格、Tab键和回车键作分隔符。 1.4.3 C++ 的输入输出流 【例1.5】将【例1.2】使用输入流cin和输出流cout完成。程序名为l1_5.cpp。 #include <iostream.h> /*文件包含*/ #include <iomanip.h> main() /*主函数*/ { int a,b,c; /*声明定义变量a,b和c*/ cin>>a>>b; /*输入变量a和b的值*/ c=a+b; /*计算c等于a与b的和值*/ cout<<"c="<<c<<endl; /*输出变量c的值*/ } 返回本节目录
《 C语言程序设计》(Visual C++ 6.0环境) 1.5 程序设计语言发展 1.5.1 程序与程序设计语言 1.5.2 高级语言与C语言 返回本章目录
1. 程序 2.程序设计语言 《 C语言程序设计》(Visual C++ 6.0环境) 程序是控制计算机完成特定功能的一组有序指令的集合。前面我们见到的各个例题【例1.1】、【例1.2】、【例1.3】和【例1.4】和 【例1.5】都是一些小的程序,都能完成一定的功能。 1.5.1 程序与程序设计语言 编写程序所使用的语言称为程序设计语言,它是人与计算机之间进行信息交流的工具。前面我们介绍的程序【例1.1】、【例1.2】和【例1.3】是用Turbo C程序设计语言编写的,而【例1.4】和【例1.5】是用Visual C++程序设计语言编写的。可见,C语言和Visual C++语言是两种程序设计语言,是程序员编程的工具。 返回本节目录
1. 程序设计语言的发展 2.C语言 《 C语言程序设计》(Visual C++ 6.0环境) 程序设计语言的发展从低级到高级经历了机器语言、汇编语言、高级语言到面向对象语言四个阶段。C语言是一种高级语言。 1.5.2 高级语言与C语言 C语言仍然是当今世界上最为流行的面向过程的程序设计语言之一。C语言的产生最早可追溯到1960年出现的ALGOL 60。在ALGOL 60基础上,1963年英国剑桥大学推出了更接近硬件,规模较大的CPL(Combined Programming Language)语言。1967年对CPL进行简化推出了BCPL(Baxic Combined Programming Language)语言。1970年,美国贝尔实验室的Ken Thompson在BCPL基础上,设计出更简单,很接近硬件的B语言,用B语言编写的UNIX操作系统在DEC PDP-7机上实现。在1972至1973年间,贝尔实验室的Dennis Ritchie在B语言基础上设计出了C语言。1973年Ken Thompson和DennisRitchie合作把原来用汇编语言编写的UNIX操作系统中90%以上的部分用C语言改写。1983年,美国国家标准化协会ANSI制定了ANSIC标准。1990年,国际标准化组织ISO接受了87 ANSI C为ISO标准。C语言具有功能强大,容易理解,较好的移植性,较低级的语言功能和模块化结构程序设计等优势,使C语言已经风靡全球,成为世界上应用最为广泛的几种高级计算机语言之一。 返回本节目录