《C语言程序设计》上机实验指导手册

合集下载

C语言程序设计实验指导书

C语言程序设计实验指导书
(6) 选 中 以 文 件 hello.cpp , 点 击 [ 组 建 ]-[ 编 译 ] ( 此 时 , 你 可 以 在 D:\VC\hello\Debug 下可以找到生成的 hello.obj 文件),然后在点击[组建]-[ 组建] (此时,你可以在 D:\VC\hello\Debug 下可以找到生成的 hello.exe 文件),然后点 击[组建]-[执行](执行的实际是 D:\VC\hello\Debug\hello.exe),如果弹出一个 Console 程序窗口,上面写着 Hello World! Press any key to continue。到目 前为止一个简单的 C 程序工程创建成功。
行号 #include <stdio.h>
1 int main()
2{
3
int x,y,a;
4
scanf("%x,%y",&x,&43;y)/2;
6
printf("The average is %d:\n", a);
7
return 0;
8}

错误在

应改为:
调 试 正 确 后 输入数据
输出结果:
scanf("%f",&x);
7
printf("\n2.4*x-1/2=%f",2.4*x-1.0/2); printf("\nx%%2/5-x=%f",(int)(x)%2/5-x); printf("\n(x-=x*10,x/=10)=%d\n",(x-=x*10,x/=10)); return 0; }
return 0;
}
2、输出任意一个十进制数对应的八进制,十六进制数。

《-C语言程序设计》实验指导书

《-C语言程序设计》实验指导书

《-C语言程序设计》实验指导书实验一:C语言程序结构与运行机制实验目的:1. 了解C语言基本程序结构和运行机制;2. 掌握C语言程序的编译、运行和调试过程;3. 熟悉常用的编程工具,如编译器和集成开发环境。

实验器材:1. 计算机;2. C语言编译器。

实验内容:1. 实验一介绍C语言是一种广泛应用于系统开发、嵌入式设备和科学计算等领域的高级编程语言。

本实验旨在让学生通过实例了解C语言的基本程序结构和运行机制,并掌握使用C语言进行编程的基本方法。

2. 实验环境搭建(1)选择适合的C语言编译器,如GCC、Visual Studio等,并进行安装;(2)配置编译器的环境变量,以便在命令行中能够直接调用编译器;(3)确保编译器的版本和系统的兼容性,以避免出现不必要的问题。

3. 编写第一个C程序(1)打开任意文本编辑器,新建一个以.c为后缀名的文件,如hello.c;(2)在文件中编写以下代码:```C#include <stdio.h>int main() {printf("Hello, C!\n");return 0;}```(3)保存文件,并使用编译器进行编译。

(4)在命令行中转到保存的文件所在的目录,并执行以下命令:```gcc hello.c -o hello```(5)执行编译后的可执行文件:```./hello```(6)观察程序输出结果是否为"Hello, C!"。

4. 理解程序结构(1)程序的第一行`#include <stdio.h>`是一个预处理指令,用于引入标准输入输出库,使得我们可以使用printf等函数。

(2)`int main()`是C程序的主函数,程序从这里开始执行,花括号内的代码是程序的主体部分。

(3)`printf("Hello, C!\n");`是一个输出语句,将字符串"Hello, C!"输出到屏幕上。

《C语言程序设计实验》指导书

《C语言程序设计实验》指导书

《C语言程序设计实验》指导书以下是为大家整理的《c语言程序设计实验》指导书的相关范文,本文关键词为c语言程序设计实验,指导书,c语言程序设计实验,简明版,中北,您可以从右上方搜索框检索更多相关文章,如果您觉得有用,请继续关注我们并推荐给您的好友,您可以在教育文库中查看更多范文。

《c语言程序设计实验》指导书(简明版)中北大学软件学院20XX年10月实验一顺序结构程序设计(2学时)一、实验目的1、熟悉c编译环境、简单c程序结构及书写方式、以及c程序的编辑、编译、连接、运行、调试的步骤;2、掌握c语言的基本数据类型及其输入输出格式,以及输入输出函数的使用方法;3、掌握c语言的算术运算符(特别是自增、自减运算符)、赋值运算符、关系运算符、逻辑运算符、条件运算符、逗号运算符的使用;4、掌握c语言顺序结构程序的执行流程、设计方法,能够根据实际问题灵活使用顺序结构,画出程序的算法流程图,设计出逻辑合理、思路清晰、结果正确的顺序结构程序。

