当前位置:文档之家› VB程序改错40题

VB程序改错40题

VB程序改错40题
VB程序改错40题

第2题(1.0分)题号:129

'------------------------------------------------

'【程序改错】

'------------------------------------------------

'题目:该程序实现将输入的 0 - 255 之间的正整数转

' 换成二进制数

'------------------------------------------------

Option Explicit

Private Sub Form_Click()

Const n = 8

Dim a(n) As Integer, s As String, m As Integer, x As Integer

x = Val(InputBox("请输入一个 0 - 255 之间的正整数:"))

Print x

'**********FOUND**********

For m = 1 To n

a(m) = x Mod 2

'**********FOUND**********

x = x / 2

Next m

s = " "

For m = n To 0 Step -1

'**********FOUND**********

s = Str(a(m))

Next m

Print s

End Sub

答案:

=======(答案1)=======

For m = 0 To n

=======(答案2)=======

x= x \ 2 =========或=========

x= int(x/2)

=======(答案3)=======

s = s + Str(a(m))

第3题(1.0分)题号:463

'------------------------------------------------

'【程序改错】

'------------------------------------------------

'题目:以下程序功能是输入三个数,由大到小排序。

'------------------------------------------------

Option Explicit

Dim A As Integer

Dim B As Integer

Dim C As Integer

Private Sub Form_Click()

Dim nTemp As Integer

A = Val(InputBox("Please input first integer", "输入正整数"))

B = Val(InputBox("Please input second integer", "输入正整数"))

C = Val(InputBox("Please input third integer", "输入正整数"))

'**********FOUND**********

If A <= C Then

nTemp = A

A = B

B = nTemp

End If

'**********FOUND**********

If B <= C Then

nTemp = A

A = C

C = nTemp

End If

'**********FOUND**********

If A <= B Then

nTemp = B

B = C

C = nTemp

End If

Print "The integers in order is"; A; B; C

End Sub

答案:

=======(答案1)=======

If A <= B Then

=========或=========

If B >= A Then

=======(答案2)=======

If A <= C Then

=========或=========

If C >= A Then

=======(答案3)=======

If B <= C Then

=========或=========

If C >= B Then

第4题(1.0分)题号:127

'------------------------------------------------

'【程序改错】

'------------------------------------------------

'题目:下面程序可输出如下图形:

' *

' ***

' *****

' *******

' *********

'------------------------------------------------

Option Explicit

Private Sub Form_Click()

Dim m As Integer, n As Integer, s As String, i As Integer, j As Integer

n = 4

m = 1

s = "*"

For i = 5 To 1 Step -1

'**********FOUND**********

Print Spc(n)

For j = 1 To 2 * m - 1

Print s;

Next j

Print

'**********FOUND**********

n = n + 1

'**********FOUND**********

m = m - 1

Next i

End Sub

答案:

=======(答案1)=======

Print Spc(n);

=========或=========

Print Spc(i);

=========或=========

? Spc(n);

=========或=========

? Spc(i);

=======(答案2)=======

n = n - 1

=========或=========

n = - 1+n

=======(答案3)=======

m = m + 1

第5题(1.0分)题号:469

'------------------------------------------------

'【程序改错】

'------------------------------------------------

'题目:已知一个函数f(x)=1000*sin(x),利用绘图方法

' 在图片框中显示其图形。结果如图1

'------------------------------------------------

Option Explicit

Private Const pi = 3.14159

Private Sub Command1_Click()

'**********FOUND**********

Dim x As Integer

Picture1.Scale (-pi, -1200)-(pi, 1200)

'**********FOUND**********

For x = -pi To pi Step pi

'**********FOUND**********

Picture1.PSet (x, 1000 * pi * Sin(x)), vbRed

Next x

End Sub

答案:

=======(答案1)=======

Dim x As Single

=========或=========

Dim x!

=======(答案2)=======

For x = -pi To pi Step pi / 180

=======(答案3)=======

Picture1.PSet (x, 1000 * Sin(x)), vbRed =========或=========

Picture1.PSet (x, Sin(x)*1000), vbRed 第6题(1.0分)题号:497

'------------------------------------------------

'【程序改错】

'------------------------------------------------

'题目:编程求一个十进制整数n的各位数字之和,设n为小于或等于5位的数。

'------------------------------------------------

Option Explicit

Private Sub Form_Click()

Dim N As Integer, Sum As Integer, S1 As String, S2 As String

Dim i As Integer, Ch As String

Sum = 0

N = InputBox("输入整数n")

S1 = Str(N)

'**********FOUND**********

S1 = RTrim(S1)

For i = 1 To Len(S1)

'**********FOUND**********

Ch = Mid(N, i, 1)

'**********FOUND**********

Sum = Val(Ch)

Next i

Print "该整数的各位数之和是:"; Sum End Sub

答案:

=======(答案1)=======

S1 = Trim(S1)

=========或=========

S1 = lTrim(S1)

=======(答案2)=======

Ch = Mid(S1, i, 1)

=======(答案3)=======

Sum = Sum + Val(Ch)

=========或=========

Sum = Sum + Val(Ch)

第7题(1.0分)题号:454

'------------------------------------------------

'【程序改错】

'------------------------------------------------

'题目:本程序的功能是随机产生的10个两位正整数,并进行递减排序。

'------------------------------------------------

Option Explicit

Private Sub CreateRND()

Dim Temp As Integer

Dim I As Integer

Dim N As Integer

Dim X(10) As Integer

Dim J As Integer

N = 10

Print "数据:"

For I = 1 To N

'**********FOUND**********

X(I) = Int(Rnd() * 90)

Print X(I);

Next I

Print

Print "排序:"

For I = 0 To N - 1

For J = I + 1 To N

'**********FOUND********** If X(I) > X(J) Then

'**********FOUND**********

Temp = X(I)

X(J) = X(I)

X(I) = Temp

End If

Next J

Print X(I);

Next I

Print

End Sub

Private Sub Command1_Click()

CreateRND

End Sub

答案:=======(答案1)=======

X(I) = Int(10 + Rnd() * 90)

=========或=========

X(I) = Int(10 + Rnd() * 90)

=======(答案2)=======

If X(I) < X(J) Then

=========或=========

If X(I) <= X(J) Then

=========或=========

If X(J) > X(I) Then

=========或=========

If X(J) >= X(I) Then

=======(答案3)=======

temp = X(J)

第9题(1.0分)题号:130

'------------------------------------------------

'【程序改错】

'------------------------------------------------

'题目:以下程序段用于计算5的N次方。

'------------------------------------------------

Option Explicit

Private Sub Form_Click()

Dim n As Integer, k As Integer, s As Long

n = InputBox(" Input n ")

'**********FOUND**********

k = 0

'**********FOUND**********

s = 0

Do While k <= n

s = s * 5

k = k + 1

'**********FOUND**********

Next

Print "5的"; "n次方是"; s

End Sub

答案:

=======(答案1)=======

k=1

=======(答案2)=======

s=1

=======(答案3)=======

Loop

第11题(1.0分)题号:452

'------------------------------------------------

'【程序改错】

'------------------------------------------------

'题目:用自定义函数的方法求sum(x),求当-1≤x≤1时,

' sum(x)=x/2!

+x^2/3!+x^3/4!+……+x^n/(n+1)!,

' 当x〉1或x〈-1时,函数值为0。当n〈=0时,输入数

' 据错误。X、N都是由用户输入。

'------------------------------------------------

Option Explicit

Private Sub Command1_Click()

Dim s As Single

Dim n As Integer, x As Single, k As Integer

n = Val(InputBox("Please input a integer value:"))

x = Val(InputBox("Please input a single value:"))

If n <= 0 Then

k = MsgBox("数据输入错误!", vbRetryCancel + vbExclamation, "数据输入")

Exit Sub

End If

s = Sum(x, n)

Print s

End Sub

Function Sum(x As Single, n As Integer) Dim i As Integer, ss As Long

ss = 1

Sum = 0

If x > 1 Or x < -1 Then

'**********FOUND**********

Exit Do

Else

'**********FOUND**********

For i = 2 To n

ss = ss * i

'**********FOUND********** Sum = x ^ (i - 1) / ss

Next i

