VB 判断该字符串是否是“回文”个位数 + 十位数 + 百位数 = 9

  • 格式:doc
  • 大小:30.50 KB
  • 文档页数:3

西华大学课程考试参考答案 (第3套)

第 3 页共 1 页

考试课程:2005级《高级语言程序设计》VB机试

考试时间:60分钟 试卷总分 100 分

一. 调试程序:(程序存盘文件名Test31.frm、Test31.VBP)(40分)

评分标准:

1. 每个改错点: 7分

2. 正确存盘: 5分

Private Sub Command1_Click()

Dim s As String, c1 As String * 1, c2 As String * 1

Dim i As Integer, flag As Boolean

s = InputBox("请输入一个串", "判断是否是回文")

n = Len(s) '原为n=10

flag = True

For i = 1 To Int(n / 2)

c1 = Mid(s, i, 1) '原为c1=

c2 = Mid(s, n - i + 1, 1)

If c1 <> c2 Then

flag = False '原为flag=

End If

Next i

If flag = True Then '原为if then

MsgBox s & "是回文"

Else

MsgBox s & "不是回文"

End If

End Sub

Private Sub Form_Load()

Form1.Caption = "回文判断" ’或在属性窗口中设 '原空缺

End Sub

二. 编程题参考答案(程序存盘文件名Test32.frm、Test32.VBP)(60分)

评分标准:

1. 文件存盘正确 5分

2. 正确设计界面 5分

3. 正确设计各按钮的可用性 5分

4. 正确设计“产生”按钮的功能 15分

5. 正确排序并输出排序结果 15分

6. 文件操作及结果正确 10分

7. 程序结构清晰、合理 5分 装

线

第 3 页共 2 页 参考程序:

Dim n%

Dim a(1 To 30) As Integer

Private Sub Command1_Click()

Dim i%, j%, x%, gewei%, shiwei%, baiwei%

Randomize

n = 30

For i = 1 To n

Do

x = Int(Rnd * 900 + 100)

gewei = x Mod 10

shiwei = (x \ 10) Mod 10

baiwei = x \ 100

If gewei + shiwei + baiwei = 9 Then

a(i) = x

Exit Do

End If

Loop

Next i

j = 1

For i = 1 To n

Picture1.Print Tab(j * 5); a(i);

If j Mod 10 = 0 Then j = 0

j = j + 1

Next i

Command1.Enabled = False

Command2.Enabled = True

End Sub

Private Sub Command2_Click()

Dim i%, j%

For i = 1 To n - 1

For j = 1 To n - i

If a(j) > a(j + 1) Then

t = a(j)

a(j) = a(j + 1)

第 3 页共 3 页 a(j + 1) = t

End If

Next j

Next i

' "排序后的结果:"

j = 1

For i = 1 To n

Picture2.Print Tab(j * 5); a(i);

If j Mod 10 = 0 Then j = 0

j = j + 1

Next i

Command2.Enabled = False

Command3.Enabled = True

End Sub

Private Sub Command3_Click()

Open "TEST32out.txt" For Output As #1

For i = 1 To n

Print #1, a(i);

If i Mod 10 = 0 Then Print #1, '输出10个数后换行。

Next i

Close #1

End Sub

Private Sub Form_Load()

Command1.Enabled = True

Command2.Enabled = False

Command3.Enabled = False

End Sub