二、实验内容及要求1、实验内容包括8道题目,分为基本内容和选做内容两部分。

要求:(1)基本内容中的实验题目是必须要完成的,选做内容中的实验题目可以根据自己的情况选做或全做(越多越好,适当加分);(2)在实验之前编写出基本内容、选做内容中的所有程序,实验前检查(视未完成情况适当扣分);(3)对于设计型题目,要求画出程序流程图(传统流程图和n-s 图);(4)在上机实验过程中,注意总结和体会上机步骤(编辑、编译、连接、运行、调试、结果分析),注意培养观察、分析和排除编译错误、连接错误和程序逻辑错误的初步能力;(5)上机结束后,应按要求认真书写实验报告(格式见附件)。

2、基本内容(1)[验证型]编辑下列程序,然后进行编译、连接和运行,观察结果,并简要总结简单c程序的结构、书写格式以及上机过程;#includeintmain(){printf(\return0;}(2)[验证型]通过运行下列程序,分析各种格式符的使用方法。

C语言程序设计实验指导书(新编)

C语言程序设计实验指导书(新编)

C语言程序设计实验指导书(新编) C语言程序设计实验指导书XXXC语言程序设计实验指导书前言上机实验的目的和要求一上机实验的目的上机实验的目的,绝不仅仅是为了验证教材和讲课的内容,或者验证自己所编程序正确与否。

研究程序语言,上机实验的目的如下:1加深对讲授内容的理解,尤其是一些语法规定,光靠课堂讲授,既枯燥无味又难以记住,通过多次上机,就能自然、熟练地掌握语法规定。

2了解和熟悉C语言程序开发环境。

熟悉一两种环境(计算机系统的软件和硬件条件),再遇到其他的系统时便会触类旁通,很快学会。

3学会上机调试程序,也就是善于发现程序中的错误,并且能很快地排除这些错误,使程序能够正确地运行。

要真正掌握计算机应用技术,就不仅应当了解和熟悉有关理论和方法,而且要求自己动手实践能力强。

4在做实验时千万不要在程序通过后就认为万事大吉,完成任务了,应当在通过的程序上做一些调试和修改,看看会得到什么结果。

多动脑筋思考,将会对你有很大帮助。

二上机实验前的准备工作1了解所用的计算机体系的性能和利用办法;2复和掌握与本实验有关的教学内容;3准备好上机所用的程序,切忌自己不思考、不编制程序或抄袭别人的程序;4准备好调试和运行时所需的数据。

三上机尝试的步调1调出C语言编译系统,进入C语言工作环境;2输入自己体例好的程序;3搜检输入是否有错,实时改正;4进行编译和连接;5运转程序,阐发成效。

四、实验结束,整理实验报告尝试敷XXX包括以下内容:1上机题目;2程序清单;3运转成效;4对结果的分析和本次获得的经验和体会。

1C语言程序设计实验指导书实验一C语言程序初步数据类型、运算符和表达式一实验目的1熟悉C语言运行环境——XXX Visual C++ 6.0中文版。

2掌握C语言程序的书写格式和C语言程序的结构,初步了解C源程序的特点。

3把握C语言上机步调,了解若何编辑、编译、调试和运转一个C程序的办法。

5掌握不同的类型数据之间赋值的规律。

C语言程序设计上机实验指导书

C语言程序设计上机实验指导书

C语言程序设计上机实验指导书实验基本要求上机实验主要是培养、训练和提高学生的程序设计能力和程序调试能力。

在c语言程序设计的每个实验中,除了对程序设计提出要求之外,对程序的调试方法也提出具体的要求,这样就可以逐步培养学生的静态调试和动态调试能力,以及根据错误信息分析、判断、改正错误的能力。

通过上机,还可以加深对课堂讲授内容的理解、熟悉程序的开发环境、学习计算机系统的操作方法等。

上机实验一般经历上机前的准备(编程)、上机调试运行和实验后的总结三个步骤。

1.上机前的准备根据问题,进行分析,选择适当算法并编写程序。

