黑盒测试是指:系统后台会准备若干组输入数据,然后让提交的程序去运行这些数据,如果输出的结果与正确答案完全相同(字符串意义上的比较),那么就称通过了这道题的黑盒测试,否则会根据错误类型而返回不同的结果。其中根据黑盒测试是否对每组测试数据都单独测试或是一次性测试所有测试数据,又可以分为单点测试和多点测试。
单点测试
对单点测试来说,系统会判断每组数据的输出结果是否正确。后台会多次运行代码来测试不同的数据。
#include<stdio.h>
int main(){
int a,b;
scanf("%d%d",&a,&b);
printf("%d\n",a+b);
return 0;
}
//以a+b为例,当输入多组数据时,后台只运行第一组数据。
多点测试
多点测试要求程序能一次运行所有数据,并要求所有输出结果都必须完全正确。(后台只会运行代码一次来测试不同的数库,即代码需要能够处理所有数据输入)。
对多点测试来说,由于要求程序能运行所有数据,因此必须保证程序有办法反复执行代码的核心部分,这里用到了循环。题目一般会有三种输入格式,需要采用不同的输入方式。
三种输入类型:
(1)while…EOF型
题目没有给定输入的结束条件,默认读取到文件的末尾。scanf函数平时可以直接作为一条语句使用,但它也是有返回值的,scanf函数的返回值为其成功读入的参数个数。读取失败时函数返回-1,C语言中使用EOF来代表-1.(End of file)
while(scanf("%d%d",&a,&b)!=EOF){
...
}
#include<stdio.h>
int main(){
int