第一部分 C语言程序设计同步训练

第1章 程序设计概述

1.1 要点难点阐述

1.程序设计的过程

(1)任务分析

任务分析即弄清楚任务中数据与数据之间的逻辑关系、具体的操作要求(如需要输入哪些数据,要对数据进行哪些处理,要求输出哪些数据等),也就是弄清楚要计算机“做什么”。

(2)算法设计

算法设计是设计解决问题的方法和步骤,对问题处理过程进行细化,即明确要计算机“怎么做”。

(3)程序编制

首先编码,即选择一种程序设计语言,根据算法写出源程序;然后编辑,即将编写好的源程序通过编辑器输入到计算机内,并以纯文本文件的形式保存。

(4)调试运行

计算机不能直接执行源程序,需通过编译和连接生成计算机能够执行的可执行文件。调试运行过程如下:

①编译:将源程序翻译成目标程序,翻译时编译器对源程序进行语法检查,给出编译信息。若有语法错误,通过编辑器修改,再编译直到编译成功,生成目标程序。

②连接:将目标程序和程序中所需的目标程序模块(如调用的标准函数、执行的输入/输出模块等)连接后生成可执行文件。

③运行并分析结果:如需输入数据,应设计能涵盖各种情况的测试数据,然后运行程序,检查结果是否符合问题要求,是否正确。即使程序能正常运行并得到了运行结果,也有可能存在逻辑错误,而计算机是无法检查出这些错误的。若存在逻辑错误,如果是算法有错,则应先修改算法,再修改程序;如果算法正确而程序写得不对,则直接修改程序。

(5)编写程序文档

程序文档就是程序的使用说明书和技术说明书,它记录了程序设计的全过程。程序文档对于开发、维护时间较长的软件来说至关重要,尤其是对软件进行二次开发时更离不开程序文档。

2.数据结构与算法

(1)数据结构

数据结构包括三个方面的内容:

①数据的逻辑结构:描述数据与数据之间的逻辑关系。

②数据的存储结构:描述数据和数据之间的关系在计算机中存储的方式。

③数据的运算集合:对数据进行的所有操作(如输入、查找、更新、排序、输出等)。

确定了数据的逻辑结构,就明确了数据运算的集合。确定了如何存储数据,就可以设计算法了。

(2)算法

算法是为解决一个问题而采取的方法和步骤。算法定义了一个操作序列,描述怎样从给定的数据经过有限步骤的处理后产生所求的输出结果。算法一般包括3个部分:

①初始化(包括输入原始数据和为数据处理所做的准备)。

②数据处理(实现具体的功能)。

③输出处理结果。

描述算法有多种方法,常用的有流程图和N-S图。

3.结构化程序设计方法

结构化程序设计也称面向过程的程序设计,如C语言就是结构化的程序设计语言。

结构化程序设计方法的基本思想是把一个复杂的问题分解成若干个功能独立的模块,分而治之。具体地说就是:

①在软件设计和实现的过程中,采用自顶向下、逐步细化的模块化设计原则。

②在代码编写时,每一个模块内可以采用3种基本结构。

上述3种基本结构即顺序结构、选择结构和循环结构。

①顺序结构:按顺序依次执行。

②选择结构(又称分支结构):根据条件判断,选择某分支执行。

③循环结构:只要循环条件成立,就重复执行一组语句(这组语句通常称为循环体)。循环结构分为两种类型。

·当型循环(先判断):当循环条件为真时重复执行循环体,为假时循环结束。

·直到型循环(后判断):重复执行循环体,直到循环条件为假时,循环结束。

4.C语言概述

(1)C语言程序的结构

①C语言程序是由函数组成的,函数是C语言程序的基本单位。C语言中有3种函数:main()函数、系统提供的库函数、用户自定义的函数。

②一个函数由两部分组成:

·函数首部:包括函数类型、函数名、函数形式参数及类型说明等。

·函数体:即函数首部下面最外层大括号内的部分。函数体又可以分为声明部分和执行部分。

③一个C语言的源程序有且只有一个main()函数,有若干个(包括零个)其他函数。

④main()函数的位置没有限制,可以位于程序的任何地方,但是C程序总是从main()函数开始执行,并且结束于main()函数。

⑤C语言程序书写格式自由。一行可以写多个语句,一个语句也可以写在多行上。用分号“;”标识语句结束。