上机前一定要仔细检查程序(称为静态检查)直到找不到错误(包括语法和逻辑错误)。

分析可能遇到的问题及解决的对策。

准备几组测试程序的数据和预期的正确结果,以便发现程序中可能存在的错误。

上机前没有充分的准备,到上机时临时拼凑一个错误百出的程序,宝贵的上机时间白白浪费了;如果抄写或复制一个别人编写的程序,到头来自己一无所获。

2.上机输入和编辑程序,并调试运行程序首先调用C语言集成开发环境,输入并编辑事先准备好的源程序;然后调用编译程序对源程序进行编译,查找语法错误,若存在语法错误,重新进入编辑环境,改正后再进行编译,直到通过编译,得到目标程序(扩展名为OBJ)。

下一步是调用连接程序,产生可执行程序(扩展名为EXE)。

使用预先准备的测试数据运行程序,观察是否得到预期的正确结果。

若有问题,则仔细调试,排除各种错误,直到得到正确结果。

在调试过程中,要充分利用C语言集成开发环境提供的调试手段和工具,例如单步跟踪、设置断点、监视变量值的变化等。

整个过程应自己独立完成。

不要一点小问题就找老师,学会独立思考,勤于分析,通过自己实践得到的经验用起来更加得心应手。

3.整理上机实验结果,写出实验报告实验结束后,要整理实验结果并认真分析和总结,根据教师要求写出实验报告。

书写报告是整个实验过程的一个重要环节。

通过写报告,可以对整个实验做一个总结,不断积累经验,提高程序设计和调试的能力,同时还可以提高写作能力。

《C语言程序设计》实践教学指导书(v2015)

《C语言程序设计》实践教学指导书(v2015)

图 2 选择“常规”模板类别
3. 设置纸张方向(可选) (1) 选择“设计”选项卡|“页面设置”组|“纸张方向”下拉按钮; (2) 在弹出的下拉列表中选择“横向”命令。
第 2 页 共 4 页
《C 语言程序设计》贯穿课程案例
计算机与网络中心 杨俊生
图 3 使用“基本框图”模板创建 Visio 文档
4. 绘制顶层模块 (1) 选择“形状窗格”中的“矩形”形状,将之拖曳到“绘图窗格”中; (2) 选中所绘矩形,输入文本“学生成绩管理系统” ;设置文本的大小为“24pt” ,字体 为“楷体” ; (3) 适当调整所绘矩形的大小,使之能够容纳下所有文字; (4) 适当调整所绘矩形的位置,使之页面居中。 5. 绘制第二层模块 (1) 选择“形状窗格”中的“矩形”形状,将之拖曳到“绘图窗格”中; (2) 选中所绘矩形,输入文本“创建成绩单” ;设置文本的大小为“24pt” ,字体为“楷 体” ,文字方向为“垂直” ; (3) 适当调整所绘矩形的大小,使之仅能够容纳下一列文字; (4) 选择所绘矩形,按住 Ctrl 不放,通过拖曳鼠标复制 7 个矩形,按照图 1 所示更改 这 7 个矩形形状中的文字分别为 “添加学生” 、 “编辑学生” 、 “删除学生” 、 “浏览 成绩单” 、 “排序成绩单” 、 “统计成绩” ; (5) 将“创建成绩单”矩形形状移动到页面的最左侧,将“统计成绩”矩形形状移动到
第 1 页 共 4 页
使用 Microsoft Visio 2010 绘制“学生成绩管理系统”功能模块图
(二) 绘制如图 1 所示的“学生成绩管理系统”功能模块图 1. 启动 Microsoft Visio 2010 选择“开始”|“所有程序”|“Microsoft Office”|“Microsoft Visio 2010” 命令,启动 Microsoft Visio 2010。 2. 创建空白功能模块图 (1) 单击“文件”选项卡|“新建” ,在“选择模板”窗格中选择|“模板类别”|“常 规”|“基本框图”模板; (2) 单击最右侧窗格中的“创建”按钮。如图 2、3 所示。

《C语言程序设计》上机实验指导手册簿

《C语言程序设计》上机实验指导手册簿

