|
⑴ 阅读以下C程序代码,该程序对二维数组中的每一行进行排序,行与行之间不排序。
#include "iostream.h"
const int N=3;
void sort (int iArray[N][N])
{ int iRow,iCol,iColy,iMin,iMinAdd,iTemp;
for(iRow=0;iRow<N;iRow++)
{ //对每行进行排序
for(iCol=0;iCol<N;iCol++)
{ iMin=iArray[iRow][iCol];
//在当前行中,从当前元素开始往后找最小的元素
for (iColy=iCol+1;iColy<N;iColy++)
{ if(iArray[iRow][iColy]<iMin)
{ iMin=iArray[iRow][iColy];
iMinAdd=iColy;
}
}
//在当前行中,从当前元素开始往后找最小的元素
iTemp=iArray[iRow][iCol];
iArray[iRow][iCol]=iMin;
iArray[iRow][iMinAdd]=iTemp;
}
//对每行进行排序
}
}
int main(int argc, char* argv[])
{ int A[N][N];
int i,j;
cout<<"请输入"<<N*N<<"个整数:"<<endl;
for (i=0;i<N;i++)
{ for(j=0;j<N;j++)
{ cin>>A[i][j];}
}
cout<<"对每行排序前的数组为:"<<endl;
for (i=0;i<N;i++)
{ for(j=0;j<N;j++)
{ cout<<A[i][j]<<" ";}
cout<<endl;
}
sort(A);
cout<<"对每行排序后的数组为:"<<endl;
for (i=0;i<N;i++)
{ for(j=0;j<N;j++)
{ cout<<A[i][j]<<" ";}
cout<<endl;
}
return 0;
}
⑵ 人工分析该程序分别在输入数据9,8,7,6,5,4,3,2,1和1,2,3,4,5,6,7,8,9的情况下,代码的覆盖情况;
⑶ 参照《Rational PureCoverage使用说明》中的操作步骤,在Rational PureCoverage中运行该程序,输入9个数据为:9,8,7,6,5,4,3,2,1;在该输入数据下,分析Rational PureCoverage输出的代码覆盖率检测报告;
⑷ 重新在Rational PureCoverage中运行该程序,输入的9个数据为:1,2,3,4,5,6,7,8,9;在该输入数据下,分析Rational PureCoverage输出的代码覆盖率检测报告;
⑸ 复习Rational Purify内容,用Rational Purify软件测试该程序运行时与内存有关的错误。根据测试结果,完善以上程序。完善程序后再输入不同的测试用例,对其做完整性测试;
3、分析上述实验中,不同测试用例对代码的覆盖情况;
4、分析上述Rational PureCoverage输出的代码覆盖率测试报告; |
|