End If

End Function

答案:

=======(答案1)=======

exit Function

=======(答案2)=======

For i = 2 To n + 1

=========或=========

For i = 2 To 1+n

=======(答案3)=======

sum = sum + x ^ (i - 1) / ss

第14题(1.0分)题号:136

'------------------------------------------------

'【程序改错】

'------------------------------------------------

'题目:程序功能为打印下列图形:

' *

' **

' ***

' ****

' *****

'------------------------------------------------

Option Explicit

Private Sub Form_Click()

Cls

Dim i As Integer

Dim j As Integer

'**********FOUND**********

For i = 1 To 7

'**********FOUND**********

For j = 1 To 5

Print "*";

'**********FOUND**********

Loop

Print

Next i

End Sub

答案:

=======(答案1)=======

For i = 1 To 5

=======(答案2)=======

For j = 1 To i

=======(答案3)=======

Next j

=========或=========

Next

第16题(1.0分)题号:461

'------------------------------------------------

'【程序改错】

'------------------------------------------------ '题目:产生30个小于100的成绩随机数,并统计出优、良

' 、中等、及格、不及格数的个数,并计算出成绩属

' 于优秀段的成绩平均分。

'------------------------------------------------

Option Explicit

Private Sub Form_Click()

Dim k%, a%, bjg%, jg%, zd%, lh%, yx As Integer

Dim pjf As Integer

Randomize

pjf = 0

For k = 1 To 30

'**********FOUND**********

a = Int(Rnd())

Select Case a

Case 0 To 59

bjg = bjg + 1 '不及格

Case 60 To 69

jg = jg + 1 '及格

Case 70 To 79

zd = zd + 1 '中等

Case 80 To 89

lh = lh + 1 '良好

Case 90 To 100

yx = yx + 1 '优秀

'**********FOUND**********

pjf = pjf + 1

End Select

Next k

'**********FOUND**********

If yx > 0 Then pjf = pjf / 30

Debug.Print "不及格" + Str$(bjg) + "人,及格" + Str$(jg) + "人,中等" + Str$(zd) + "人";

Debug.Print "良好" + Str$(lh) + "优秀" + Str$(yx) + "人"

Debug.Print "优秀分数段成绩平均分" & pjf

End Sub

答案:

=======(答案1)=======

a = Int( Rnd() * 100)

=========或=========

a = Int( Rnd * 100)

=======(答案2)=======

pjf = pjf + a

=======(答案3)=======

If yx > 0 Then pjf = pjf / yx

第17题(1.0分)题号:456

'------------------------------------------------

'【程序改错】

'------------------------------------------------

'题目:挑选单数并排序程序:程序启动后由计算机自动产

' 生20个属于[100,300]之间的随机整数,单击"显

' 示全体"按钮时,在Form1上显示这20个随机数;

' 单击"显示奇数"按钮时,在Form1上显示其中的奇数;

' 单击"排序"按钮时,在Form1上将这些奇数从小到大显示。

' 要求显示格式为每行显示5个数据。

'------------------------------------------------

Option Explicit

Private a(20) As Integer, b(20) As Integer Private k As Integer

Private Sub cmdodd_Click()

Dim I As Integer

k = 0 For I = 1 To 20

'**********FOUND**********

If a(I) / 2 = Int(a(I) / 2) Then

k = k + 1

b(k) = a(I)

End If

Next I

For I = 1 To k

Print b(I);

'**********FOUND**********

If Int(I / 5) <> I / 5 Then Print Next I

Print

End Sub

Private Sub cmdAll_Click()

Randomize

Dim I As Integer

For I = 1 To 20

'**********FOUND**********

a(I) = Int(Rnd() * 20 + 100)

Print a(I),

If Int(I / 5) = I / 5 Then Print Next I

Print

End Sub

Private Sub cmdsort_Click()

Dim I As Integer

Dim J As Integer

Dim Temp As Integer

For I = 1 To k - 1

For J = I To k

If b(I) > b(J) Then Temp = b(I): b(I) = b(J): b(J) = Temp

Next J

Next I

For I = 1 To k

Print b(I);

If Int(I / 5) = I / 5 Then Print Next I

End Sub

答案:

=======(答案1)=======

If a(I) / 2 <> Int(a(I) / 2) Then

=========或=========

If a(I) mod 2 <>0 Then

=========或=========

If 0<>a(I) mod 2 Then

=========或=========

If a(I) / 2 <> a(I)\ 2 Then

=========或=========

If int(a(I) / 2) <> a(I) / 2 Then

=========或=========

If a(I) \ 2 <> a(I)/2 Then

=======(答案2)=======

If Int(I / 5) = I / 5 Then Print

=========或=========

If I mod 5 = 0 Then Print

=========或=========

If 0 = I mod 5 Then Print

=========或=========

If I / 5= int(I / 5) Then Print

=========或=========

If I / 5= I\ 5 Then Print

=========或=========

If I \5= I/ 5 Then Print

=======(答案3)=======

a(I) = Int(Rnd() * 200 + 100)

第19题(1.0分)题号:499

'------------------------------------------------

'【程序改错】

'------------------------------------------------

'题目:编程将一个数从已经有序(设从小到大排序)的数组

' 中删除,使数组还继续保持有序而且其余元素按照下

' 标连续存放。'------------------------------------------------

Option Explicit

Private Sub Form_Click()

Dim A() As Integer, N As Integer, Flag As Integer

Dim i As Integer, X As Integer, P As Integer

Flag = 0

N = InputBox("输入元素个数")

'**********FOUND**********

Dim A(N)

For i = 1 To N

A(i) = InputBox("输入数组的第" & i & "个元素")

Next i

Print "删除某元素前的数组"

For i = 1 To N

Print A(i);

Next i

Start:

X = InputBox("输入要删除的元素:") For i = 1 To N

If X = A(i) Then P = i: Flag = 1 Next i

If Flag = 0 Then MsgBox ("没有此元素"): GoTo Start

For i = P To N - 1

'**********FOUND**********

A(i + 1) = A(i)

Next i

'**********FOUND**********

N = N + 1

Print "删除元素后的数组:"

For i = 1 To N

Print A(i);

Next i

End Sub

答案:

=======(答案1)=======

ReDim A(N)

=======(答案2)=======

A(i) = A(i + 1)

=========或=========

A(i) = A(1 + i)

=======(答案3)=======

N = N - 1

第20题(1.0分)题号:139

'------------------------------------------------

'【程序改错】

'------------------------------------------------

'题目:随机产生并输出100以内大于50的20个整数,输

' 出时每5个数一行。

'------------------------------------------------

Option Explicit

Private Sub Form_Click()

Randomize Timer

Dim i As Integer, ma As Integer

'**********FOUND**********

i = 1

'**********FOUND**********

Do Until i < 20

ma = Rnd() * 100 \ 1

If ma > 50 Then

Print ma;

i = i + 1

'**********FOUND**********

If i \ 5 = 0 Then

Print

End If

End If

Loop

End Sub

答案:=======(答案1)=======

i = 0

=======(答案2)=======

Do while i < 20

=========或=========

Do while 20 > i

=========或=========

Do while i <=19

=========或=========

Do while 19 > =i

=======(答案3)=======

If i mod 5 = 0 Then

第23题(1.0分)题号:474

'------------------------------------------------

'【程序改错】

'------------------------------------------------

'题目:程序功能为求解一元二次方程的实根,请修正程序中错误。

'------------------------------------------------

Option Explicit

Private Sub Form_Load()

Dim a!, b!, c!, root1#, root2#, work As Double

a = Val(InputBox(" 请输入系数a的值"))

b = Val(InputBox(" 请输入系数b的值"))

c = Val(InputBox(" 请输入系数c的值"))

'**********FOUND**********

work = b * 2 - 4 * a * c

If work >= 0 And a <> 0 Then

'**********FOUND**********

root1 = (Sqr(work)) / (2 * a) '**********FOUND**********

root2 = (Sqr(work)) / (2 * a)

Debug.Print "有二个实根" +

Str$(root1) + "," + Str$(root2)

Else

Debug.Print "无实根!"

End If

End Sub

答案:

=======(答案1)=======

work = b ^ 2 - 4 * a * c