C语言程序设计上机实验指导手册电子与信息工程学院计算机科学系第一部分上机实验的指导思想和要求一、上机实验的目的学习《C语言程序设计》课程不能满足于“懂得了”,满足于了解了语法和能看懂书上的程序,而应当掌握程序设计的全过程,即能独立编写出源程序,独立上机调试程序,独立运行程序和分析结果。

“程序设计”是一门实践性很强的课程,必须十分重视实践环节。

许多实际的知识不是靠听课和看书学到手的,而是通过长时间的实践积累的。

要提倡通过实践去掌握知识的方法。

必须保证有足够的上机实验时间,学习本课程应该至少有30 小时的上机时间,最好能做到与授课时间之比为1:1 。

除了学校规定的上机实验以外,应当提倡学生自己课余抽时间多上机实践。

上机实验的目的,绝不仅是为了验证教材和讲课的内容,或者验证自己所编的程序正确与否。

学习程序设计,上机实验的目的是:(1)加深对讲授内容的理解,尤其是一些语法规定,光靠课堂讲授,既枯燥无味又难以记住,但它们是很重要的,初学者的程序出错往往错在语法上。

通过多次上机,就能自然地、熟练地掌握。

通过上机来掌握语法规则是行之有效的方法。

(2)熟悉所用的计算机系统的操作方法,也就是了解和熟悉C语言程序开发的环境。

一个程序必须在一定的外部环境下才能运行,所谓“环境”,就是指所用的计算机系统的硬件和软件条件,或者说是工作平台。

使用者应该了解为了运行一个C程序需要哪些必要的外部条件(例如硬件配置、软件配置),可以利用哪些系统的功能来帮助自己开发程序。

每一种计算机系统的功能和操作方法不完全相同,但只要熟练掌握一两种计算机系统的使用,再遇到其他系统时便会触类旁通,很快就能学会。

(3)学会上机调试程序。

也就是善于发现程序中的错误,并且能很快地排除这些错误,使程序能正确运行。

经验丰富的人,在编译连接过程中出现“出错信息”时,一般能很快地判断出错误所在,并改正之。

而缺乏经验的人即使在明确的“出错提示”下也往往找不出错误而求助于别人。

c语言程序设计 实验指导书

c语言程序设计 实验指导书

c语言程序设计实验指导书C语言程序设计实验指导书一、引言C语言是一种通用的高级编程语言,广泛应用于计算机科学和软件开发领域。

为了帮助学生更好地理解和掌握C语言的编程技巧,我们编写了本实验指导书。

本指导书旨在引导学生完成一系列的C语言实验,从简单的程序设计入门开始,逐步深入学习C语言的各个方面。

二、实验一:Hello World程序1. 实验目的通过编写一个简单的Hello World程序,学习C语言的基本语法和编程环境的搭建。

2. 实验内容编写一个C程序,在屏幕上输出"Hello World"字样。

3. 实验步骤1) 打开C语言编译器,新建一个源文件。

2) 在源文件中编写C程序,使用printf函数输出"Hello World"。

3) 编译并运行程序,观察输出结果。

4. 实验结果在屏幕上显示出"Hello World"字样。

三、实验二:变量和数据类型1. 实验目的了解C语言中的变量和数据类型的概念,学习如何声明和使用变量。

2. 实验内容编写一个C程序,演示各种数据类型的声明和使用。

3. 实验步骤1) 在源文件中声明各种数据类型的变量,如int、float、char等。

2) 对各种变量进行赋值和运算操作。

3) 使用printf函数输出各种变量的值。

4. 实验结果屏幕上显示出各种变量的值。

四、实验三:控制语句1. 实验目的学习C语言中的控制语句,掌握条件语句和循环语句的用法。

2. 实验内容编写一个C程序,演示条件语句和循环语句的使用。

3. 实验步骤1) 使用if语句判断某个条件是否成立,根据条件的结果执行相应的操作。

2) 使用for循环语句实现某个操作的重复执行。

3) 使用while循环语句实现某个操作的反复执行,直到某个条件不再满足。

4. 实验结果根据条件的不同,程序执行相应的操作,循环语句可以重复执行某个操作。

五、实验四:函数和数组1. 实验目的学习C语言中的函数和数组的概念,掌握函数的定义和调用,以及数组的声明和使用。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

