c语言分段函数y=,软件测试——C语言计算Y的值,Y为分段函数

12f8a949c7a164eb8ca27db5af313f91.png

请修正程序中的错误,并运行结果:输入4之后,结果是什么?

程序如下:

\*该文件完成后以st_b2.c的文件名保存在考生文件夹下*\

#include

main()

{

float y;

int m;

printf(“请输入0~5之间的数:”);

scanf(“%f”,&x);

m=floor(x);

switch(m)

{

case 0:y=0;break;

case 1:y=

case 2:y=2*cos(x)-1;break;

case 3:y=

case 4:y=log10(x-2*x);break;

default: printf(“数据输入错误!\n”);

}

printf(“y=%d\n”,y);

}

一、源代码的错误

(1)main() //没有返回值类型

(2)float y;  //变量y没有初值

(3)scanf(“%f”,&x);  //变量x没有定义,应为double x

(4)scanf(“%f”,&x);  //变量x必须为double类型,应为%lf

(5)m=floor(x) ;  //缺少#include头文件

(6)case 1:y=  //语法错误,代码不完整

(7)case 2:y=2*cos(x)-1;break;  //公式不匹配错误,代码编写错误

(8)case 3:y=  //语法错误,代码不完整

(9)case 4:y=log10(x-2*x);break;  //公式不正确,log10和log是不同的

(10)printf(“y=%d\n”,y);  //输入数据类型错误

(11)闪退问题 //使用#include和system("pause");

二、完整代码

#include "stdafx.h"

#include

#include

#include

void main()

{

float y=-1;

int m;

double x;  //floor(x)中实参必须为double类型

printf("请输入0~5之间的数:");

scanf("%lf",&x);

m=floor(x);  //floor(x)返回不大于x的最大整数值(返回值为浮点型)

switch(m)

{

case 0:y=0;break;

case 1:y=3*x+5;break;

case 2:y=2*sin(x-1);break;

case 3:y=log(1+pow(x,2));break;  // ln(x) 在C中是log(x)

case 4:y=log(pow(x,2)-2*x);break;  //log10()与log()不同

default: printf("数据输入错误!\n");

}

if(y!=-1)

{

printf("y=%lf\n",y);

}

system("pause");

}

三、测试用例

序号                           输入情况                                    输入数据 输出

(1)                        输入非数字字符                          abc测试            数据输入错误!

(2)                         输入边界值 -1                                  -1                   数据输入错误!

(3)                         输入边界值 0 0 y=0.000000

(4)                         输入边界值 5                           5                         数据输入错误!

(5)                         输入边界值4.5                           4.5 y=2.420368

(6)                         输入1-5之间的值 3.2                 2 y=2.430838

(7)                        题目要求测试数据4                   4                             y=2.079442

四、运行结果

1输入非数字字符

47168e476b232c77cc3a7949dee86699.png

2输入边界值-1

2bb93260ed7e823e284c2de1729c2138.png

3输入边界值0

73eec6c213fe125cf270ade0d9756fa8.png

4输入边界值5

d89094947dd40190e7800979b75e3caf.png

5.输入边界值4.5

a98ab7776f20d555bf17df5ea1495f2f.png

6.输入1-5之间的值3.22

cc4f25abb241729ebb2cd0a8cdaa8375.png

7.题目要求测试数据4

76ba146f64744d3d6a492be4e2142d4b.png

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值