首页 理论教育 上机实习基础知识|C语言程序设计实践教程

上机实习基础知识|C语言程序设计实践教程

时间:2023-11-01 理论教育 版权反馈
【摘要】:步骤二计算t=0.1时物体的坐标x、y并输出,然后t增加0.1。在学习阶段开发的程序一般较小,只要通过一些简单的试验数据,将运行结果与预期结果进行比较,就可知道程序是否正确。引用库函数要在程序中使用#include命令包含相应的头文件。常用的库函数列于表1-1和表1-2中。表1-1常用数学函数续表表1-2常用字符函数和字符串函数C语言的库函数还有很多,有兴趣的读者可查阅附录1。

上机实习基础知识|C语言程序设计实践教程

1.开发C程序的一般过程

(1)分析问题,确定算法

首先要对问题进行分析,找出合适的算法。所谓算法是指解决一个问题而采取的方法与步骤。解决一个问题的算法往往不是唯一的,要找出效率高而且比较简单的算法,然后将算法用流程图、自然语言等方式表示出来,这是关键的一步。

下面举例说明如何建立模型和确定算法。

在高度为100m的铁塔上平抛一物体,初速度v0=20m/s,求其运动轨迹(以0.1s为时间间隔,直到物体落到地面为止)。

分析:设坐标原点在塔底,物体初始位置是x=0,y=100。物体在时刻t的位置是:

这两个公式就是该问题的数学模型。求出物体运动轨迹的算法是:按以上公式,每隔0.1s计算一组x、y的值,直到y=0为止。

自然语言描述算法:

步骤一 定义变量、赋初值。

步骤二 计算t=0.1时物体的坐标x、y并输出,然后t增加0.1。

步骤三 判断:如果y>0,则重复步骤二,否则结束。

用流程图描述算法:如图1-1所示。

图1-1 求平抛物体运动轨迹流程图

(2)编写程序

按照已确定的算法编写程序称为编码。编码完成后,要进行检查,发现并修改那些由于疏忽大意而造成的错误

(3)上机调试

上机调试包括程序的编辑、编译、连接和运行,用“试验数据”进行测试,发现并排除程序中的错误。有人说“三分编程七分调试”,说明程序调试不仅重要,而且有时工作量也是很大的。

2.程序中的错误类型

程序中的错误可分为两类:语法错误和逻辑错误。

(1)语法错误

语法错误是指违背了C语言语法规则的错误。例如,语句末尾遗漏了分号、关键字拼写错误、参数类型或个数不匹配等。对这类错误,编译系统能够发现并显示出错信息,因此语法错误是不难排除的。需要注意的是:

· 有时系统提示的出错行并没有错误,而错误出现在上一行。

有时提示多条错误信息,实际上可能只有一、两处错误。例如,程序中所使用的变量未定义,编译时就会对含有该变量的所有语句显示出错信息,只要加上变量定义语句,后面的错误就自然排除了。因此,当提示多处错误时,应该从第一条错误开始修改。

(2)逻辑错误

逻辑错误是指程序中没有语法错误,但运行结果不对。这种错误较难发现,需要仔细查找。例如,计算 s=1+2+3+4+…+100,程序段如下:

其中没有语法错误,运行时却出现死循环。原因是循环时语句i++; 不能被执行,所以i的值不变,总是满足条件。循环体应该使用花括号构成复合语句:

还需要注意:程序中虽然没有语法错误和逻辑错误,但是运行时也可能出错。例如,有如下程序段:

运行时,如果为b的值输入0,0做除数则会出错。该程序不能经受各种数据的“考验”,不具有“健壮性”。修改方法是在第2行后加一条if语句,如果b的值等于0,则输出“除数为0”并终止程序的运行。(www.xing528.com)

3.程序测试

程序测试的目的在于发现程序中的错误。对于大型软件,要使用专门的测试技术和方法,要设计测试用例。在学习阶段开发的程序一般较小,只要通过一些简单的试验数据,将运行结果与预期结果进行比较,就可知道程序是否正确。

例如,计算前n个自然数之和的程序:

测试方法:运行程序,先输入3,输出结果为6,与预期结果一致;再运行一次,输入10,输出结果为55,又与预期结果一致,则说明程序正确。

4.程序中常见错误

(1)使用了未定义的变量。例如:

C语言程序中的所有变量必须“先定义、后使用”,定义就是说明变量的类型,系统为其分配相应的存储空间。应在函数体的开头加一条语句:int a, b;

(2)使用变量名时,忽视了大小写字母的区别。例如,定义了变量a,使用时写成A,实际上,它们是两个不同的变量。

(3)在scanf() 函数中,遗漏了取地址运算符&。

例如,把语句scanf("%d,%d", &a, &b); 写成了scanf("%d,%d", a, b);

(4)输入输出数据的类型与所用格式说明符不一致。这类错误编译时不显示出错信息,但运行结果不对,要格外注意。例如:

(5)误把赋值号当作等号使用。例如:

只要b不等于0,赋值表达式a=b的值就不等于0,因此总满足条件。即是说,无论a是否等于b,都输出a equal to b。

(6)忽视了字符与字符串的区别。例如:

(7)不该加分号的地方加了分号。例如:

(8)将最大下标等同于数组元素个数。由于数组元素的最小下标规定为0,所以最大下标等于元素个数减1,而不是元素个数。这类错误编译时不显示出错信息,但运行结果不对,要格外注意。例如:

5.常用库函数

C语言提供了丰富的库函数(或称标准函数)。了解库函数的功能、函数名、参数类型、参数个数及函数值的类型,就可以直接引用库函数。引用库函数要在程序中使用#include命令包含相应的头文件。常用的库函数列于表1-1和表1-2中。

表1-1 常用数学函数 (头文件math.h)

续表

表1-2 常用字符函数和字符串函数

C语言的库函数还有很多,有兴趣的读者可查阅附录1。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