=========或=========

work = b *b - 4 * a * c

=======(答案2)=======

root1 = (-b + Sqr(work)) / (2 * a)

=========或=========

root1 = ( Sqr(work) -b ) / (2 * a)

=========或=========

root1 = (-b + Sqr(work)) / ( a*2)

=========或=========

root1 = ( Sqr(work) -b ) / ( a*2)

=======(答案3)=======

root2 = (-b - Sqr(work)) / (2 * a)

=========或=========

root2 = (- Sqr(work) - b) / (2 * a)

=========或=========

root2 = (-b - Sqr(work)) / ( a*2)

=========或=========

root2 = (- Sqr(work) - b) / (a*2)

第28题(1.0分)题号:133

'------------------------------------------------

'【程序改错】

'------------------------------------------------

'题目:下面程序将10个整数从大到小排序

'------------------------------------------------

Option Explicit Private Sub Form_Click()

Dim t%, m%, n%, w%

Dim a(10) As Integer

For m = 1 To 10

a(m) = Int(10 + Rnd() * 90) Print a(m); " ";

Next m

Print

For m = 1 To 9

t = m

'**********FOUND**********

For n = 2 To 10

'**********FOUND**********

If a(t) > a(n) Then n = t Next n

'**********FOUND**********

If t = m Then

w = a(m)

a(m) = a(t)

a(t) = w

End If

Next m

For m = 1 To 10

Print a(m)

Next m

End Sub

答案:

=======(答案1)=======

For n = m + 1 To 10

=======(答案2)=======

If a(t)

=========或=========

If a(n) >a(t) Then t = n

=======(答案3)=======

If t <> m Then

=========或=========

If not t = m Then

=========或=========

If not m = t Then

第30题(1.0分)题号:480

'------------------------------------------------

'【程序改错】

'------------------------------------------------

'题目:下面函数的功能是:求变量

s(s=a+aa+aaa+aaaa+……)

' 的值。其中,a是一个0-9的数字,总共累加a项。

' 例如,当a=3时,s=3+33+333 (共累加3项)。

'------------------------------------------------

Option Explicit

Public Function Calc(a As Integer)

Dim s As Long

Dim t As Long

Dim i As Integer

s = a

'**********FOUND**********

t = 1

For i = 2 To a

'**********FOUND**********

t = t + a

s = s + t

Next i

Calc = s

Print s

End Function

Private Sub Command1_Click()

Dim i As Integer

i = InputBox("请输入数字(0-9):") '**********FOUND**********

Calc call i

End Sub

答案:=======(答案1)=======

t = a

=======(答案2)=======

t = t * 10 + a

=========或=========

t = t * 10 + a

=========或=========

t = t * 10 + a

=======(答案3)=======

Calc i

=========或=========

Call Calc(i)

=========或=========

Calc (i)

第31题(1.0分)题号:489

'------------------------------------------------

'【程序改错】

'------------------------------------------------

'题目:给定三角形的三条边,计算三角形的面积。要求

' 程序首先判断给定的三条边能否构成三角形。

'------------------------------------------------

Option Explicit

Private Sub Form_Click()

Dim a As Single, b As Single, c As Single

Dim s As Single, t As Single start:

a = InputBox("输入1边长:")

b = InputBox("输入2边长:")

c = InputBox("输入3边长:")

'**********FOUND**********

If a + b < c Or b + c < a Then

MsgBox ("不能构成三角形,请重新输入个边")

GoTo start

End If

'**********FOUND**********

t = (a + b) / 2

'**********FOUND**********

s = Sqr((t - a) * (t - b) * (t - c)) Print "该三角形的面积:"; s

End Sub

答案:

=======(答案1)=======

If a + b < c Or b + c < a Or a + c < b Then

=======(答案2)=======

t = (a + b + c) / 2

=========或=========

t = (a + b + c ) / 2

=======(答案3)=======

s = Sqr(t * (t - a) * (t - b) * (t - c)) =========或=========

s = Sqr( t * (t - a) * (t - b) * (t - c) )

第32题(1.0分)题号:475

'------------------------------------------------

'【程序改错】

'------------------------------------------------

'题目:本程序求3~100之间的所有素数(质数)并统计个数;

' 同时将这些素数从小到大依次写入顺

序文件c:\dataout.txt;

' 素数的个数显示在窗体Form1上。

'------------------------------------------------

Option Explicit Private Sub Command1_Click()

Dim Count As Integer, Flag As Boolean Dim t1 As Integer, t2 As Integer

'**********FOUND**********

Open "dataout.txt" For Input As #1 Count = 0

For t1 = 3 To 100

Flag = True

For t2 = 2 To Int(Sqr(t1))

If t1 Mod t2 = 0 Then Flag = False

Next t2

'**********FOUND********** If Flag = False Then

Count = Count + 1

'**********FOUND********** Write #1, t2

End If

Next t1

Form1.Print "素数个数"; Count

Close #1

End Sub

答案:

=======(答案1)=======

Open "dataout.txt" For Output As #1

=========或=========

Open "dataout.txt" For Output As 1

=======(答案2)=======

If Flag Then

=========或=========

If Flag=true Then

=======(答案3)=======

Write #1, t1

=========或=========

Write 1, t1

第33题(1.0分)题号:137

'------------------------------------------------

'【程序改错】

'--------------------------------------

----------

'题目:求s=72+102+132+……832的值。

'------------------------------------------------

Option Explicit

Private Sub Form_Click()

Cls

Dim s As Long

Dim i As Integer

'**********FOUND**********

s = 1

'**********FOUND**********

For i = 7 To 832

s = s + i

'**********FOUND**********

loop 30

Print s

End Sub

答案:

=======(答案1)=======

s =0

=======(答案2)=======

For i = 7 To 832 step 30

=======(答案3)=======

Next i

=========或=========

Next

第35题(1.0分)题号:131

'------------------------------------------------

'【程序改错】

'------------------------------------------------

'题目:下面程序用于将十个数字从小到大排序'------------------------------------------------

Option Explicit

Option Base 1

Private Sub Form_Click()

Cls

Dim a(10) As Integer

Dim i As Integer, j As Integer, temp As Integer

'**********FOUND**********

For i = 0 To 10

If i Mod 2 = 0 Then a(i) = i Else a(i) = -i

Print a(i);

Next

Print

For i = 1 To 10

For j = 1 To 10 - i

'**********FOUND**********

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

temp = a(j): a(j) = a(j + 1): a(j + 1) = temp

End If

'**********FOUND**********

Next i, j

For i = 1 To 10

Print a(i);

Next

End Sub

答案:

=======(答案1)=======

For i = 1 To 10

=======(答案2)=======

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

=========或=========

If a( j + 1 )

=======(答案3)=======

Next j, i

第40题(1.0分)题号:141

'------------------------------------------------

'【程序改错】

'------------------------------------------------

'题目:输出40以内能够被3整除的数,要求输出结果为5

' 个数一行。

'------------------------------------------------

Option Explicit

Private Sub Form_Click()

Cls

Dim x As Integer

Dim i As Integer

'**********FOUND**********

i = 1

For x = 1 To 40

If (x / 3) = (x \ 3) Then

'**********FOUND**********

Print x

i = i + 1

End If

'**********FOUND**********

If i Mod 3 = 0 Then

Print

End If

Next x

End Sub

答案:

=======(答案1)=======

i = 0

=======(答案2)=======

Print x;

=======(答案3)======= if i mod 5=0 then

第42题(1.0分)题号:117

'------------------------------------------------

'【程序改错】

'------------------------------------------------

'题目:下面的程序段用于实现以下功能:建立一顺序文

' 件,存放10名同学的学号和三门功课成绩,显示

' 该文件内所有记录,并同时显示其总分和平均分

'------------------------------------------------

Option Explicit

Private Sub Form_Click()

Dim no%, c1%, c2%, c3%, i As Integer

'**********FOUND**********

Open "c:\2.txt" For Input As #1

For i = 1 To 10

no = InputBox("请输入学号")

c1 = InputBox("请输入数学成绩")

c2 = InputBox("请输入语文成绩")

c3 = InputBox("请输入外语")

Write #1, no, c1, c2, c2

Next i

Close #1