C语言程序设计上机实验指导手册电子与信息工程学院计算机科学系第一部分上机实验的指导思想和要求一、上机实验的目的学习《C语言程序设计》课程不能满足于“懂得了”,满足于了解了语法和能看懂书上的程序,而应当掌握程序设计的全过程,即能独立编写出源程序,独立上机调试程序,独立运行程序和分析结果。

“程序设计”是一门实践性很强的课程,必须十分重视实践环节。

许多实际的知识不是靠听课和看书学到手的,而是通过长时间的实践积累的。

要提倡通过实践去掌握知识的方法。

必须保证有足够的上机实验时间,学习本课程应该至少有30 小时的上机时间,最好能做到与授课时间之比为1:1 。

除了学校规定的上机实验以外,应当提倡学生自己课余抽时间多上机实践。

上机实验的目的,绝不仅是为了验证教材和讲课的内容,或者验证自己所编的程序正确与否。

学习程序设计,上机实验的目的是:(1)加深对讲授内容的理解,尤其是一些语法规定,光靠课堂讲授,既枯燥无味又难以记住,但它们是很重要的,初学者的程序出错往往错在语法上。

通过多次上机,就能自然地、熟练地掌握。

通过上机来掌握语法规则是行之有效的方法。

(2)熟悉所用的计算机系统的操作方法,也就是了解和熟悉C语言程序开发的环境。

一个程序必须在一定的外部环境下才能运行,所谓“环境”,就是指所用的计算机系统的硬件和软件条件,或者说是工作平台。

使用者应该了解为了运行一个C程序需要哪些必要的外部条件(例如硬件配置、软件配置),可以利用哪些系统的功能来帮助自己开发程序。

每一种计算机系统的功能和操作方法不完全相同,但只要熟练掌握一两种计算机系统的使用,再遇到其他系统时便会触类旁通,很快就能学会。

(3)学会上机调试程序。

也就是善于发现程序中的错误,并且能很快地排除这些错误,使程序能正确运行。

经验丰富的人,在编译连接过程中出现“出错信息”时,一般能很快地判断出错误所在,并改正之。

而缺乏经验的人即使在明确的“出错提示”下也往往找不出错误而求助于别人。

要真正掌握计算机应用技术,就不仅应当了解和熟悉有关理论和方法,还要求自己动手实现。

对程序设计来说,则要求会编程序并上机调试通过。

因此调试程序不仅是得到正确程序的一种手段,而且它本身就是程序设计课程的一个重要的内容和基本要求,应给予充分的重视。

调试程序固然可以借鉴他人的现成经验,但更重要的是通过自己的直接实践来累积经验,而且有些经验是只能“会意”难以“言传”。

别人的经验不能代替自己的经验。

调试程序的能力是每个程序设计人员应当掌握的一项基本功。

因此,在做实验时千万不要在程序通过后就认为万事大吉、完成任务了,而应当在己通过的程序基础上作一些改动(例如修改一些参数、增加程序的一些功能、改变某些语句、改变输入数据的方法等),再进行编译、连接和运行。

甚至于“自设障碍”,即把正确的程序改为有错的(例如语句漏写分号;用scanf函数输入变量时,漏写“&”符号;比较符“= =”错写为赋值号“=”;使数组下标出界;使整数溢出等),观察和分析所出现的情况。

这样的学习才会有真正的收获,是灵活主动的学习而不是呆板被动的学习。

二、上机实验前的准备工作在上机实验前应事先做好准备工作,以提高上机实验的效率,准备工作至少应包括:(1)了解所用的计算机系统(包括C编译系统和工作平台)的性能和使用方法;(2)复习和掌握与本实验有关的教学内容;(3)准备好上机所需的程序。

由于计算机实验室给每个学生安排的时间是有限的,要珍惜时间,充分利用。

应当在上机前按指定的题目编写好程序。

手编程序应书写整齐,并经人工检查无误后才能上机,以提高上机效率。

初学者切忌不编程序或抄别人程序去上机,应从一开始就养成严谨的科学作风;(4)对运行中可能出现的问题事先作出估计,对程序中自己有疑问的地方,应作出记号,以便在上机时给予注意;(5)准备好调试和运行时所需的数据。

三、上机实验的步骤上机实验时一人一组,独立上机,复杂分组进行,相互讨论完成任务。

