下列给定程序中,函数fun()的功能是:根据输人的三条边长(整形),判断能否构成三角形;构成的是等边三角形还是等腰三角形。若能构成等边三角形函数,返回3;若能构成等腰三角形函数,返回2;若构成=三角形函数,返回l

题目

下列给定程序中,函数fun()的功能是:根据输人的三条边长(整形),判断能否构成三角形;构成的是等边三角形还是等腰三角形。若能构成等边三角形函数,返回3;若能构成等腰三角形函数,返回2;若构成=三角形函数,返回l;若不能构成三角形函数返回0。 请修改函数fun()中的错误,得出正确的结果。 注意:不要改动main()函数,不能增行或减行,也不能更改程序的结构。 试题程序:

参考答案和解析
正确答案:
(1)错误:return1;
正确:return3;
(2)错误:return3;
正确:return1;
【解析】本题利用if语句判断三条边的关系,根据判断的结果,返回题干中要求的值。
(1)第一个标识下的语句“if(x==y&&y==z)”说明x,y,z三个值相等,即等边三角形,所以应该返回3,将“1”改成“3”。
(2)第二个标识下的else语句应该是除了等边及等腰三角形之外的三角形,所以应该返回1,应将“3”改成“1”。
如果没有搜索结果或未解决您的问题,请直接 联系老师 获取答案。
相似问题和答案

第1题:

10、某程序规定:“输入三个整数作为三边的边长构成三角形。当此三角形为一般三角形、等腰三角形、等边三角形时,分别作计算„” 用等价类划分方法对该程序构成三角形部分进行测试用例设计。下列哪些等价类划分是合适的 。

A.整数

B.函数

C.负数

D.0


A

第2题:

某程序规定:“输入三个整数作为三边的边长构成三角形。当此三角形为一般三角形、等腰三角形、等边三角形时,分别作计算” 用等价类划分方法对该程序构成三角形部分进行测试用例设计。下列哪些等价类划分是合适的。()

A.0

B.函数

C.整数

D.负数


用a,b,c表示输入的3个整数;为了节约变量,把它们重新排列后,仍用a,b,c表示,并使a≥b≥c.具体操作步骤如下: 第一步;输出3个整数a,b,c. 第二步:将a与b比较,并把小者赋给b,大者赋给a. 第三步:将a与c比较,并把小者赋给c,大者赋给a,此时a已是三者中最大的. 第四步:将b与c比较,并把小者赋给c,大者赋给b,此时a,b,c已按从大到小的顺序排列好. 第五步:按顺序输出a,b,c. 程序: INPUT“a,b,c=”;a,b,c IF b>a THEN t=a a=b b=t END IF IF c>a THEN t=a a=c c=t END IF IF c>b THEN t=b b=c c=t END IF PRINT a,b,c END.

第3题:

在三角形计算中,要求三角型的三个边长:A、B 和C。当三边不可能构成三角形时提示错误,可构成三角形时计算三角形周长。若是等腰三角形打印“等腰三角形”,若是等边三角形,则提示“等边三角形”。给出程序伪代码、控制流程图、找出基本测试路径。


正确答案:
1.Programtriangle22.Dima,b,cAsInteger3.DimIsATriangleAsBoolean4.Output(“Enter3integerswhicharesidesofatriangle”)5.Input(a,b,c)6.Output(“SideAis”,a)7.Output(“SideBis”,b)8.Output(“SideCis”,c)9.If(a<b+c)AND(b<a+c)AND(c<a+b)10.ThenIsATriangle=True11.ElseIsATriangle=False12.EndIf13.IfIsATrangle14.Thenif(a=b)AND(b=c)15.ThenOutput(“Equilateral”)16.ElseIf(a<>b)AND(a<>c)AND(b<>c)17.ThenOutput(“Scalence”)18.ElseOutput(“Isosecles”)19.EndIf20.EndIf21.ElseOutput(“NOTaTriangle”)22.EndIf23.Endtriangle2圈复杂度是5。基本路径(略)。

第4题:

编写一个三角形判定函数,输入三角型的三个边长:A、B 和C。当三边不可能构成三角 形时提示错误,可构成三角形时计算三角形周长。若是等腰三角形打印“等腰三角形”,若 是等边三角形,则提示“等边三角形”。 (1)请写出弱一般、强一般、弱健壮等价类测试用例 (2)请写出强健壮等价类的测试用例个数 要求写出分析过程


正确答案:R1={:等边三角形} 有效类{三边相等},无效类{(三边相等,都为负)} R2={:等腰三角形} 有效类{二边相等} 无效类{(二边相等,存在边为负),(二边相等,不构成三角形)} R3={: 不等边三角形} 有效类{三边不相等} 无效类{(三边不相等,不构成三角形), (三边不相等,存在边为负)} 弱一般与强一般等价类测试用例: 测试用例 a b c 有效等价类 W1 5 5 5 等边三角形 W2 2 2 3 等腰三角形 W3 3 4 5 不等边三角形 弱健壮等价类测试用例: 测试用例 a b c 有效等价类 WR1 -1 -1 -1 R1 WR2 5 -1 5 R2 WR3 5 100 5 R2 WR4 100 5 10 R3 WR5 5 -1 10 R3 W1 5 5 5 等边三角形 W2 2 2 3 等腰三角形 W3 3 4 5 不等边三角形 强健壮等价类测试用例个数:18个