'**********FOUND**********

Open "c:\2.txt" For Output As #1

For i = 1 To 10

'**********FOUND**********

Print #1, no, c1, c2, c3

Print no, c1, c2, c3, c1 + c2 + c3, (c1 + c2 + c3) / 3

Next i

Close #1

End Sub

答案:

=======(答案1)=======

Open "c:\2.txt" For Output As #1

=======(答案2)=======

Open "c:\2.txt" For Input As #1

=======(答案3)=======

Input #1, n0, c1, c2, c3

第43题(1.0分)题号:118

'------------------------------------------------

'【程序改错】

'------------------------------------------------

'题目:以下程序段用于输出100-300的所有素数

'------------------------------------------------

Option Explicit

Private Sub Form_Click()

Dim n As Integer, k As Integer, i As Integer, swit As Integer

For n = 101 To 300 Step 2

k = Int(Sqr(n))

i = 2

'**********FOUND**********

swit = 1

'**********FOUND**********

While swit = 0

If n Mod i = 0 Then

swit = 1

Else

'**********FOUND**********

i = i - 1

End If

Wend

If swit = 0 Then

Print n;

End If

Next n

End Sub 答案:

=======(答案1)=======

swit=0

=======(答案2)=======

While i <= k And swit = 0

=========或=========

While k>=i And swit = 0

=======(答案3)=======

i= i + 1

第45题(1.0分)题号:135

'------------------------------------------------

'【程序改错】

'------------------------------------------------

'题目:程序功能:求1+2+3……,直到其和超出3000为

' 止,并输入结果。

'------------------------------------------------

Option Explicit

Private Sub Form_Click()

Cls

Dim i As Integer

Dim s As Single

i = 1

'**********FOUND**********

s = 1

Do

'**********FOUND**********

i = i + 2

s = s + i

'**********FOUND**********

Loop s > 3000

Print "从1 到:"; i; "的和是"; s

End Sub

答案:

=======(答案1)=======

s =0

=======(答案2)=======

i = i + 1

=======(答案3)=======

Loop until s > 3000

=========或=========

Loop until 3000 < s

第46题(1.0分)题号:144

'------------------------------------------------

'【程序改错】

'------------------------------------------------

'题目:下面程序的作用是产生100以内的全部素数,并

' 按每行5个数据输出。

'------------------------------------------------

Option Explicit

Private Function prime(ByVal n As Integer)

Dim i As Integer

prime = 1

If n <= 1 Then prime = 0

'**********FOUND**********

For i = 1 To n - 1

If n Mod i = 0 Then prime = 0

Next i

End Function

Private Sub Form_Click()

Dim i As Integer, k As Integer

k = 0

For i = 1 To 100

If prime(i) = 1 Then

'**********FOUND********** Print Tab((k Mod 5) * 8); i

k = k + 1

'**********FOUND**********

If k Mod 4 = 0 Then Print ;

End If

Next i

End Sub

答案:

=======(答案1)=======

For i = 2 To n - 1

=======(答案2)=======

Print Tab( (k Mod 5) * 8 ); i;

=======(答案3)=======

If k Mod 5 = 0 Then Print

第51题(1.0分)题号:482

'------------------------------------------------

'【程序改错】

'------------------------------------------------

'题目:请根据下列描述编写购物优惠程序。某商场为了

' 加速促成商品流通,采用购物打折的优惠办法,每

' 位顾客一次购物(1)在100元以上者,按九五折优惠;

' (2)在200元以上者,按九折优惠;(3)300元以上

' 者,按八折优惠;(4)500元以上者按七折优惠。

'------------------------------------------------

Option Explicit

Private Sub Command1_Click()

Dim x As Single, y As Single

x = Val(Text1.Text)

If x < 100 Then

'**********FOUND**********

x = y

Else

If x < 200 Then

y = 0.95 * x

Else

If x < 300 Then

y = 0.9 * x

Else

If x < 500 Then

y = 0.8 * x

Else

y = 0.7 * x

'**********FOUND**********

Else If

End If

End If

End If

'**********FOUND**********

Text2.Text = x

End Sub

答案:

=======(答案1)=======

y = x

=======(答案2)=======

End If

=======(答案3)=======

Text2.Text = y

=========或=========

Text2 = y

第52题(1.0分)题号:450

'------------------------------------------------

'【程序改错】

'------------------------------------------------ '题目:统计一顺序文件text.txt中的空格、字母、数字和其它字符个数。

'------------------------------------------------

Option Explicit

Private Sub Command1_Click()

Dim s As String, C As String

Dim I As Integer, L As Integer, spac As Integer, character As Integer, digit As Integer, other As Integer

'**********FOUND**********

Open App.Path & "\text.txt" For Output As #1

'**********FOUND**********

Do Until EOF(0)

Line Input #1, s

L = Len(s)

For I = 1 To L

C = Mid(s, I, 1)

If C >= "a" And C <= "z" Or C >= "A" And C <= "Z" Then

character = character + 1 ElseIf C = " " Then

spac = spac + 1

'**********FOUND**********

ElseIf C >= "0" And C < "9" Then digit = digit + 1

Else

other = other + 1

End If

Next I

Loop

Close #1

Print "字符个数为:"; character; "数字个数为:"; digit

Print "空格个数为:"; spac; "其它个数为:"; other

End Sub

答案:

=======(答案1)=======

Open App.Path & "\text.txt" For Input As #1

=========或=========

Open "text.txt" For Input As #1

=======(答案2)=======

Do Until EOF(1)

=========或=========

Do While Not EOF(1)

=======(答案3)=======

ElseIf C >= "0" And C <= "9" Then

第56题(1.0分)题号:138

'------------------------------------------------

'【程序改错】

'------------------------------------------------

'题目:输出40以内能够被3整除的数,要求输出结果为

' 5个数一行。

'------------------------------------------------

Option Explicit

Private Sub Form_Click()

Cls

Dim x As Integer

Dim i As Integer

'**********FOUND**********

i = 1

For x = 1 To 40

If (x / 3) = (x \ 3) Then

'**********FOUND**********

Print x

i = i + 1

End If

If i Mod 5 = 0 Then

Print

End If

'**********FOUND**********

step i

End Sub 答案:

=======(答案1)=======

i = 0

=======(答案2)=======

Print x ;

=========或=========

? x ;

=======(答案3)=======

Next x

=========或=========

Next

第57题(1.0分)题号:465

'------------------------------------------------

'【程序改错】

'------------------------------------------------

'题目:用InputBox函数输入一个字符串,编写程序按与

' 输入的字符相反的次序用Msgbox函

数输出这个字

' 符串。如输入字符串为"abcdefgh",则输出为"h

' gfedcba",输出效果如图1。

'------------------------------------------------

Option Explicit

Private Sub Command1_Click()

Dim pristr As String, outstr As String Dim i As Integer

pristr = InputBox("please input a string")

'**********FOUND**********

For i = 0 To Len(pristr)

'**********FOUND**********

outstr = outstr + Mid(pristr,

Len(pristr) - i)

Next i

'**********FOUND**********

MsgBox outstr, , "The Output Result " End Sub

答案:

=======(答案1)=======

For i = 0 To Len(pristr) - 1

=========或=========

For i = 0 To -1+Len(pristr)

=======(答案2)=======

outstr = outstr + Mid(pristr, Len(pristr) - i, 1)

=========或=========

outstr = Mid(pristr, Len(pristr) - i, 1)+outstr

=======(答案3)=======

MsgBox outstr, vbQuestion, "The Output Result "

第59题(1.0分)题号:147

'------------------------------------------------

'【程序改错】

'------------------------------------------------

'题目:下面的程序用来产生并输出图示的杨辉三角。

' 1

' 1 1

' 1 2 1

' 1 3 3 1

' 1 4 6 4 1

' 1 5 10 10 5 1

'------------------------------------------------

Option Explicit

Public Sub readin(a() As Integer, n As Integer)

Dim i, j As Integer

For i = 1 To n

'**********FOUND**********

a(i, n) = 1

a(i, 1) = 1

Next i

For i = 3 To n

'**********FOUND**********

For j = 2 To n

a(i, j) = a(i - 1, j) + a(i - 1, j - 1)

