在考生文件夹下有一个工程文件sjt4.vbp,其窗体如图所示。该程序用来对在上面的文本框中输入的英文字母串(称为“明文”)加密,加密结果(称为“密文”)显示在下而的文本框中。加密的方法为:选中一个单选按钮,单击“加密”按钮后,根据选中的单选按钮后面的数字n,将“明文”中的每个字母改为它后面的第n个字母(“z”后面的字母认为是“a”,“Z”后面的字母认为是“A”),如图所示。窗体中已经给出了所有控件和程序,但程序不完整,请去掉程序中的注释符,把程序中的改为正确的内容。
注意:不得修改程序中的其他部分和控件的属性。最后将修改后的文件按原文件名存盘。
参考答案:[考点分析]
本题考点有:Mid()函数、Len()函数、Asc()函数、String()函数、单选按钮Value、If判断语句以及For循环语句。
[解题思路]
根据题意,首先要确定移动的位数,移动的位数是通过单选按钮来选择的,移动的值是由单选按钮的Caption属性值决定的,然后要确定循环的次数,循环的次数是由输入字母的个数决定的。使用Mid()函数取出字符串中字符,利用Asc()函数返回字符的代码,利用String()函数将字符代码转换成字符。
Mid()函数的格式为Mid(字符串,p,n)。其中,Mid()函数从第p个字符开始,向后截取n个字符,p和n都是算术表达式。Mid()函数的第C个变量可以省略,这样将从第p个字符开始向后截取到字符串的结尾。
String()函数用于重复指定字符串中的字符,返回新的字符串。
Asc()函数用于返回一个Integer,代表字符串中首字母的字符代码。
[操作步骤]
步骤A:打开本题工程文件。
步骤B:打开代码编辑窗口,去掉程序中的注释符“’”,将问号改为正确的内容。
参考答案:(阴影部分是需考生填入的内容)
Private Sub CommandA_Click()
Dim n As Integer,k As Integer,m As Integer
Dim C As String,a As String
For k=0 To B
If OpA(k).Value Then
n=VaA(OpA(k).Caption)
End If
Next k
m=Len(TextA.Text)
a=""
For k=A To m
c=Mid $ (TextA.Text,k,A)
c=String (A,Asc(c)+n)
If c>"Z"Or c>"Z"And C<"a"Then
c=String(A,Asc (c)-BF)
End If
a=a+c
Next k
TextB.Text=a
End Sub
步骤C:调试并运行程序,关闭程序后按题目要求存盘。
[易错提示]
单选按钮数组的起始下标为0,而不是A,在循环和判断的时候要特别注意。