上机过程中出现的问题,除了是系统的问题以外,一般应自己独立处理,不要轻易举手问教师。

尤其对“出错信息”,应善于自己分析判断。

这是学习调试程序的良好机会。

上机实验一般应包括以下几个步骤:(1)进入C工作环境(Dev-C++ 5.8.3)。

(2)输入自己所编好的程序。

(3)检查一遍已输入的程序是否有错(包括输入时打错的和编程中的错误),如发现有错,及时改正。

(4)进行编译和连接。

如果在编译和连接过程中发现错误,屏幕上会出现“出错信息”,根据提示找到出错位置和原因,加以改正。

再进行编译……,如此反复直到顺利通过编译和连接为止。

(5)运行程序并分析运行结果是否合理和正确。

在运行时要注意当输入不同数据时所得到的结果是否正确。

(6)输出程序清单和运行结果。

四、实验验收(1)现场验收,学生讲解、提问、答辩的方式,通过三方面的表现给出实验成绩;(2)提交程序清单(电子版)。

第二部分关于程序的调试和测试一、程序错误的类型为了帮助各位同学调试程序和分析程序,下面简单介绍程序出错的种类。

(1)语法错误即不符合C语言的语法规定,例如将main 错写为naim ,括号不匹配,语句最后漏了分号等,这些都会在编译时被发现并指出。

这些都属于“致命错误”,不改正是不能通过编译的。

对一些在语法上有轻微毛病但不影响程序运行的错误(如定义了变量但始终未使用),编译时会发出“警告”,虽然程序能通过编译,但不应当使程序“带病工作”,应该将程序中所有导致“错误(error)”和“警告(warning)”的因素都消除,再使程序投入运行。

(2)逻辑错误这是指程序无语法错误,也能正常运行,但是结果不对。

例如求s=l+2+3+…+100,有人写出以下语句:for(s=0, i=1; i<100; i++)s=s + i;语法没有错,但求出的结果是l+2+3+…+99之和,而不是l+2+3+…+100之和,原因是少执行了一次循环。

这类错误可能是设计算法时的错误,也可能是算法正确而在编写程序时出现疏忽所致。

这种错误计算机是无法检查出来的。

如果是算法有错,则应先修改算法,再改程序。

如果是算法正确而程序写得不对,则直接修改程序。

(3)运行错误有时程序既无语法错误,又无逻辑错误,但程序不能正常运行或结果不对。

多数情况是数据不对,包括数据木身不合适以及数据类型不匹配。

如有以下程序:void main ( ){ int a, b, c ;scanf(“%d, %d”, &a, &b);c=a/b;printf(“%d\n”,c);}当输入的b为非零值时,运行无问题。

当输入的b为零时,运行时出现“溢出(overflow)”的错误。

如果在执行上面的scanf语句时输入456.78 34.56,则输出c的值为2,显然是不对的。

这是由一于输入的数据类型与输入格式符%d不匹配而引起的。

二、程序的测试程序调试的任务是排除程序中的错误,使程序能顺利地运行并得到预期的效果。

程序的调试阶段不仅要发现和消除语法上的错误,还要发现和消除逻辑错误和运行错误。

除了可以利用编译时提示的“出错信息”来发现和改正语法错误外,还可以通过程序的测试来发现逻辑错误和运行错误。

程序的测试的任务是尽力寻找程序中可能存在的错误。

在测试时要设想到程序运行时的各种情况,测试在各种情况下的运行结果是否正确。

程序测试是程序调试的一个组成部分。

有时程序在某些情况下能正常运行,而在另外一些情况下不能正常运行或得不到正确的结果,因此,一个程序即使通过编译并正常运行而且结果正确,还不能认为程序没有问题了。

要考虑是否在任何情况下都能正常运行并且得到正确的结果。

测试的任务就是要找出那些不能正常运行的情况和原因。

下而通过一个典型的和容易理解的例子来说明测试的概念。

求一元二次方程ax2+bx+c=0的根。

