第5章 习题与思考题和答案

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
(3)打印由数字组成的如下所示金字塔图案
1
222
33333
4444444
555555555
6666666
77777
888
9
(4)试编程序解决百钱买百鸡问题。公元前5世纪,我国数学家张丘建在《算经》中提出“百鸡问题”:鸡翁一值钱五,鸡母一值钱三,鸡雏三值钱一。百钱买百鸡,问鸡翁、鸡母、鸡雏各几何?
(5)编程序求表达式s=1+x+x2/2!+x3/3!+…+xn/n!+…的值和直至末项小于10-5为止,并在窗体上输出。
Dim i As Integer, j As Integer,yAs Double
i = 0
y = 1
Do While i <= 3
For j = 1 To (i + 1)
y = y * j
Next j
Print "y="; y
i = i + 1
Loop
End Sub
4.写出以下程序在单击窗体后的输出结果。
Dim nAsInteger,mAsInteger
DimiAsInteger,jAsInteger
For n=100 to 200Step 2
For m=2To (n/2)
Fori=2ToInt(Sqr(m))
If mModi=0ThenExitFor
Nexti
If⑴Then
For j=2To⑵
If(n-m)Mod j=0ThenExitFor
PrivateSubForm_Click()
Dim f As Single,i As Integer,sign As Integer

f = 1


f = f + sign / (i * (i + 1))
Next i
Print "f="; f
End Sub
2.下面的程序是在一个字符串变量中查找"at",并用消息框给出查找结果的报告:没有找到或找到的个数,程序如下:
a=0
Do while a<=10
a=a+2
loop
A.4B.5C.6D.7
三、填空题
1.由下列循环语句控制的循环次数是。
For k=25 to 0 step-2
k=k-2
Next k
2.循环结构的三种语句是:、、。
3.写出Fori= -12 To –33 Step –4所进行的循环后,i的值是。
四、程序阅读题
Private Sub Form_click()
Dim k,a,b as integer
a=20
b=2
k=2
Do While k<=a
b=b*2
k=k+5
Loop
Print b
End Sub
5.写出以下程序在单击命令按钮后的输出结果。
Private Sub Form_click()
k=0
fori=1 to 5
Form1.Print "最小公倍数="; mn / m
End Sub
(3)
Private Sub Form_Click()
Dim i%, j%
For i = 1 To 5
Print Spc(20 - i);
For j = 1 To 2 * i - 1
Print Trim(Str(i));
Next j
For i = 1 To 6
For j = i To 6
Form1.Print star;
Next j
Form1.Print
Next i
End Sub
写出程序运行后,单击窗体后,Form1上输出结果为。
五、程序填空题
1.下面程序的功能是:计算f=1-1/(2*3)+1/(3*4)-1/(4*5)+……+1/(19*20)。
Dim x As Long, y As String
x = InputBox("输入一个数")
Do While x <> 0
y = y & x Mod 10
y = x Mod 10 & y
x = x \ 100
Print y
Loop
End Sub
3.写出程序运行后,单击窗体Form1上显示的内容。
Private Sub Form_Click()
for j=1 to 3
if j mod 2<>0 then
k=k+1
end if
k=k+1
next j
next i
Print k
End Sub
6.Private Sub Form_Click()
Dim i As Integer, j As Integer
Dim star As String
star = "#"
2.①Len(str1)②length③Mid(str1,i,2)④Sum=0
3.①i mod 7=5 andi Mod 5 = 3 And i Mod 3=2②i<1000
4. (1)x>=0 (2)x<amin
5.①last_one = laat_two②last_two = this_one③i=i+1④i-2
length =⑴
i = 1
sum = 0
Do While i <=⑵
If⑶= "at" Then
sum = sum + 1
End If
i = i + 1
Loop
If⑷Then
MsgBox "没有找到!"
Else
MsgBox "找到了" & Str(sum) & "个"
End If
End Sub
3.找出1个在1~1000中被7除余5、被5除余3、被3除余2的数(用Exit For)。
Next j
If j>Int (Sqr(n-m))ThenPrint n,m,n-m
EndIf
Next m
Next n
EndSub

