一道VB试题

执行下面程序后,单击命令按钮,则窗体上显示的第一行是:第二行是:第三行是:PrivateSubCommand3_Click()DimsAsString,tAsString... 执行下面程序后,单击命令按钮,则窗体上显示的第一行是 : 第二行是: 第三行是:
Private Sub Command3_Click()
Dim s As String, t As String
Dim k As Integer, m As Integer
s = "BASICY"
k = 1: m = k
For k = 1 To Len(s) Step m + 1
t = t & Chr(Asc(Mid(s, m, 1)) + k)
k = k + 1
If Mid(s, k, 1) = "y" Then Exit For
m = m + k
Print t
Next k
Print m
End Sub
第一行是C我看明白了,但是为什么第二行和第三行分别显示CW和8 呢?
为什么循环到第三次时,就不输出t的值,而直接输出了m的值?
展开
 我来答
教师小站
2011-08-09 · TA获得超过2158个赞
知道大有可为答主
回答量:1350
采纳率:0%
帮助的人:890万
展开全部
一、循环可以简化为:For k = 1 To 6 Step 2,因步长是2,下次执行到For语句k会自动加2

二、第一次循环
t=t & Chr(Asc(Mid('BASICY',m,1))+k) 这里K=1,M=1,t="C"
k=k+1 这里K=1+1=2
m=m+k 这里M=1+2=3
输出t的值C

三、第二次循环,执行到For语句k会自动加2,由2加2变成4
t=t & Chr(Asc(Mid('BASICY',m,1))+k) 这里K=4,M=3,t="C"&"W"="CW"
k=k+1 这里K=4+1=5
m=m+k 这里M=3+5=8
输出t的值CW

三、第三次循环,执行到For语句k会自动加2,由5加2变成7,由于是1 to 6,所以k已经超了,直接跳出循环--输出m的值8

四、If Mid(s,k,1)="y" Then Exit For这句永远无效,因为BASICY里没有小写的y

五、Chr(Asc(Mid('BASICY',m,1))+k),是从BASICY里取第m个字母,然后从这个字母向后数到第k个字母。
第一次从B向后数1下=C,第二次从S向后数4下依次是TUVW得到W
未来的路521
2011-08-09
知道答主
回答量:11
采纳率:0%
帮助的人:1.9万
展开全部
首先步长是2,尽管在循环体中m的值变化了,步长也是不变的
第一次执行循环体
t=C
K=2
M=3
next k为4 因为步长是2
第二次执行循环体
t=CW
K=5
M=8
next k为7 大于终值,则不再循环,不知对不对,仅是鄙人想法,希望对你有所帮助
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
尚心部落
2011-08-09 · TA获得超过302个赞
知道小有建树答主
回答量:534
采纳率:0%
帮助的人:597万
展开全部
因为第一行时你的K值已经通过 k = k + 1 变为2了,然后你在next K,不就是4了吗?本来你检索到得字母为s,s+4=w,明白了吧?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
是小白啊2k
2011-08-09 · TA获得超过2566个赞
知道小有建树答主
回答量:1183
采纳率:0%
帮助的人:1258万
展开全部
这个问题的关键在于step,第一次上来step=1+1=2,此时已经确定了k每次增2,虽然在以后的循环中m的值不断改变,但是他不会在影响step,所以第二次循环k=k+2,由于在第一次循环中k已经增1,所以此时k=4;综上,第二次Mid(s, m, 1)=S,S的后四个字母就是W,所以t是上次的C加这次的W是CW,此时的m=m+k+1=8;当第二次循环时k=4+1+2=7已经大于 Len(s)(6),所以不再循环,打印出m为8.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
_永远De小文_
2011-08-09 · TA获得超过155个赞
知道答主
回答量:118
采纳率:0%
帮助的人:55.9万
展开全部
第3次循环应该K=7 而len(s)=6 跳出循环了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式