Next j

Next i

End Sub

Public Sub printf(a() As Integer, n As Integer)

Dim i, j As Integer

For i = 1 To n

'**********FOUND**********

For j = 1 To n

Print Tab(5 * j + 10); a(i, j); Next j

Print

Next i

Print

End Sub

Private Sub Form_Click()

Dim x(10, 10) As Integer

Call readin(x(), 6)

Call printf(x(), 6)

End Sub

答案:

=======(答案1)=======

a(i, i) = 1

=======(答案2)=======

For j = 2 To i - 1

=========或=========

For j = 2 To -1 + i

=======(答案3)=======

For j = 1 To i

第60题(1.0分)题号:146

'------------------------------------------------

'【程序改错】

'------------------------------------------------

'题目:用辗转相除法求两个整数的最大公约数。

'------------------------------------------------

Option Explicit

Function gcd(ByVal m As Integer, ByVal n As Integer) As Integer

Dim r As Integer

r = m Mod n

Do While r <> 0

'**********FOUND**********

n = m

n = r

r = m Mod n

Loop

'**********FOUND**********

gcd = r

End Function

Private Sub Form_Click()

Dim a As Integer, b As Integer, c As Integer

a = InputBox("输入一个整数")

b = InputBox("输入一个整数")

a = Val(a)

b = Val(b)

'**********FOUND**********

Call gcd(a, b)

Print a, b, c

End Sub 答案:

=======(答案1)=======

m = n

=======(答案2)=======

gcd = n

=======(答案3)=======

c = gcd(a, b)

第65题(1.0分)题号:492

'------------------------------------------------

'【程序改错】

'------------------------------------------------

'题目:输入两个正整数m和n,求其最大公约数。

'------------------------------------------------

Option Explicit

Private Sub Form_Click()

Dim m As Integer, n As Integer, r As Integer

m = InputBox("输入m的值:")

n = InputBox("输入n的值:")

Do While n <> 0

'**********FOUND**********

r = m / n

m = n

'**********FOUND**********

n = m

Loop

'**********FOUND**********

Print "两数的最大公因子为:"; n

End Sub

答案:

=======(答案1)=======

《VB程序设计》习题答案-林卓然编著

《VB语言程序设计》教材 林卓然编著 《VB程序设计》习题参考答案 第1章习题 一、单选题 1.D 2.B 3.C 4.A 5.C 6. A 7.A 8.B 9.C 10.(1)A (2)B 二、多选题 1.ACDE 2.BCDE 3.CD 4. CE 三、填空题 1.事件驱动 2.解释,编译 3.设计,运行,中断 4. 属性,方法,事件 5. Command2_Click 6. 中央,代码 7.MyForm.frm 8. (1)Cmd1_Click() (2)Print "VB语言程序设计" 编程及上机调试 1. 按要求设置窗体属性 2.在窗体上建立一个标签Label1。程序代码如下: Private Sub Form_Click() Label1.Caption = "你单击了窗体" End Sub Private Sub Form_DblClick() Label1.Caption = "你双击了窗体" End Sub 3.在窗体上建立两个文本框Text1(输入数)、Text2(输出数)和一个命令按钮Command1。两个文本框的Text属性均为空。 Private Sub Command1_Click() Dim x As Single x = Val(Text1.Text) Text2.Text = 15 * x End Sub 第2章习题 一、单选题 1.①D,②D 2.①A,②C 3.A 4.B 5.B 6.B 7.C 8.D 9.B 10.B 11.A 12.A 13.B 14.A 15.B 16.A 17.B 二、多选题 1.BD 2.CD 3.AC 4. AD 三、填空题 1.(1) Sin(50*3.14159/180) (2) (2+x*y)/(2–y*y)

VB程序设计例题-程序改错程序填空程序设计

'以下程序段用于输出杨辉三角:结果样式如图1 ' Private Sub Form_Click() Const n = 10 Dim arr(n, n) As Integer For I = 1 To n arr(I, I) = 1 '**********SPACE********** 【arr(I, 1) = 1】 Next I For I = 3 To n For j = 2 To I - 1 '**********SPACE********** arr(i, j) =arr(i-1,j-1)+arr(i-1,j) Next j Next I For I = 1 To n For j = 1 To I '**********SPACE********** 【print arr(I,j)】 Next j Print Next I End Sub Option Explicit '------------------------------------------------ '【程序改错】 '------------------------------------------------ '题目:用自定义函数的方法求sum(x),求当-1≤x≤1时,' sum(x)=x/2!+x^2/3!+x^3/4!+……+x^n/(n+1)!, ' 当x〉1或x〈-1时,函数值为0。当n〈=0时,输入数' 据错误。X、N都是由用户输入。 '------------------------------------------------ '注意:不可增加或删除程序行,也不可以更改程序结构 '------------------------------------------------ Private Sub Command1_Click() Dim s As Single Dim n As Integer, x As Single, k As Integer n = Val(InputBox("Please input a integer value:"))

程序改错基本题

程序改错 一、下面每个程序的划线处有语法或逻辑错误,请找出并改正,使其得到符合题意的执行结果。 1.求1?2?3?4? ?n main() { long int sum; int n,i=1; scanf("%d",n); printf(“\n”); while(ia[j]) { max=a[j]; m=j; } printf(“下标:%d\n最大值:%d”, j, max) } *3. 求3+4 int a=3,b=4; main() { int a,c; c=a+b; printf(“c=%d”); } 4.用一个函数求两个数之和。 sum(x,y) { float z; z=x+y; return; }

main() { float a,b; int c; scanf("%f,%f",&a,&b); c=sum(a,b); printf("\nSum is %f",sum); } 5.用指针作函数参数,对输入的两个整数按大小顺序输出。 swap(int *p1,*p2) { int *p; *p=*p1;*p1=*p2;*p2=*p; } main() { int a,b; int *q1,*q2; scanf("%d,%d",&a,&b); &q1=a,&q2=b; if(a

vb程序设计试题(含答案)

第一套试题 一、选择题(每题2分,共30分) 1.在VB环境中,工程文件的扩展名是( C ) (A).frm (B).bas (C).vbp (D).frx 2.下面4项中不属于面向对象系统三要素的是( A ) (A)变量(B)事件(C)属性(D)方法 3. \、/、Mod、*这4个算述运算符中,优先级别最低的是( C ) (A)\ (B)/ (C)Mod (D)* 4.要使Print方法在Form_Load事件中起作用,要对窗体的( C )属性进行设置(A)BackColor (B)ForeColor (C)AutoRedraw (D)Caption 5.不论何控件,共同具有的属性是( B ) (A)Text (B)Name (C)ForeColor (D)Caption 6.要使Form1窗体的标题栏显示“欢迎使用VB”,以下语句正确的是( D ) (A)Form1.Caption=“欢迎使用VB”(B)Form1.Caption=ˊ欢迎使用VBˊ(C)Form1.Caption=欢迎使用VB (D)Form1.Caption=〞欢迎使用VB〞 7.VB提供了结构化程序设计的3种基本结构,这3种基本结构是( D ) (A)递归结构,选择结构,循环结构(B)选择结构,过程结构,顺序结构 (C)过程结构,输入、输出结构,转向结构(D)选择结构,循环结构,顺序结构 8.给变量赋值a=123+MID(“123456”,3,2),a变量中的值是( D ) (A)“12334”(B)123 (C)12334 (D)157 9.下面If语句统计满足性别为男、职称为副教授以上、年龄小于40岁条件的人数,不正确的语句是( D ) (A)If sex=“男”And age<40 And InStr(duty,“教授”)>0 Then n=n+1 (B)If sex=“男”And age<40 And (duty=“教授”Or duty=“副教授”) Then n=n+1 (C)If sex=“男”And age<40 And Right(duty,2)= “教授” Then n=n+1 (D)If sex=“男”And age<40 And duty=“教授”And duty=“副教授” Then n=n+1 10.若要清除列表框的所有内容,可用来实现的方法是( C )

VB改错题(答案)

1.程序的功能是:单击命令按钮“输出”,在图片框Picture1中输出费波那契数列的前20项项值,要求按区输出,每行输出4个项值。程序中有两处错误,请修改程序并运行,直到得出正确结果。 注意:程序中的修改行就在注释行: '**********found*************' '请不要删除该行' 的下面,请不要修改程序中的其他部分。最后把修改后的文件按原来文件名存盘。 第1个出错位置:For i=3 to 20 第2个出错位置:If i Mod 4=0 then Picture1.Print Private Sub Command1_Click() Dim f(40) As Long Dim i As Integer Picture1.Cls f(1) = 0 f(2) = 1 Picture1.Print f(1), f(2), '**********found*************' '请不要删除该行' For i = 1 To 40 For i=3 to 20 f(i) = f(i - 1) + f(i - 2) Picture1.Print f(i), '**********found*************' '请不要删除该行' If i Mod 4 = 0 Then Picture.Print If i mod 4=0 then picture1.print Next i End Sub 2. 程序的功能是:程序运行时,单击“输出”按钮,产生10个[0,99]之间的随机整数存入数组A中,并按照相反的顺序输出在窗体上。程序中有两处错误,请修改程序并运行,直到得出正确结果。 第1个出错位置:A(i)=Int(Rnd*100+0) p50 第2个出错位置:Print A(11-i); Private Sub Command1_Click() Randomize Dim A(10), I As Integer Form1.Cls For I = 1 To 10 '*********found******** '请不要删除该行 A(I) = Int(Rnd * 99) A(i)=Int(Rnd*100+0) Print A(I); Next I Print For I = 1 To 10 '*********found******** '请不要删除该行 Print A(I); Print A(11-i) (注意答案中间无;) Next I End Sub

计算机程序改错题,及答案

11 *程序名:TEST.prg *检索选修课程门数等于3门或3门以上,每门课程成绩大于或等于70分的每个学生的 *学号,姓名,性别,平均成绩,最低分和选课门数,并将结果存储到表NEW_TEST中. *以下程序有三处错误,请改正 OPEN DA TABASE SDB SELECT STUDENT.学号,姓名,性别,A VG(成绩) 平均成绩,MIN(成绩) 最低分,COUNT(*) 选课门数; FROM STUDENT,SC; WHere STUDENT.学号= SC.学号AND 成绩>= 70 ; &&**********Error********** GROUP BY STUDENT.学号HA VING count(课程号) >= 3; &&**********Error********** inTO table NEW_TEST &&**********Error********** CLOSE ALL 9 *程序名:dbtest3.prg *定义一个视图VS1, *检索选课门数是3门以上的每个学生的学号、姓名、平均成绩、最低分、选课门数和院系编号, *并按平均成绩降序排序. *以下程序有三处错误,请改正 SET TALK OFF SET SAFETY OFF open DATABASE SDB &&****Error***修改本行的语法错误,不许注释掉本行或删除本行 CREATE VIEW VS1 SELECT STUDENT2.学号, 姓名, A VG(成绩) 平均成绩, MIN(成绩) 最低分, COUNT(*) 选课门数, 院系编号; FROM STUDENT2, sc; &&*************Error************* WHERE STUDENT2.学号= SC.学号; GROUP BY SC.学号HA VING COUNT(课程号) > 3; ORDER BY 平均成绩desc &&*************Error************* CLOSE DATABASE RETURN i=2 create table four(结果I) do while i<=1000 if i%3=0 insert into four values(i) &&错误语句请修改 endif

VB程序设计编程考试~题及答案~

VB程序设计编程考试题及答案 1.输入3个数,输出最大的数 Private Sub command1_click() Dim max For i = 1 To 3 n = Val(InputBox("输入第" & i & "个数")) If n > max Then max = n End If Next Print "三个数中最大的数是" ; max End Sub 2.有一元二次方程:aX2+bX+c=0,依次输入a,b,c,判断此方程是否有实根 Private Sub Command1_Click() Dim a, b, c, n a = Text1 b = Text2 c = Text3 n = b * b - 4 * a * c If n >= 0 Then Label4 = "方程有根" Else Label4 = "方程无根" End If End Sub 3.输入一个百分制的成绩,若大于等于60,则用消息框弹出,显示“恭喜!成绩通过!”, 若小于60,则弹出消息框,显示“抱歉!成绩没有通过! Private Sub Form_Load() Text1 = "" End Sub Private Sub Command1_Click() Dim n n = Text1 If n > =60 Then Val (MsgBox("恭喜!成绩通过!")) Else Val (MsgBox("抱歉!成绩没有通过!")) End If End Sub 4.输入一年份,判断它是否为闰年,并显示有关信息。(判断闰年的条件是:年份能被4整 除但不能被100整除,或者能被400整除) Private Sub Command1_Click() Dim y%

[整理]VB程序设计复习题及答案.

中南大学现代远程教育课程(专科)考试复习题及答案 《VB程序设计与应用》 一、选择题:在每小题给出的四个选项中,只有一项是符合题目要求的,请把所选项前的字母填在 题后的括号内。 1. Visual Basic程序中分隔一行中各语句的字符是()。[ ] A)‘ B): C)\ D)_ 2. 下列可作为Visual Basic的变量名的是()。[ ] A: Filename B: A(A+B)C: A%D D : Print 3. 要让菜单项无效,应将()属性值设置为False。 [ ] A. Visible B. Enabled C. Moveable D. Checked 4. 以下过程是()事件。 Prviate Sub Form_Load( ) …… End Sub [ ] A: 命令按钮的单击B: 命令按钮的装载 C; 窗体的装载D: 窗体的单击 5. Vb中描述文件扩展名的是()属性。[ ] A: Drive B: Pattern C: FileName D: Path 6. 关于Visual Basic中事件的说法中,不正确的为()。[ ] A)事件是由Visual Basic预先定义好的,能够被对象识别的动作 B)DblClick(双击)是Visual Basic中的一种事件 C)一个对象可以识别一个或多个事件 D)对于一个系统提供的对象可以识别哪些事件,需要程序员自己定义 7. 下列控件中可设置滚动条是()。 [ ] A. 检查框(复选框) B. 框架 C. 文本框 D. 标签框 8. 在Visual Basic中建立一个空窗体,( )不会是其默认名。 [ ] A. Form1 B. Form2 C. Formx D. Form10 9. Const One&=1,则One为()类型的常数。[ ] A)整型 B)字节型

c语言程序设计第五版习题答案

c语言程序设计第五版习 题答案 Prepared on 24 November 2020

习题解析与答案 第1章C语言概述 一.简答题 1.概述C语言的主要特点。 【解答】 (1)语言简洁、紧凑,使用方便、灵活。 (2)数据类型丰富,表达能力强。 (3)运算符多样。C语言中的运算符包含的范围非常广泛。 (4)具有结构化的控制语句。如if…else语句、while语句、dowhile语句、switch语句、for语句。 (5)允许直接访问物理地址。C语言中含有的位和指针运算,能够直接对内存地址进行访问操作。 (6)所生成的目标代码质量高,可移植性好。 2.构成C语言程序的基本单位是什么它由哪几部分组成 【解答】函数是构成C语言程序的基本单位。一个完整的C程序一般由文件包含、宏定义、函数说明、变量和一个或若干个函数组成。 3.C语言程序的运行一般要经过哪几个步骤 【解答】(1)编辑;(2)编译;(3)连接,生成EXE文件;(4)执行。 二.运行程序写结果 1.输入下面程序并运行。 main() { inta1,a2,x; a1=100; a2=50; x=a1-a2; printf(″x=%d\n″,x); } 【解答】运行结果为:x=50 2.输入下面程序并运行。 main()

{ inta1,a2,x; a1=10; a2=20; x=a1*a2; printf(″a1=%d,a2=%d\n″,a1,a2); printf(″x=%d\n″,x); } 【解答】运行结果为:a1=10,a2=20 x=200 三.编程题 1.参照本章例题,编写一个C程序,用于显示如下信息: ************************* IloveCprograms! ************************* 【分析与提示】 ①要有文件包含语句#include<>。C语言中没有数据的输入、输出等功 能,数据的输入、输出都是通过调用系统提供的库函数scanf和printf 等来实现的。这些函数的说明都包括在文件中。 ②main是主函数的名称。用{}括起来的内容是函数体,函数体由若干 条语句组成,这是计算机要执行的部分,每条语句以分号“;”结束。 ③注意显示的信息有三行,所以要用到换行符“\n”。 参考代码: #include<> main() { printf("************************\n"); printf("IloveCprograms!\n"); printf("************************\n"); } 第2章数据类型及其运算一.简答题 1.C语言中的数据类型主要有哪几类 【解答】短整型(shortint) 整型整型(int) 长整型(longint) 基本类型字符型(char)(float) 实型(浮点型) 双精度(double) 枚举类型(enum) 数组类型