有人根据求根公式x1, 2=(-b±sqrt(b2-4ac))/2a编写出以下程序:# include <stdio.h># include<math.h>void main( ){float a, b, c, disc, x1, x2;scanf(“%f, %f, %f”, &a, &b, &c);disc=b*b-4*a*c;x1=(-b + sqrt(disc))/(2*a);x2=(-b - sqrt(disc))/(2*a);printf(”x1=%6.2f, x2=%6.2f\n”, x1, x2);}当输入a,b,c的值为1,-2,-15 时,输出xl 的值为5,x2的值为-3。

结果是正确无误的。

但是若输入a,b,c的值为3,2,4 时,屏幕上出现了出错信息,程序停止运行,原因是此时b2-4ac小于0,出现了对负数求平方根的运算,故出错。

因此,此程序只适用b2-4ac≥0的情况。

我们不能说上面的程序是错的,而只能说程序对可能出现的情况“考虑不周”,所以不能保证在任何情况下都是正确的。

使用这个程序必须满足一定的前提(b2-4ac≥0),这样,就给使用程序的人带来不便。

人们在输入数据前,必须先算一下,看b2-4ac是否大于或等于0。

一个程序应能适应各种不同的情况,并且都能正常运行并得到相应的结果。

下面分析一下求方程ax2+bx+c=0的根,有几种情况:(1)a≠0时①b2-4ac>0 有两个不等的实根:x1, 2=(-b±sqrt(b2-4ac))/2a②b2-4ac=0 有两个相等的实根:x1= x 2=-b/2a③b2-4ac<0 有两个不等的共轭复根:x1, 2=(-b±sqrt(b2-4ac)i)/2a(2)a=0时,方程就变成一元一次的线性方程:bx+c=0①当b≠0时,x=-c/b②当b = 0时,方程变为0x+c=0当c = 0时,x可以为任何值;当c≠0时,x无解。

综合起来,共有6种情况:①a≠0,b2-4ac>0②a≠0,b2-4ac=0③a≠0,b2-4ac<0④a=0,b≠0⑤a=0,b= 0,c = 0⑥a=0,b= 0,c≠0应当分别测试程序在以上6 种情况下的运行情况,观察它们是否符合要求。

为此,应准备6 组数据。

用这6 组数据去测试程序的“健壮性”。

在使用上面这个程序时,显然只有满足①②情况的数据才能使程序正确运行,而输入满足③~⑥情况的数据时,程序出错。

这说明程序不“健壮”。

为此,应当修改程序,使之能适应以上6 种情况。

可将程序改为:#include<stdio.h>#include<math>void main( ){ float a, b, c, disc, x1, x2, p, q;printf("input a, b, c: ");scanf(“%f, %f, %f”, &a, &b, &c);if(a= =0)if(b= =0)if(c= =0)printf("It is trivial.\n);elseprintf("It is impossible.\n);else{ printf("It has one solution:\n);pirntf("x=%6.2f\n",-c/b);}else{ disc= b*b-4*a*c;if(disc>=0)if(disc>0){printf("It has two real solutions:\n");x1=(-b+sqrt(disc))/(2*a);x2=(-b-sqrt(disc))/(2*a);printf(”x1=%6.2f, x2=%6.2f\n”, x1, x2);}else{printf("It has two same real solutions:\n");printf("x1=x2=%6.2f\n",-b/(2*a));}else{pritnf("It has two complex solutions:\n");p=-b/(2*a);q=sqrt(-disc)/(2*a);printf("x1=%6.2f+%6.2fi, x2=%6.2f - %6.2fi\n", p, q, p, q);}}}为了测试程序的“健壮性”,我们准备了6组数据:①3,4,1 ②1,2,1 ③4,2,1 ④0,3,4 ⑤0,0,0 ⑥0,0,5分别用这6组数据作为输入的a,b,c的值,得到以下的运行结果:①input a, b, c: 3 4 1It has two real solutions:x1=-0.33, x2= -1.00②input a, b, c: 1 2 1It has two same real solutions:x1=x2= -1.00③input a, b, c: 4 2 1It has two complex solutions:x1=-0.25+0.43i, x2=-0.25-0.43i④input a, b, c: 0 3 4It has one solutions:x1=-1.33⑤input a, b, c: 0 0 0It is trivial.⑥input a, b, c: 0 0 5It is impossible.经过测试,可以看到程序对任何输入的数据都能正常运行并得到正确的结果。

相关文档
最新文档