vb求解 过程写一下 谢谢 5
从字符串中:NO1:X:123:Y:680:End中逐个取出字符串进行运算:
当i=1时:
字符:N不大于0也不小于9,又因为a(1)=0,不大于0
所以:什么也不做!
因此可以判断,对字符不是0-9的就忽略了!
当i=3时:
字符:1 在0-9之间
因为c的值没有变过,只是1
所以a(1)=a(1)*10+1
结果a(1)=1
当i=4时:
字符:: 不在0-9之间
因为c的值也没有变过,只是1,而a(1)已经为1了,大于0了
所以c=c+1
结果c=2
当i=5时:
字符:X 不在0-9之间
因为c的值现在是2了,而a(2)为0了
所以什么都不做
结果还是c=2
当i=6时:
字符:: 不在0-9之间
因为c的值现在是2了,而a(2)为0了
所以什么都不做
结果还是c=2
当i=7时:
字符:1在0-9之间
因为c的值现在是2了,而a(2)为0了
所以a(2)=a(2)*10+1
结果a(2)=1
当i=8时:
字符:2在0-9之间
因为c的值现在还是2,而a(2)为1了
所以a(2)=a(2)*10+2
结果a(2)=12
当i=9时:
字符:3在0-9之间
因为c的值现在还是2,而a(2)为12了
所以a(2)=a(2)*10+3
结果a(2)=123
所以题目中最大的数就是123,所以
答案应该是:D
给你编程验算的结果:
解:句子解释:
n=len(text1.text)是计算text1中字符的个数,为后面的循环提供循环次数,接下来的冒号只是隔开句子的作用;
s=mid(text1.text,i,1)是截取字符函数,意思是从第i个字符起截取1个,相当于是截取第i个字符;
Val(s)是把字符串转换成数字,这样才能计算;
循环里的是IF嵌套语句,满足了第一个条件(0-9的数字)的话,就不会执行第二个条件了。
根据以上分析:
i=1时,s=“N”,不满足IF的第一个条件(0-9的数字);a(1)=0也不满足第二个条件,所以s和数组a什么变化都没有。
i=2时,s=“o”,情况和i=1时一样。
i=3时,s=“1”,符合IF第一个条件,那么得到的结果是:a(1)=0*10+1=1
i=4时,s=“:”,不满足IF的第一个条件;但满足第二条件,因为此时a(1)=1,执行IF语句后得到c=1+1=2。
i=5时,s=“X”,不满足IF的第一个条件;此时a(2)=0(因为数组a各项初始值都是0)也不满足第二个条件。
i=6时,s=“:”,情况和i=5一样。
i=7时,s=“1”,符合IF第一个条件,那么得到的结果是:a(2)=0*10+1=1(因为此时的a(c)就是a(2),计算a(2)的值已经与前面a(1)的值无关,数组各项的值是不会自己相互影响的)。又因为符合了第一个条件,第二条件就算符合也不执行了,所以c的值还是2。
i=8时,s=“2”,符合IF第一个条件,那么得到的结果是:a(2)=1*10+2=12,同理不执行IF第二条件,所以c的值还是2。.
i=9时,s=“3”,符合IF第一个条件,那么得到的结果是:a(2)=12*10+3=123,同理不执行IF第二条件,所以c的值还是2。
i=10时,s=“:”,不满足IF的第一个条件;此时a(2)=123满足IF第二条件,所以执行IF语句结果是:c=2+1=3
接下来再怎么执行语句计算都与a(2)无关了,因为已经到计算a(3)了。
所以综上a(2)的值为123,选D。