本章导读本章通过 C程序实例分析着手,使读者从宏观上整体把握和了解 C程序的基本结构,C程序的开发调试过程,
对 C程序开发设计有较深入的感性认识,进而强化对计算机语言和程序设计的理解,为进一步学习 C语言程序设计打下基础。
《C
语言程序设计
,(V
isu
al
C+
+
6.
0
环境

返回本书目录第 1章 C语言绪论本章主要知识点
(1)Visual C++ 6.0环境运行的 C程序实例。
(2)C程序的基本结构。
(3)C语言的词法和输入 /输出 。
(4)程序设计语言发展 。
第 1章 C语言绪论
《C
语言程序设计
,(V
isu
al
C+
+
6.
0
环境

返回本章导读
1.2 C程序的基本结构
1.3 C语言的词法
1.5 程序设计语言发展
1.4 C语言数据输入和输出
1.1 Visual C++ 6.0环境运行的 C程序实例
《C
语言程序设计
,(V
isu
al
C+
+
6.
0
环境

返回本章目录
1.1.2 C程序的开发过程
1.1.3 Visual C++ 6.0集成环境
1.1.1 C程序实例
1.1 Visual C++ 6.0环境运行的 C程序实例
《C
语言程序设计
,(V
isu
al
C+
+
6.
0
环境

返回本节目录
2,C程序实例 (2)
3,C程序实例 (3)
1,C程序实例 (1)
1.1.1 C程序实例
1.1.1 C程序实例( 1)
《C
语言程序设计
,(V
isu
al
C+
+
6.
0
环境

返回本节目录
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]程序演示单击运行输入源程序弹出运行结果窗口运行结果返回例题 返回本节目录
1.1.1 C程序实例( 2)
《C
语言程序设计
,(V
isu
al
C+
+
6.
0
环境

2.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 返回本节目录程序演示
[例 1.2]程序演示单击运行输入源程序弹出运行结果窗口 运行结果输入 90和 7,并以回车作分隔符和输入结束符。
返回例题 返回本节目录
1.1.1 C程序实例( 3)
《C
语言程序设计
,(V
isu
al
C+
+
6.
0
环境

3.C程序实例 3
【 例 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.3]程序演示单击运行输入源程序弹出运行结果窗口返回例题运行结果输入 90和 7,并以空格作间隔符,
以回车作输入结束符。
返回本节目录
1.1.2 C程序的开发过程
《C
语言程序设计
,(V
isu
al
C+
+
6.
0
环境

返回本节目录
1.编辑
2.编译
( 1) 编辑指 编辑创建源程序 是将编写好的 C语言源程序代码录入到计算机中,形成源程序文件 。
( 2)本书用 Visual C++ 6.0环境提供的全屏幕编辑器。在附录 3
中介绍 Turbo C 2.0的环境情况。
( 3)在 VC 6.0环境中的 源程序文件,其 扩展名 为,cpp,而在
Turbo C 2.0环境中的源程序文件的扩展名为,c。
( 1) 编译源程序就是由 C系统提供的编译器将源程序文件的源代码转换成目标代码的过程 。
( 2) 编译过程主要进行 词法分析和语法分析,在分析过程中如果发现错误,将错误信息显示在屏幕上通知用户 。 经过编译后的目标文件 的 扩展名为,obj。
1.1.2 C程序的开发过程
《C
语言程序设计
,(V
isu
al
C+
+
6.
0
环境

返回本节目录
3.连接
4.运行
( 1)连接过程是将编译过程中生成的目标代码进行连接处理,
生成可执行程序文件的过程。
( 2)在连接过程中,时常还要加入一些系统提供的库文件代码。
经过连接后生成的 可执行文件 的 扩展名 为,exe。
运行可执行文件的方法很多,可在 C系统下执行“运行”命令。
也可以在操作系统下直接执行可执行文件。
可执行的程序文件运行后,将在屏幕上显示程序执行的结果。
1.1.3 Visual C++ 6.0集成环境
《C
语言程序设计
,(V
isu
al
C+
+
6.
0
环境

返回本节目录
1.启动 Visual C++ 6.0环境
2,编辑源程序文件
3,编译和连接
4,执行利用 Visual C++ 6.0集成环境开发 C程序的过程如下:
1.1.3 Visual C++ 6.0集成环境
《C
语言程序设计
,(V
isu
al
C+
+
6.
0
环境

返回本节目录
1.启动 Visual C++ 6.0环境方法,单击,开始” -“程序” -“Microsoft Visual studio 6.0”-
“Microsoft Visual C++ 6.0”命令,启动 Visual C++,VC6主窗口如下:
菜单栏项目工作区标题栏输出区工具栏状态栏文件编辑区返 回
1.1.3 Visual C++ 6.0集成环境
《C
语言程序设计
,(V
isu
al
C+
+
6.
0
环境

返回本节目录
2,编辑源程序文件
( 1)建立新工程项目
① 单击,文件,-“新建,,
弹出
,新建,对话框。
② 单击“工程”选项卡;单击
,Win32 Console
Application”
选项;“工程”文件框中输入项目名,如,gc1”和“位置”框输入或选择新项目所在位置,单击
“确定”按钮。 弹出,Win32
Console Application Step
1of 1”对话框。
③ 单击,An empty project”按钮和
,完成”按钮。 系统显示,新建工程信息,
对话框。单击,确定,按钮。
单击“工程”
单击,Win32 Console
Application”
输入项目名选择新项目位置单击“确定”
单击该选项单击“完成”单击“确定”
返 回
1.1.3 Visual C++ 6.0集成环境
《C
语言程序设计
,(V
isu
al
C+
+
6.
0
环境

返回本节目录
2,编辑源程序文件
( 2)建立新项目中的文件
① 单击,文件,-“新建,,
弹出,新建,对话框。
② 选择,文件,选项卡。单击
,C++ Source File”选项,

,文件,文件框中输入文件名,
单击,确定,按钮。系统自动返回 VC6主窗口。
③ 显示文件编辑区窗口,在文件编辑区窗口输入源程序文件。
单击“文件”
输入文件名单击,C++
Source file”
单击“确定”
选择“添加工程”
输入源程序返 回
1.1.3 Visual C++ 6.0集成环境
《C
语言程序设计
,(V
isu
al
C+
+
6.
0
环境
) 返回本节目录
3,编译和连接方法一,选择主窗口菜单栏中,编译,菜单项;
系统弹出下拉菜单,选择,构件,菜单命令 。
方法二,单击主窗口编译工具栏上的,Build”按钮进行编译和连接。
单击“编译”
( 1) 系统对程序文件进行编译和连接,生成以项目名称命名的可执行目标代码文件,exe。
( 2) 编译连接过程中,系统如发现程序有语法错误,则在输出区窗口中显示错误信息,给出错误的性质,出现位置和错误的原因等 。 如果双击某条错误,编辑区窗口右侧出现一个箭头,指示再现错误的程序行 。 用户据此对源程序进行相应的修改,并重新编译和连接,直到通过为止 。
单击,Build”
返 回
1.1.3 Visual C++ 6.0集成环境
《C
语言程序设计
,(V
isu
al
C+
+
6.
0
环境

返回本节目录
4,执行方法一:单击,编译,菜单中,执行,命令 。
方法二:单击主窗口编译工具 栏 上 的,Build
Execute”按钮来执行编译连接后的程序 。
运行成功,屏幕上输出执行结果,并 提 示信 息,
,Press any key to
continue”。 此时按任意键系统都将返回 VC6主窗口 。
在执行程序过程中出现运行错误 。 用户要修改源程序文件并且重新编译,连接和执行 。
单击“编译”
单击,Build
Execute”
返 回
《C
语言程序设计
,(V
isu
al
C+
+
6.
0
环境

返回本章目录
1.2.2 C程序的书写格式
1.2.1 C程序的结构特点
1.2 C程序的基本结构
1.2.1 C程序的结构特点
《C
语言程序设计
,(V
isu
al
C+
+
6.
0
环境

返回本节目录任何函数(包括主函数 main())都是由函数说明和函数体两部分组成。
其一般结构如下:
[函数类型 ] 函数名 (函数参数表 ) /*函数说明部分 */
{ 说明语句部分; /*函数体部分 */
执行语句部分;
}
1.2.1 C程序的结构特点
《C
语言程序设计
,(V
isu
al
C+
+
6.
0
环境

1,C程序是由函数构成的。
2,函数由函数说明和函数体组成。
3,C程序总是从 main函数开始执行。
4.C程序语句和数据定义必须以分号,;”结束。
5.C语言严格区分大小写。
6.C语言数据输入和输出是由库函数实现的。
7.C语言用 /*注释内容 */形式进行程序注释。
一个 C源程序可由一个 main函数和若干个其他函数组成,其中必须有一个且只能有一个 main函数。
函数说明部分包括函数名、函数返回值类型、函数的形式参数(形参)
名、形式参数类型。函数体即函数说明部分下面的用一对大括号括起来的部分 {…… } 。
返回本节目录
main函数始终是 C程序执行时入口处。
C语言中,分号是程序语句的结束标志,也是 C语句的必要组成部分。
如变量 a和变量 A系统认定为两个不同的变量。
C语言本身没有输入输出语句。输入和输入操作是由库函数 scanf和 printf
等函数来实现的。
在,/*”和,*/”之间的所有字符都为注释符,C系统不对注释符进行编译 。
1.2.2 C程序的书写格式
《C
语言程序设计
,(V
isu
al
C+
+
6.
0
环境

返回本节目录
1,C程序书写格式自由。
2.C程序书写采用缩进格式。
3.程序中适当使用注释信息。
根据语句的从属关系,程序书写时采用缩进格式,使程序语句的层次结构清晰,提高程序的可读性。同一层次语句要左对齐,不同层次的语句要缩进若干个字符,这样程序层次清楚,便于阅读和理解。
在书写程序时,适当地加入注释同样可增加程序的可读性。
对于短语句可以多条语句书写在同一行,也可以将长语句分写在多行。但需要注意,分行时不能将一个单词分开,也不能将双引号引起来的字符串分开。我们提倡一行一条语句的风格。
《C
语言程序设计
,(V
isu
al
C+
+
6.
0
环境

返回本章目录
1.3.2 C语言的词法
1.3.1 C语言的字符集
1.3 C语言的词法
1.3.1 C语言的字符集
《C
语言程序设计
,(V
isu
al
C+
+
6.
0
环境

C语言的字符集是由 ASCII字符集组成
( 1) 26个小写字母,a—z。
返回本节目录
( 2) 26个大写字母,A—Z。
( 3) 10个数字,0—9。
( 4) 其他符号,+,-,*,/,=、,,.,_,),(,&,^、
%,$,#,@,!,~,<,>,?,’,;,:,”,),[,]、
{,},-,\,空格 。
1.3.2 C语言的词法
《C
语言程序设计
,(V
isu
al
C+
+
6.
0
环境

返回本节目录
C语言使用一组字符来构造具有特殊意义的符号,我们称之为词法符号。主要有 关键字、
标识符、运算符、分隔符、常量及注释符 等。
1.关键字关键字是系统预定义的词法符号,具有特定的含义。 ANSI C规定有
32个关键字,C++又补充了 29个关键字。 C和 C++均不允许对关键字重新定义,即程序员不能用这样关键字再定义其他含义。
关键字举例:
int char float long
if else for while
sizeof static struct
注释符 前面已经介绍 。 运算符 是对数据进行某种操作的单词,是系统预定义的函数,具体内容将在第 2章详细介绍 。 常量 是程序中由书写形式决定类型和值的数据 。 C语言常量有数字常量,字符常量和字符串常量 。
将在第 2章中做详细介绍 。
1.3.2 C语言的词法
《C
语言程序设计
,(V
isu
al
C+
+
6.
0
环境
) 返回本节目录
2.标识符
3.分隔符
4.其他标识符是指用来标识程序中用到的变量名,函数名,类型名,数组名,文件名以及符号常量名的有效字符序列 。
C语言标识符命名必须符合语法规定:标识符是以字母或下划线开始,由字母、数字和下划线组成的符号串。
分隔符是程序中的标点符号,用来分隔单词或程序正文 。
( 1) 空格:作为单词之间的分隔符 。
( 2) 逗号:作为变量之间或函数的多个参数之间的分隔符 。
( 3) 冒号:作为语句标号与语句间的分隔符以及 switch语句中 case与语句序列之间的分隔符 。
( 4) 大括号:作为函数体,复合语句等定界 。
《C
语言程序设计
,(V
isu
al
C+
+
6.
0
环境

返回本章目录
1.4.2 C语言字符数据输入 /输出
1.4.3 C++ 的输入输出流
1.4.1 C语言格式输入 /输出
1.4 C语言数据输入和输出
1.4.1 C语言格式输入 /输出
《C
语言程序设计
,(V
isu
al
C+
+
6.
0
环境

标准函数库中定义了一些输入输出函数,程序在调用这些库函数时,必须在源文件的开始处加上头文件的“包含命令”,格式如下:
#include <库函数头文件名 > 或 #include "库函数头文件名 "
1.格式输出函数 printf()
printf()函数的作用:向计算机系统默认的输出设备(一般指终端或显示器)输出一个或多个任意类型的数据。
printf()函数的一般格式如下:
printf(“格式字符串” [,输出项表 ]);
( 1)“输出项列表”是需要输出的一些数据。数据可以有 0项,1项或多个输出项,多个输出项之间用“,”分隔,并且输出项应与格式控制相匹配。
( 2)“格式控制”是用双引号括起来的一串字符,也称格式控制字符串,
包括格式说明、普通字符和转义字符 3种。格式控制字符串的功能是指定输出数据的格式和类型。
下面均以 【 例 1.2】 和 【 例 1.3】 中的 printf("c=%d\n",c);进行说明 。 其中,
,c=”是普通字符,,%d”是格式说明,’ \n?是转义字符,而 c是输出项 。
返回本节目录
1.4.1 C语言格式输入 /输出
《C
语言程序设计
,(V
isu
al
C+
+
6.
0
环境

( 1) 普通字符,普通字符内容按照原样向输出设备输出 。 如,c=”在屏幕上输出结果就是,c=
返回本节目录下面分别对,格式控制,的 3种形式进行说明
( 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所示 。
1.4.1 C语言格式输入 /输出
《C
语言程序设计
,(V
isu
al
C+
+
6.
0
环境

2.格式输入函数 scanf()
格式控制输入函数 scanf作用是:按指定的格式从标准输出设备
(键盘)输入数据。
函数 scanf()的使用格式为:
scanf(“格式控制,,地址列表 ) ;
( 1),地址列表,是由接收数据变量的地址组成 。 求地址运算符为 &,
如 &a,&b分别表示变量 a和变量 b的地址 。 若接收多个数据,则变量地址之间用,,”分隔,并且地址列表与格式控制中的格式说明相匹配 。
( 2),格式控制,基本同于 printf函数的格式控制。格式控制的功能是规定输入数据的格式。格式控制包括格式说明和普通字符,一般不包括转义字符。
返回本节目录
( 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语言格式输入 /输出
《C
语言程序设计
,(V
isu
al
C+
+
6.
0
环境

注意:格式字符和附加格式字符使用应与输出项相匹配。
返回本节目录字符输入函数 getchar的一般格式为:
getchar( )
getchar作用:在标准输入设备(键盘)读入一个字符。
例如,char c;c=getchar();执行时,要求输入一个字符,如输入,3<CR>,
则输入的字符 ’ 3?就赋给了变量 c。
1.4.2 C语言字符数据输入 /输出
《C
语言程序设计
,(V
isu
al
C+
+
6.
0
环境

1.字符输出函数 putchar()
2,字符输入函数 getchar()
字符输出函数 putchar的一般格式为:
putchar(c)
putchar作用:在标准输出设备 ( 显示器 ) 上输出 c对应的一个字符 。
输出的字符是括号中 c所对应的一个字符 。 c可以是单字符数据,整型数据及其表达式 。
如,charc=?Y?;putchar(c);输出结果为 Y。
如,int a=98;putchar(a+1);输出结果为 c。
返回本节目录
1.4.3 C++ 的输入输出流
《C
语言程序设计
,(V
isu
al
C+
+
6.
0
环境

C++程序中,还增加了特有的输入 /输出流,由输入 /输出流库提供 。 cin和 cout是流库预定义标准输入流对象和标准输出流对象,分别连接键盘和显示器 。 头文件
iostream.h包含了操作所有输入 /输出流所需的基本信息 。 因此,大多数 C++程序都将 iostream.h头文件包括到用户的源文件中,即,#include <iostream.h>
1,输出 cout
输出流对象 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>。
【 例 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的值 */
}
1.4.3 C++ 的输入输出流
《C
语言程序设计
,(V
isu
al
C+
+
6.
0
环境

返回本节目录
2.输入 cin
输入流对象 cin必须配合提取操作符 >>来完成数据的输入 。 输入格式为:
cin>>变量 1>>变量 2>>…… >>变量 n;
功能:读取用户输入的字符串,按相应变量的类型转换成二进制代码写入内存。执行到输入语句时,用户按语句中变量的顺序和类型键入各变量的值。输入多个数据时,以空格,Tab键和回车键作分隔符。
《C
语言程序设计
,(V
isu
al
C+
+
6.
0
环境

返回本章目录
1.5.2 高级语言与 C语言
1.5.1 程序与程序设计语言
1.5 程序设计语言发展
1.5.1 程序与程序设计语言
《C
语言程序设计
,(V
isu
al
C+
+
6.
0
环境

返回本节目录
1,程序
2.程序设计语言程序是控制计算机完成特定功能的一组有序指令的集合。前面我们见到的各个例题 【 例 1.1】,【 例 1.2】,
【 例 1.3】 和 【 例 1.4】 和 【 例 1.5】 都是一些小的程序,
都能完成一定的功能。
编写程序所使用的语言称为程序设计语言,它是人与计算机之间进行信息交流的工具。 前面我们介绍的程序 【 例 1.1】,【 例 1.2】 和 【 例 1.3】 是用 Turbo C程序设计语言编写的,而 【 例 1.4】 和 【 例 1.5】 是用 Visual
C++程序设计语言编写的。可见,C语言和 Visual 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和 Dennis Ritchie合作把原来用汇编语言编写的 UNIX操作系统中
90% 以上的部分用C语言改写 。 1983年,美国国家标准化协会 ANSI制定了
ANSIC标准 。 1990年,国际标准化组织 ISO接受了 87 ANSI C为 ISO标准 。
C语言具有功能强大,容易理解,较好的移植性,较低级的语言功能和模块化结构程序设计等优势,使 C语言已经风靡全球,成为世界上应用最为广泛的几种高级计算机语言之一 。
1.5.2 高级语言与 C语言
《C
语言程序设计
,(V
isu
al
C+
+
6.
0
环境
) 返回本节目录
1,程序设计语言的发展
2.C语言程序设计语言的发展从低级到高级经历了机器语言、汇编语言、高级语言到面向对象语言四个阶段。 C语言是一种高级语言。