
1.5 本章小结
本章介绍了程序设计的基本概念、C程序的基本结构、数据类型与变量、基本运算和标准函数等内容。下面分别给予总结。
1.基本概念
计算机语言是人类与计算机的交流工具。
程序是对计算任务的处理对象和处理过程的描述。
程序设计是指设计、编写和调试程序的方法与过程。
程序设计语言是用于编写计算机程序的语言,也是软件开发者与计算机的交流工具。
程序与数学的主要区别:程序面向存储器描述计算任务的处理对象和处理过程。
C语言的主要特征:支持面向过程的程序设计、结构化程序设计方法和底层程序设计。
程序的设计目标:正确的计算结果、执行速度快、资源开销小、响应速度快、易于理解、易于修改、易于扩展。
2.C程序的编译处理
使用编辑器编写的C程序采用.c为扩展名的源程序文件保存,在Windows系统中,经过编译处理产生扩展名为.obj 的目标文件,随后连接必要的库文件,形成扩展名为.exe 的可执行程序文件。
Visual Studio和Dec-C++等综合开发环境将编写好的源程序文件集成在一个工程内管理,提供编辑、编译、连接、运行和调试的功能。
3.C程序基本结构
程序设计语言的各种语法结构经常采用 BNF 范式的形式进行描述。其中,符号右侧的符号串表明左侧符号的组织结构,竖线|表示选择关系(或),方括弧[和]表示可有可无部分,大括弧{和}表示可重复部分。按照这种方法,本章介绍的C程序基本结构如下:
<C程序> {<全局定义>} <函数定义>
<全局定义> <预处理命令> | <函数定义>
<预处理命令> '#'include <文件名>
<函数定义> [<数据类型>] <标识符> '(' [<参数表>] ')' <复合语句>
<复合语句> '{' {<变量定义>} {<语句>} '}'
<语句> <表达式> ';' | <复合语句>
其中,第一行说明C程序由一个函数定义和若干个全局定义组成;而全局定义可能是预处理命令或函数定义。函数定义中数据类型和参数表是可有可无的;复合语句由括号限定的多个变量定义和多个语句组成。这里的全局定义、变量定义、语句和表达式的种类有很多,详细内容将在后面章节介绍。
4.变量定义和赋值
<变量定义> <数据类型> <标识符> { ',' <标识符> } ';'
<数据类型> char | int | short | long | float | double
<表达式> <标识符> '=' <表达式>
变量定义用于声明每个变量的数据类型,从而确定每个变量占用的存储空间大小。如表1-6所示是上述数据类型占用的字节数量和取值范围。其中,short、long和float类型是不常用的数据类型。
表1-6 常用数据类型的属性特征

续表

5.输入/输出格式
在C程序中,采用流式输入/输出,以换行符作为输入指令。
标准函数getchar和putchar采用非格式化方式,进行字符的输入/输出。
标准函数scanf和printf实现格式化输入/输出的操作,可以使用表1-7所示的格式控制符。
表1-7 常用的格式控制符

6.算术运算符和算术表达式
<表达式> <标识符>
| <常量>
| <表达式> <二元运算符> <表达式>
| <一元运算符> <表达式>
| <表达式> <一元运算符>
常用的二元算术运算符有:+、-、*、/、%。其中,+、-、* 分别代表加、减、乘运算,/代表除法运算,%代表取余运算。表达式中运算符的计算顺序依据运算符的优先级和结合性决定。
对于加(+)、减(-)、乘(*)和除(/)运算,当两个操作数的数据类型相同时,所得结果就为这种数据类型;当两个操作数的数据类型不相同时,C语言自动地将占二进制位数较少的数据类型转换成占二进制位数较多的数据类型。对于取余(%)运算,要求两个操作数必须是整型,其结果也为整型。常用的一元运算符有:++、--,分别代表自增 1、自减 1运算,以及正负号。
7.函数调用表达式
<表达式> <标识符> '(' [<实参表>] ')'
<实参表> <表达式> {',' <表达式>}
函数调用也是一种表达式,需要指定函数名(标识符),以及若干表达式作为实参。调用时,首先计算每个实参的值之后,传递给函数,并且以函数返回值为计算结果,也就是表达式的值。