【说明】 本应用程序是一个小写数字转换成大写格式的转换器,其运行窗口如图5所示。
窗口中有两个标签(lblNumber和lblChinese)、两个文本框(txtNnmber和txtChinese)和一个命令按钮(cmdChange)。当单击按钮cmdChange时,将文本框txtNumber中数字转换成中文大写,并显示在文本框txtChinese中。例如,在文本框txtNumber输入0076845,单击cmdChange按钮,将在文本框txtChinese中显示“柒万陆仟捌佰肆拾伍”。 程序中调用的函数CChinse(Strdigit As String)的功能是先删除字符串的所有前导0,再调用函数Change(Strdigit As String),将数字字符串Strdigit转换成中文大写格式。 为了防止用户在文本框txtNumber输入非数字形式的字符,程序将以空字符代替所输入的非数字有形字符。 【程序】 Private Function Transfer(Strdigit As String)As String ′完成小写向大写的转换,这段代码省略 End Function Private Function CChinese(Strdigit As String)As String Dim intLen,intCounter As Integer intLen = Len (Strdigit) If intLen>0 Then intcounter = 0 Do ’过滤数字串Strdigit的前导0 intcounter = intcounter + 1 Loop Until Mid(Strdigit, (1) ) intLen = (2) Strdigit = (3) (Strdigit,intLen) CChinese = Transfer(Strdigit) End If End Function Private Sub cmdChange_Click( ) txtChinese.Text=CChinese( (4) ) ’调用Cchinese函数 End Sub Private Sub txtNumber_KeyPress(KeyAscii As Integer) Select Case KeyAscii ’根据输入字符的ASCII码的值进行判断 Case KeyAscii<32 ’保留输入的控制字符 Case 48 To 57’保留输入的数字字符 Case Else ’其他情况以空字符代替 (5) =0 End Select End Sub
参考答案:intcounter, A
解析:(2)intLen-intCounter+1或Len(Strdigit)-intCounter+1 (3)Right或Right $ (4) txtNumber.Text (5) KeyAscii (1)~(3)空所在语句块的功能是删除过滤数字串Strdigit的前导0。(1)空所在Do……Loop循环是找到第一个非0的位置,循环变量为intcounter,即要判断第intcounter个字符是不是0,因此(1)空处应填写“intcounter,1”。从(3)空所在语句可以判断(2)空所在语句是求出过滤数字串Strdigit的前导0后的数字长度,因此(2)空处应当填写“intLen-intCounter+1”或“Len(Strdigit)-intCounter+1”。(3)空所在语句是取出过滤数字串Strdigit的前导。后的数字,需要填写这一操作的函数,因此(3)空处应当填写“Right”或“Right $”。 (4)空处需要填写调用Cchinese函数的参数,程序要对小写数字进行转换,其内容存放在文本框txtNumber中,因此(4)空处应当填写“txtNumber.Text”。 (5)空所在语句是处理当前输入若不是数字或控制字符时,则将具ASCII码值设置为0。因此(5)空处应当填写“KeyAscII”。