重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
1、
10年积累的成都网站建设、网站设计经验,可以快速应对客户对网站的新想法和需求。提供各种问题对应的解决方案。让选择我们的客户得到更好、更有力的网络服务。我虽然不认识你,你也不认识我。但先网站设计后付款的网站建设流程,更有矿区免费网站建设让你可以放心的选择与我们合作。
For j = 3 To 19 Step 4
m += 1
Next
为循环5次
For i = 1 To 15 Step 4
Next
为循环4次
则总共循环4*5=20,m没循环一次+1,则m=20
2、从下面这段可以看出“*”与“#”是同步的(因为走else时,会继续循环),有“*”肯定“#”,而输出“*”只有当i=2,4时,则有2次,为*#*#
For i = 1 To 5
If i Mod 2 = 0 Then
Console.Write("*")
Else
ContinueFor
EndIf
Console.Write("#")
Next
在加上最後次输出:Console.WriteLine("$")
结果则为:*#*#$
如果需要讲详细一点,那就加我QQ531412815
第4题,潜在的错误,这里的错误不是常规错误,属于那种只有在运行是才知道的错误:
Catch ex As Exception
MsgBox(ex.StackTrace)
'永远不会查找下面的错误
Catch ex As ArgumentNullException
MsgBox("Input Test box cannot be null.")
Catch ex As OverflowException
MsgBox("Input Test box 2 cannot be zero!")
Catch ex As FormatException
MsgBox("Input Test box should be numeric format!")
结构化错误处理永远达不到下面这里,因为Catch ex As Exception 已经处理了所有错误.
第5题:
00123
1000 60.50
2000 60.00
3500 59.50
---- -----
6500 60.00
00124
3000 60.50
---- -----
3000 60.50
00125
2000 59.50
1000 58.00
---- -----
3000 58.75
就是按照Ref_ID 分类,有一种方法就是按照Ref_ID 分组,也就是使用SQL语言,不过这里需要该很多,
我就不用了,那么就稍微复杂一点,使用FIND方法,不过有一点必须注意REF_ID必须排序,因为数据库中
已经排好序了,我就不用排了。
Dim rst as ADODB.Recordset
dim refID as string
Rst = GetRecordset
Do While Not rst.EOF
refid=rst(0)
Console.writeline(rst.Fields("Ref_ID")
do
Console.writeline rst.Fields("Qty") vbcrlf rst.Fields("Price"))
rst.MoveNext()
loop while rst(0)=refid
Loop
第6题:就是从一个集合中取元素输出的问题
比较简单的办法就是使用递归
以下是使用VB的方法(可以移植到VB.NET上,因为我对VB.NET的数组到现在还不太会,所以就将就一下)
Dim bUse() As Boolean
Dim lStr() As String * 1
Dim nCount As Byte
-----------------------------------------------------------------------------------
Public Sub Combination(lstStr As String)
Dim i As Byte
Dim j As Byte
Dim StrLen As Byte
StrLen = Len(lstStr)
ReDim bUse(1 To StrLen) As Boolean
ReDim lStr(1 To StrLen) As String * 1
For i = 1 To StrLen
lStr(i) = Mid(lstStr, i, 1)
Next
For i = 1 To StrLen
nCount = i
GoWith StrLen, 1, 0, ""
Next
End Sub
------------------------------------------------------------------------------------
Public Sub GoWith(ECount As Byte, nStart As Byte, Deep As Byte, lastStr As String)
Dim i As Byte
If Deep = nCount Then
Debug.Print lastStr
Exit Sub
End If
For i = nStart To ECount
If Not bUse(i) Then
bUse(i) = True
GoWith ECount, i, Deep + 1, lastStr lStr(i)
bUse(i) = False
End If
Next
End Sub
--------------------------------------------------------------------------------------
Private Sub Form_Load()
Combination "wxyz"
End Sub
--------------------------------------------------------------------------------------
其中GOWITH是真正的递归函数,而Combination是用来预处理字符的
全局变量:
BUSE:用来确定是否使用过这个元素
lSTR:用来保存字符元素
NCOUNT:用来限制递归函数的深度,换句话说,就是输出元素组中的元素个数
实际测试成功,另外我对前三题很感兴趣,希望能够传给我
这个问题看似简单,实际上包含了三个问题:
1. 5/2 的结果是 Double 类型
2. dim aa as Integer = 5/2 将 Double 类型隐式转换为 Integer 类型
3. 转换过程将小数部分 Banker 舍入
因为你这两个算式小数部分都是0.5,所以取最近的偶数 aa = 2,bb = 4
Function func(ByVal x As Integer, ByVal y As Integer) As Integer
If x 5 Then
y = 3 * 5 + 6 * x - 1
ElseIf x = 5 And x = 20 Then
y = 5 * x - 5
ElseIf x 20 Then
y = 3 * 2 + 2 * x - 9
End If
func = y
End Function
'产生10个正整数
Dim intArr(10) As Integer
For i As Integer = 1 To 10
intArr(i - 1) = Int(Rnd() * 99) + 1
Next
'取最小值
Dim intMin As Integer = intArr(0)
For j As Integer = 1 To UBound(intArr) - 1
If intMin intArr(j) Then intMin = intArr(j)
Next
'取最大值
Dim intMax As Integer = intArr(0)
For j As Integer = 1 To UBound(intArr) - 1
If intMax intArr(j) Then intMax = intArr(j)
Next
Dim strTemp As String = ""
For tempi As Integer = 0 To UBound(intArr) - 1
strTemp = strTemp intArr(tempi) ","
Next
MessageBox.Show(strTemp ControlChars.CrLf "min: " intMin.ToString ControlChars.CrLf "max: " intMax.ToString)
这个比较简单,不过手头没有Vb.net,没法调试
主要代码如下:
for i= 1 to 11 step 2
print space((11-i)/2) string$(i,"*")
next i
明天给试试行不行