第5题:

编写一个三角形判定函数,输入三角型的三个边长:A、B 和C。当三边不可能构成三角 形时提示错误,可构成三角形时计算三角形周长。若是等腰三角形打印“等腰三角形”,若 是等边三角形,则提示“等边三角形”。 请根据决策表法设计测试用例。


正确答案:

第6题:

给定程序MODll.C中函数fun的功能是:根据输入的三个边长(整型值),判断能否构成三角形:构成的是等边三角形,还是等腰三角形。若能构成等边三角形函数返回3,若能构成等腰三角形函数返回2,若能构成一般三角形函数返回1,若不能构成三角形函数返回0。

请改正函数fun中指定部位的错误,使它能得出正确的结果。

注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!


正确答案:(1)int fun(int aint bint c) (2)else return 1;
(1)int fun(int a,int b,int c) (2)else return 1; 解析:本题中函数的功能是判断能否构成三角形;构成的是等边三角形,还是等腰三角形,利用if语句判断三边值之间的关系,然后根据判断结果,返回题干中要求的值。
构成三角形的条件是任意两边之和大于第三边,等腰三角形的条件是在构成三角形的基础上还需要两条边相等,等边三角形是三条边均相等。

第7题:

下列给定程序中,函数fun()的功能是:根据输入的3个边长(整型值),判断能否构成三角形:若能构成等边三角形,则返回3,若是等腰三角形,则返回2,若能构成三角形则返回1,若不能,则返回0。

请改正程序中的错误,使它能得出正确的结果。

注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。

试题程序:

include <math. h>

int fun(int a, int b, int c)

{ if (a+b>c&&b+c>a&&a+c>b)

{ if (a==b&&b==c)

/*************found**************/

return 1;

else if(a==b|| b==c||a==c)

return 2;

/*************found**************/

else return 3;

}

else return 0;

}

main ( )

{ int a,b, c, shape;

printf("\nInput a,b,c: ");

scanf ("%d%d%d", &a, &b, &c);

printf ("\na=%d, b=%d, c=%d\n",a,b,c);

shape=fun (a,b, c);

printf ("\n\nThe shape : %d\n", shape);

}


正确答案:(1)错误:return 1; 正确:return 3; (2)错误:return 3; 正确:return 1;
(1)错误:return 1; 正确:return 3; (2)错误:return 3; 正确:return 1; 解析:该题只要理解了if语句中的条件,并能读懂题目定义就可轻松解决,函数返回值搭配错误,是一个简单的数学逻辑问题。

第8题:

下列给定程序中,函数proc的功能是:根据输入的3个边长(整型值),判断能否构成三角形:若能构成等边三角形,则返回3;若是等腰三角形,则返回2;若能构成三角形则返回 1;若不能,则返回0。 例如,输入3个边长为3,4,5,实际输入时,数与数之间以Enter键分隔而不是逗号。请修改程序中的错误,使它能得出正确的结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。 试题程序: include<stdio.h> include<math.h> int proc(int a,int b,int c) { if(a+b>c&&b+c>aa+c>b) { if(a= =b&&b= =c) //****found**** return 1; else if(a= =b||b= =c||a= =c) return 2; //****found**** else return 3; } else return 0; } void main { int a,b,C,shape; printf("\nlnput a,b,C:"); scanf("%d%d%d",&a,&b,&c); printf("\na=%d,b=%d,c=%d\n",a,b,c); shape=proc(a,b,c); printf("\n\nThe shape:%d\n",shape); }


正确答案:
(1)错误:return l;
正确:return 3;
(2)错误:return 3;
正确:return l;
【解析】三条边都相等的三角形为等边三角形,按题目中要求,等边三角形返回3,若不是等边三角形也不是等腰三角形则返回l,因此,“return l;”应改为“return 3;”;“return 3;”应改为“return l;”。

第9题:

下列给定程序中,函数proc的功能是:根据输入的:个边长(整型值),判断能否构成三角形:若能构成等边三角形,则返回3;若是等腰三角形,则返回2;若能构成三角形则返回l;若不能,则返回0。 例如,输入3个边长为3,4,5,实际输入时,数与数之间以Enter键分隔而不是逗号。 请修改程序中的错误,使它能得出正确的结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。 试题程序: include<stdio.h> include<math.h> int proc(int a,int b,int c) { if(a+b>c&&b-c>a&&a+c>b) { if(a==b&&b==c) //****found**** return 1; else if(a==b|| b==C||a==c) return 2; //****found**** else return 3; } else return 0; } void main { int a,b,c,shape; printf("\nInput a,b,c:"); scanf("%d%d%d",&a,&b,&c); printf("\na=%d.b=%d,c=%d\n",a,b,c); shape=proc(a,b.c): printf("\n\nThe shape:%d\n",shape); }


正确答案:

(1)错误:return 1;
正确:return 3;
(2)错误:return 3;
正确:return 1;
【解析】三条边都相等的三角形为等边三角形,按题目中要求,等边三角形返回3,若不是等边三角形也不是等腰三角形则返回1,因此,“return 1;”应改为“return 3;”;“re turn 3;”应改为“return 1;”。