文档介绍:数学与软件科学学院实验报告
学期:11至12___ 第_1 学期 2011年10 月 17 日
课程名称:程序设计基础教程-C语言专业:2010级5_班
实验编号:04 实验项目:分支结构的程序设计指导教师_
姓名: 学号: 实验成绩:
一、实验目的及要求
(1) 掌握C语言程序设计中逻辑量的表示和运用方法;
(2) 掌握C语言程序设计中条件表达式的值的计算方法及其跟程序执行流程之间的逻辑顺序关系;
(3) 掌握C语言中的4中选择结构语句的执行逻辑及其运用方法。
二、实验内容
1. if 语句的实验。请分析如下语句段的逻辑关系:
int main(void)
{
...
if (nA>1 && nB==0) nX=nX/nA;
if (nA==2 || nX>1) nX=nX+1;
...
return 0;
}
(a) 以算法流程图的形式表述;
(b) 增加输入、输出功能以补充完整该程序段,使之能够运行;
(c) 测试该程序段的各种条件组合下的运行结果。测试数据组如下:
nA nB nX
1 1 1
1 1 2
3 0 1
2 0 4
2 1 1
1 0 2
2 1 2
3 0 2
(d) 分析讨论:
1) 用哪组数据就可以使程序段中每个处理语句都执行一次?为了找出程序中的逻辑错误,应使用什么样的数据进行测试?请上机验证自己的分析结果。
2) 用哪两组数据可以使程序段中的每个分支都至少运行一次?为找出各个分支中的逻辑错误,应选用什么样的数据进行逻辑测试?请上机验证自己的分析结果。
3) 用哪四组数据可以将从起点到终点的各条路径都覆盖一次?为了测试程序在各个不同路径上的错误,应选用什么样的测试数据?请上机验证自己的分析结果。
2. if else语句实验。用if else句型,编写求4个数中最大者的程序,并设计测试用例、记录测试结果;
3. (选做)试用if else if else if ...else实现求4个数中最大者的程序,并做相应测试;
4. 请理清****题5-23的逻辑关系,并上机进行验证。
三、实验步骤()
书P84-4-17
打开TC,输入程序#include<>
int main()
{
int nYY,nWJ,nLJ,nYJ,nWF,nLF,nYF,nN;
clrscr();
printf("YY WJ LJ YJ WF LF YF\n");
for(nYY=0;nYY<=1;nYY++)
for(nWJ=0;nWJ<=10;nWJ++)
for(nLJ=0;nLJ<=10;nLJ++)
for(nYJ=0;nYJ<=10;nYJ++)
for(nWF=0;nWF<=100;nWF++)
for(nLF=0;nLF<=100;nLF++)
for(nYF=0;nYF<=100;nYF++)
if(nYY*100+nWJ*50+nLJ*20+nYJ*10+nWF*5+nLF*2+nYF==100)
printf("%2d%2d%2d%2d%2d%2d%2d%d\n",nYY,nWJ,nLJ,nYJ,nWF,nLF,nYF,nN);
getch();