(1)编程序计算:1!+3!+5!+….+11!
(2)输入两个正整数m和n,求其最大公约数a和最小公倍数b,计算最大公约数a的方法如下:先算出m/n余数r,若r等于0,则n为最大公约数;若r不为0,则把原来的n值作为新的m值,把原来的r值作为新的n值,继续运算。这样辗转相除,直到r为0,此时的n值为最大公约数a,最小公倍数则可用原始m与n值的积除以最大公约数求得。
答案
一.判断题
×√√√××√×
二.选择题
BBBDCCC
三.填空题
(1)7
(2)Do/Loop For/Next While/Wend
(3)-36
四.程序阅读题
1、4
2、
3、y=1
y=2
y=12
y=288
4、32
5、25
6、
五.程序填空题
1.①sign=1②Fori=2 to 19(3)sign=-sign
4.下段程序执行的输出结果是。
S=0:T=0:U=0
For i=1 To 3
For j=1 To i
For K=j To 3
S=S+1
Next K
T=T+1
Next j
U=U+1
Next i
Print S;T;U
A.3 6 14B.14 63C.14 3 6D.16 4 3
5.下程序段循环结构执行后,输出i的值是:
Private Sub form_Click()
Dim x,amax,amin as single
X=inputbox(”enter a score”)
amax=x
amin=x
do while⑴
if x>amax then
amax=x
end if
if⑵then
amin=x
end if
x=inputbox(“enter a score”)
6.①i>int(sqr(m))②Int(Sqr(n-m))
六.编程题
(1)
Private Sub Form_Click()
Dim i As Integer, j As Integer
Dim s As Double, Sum As Double
s = 1
Sum = 0
For i = 1 To 11 Step 2
loop
print“max=”;amax;”min=”;amin
End Sub
5.现面的程序功能是:求Fabonia数列的第17个数是多少?第几个数起每个数都超过1E+8?
Public SubForm_Click()'Fabonia数列的前三个数是0,1,2,从第
四个数起,每个数都是它前面的两个数之和
4.一个Do循环只能使用一个Loop关键字,但是可以使用多个Exit语句。
5.For循环语句正常结束(即不是通过Exit For语句或强制中断)其循环控制变量的值一定大于“终值”,并等于“终值”+“步长”。
6.如果有多重Do循环嵌套,位于最里层循环体语句中的Exit Do语句可以退出所有的循环。
7.For-Next循环结构的默认步长为1。
8.Do-Loop语句是循环结构的一种特殊形式,如果循环体中没有Exit Do语句,程序运行就一定会进入死循环。
二、选择题
1.循环结构For i!=1 to 10 step 1.5共执行几次。
A.6B.7C.9D.10
2.下列循环正常结束的是。
A.i=0B.i=0
DoDoWhilei<0
i=i-1i=i-1
If n <= 0 Or m <= 0 Then
MsgBox "数据有误"
End
End If
mn = m * n
If m < n Then
t = m: m = n: n = t
End If
Do While (n <> 0)
r = m Mod n: m = n: n = r
Loop
Form1.Print "最大公约数="; m
LoopWhilei<0Loop
C.i=10D.i=6
DoDo
i=i+1i=i-2
Loop Untili<0Loop Until iBaidu Nhomakorabea1
3.下列哪组语句可以将变量A、B值互换。
A.A=B : B=AB.A=A+B : B=A – B: A=A – B
C.A=C : C=B : B=AD.A=(A+B)/2 : B=(A – B)/2
For j = 1 To i
s = s * j
Next j
Sum = Sum + s
Next i
Print Sum
End Sub
(2)
Private Sub Form_Click()
Dim m%, n%, mn%, r%, t%
m = Val(InputBox("m="))
n = Val(InputBox("n="))
A.25B.10
C.11D.因为y的初值不知道,所以不确定
For i=1 to 10 step 2
y=y+i
Nexti
Print i;
6.下列程序段的循环结构执行过程中共循环了次。
For i% = 1 To 10 Step 2
y = y + i
Next i
A.3B.4C.5D.6
7.以下程序循环的执行次数是。
Private Sub Form_Click()
Dim str1 As String'在字符串str1中查找"at"
Dim length As Integer'字符串长度
Dim sum As Integer'查到的个数
Dim i As Integer
str1 = InputBox("请输入一个字符串")
第五章习题与思考题和答案
一、判断题
1.要实现同样的循环控制,在Do While-Loop和Do-Loop While循环结构中给定的循环条件是一样的。
2.Do-Loop While语句实现循环时,不管条件真假,首先无条件地执行一次循环。
3.Do-Loop Until语句实现循环时,只要条件是假,循环将一直进行下去。
Private Sub Form_Click()
Dim i As Integer
For i = 5 To 1000 Step 7
If⑴Then Exit For
Next i
If⑵Then Print i
End Sub
4.以下程序的功能是:从键盘输入若干个学生的考试成绩,统计并输出最高分和最低分,当输入负数时结束输入,输出结果。请填空。


If i = 17 Then
Print "No:17="; this_one
End If

Loop While this_one <= 100000000#
Print "No:";⑷; "is > 1E+8"
End Sub
6.以下程序是验证100至200之间的所有偶数都能分解为两个素数之和。
PrivateSubForm_click()
Dim last_one As Long,last_two As Long,this_one As Long,i As Integer
last_one = 1'数列的第二个数
last_two = 2'数列的第三个数
i = 4'从数列的第四个数求起
Do
this_one = last_one + last_two
1.写出以下程序在单击窗体后的输出结果。
Private Sub Form_click()
mun=4
while mun<=3
mun=mun+1
Print mun
Wend
Print mun
End Sub
2.程序运行时单击Command1后,输入12345678,写出窗体上的输出结果。
Private Sub Command1_Click()
相关文档
最新文档