有目录-程序改错部分试题及答案(2015-2016-1)

目录 功能:在一个已按升序排列的数组中插入一个数,插入后,数组元素仍按升序排列。 (1) 功能:求如下表达式: (2) 功能:判断m是否为素数,若是返回1,否则返回0。 (4) 功能:用下面的和式求圆周率的近似值。直到最后一项的绝对值小于等于0.0001。 (5) 功能:求1到20的阶乘的和。 (6) 功能:输出Fabonacci数列的前20项,要求变量类型定义成浮点型,输出时只输出 整数部分,输出项数不得多于或少于20。 (7) 功能:先从键盘上输入一个3行3列矩阵的各个元素的值,然后输出主对角线上的 元素之和sum。 (8) 功能:找出大于m的最小素数,并将其作为函数值返回。 (9) 功能:有一数组内放10个整数,要求找出最小数和它的下标,然后把它和数组中最前 面的元素即第一个数对换位置. (10) 功能:一个已排好序的一维数组,输入一个数number,要求按原来排序的规律将 它插入数组中. (11) 第1题/*------------------------------------------------------ 【程序改错】 -------------------------------------------------------- 功能:在一个已按升序排列的数组中插入一个数,插入后,数组元素仍按升序排列。 ------------------------------------------------------*/ #include #define N 11 main() { int i,number,a[N]={1,2,4,6,8,9,12,15,149,156}; printf("please enter an integer to insert in the array:\n"); /**********FOUND**********/ scanf("%d",&number) printf("The original array:\n"); for(i=0;i

VB程序改错40题