⑥C语言源程序中可以在任何可以插入空格的地方插入注释,格式为:

/*注释内容*/

注释内容可以是中文或英文,也可以是任何可显示的符号。

⑦C语言中没有输入和输出语句。C语言程序中的输入和输出操作是通过调用库函数scanf()、printf()和其他输入/输出函数来完成的。

(2)C语言的标识符

标识符是一个作为名字的字符序列,用来标识变量名、类型名、数组名、函数名和文件名等。C语言的标识符可分为用户标识符、保留字和预定义标识符3类。

①用户标识符:就是程序设计者根据编程需要自己定义的名字,用来作为变量名、符号常量名、数组名、函数名、类型名和文件名等。

标识符命名规则:可以是单个字母;也可以由字母、数字和下画线组成,但必须以字母或下画线开头。

注意:在C语言中,大小写字母是不同的字符。例如,SUM、Sum、sum是3个不同的标识符。

②保留字(又称关键字):C语言专门用来描述类型和语句的标识符,共有32个。

注意:在C语言中,每个保留字都用小写英文字母表示,在C语言中各自代表固定的含义,不允许作为用户标识符使用。

③预定义标识符:除了上述保留字外,还有一类具有特殊意义的标识符,它们被用作编译预处理命令或库函数的名字,如define、include、scanf、printf等。这类标识符称为预定义标识符。最好不要用它们作为用户标识符。

1.2 例题分析

【例1.1】 下列选项中不是结构化程序基本结构的是。

A.顺序结构   B.跳转分支结构   C.选择结构   D.循环结构

解题知识点:结构化程序设计方法。

解:答案为B。本题的解题要点是:结构化程序设计方法中的三种基本结构。

【例1.2】 下面每组3个标识符,可以用做C语言用户标识符的一组是。

A.void word FOR   B.a1_b1_123IF

C.Case -abc xyz   D.case5Liti2ab

解题知识点:C语言的标识符。

解:答案为B。本题的解题要点是:C语言的标识符命名规则,即可以是单个字母,也可以由字母、数字和下画线组成,但必须是以字母或下画线开头,用户标识符不能是C语言的关键字。选项A中void是C语言的关键字不可以,选项C中第二个有减号不可以,选项D中第三个以数字开头不可以。

【例1.3】 下列选项中,不是C语言提供的合法关键字的是。

A.switch   B.default   C.Case   D.if

解题知识点:C语言的关键字。

解:答案为C。本题的解题要点是:C语言的关键字都用小写英文字母表示。

1.3 同步练习

一、选择题

1.编辑程序就是_____。

A.调试程序   B.建立并修改源程序文件

C.将源程序变成目标程序   D.命令计算机执行程序

2.C语言程序的基本单位是_____。

A.函数   B.语句   C.字符   D.程序行

3.在一个源程序中,main()函数的位置_____。

A.必须在最前面   B.可以在程序的任何位置

C.必须在最后面   D.必须在系统提供的库函数调用之后

4.系统默认的C语言源程序的扩展名是_____。

A..exe   B..c   C..obj   D..doc

5.C语言用标志语句结束_____。

A.逗号   B.分号   C.句号   D.冒号

6.下面可以用作C语言用户标识符的一组标识符是_____。

A.void word FOR   B.a1_b1_123 IF

C.Case-abc xyz   D.case5 liti2ab

7.下面的标识符中,不合法的用户标识符为_____。

A.Pad   B._intC.   C.AR   D.a#b

8.下面的标识符中,合法的用户标识符为_____。

A.day1   B.long   C.3AB   D.a+b

二、填空题

1.软件包括程序和_____。

2.程序的错误一般分为两种:(1)(2),前者编译器可以发现,后者编译器无法发现。

3.C语言程序是由函数构成的,其中_____main()函数。

4.C语言程序的执行总是由_____函数开始,并且在_____函数中结束。

5.C语言程序的注释可以出现在程序中_____。

6.计算机不能直接执行C语言的源程序,必须经过(1)(2),形成可执行文件。

1.4 参考答案

一、选择题

1.B  2.A  3.B  4.B  5.B  6.B  7.D  8.A

二、填空题

1.程序文档  2.(1)语法错误 (2)逻辑错误  3.有且只有一个

4.main(),main()  5.任何空格可以出现的位置  6.(1)编译 (2)连接