求教一道VB的题目,菜鸟及蹭分者请回避。

来源:百度知道 编辑:UC知道 时间:2024/06/07 20:47:20
用IF语句表示分段函数
f(x):第一段:Sqr(x+1),x>=1
第二段:x^2+3,x<1 (函数式我直接翻译成VB语言了)
下列不正确的程序段是()
A:f=x*x+3
If x>=1 Then f=Sqr(x+1)
B:If x>=1 Then f=Sqr(x+1)
If x<1 Then f=x*x+3
C.If x>=1 Then f=Sqr(x+1)
Else f=x*x+3
D.If x<1 Then f=x*x+3
Else f=Sqr(x+1)
2.下面程序表示求两个数中的大数,不正确的是()
A.Max=IIf(x>y,x,y)
B.If x>y Then Max=x Else Max=y
C.Max =x
If y>=x Then Max=y
D.If y>=x Then Max=y
Max=x
请给出答案和详细的解释,特别是请解释一下第一题的A和第二题的C,如果错请说明错在哪里。

1题C,D逻辑上是正确的,但写法上有错误.C改为
If x >= 1 Then
f = Sqr(x + 1)
Else
f = x * x + 3
End If
D类似.
至于A,也是正确的,但这我们一般不这样写.
f=x*x+3,此语句对所有x值按此公式计算.如果x<1,结果是正确的.如果x>=1,结果就错了.但一句If x>=1 Then f=Sqr(x+1) 又对错误进行了纠正.所以最后结果是正确的.
这种写法不及C,D的思路自然.
2题D中,无论x与y谁大,x都是最大值.所以是错的.
至于C的写法,与1题A类似.

f(x):第一段:Sqr(x+1),x>=1
第二段:x^2+3,x<1 (函数式我直接翻译成VB语言了)
下列不正确的程序段是(CD)
A:f=x*x+3
If x>=1 Then f=Sqr(x+1)
B:If x>=1 Then f=Sqr(x+1)
If x<1 Then f=x*x+3
C.If x>=1 Then f=Sqr(x+1)
Else f=x*x+3
D.If x<1 Then f=x*x+3
Else f=Sqr(x+1)
2.下面程序表示求两个数中的大数,不正确的是(D)
A.Max=IIf(x>y,x,y)
B.If x>y Then Max=x Else Max=y
C.Max =x
If y>=x Then Max=y
D.If y>=x Then Max=y
Max=x

1.A
2.C
你这不是已经知道答案了嘛,呵呵
其实这两道题思路方法都是一样的,在这里必须使用分支语句,要先进行判断才能赋值,其实如果带入数值的话得出的结果也是正确的,但是这样不符合VB语言规则,这两个答案一看就不对。

第一题,B,应该写成IF