第2题(1、0分)题号:1 2 9 '【程序改错】 '题目:该程序实现将输入得0 —255 之间得正整数转 换成二进制数 O p t i on Explici t P riv a t e Sub Fo r m _Cl i ck () Con st n = 8 Dim a(n) A s I n tege r, s As Stri ng, m A s I n te g er, x A s Integer x = Va l (In p utB ox (”请输入一个0 — 2 55之间得正整数: ")) Prin t x ** ** ******FOUND** Fo r m = 1 T o n (m ) = x Mod 2 *** * *F^) D********* * Nex t m For m =n To 0 S t e p —1 * *********FOU N D * **** * * ** * s = Str(a( m )) Nex t m Pri n t s E n d Sub 答案:

(答案1)For m = 0 To n======= 答案2)x= x \ 2 或x= int(x/2)=======(答案3)s = s + St r (a (m)) 第3题(l、0分) 题号:463 '题目:以下程序功能就是输入三个数,由大到小排序。 Op t io n Explicit Di m A A s I n teger Dim B As I n te g er D im C As I nt e ger P r ivat e Sub F o r m_Click() Dim nTemp A s Integer A = V a l(ln put B o x (H P lease in put fi r st i nt e ger","输入正整数”)) B = Val( I n putBo x (” Pl e a s e in put s eco nd int e ge r”,"输入正整数”)) C = Va i (In pu tB o x(” P 1 e a se in put third int e ger ” ,"输入正整数”)) F OU ND * * ***** If A v= C T h en n Te m p = A A = B B = n Te mp E nd I f > ***** *FOUND**** * * * *** I f B <= C T hen nTe mp = A A = C C = nTem p

程序改错--答案版

12592 '题目:编程求一个十进制整数n的各位数字之和,设n为小于或等于5位的数。'------------------------------------------------ Option Explicit Private Sub Form_Click() Dim N As Integer, Sum As Integer, S1 As String, S2 As String Dim i As Integer, Ch As String Sum = 0 N = InputBox("输入整数n") S1 = Str(N) S1 = Trim(S1) For i = 1 To Len(S1) '**********ERROR********** Ch = Mid(N, i, 1) '**********ERROR********** Sum = Val(Ch) Next i Print "该整数的各位数之和是:"; Sum End Sub 12610'题目:程序功能根据输入的学习成绩,分别显示优秀(90分以上), 良好(75分以上),及格(60分以上)不及格四个等级. '------------------------------------------------ Option Explicit Private Sub Form_Click() Cls Dim i As Integer i = InputBox("请输入学习成绩") Select Case i '**********ERROR********** Case 0 < i < 100 MsgBox "成绩应该在0--100之间""" '**********ERROR********** Case 90 Print "优秀" Case 75 To 89 Print "良好" Case 60 To 74 Print "及格" '**********ERROR********** Case MsgBox "不及格", vbCritical End Select End Sub 12616.题目:求s=1!+3!+5!+7!,阶乘的计算用Function过程fact实现. '------------------------------------------------ Option Explicit Private Sub Form_Click() Dim i As Integer, s As Integer '**********ERROR********** For i = 1 To 7 s = s + fact(i) Next i Print s End Sub '**********ERROR********** Public Function fact() Dim t As Integer, i As Integer t = 1 For i = 1 To n t = t * i Next i '**********ERROR********** fact = i End Function 12620题目:编程实现从左到右的滚动字幕,滚动的速度由滚动条控件来控制。 '------------------------------------------------ Option Explicit Private Sub HScroll1_Scroll() '**********ERROR********** Timer1.Interval = HScroll1.Min - HScroll1.Value End Sub Private Sub Timer1_Timer() '**********ERROR********** If Label1.Left <= Form1.Width Then '**********ERROR**********

VB程序的设计课后复习题答案

VB课后习题解答 第一、二章: 1、简述VB6.0的主要特点 答:方便、直观的可视化设计工具;面向对象程序设计方法;事件驱动的编程机制;易学易用的应用程序集成开发环境;结构化程序设计语言;完备的联机帮助功能;强大的多媒体、数据库和网络功能。2、当正常安装VB6.0后,误把Windows子目录删除。当重新安装Windows后,是否需要再次安装VB6.0? 答:要重新安装的。因为安装VB6.0时,有些VB程序被系统自动安装在Windows目录下,所以一旦删除Windows子目录,就必须重新安装VB6.0。 3、Visual Basic 6.0分为学习版、专业版和企业版,如何知道所安装的是哪个版本? 答:在VB6.0的启动界面上,能显示对应的版本。 4、叙述建立一个完整应用程序的过程 答:首先建立用户界面的控件对象(简称控件);然后对控件属性进行设置;再对控件事件过程及编程; 保存应用程序;程序调试和运行。 5、Visual Basic 6.0有多种类型窗口,若要在设计时看到代码窗口,应怎样操作? 答:选择“视图”—>“代码窗口”命令或单击“工程资源管理器”窗口中的“查看代码”按钮。 6、当建立好一个简单的应用程序后,假定该工程仅有一个窗体模块。试问该工程涉及多少个要保存的文件? 若要保存该工程的所有文件,应先保存什么文件?再保存什么文件?若不这样做,系统会出现什么信息? 答:涉及两个文件要保存。先保存窗体文件(.frm),再保存工程文件(.vbp)。若先保存工程文件,系统也会先弹出“文件另存为”对话框,要求先保存窗体文件。 7、保存文件时,若不改变目录名,则系统默认的目录是什么? 答:系统默认的目录是VB98 8、安装Visual Basic 6.0后,帮助系统是否也已安装? 答:没有。VB6.0的帮助系统在两光盘上,即MSDN Library,其中还包含了VC、VFP等其他语言的帮助系统。 9、如何使用Visual Basic 6.0的帮助系统? 答:最方便的方法是选定要帮助的容,然后按F1功能键,这时系统打开MSDN Library查阅器,直接显示与选定容有关的帮助信息。 10、什么是类?什么是对象?什么是事件过程? 答:类是同类对象集合的抽象,它规定了这些对象的公共属性和方法; 对象是类的一个实例,对象包含三个要素:属性、方法和事件。 当在对象上发生了事件后,应用程序就要处理这个事件,而处理的步骤就是事件过程。 11、属性和方法的区别是什么? 答:属性是对象的特征,方法是对象的行为。前者有值,可以被赋值或引用;后者没有值,表示能够执行的操作。 12、当标签边框的大小由Caption属性的值进行扩展或缩小时,应对该控件的什么属性进行何种设置? 答:将该控件的Autosize属性值设置为true。 13、在VB6.0中,命令按钮的显示形式可以有标准的和图形的两种选择,它们通过什么属性来设置?若选 择图形的,则通过什么属性来装入图形?若已在规定的属性里装入了某个图形文件,但该命令按钮还是不能显示该图形,而显示的是Caption属性设置的文字,应怎样修改?

19VB程序改错题收集(答案在后面)

VB中常见的错误 1、运行下面的 Visual Basic程序,单击命令按钮 Command1,出现如下图所示的提示信息: Private Sub Command1_Click() Dim a As Single, b As Single a = Val(Text1.Text) b = 10 If a >= b b = a * a + 2 * b End If Label1.Caption = Str(b) End Sub 出现该错误的原因是 A.If语句缺少Then B.If语句缺少Else C.变量a的数据类型说明错误 D.变量b的数据类型说明错误 2、某VB程序的事件过程如下所示: Private Sub Command1_Click ( ) Dim a As Integer a = Val(Text1.Text) Text1.Text = Str(Int( a )) End Sub 运行程序,单击按钮Command1后弹出如下图所示的错误提示。导致该错误的原因可能是() A.Int函数计算时出现错误 B.Val函数应用不正确 C.窗体上缺少Text1文本框对象 D.变量a数据类型定义错误 3、某Visual Basic程序段如下: Dim a(1 To 10) As Integer Dim i As Integer a(1) = 1 For i = 2 To 10 a(i) = a(i - 1) * i Next i 运行该程序段,会出现的错误提示为 (A)下标越界(B)子程序或函数未定义(C)要求对象(D)溢出 Interger类型范围在-32768~32767,而1到10相乘超出这个范围 4、某Visual Basic程序如下: Private Sub Command1_Click() Dim a(1 To 10) As Integer

c程序改错题——有答案

试卷编号:10578 所属语言:C语言 试卷方案:TC_150522153552 试卷总分:440分 共有题型:1种 一、程序改错共44题(共计440分) 第1题(10.0分)题号:380 难度:中第2章/*------------------------------------------------------ 【程序改错】 -------------------------------------------------------- 功能:输入两个双精度数,函数返回它们的平方和的平方根值。 例如:输入:22.936 和 14.121,输出为:y = 26.934415。 ------------------------------------------------------*/ #include #include #include /**********FOUND**********/ double fun (double *a, *b)//double fun(double *a,double *b) { double c; /**********FOUND**********/ c = sqr(a*a + b*b);//sqrt /**********FOUND**********/ return *c; } main ( ) { double a, b, y; printf ( "Enter a, b : "); scanf ("%lf%lf", &a, &b ); y = fun (&a, &b); printf ("y = %f \n", y ); } 第2题(10.0分)题号:438 难度:中第2章/*------------------------------------------------ 【程序改错】 --------------------------------------------------

VB程序设计学习与实验指导答案

Visual Basic 程序设计学习与实验指导答案 上篇学习指导 第1章Visual Basic 概述 1.事件 2.查看对象 3.工程 4.视图属性窗口 5.窗体编辑器 第2章面向对象程序设计初步 1.控件 2.事件 3.类属性 4.属性 5.略 https://www.doczj.com/doc/ed11453307.html, 第3章Visual Basic 语言基础 1.(a*sin(30/180*3.14)+c*(log(b)/log(10)))/((Abs(d)+1)*(e+f))+1

2.mod 3.X=Int(X) And Y=Int(Y) And X*Y>0 4. 4.Y Mod 4=0 And Y Mod 100<>0 Or Y Mod 400=0 5.x=Int((99-10+1)*Rnd+10) 6.0 “” 7.空格 8.6,845.30 9. (1)8 (2)1 (3)abcd (4)出错,类型不匹配 (5)False (6)2008-6-29 (7)I likeVB (8)4 (9)4 4 (10)3 4 (11)10 -10 (12)-1 (13)aa (14)3 (15)0 (16)1 (17)C (18)5 (19)8 (20)34.54 (21)中国 (22)上海 (23)VISUAL BASIC (24)visual basic 10. (1)x<-100 or x>100 (2)a=Int(a) And b =Int(b) Or a<0 And b<0 (3)x<=y or x>=z (4)a>0 And a<>Int(a) (5)a=0 xor b=0 (6)Len(S)<10 (7)UCase(S)=S (8)Left(S,1)=”a” And Right(S,1)=”a” (9)Instr(S,”@”)<>0 (10)Trim(S)=S (11)Date=#8/8/2008#

VB 改错题

【程序改错】 '------------------------------------------------ '题目:下面的程序段用于删除数组中指定位置的数字,'如果位置错误给出提示,否则分别显示删除前后'的数组元素 '------------------------------------------------ '注意:不可增加或删除程序行,也不可以更改程序结构'------------------------------------------------ Private Sub Form_Click() Dim a(10) As Integer, x As Integer, i As Integer, k As Integer For i = 1 To 10 a(i) = Int(Rnd * 90) + 10 Print a(i); Next i Print x = InputBox("请输入要删除第几位数字") '**********FOUND********** If x > 0 And x <= 10 Then 'If x > 0 Then '**********FOUND********** For k = x To 9 'For k = x To 10 a(k) = a(k + 1) Next k Print "删除后的数组:" For i = 1 To 9 Print a(i); Next i Else Print "删除位置错误" '**********FOUND********** End If 'End End Sub 【程序改错】 '------------------------------------------------ '题目:在下列程序段中,过程fb可以显示任意长度的菲'波那契数列,现要求通过键盘输入一数字,利用'该过程显示不超过指定数字大小的数列 '------------------------------------------------

VB程序设计试题及答案

VB程序设计试题及答案(三) 一、单选题 1. Visual Basic是一种面向对象的可视化程序设计语言,采取了 A 的编程机制。 (A) 事件驱动(B) 按过程顺序执行 (C) 从主程序开始执行(D) 按模块顺序执行 2. 若要使标签控件显示时不覆盖其背景内容,要对 D 属性进行设置。 (A) Backcolor (B) BorderStyle (C) Forecolor (D) Backstyle 3. 在Visual Basic中最基本的对象是 C ,它是应用程序的基石,是其他控件的容器。 (A) 文本框(B) 命令按钮 (C) 窗体(D) 标签 4. 要判断在文本框是否按下Enter键,应在文本框的 D 事件中判断。 (A) Change (B)KeyDown (C) Click (D)KeyPress 5. 数学表达式3≤x10 (C) x>=3 Or x<10 (D) x>=3 AND x<10 6. Rnd函数不可能为下列 B 值。 (A) 0 (B) 1 (C) 0.1234 (D) 0.0005 7. 赋值语句:a=123+Mid("123456",3,2)执行后,a变量中的值是 D 。 (A) "12334" (B) 123 (C) 12334 (D) 157 8. 对于语句If x=l Then y=l,下列说法正确的是 C 。 (A) x=l和y=l均为赋值语句 (B) x=l和y=l均为关系表达式 (C) x=l为关系表达式,y=l为赋值语句 (D) x=l为赋值语句,y=l为关系表达式 9. 下面程序段表示求两个数中的大数, D 不正确。 (A) Max=IIf(x>y,x,y) (B) If x>y Then Max=x Else Max=y (C) Max=x (D) Ify>=x Then Max=y If y>=x Then Max=y Max=x 10.当在文本框中输入“ABCD”4个字符时,窗体上显示的是 C 。 Private Sub Text1_Change( ) Print Text1; End Sub (A) ABCD (B) A (C) AABABCABCD (D) A B AB C ABC D ABCD 11.下列哪个程序段不能分别正确显示1!、2!、3!、4!的值 B 。 (A) For i=1 to 4 (B) For i=1 to 4 n=1 For j=1 to i

相关主题
文本预览
相关文档 最新文档