Val(Text1.Text)=x pd=True i=1
Do While i<x And pd=True If x Mod i=0 Then pd=False Else i=i+1 End If Loop
If pd=True Then Label1.Caption=”Y” Else
Label1.Caption=”N” End If End Sub
错误语句1:________改为:________; 错误语句2:________改为:________。
解析 变量x的值由文本框Text1中输入得到,因此为x=Val(Text1.Text);除数应从2开始。
答案 Val(Text1.Text)=x x=Val(Text1.Text) i=1 i=2
12.下列VB程序段用于比较两个等长的字符串a和b,并在标签Label1中显示比较结果:如果a和b完全相同,则输出“完全相同”,否则在输出结果中指出第1个不相同字符的位置。
k=0 ′整数型变量k用于记录第1个不相同字符的位置 For i=1 To Len(a) ′字符串变量a用于存储第1个字符串 key=Mid(a,i,1)
If key<>Mid(b,i,1) Then ′字符串变量b用于存储第2个字符串
Exit For End If Next i If k=0 Then
Label1.Caption=”完全相同” Else
Label1.Caption=”第”+Str(k)+”个字符不相同” End If
方框中的正确语句是( )
A.k=i B.k=0 C.k=1 D.k=len(a)
解析 当程序循环到第i次时,如果发现有不相同字符,则用k记录下当前这个位置,这时k的值已经由最初的0变为当前的i。 答案 A
13.下列VB程序实现如下功能:程序运行时,在文本框Text1和Text2中分别输x2x3
入x和n的值,单击命令按钮Command1后,调用函数f计算s=x+++…
2!3!
xn
+的值,并在文本框Text3中显示计算结果。请在画线处填入合适的代码。 n!
Private Sub Command1_Click( )
Dim x As Single,n As Integer,s As __①__ x=Val(Text1.Text) n=Val(Text2.Text) s=f(x,n) Text3.Text=str(s) End Sub
Private Function f(x As Single,n As Integer) As Single Dim sum As Single,i As Integer,t As Single sum = 0 t=1
For i=1 To n t=t*x/i sum=sum+t Next i ____②____ End Function
填写画线①处代码_____________________________________________________ _____________________________________________________________________。
填写画线②处代码_____________________________________________________ _____________________________________________________________________。
解析 本题注意变量的类型。 答案 ①Single ②f=sum
14.(2015·9月浙江选考模拟)用VB编写一个字符串分行程序,功能如下:单击“分行”按钮Command1,将文本框Text1中的英文文本在列表框List1中分行显示(分行时单词不得跨行,每行字符尽可能多但不超过40个),并在标签Label1中输出总行数,运行效果如图所示。分行算法如下: (1)将文本框中的字符串保存到变量s中;
(2)当s中字符个数超过40时,循环执行下列①②③步,否则跳转到(3): ①如果第41个字符不是英文字母,则分行位置p=40;否则,向左逐个查找,直至找到第一个非英文字母,将其位置作为分行位置p;
②截取s的前p个字符,作为新增行显示在列表框List1中,同时总行数加1; ③将s中未分行部分重新赋值给变量s。
(3)将s作为新增行显示在列表框List1中,同时总行数加1。
实现上述功能的VB程序如下,请在画线处填入合适代码。 Private Sub Command1_Click( ) Dim s As String,c As String
Dim r As Integer,total As Integer,p As Integer total=0 s=__(1)__ Do While Len(s)>40 r=41
c=Mid(s,r,1)
If Not((c>=”a” And c<=”z”)Or(c>=”A” And c<=”Z”)) Then p=40 Else
′从第41个字符开始向左找到第1个非英文字母,并将其位置值赋给p Do While(c>=”a” And c<=”z”)Or(c>=”A”And c<=”Z”) r=__(2)__ c=Mid(s,r,1) Loop p=r End If
List1.AddItem Mid(s,1,p) total=total+1 s=__(3)__ Loop
List1.AddItem s total=total + 1
Label1.Caption=”共”+Str(total)+”行” End Sub
解析 本题考查文本框对象和属性的赋值、倒计时计数器的变通应用及取子串函数的应用。(1)题和图中已知对象Text1接受字符串赋值给s,即s=Text1.Text。
(2)r变量在语句c=Mid(s,r,1)中表示取子串的起始位置取一个字符,为判断从第41个字符开始向左找到第1个非英文字母,并将其位置赋给p。(3)上题中已把前面子串输出到列表框List1中,需要把剩余的子串保留下来,重新赋值给新的变量s,为下一行再取子串做准备。 答案 (1)Text1.Text (2)r-1
(3)Mid(s,p+1,Len(s)-p)[或Mid(s,p+1)或Right(s,Len(s)-p)]
相关推荐: