问道编程题目啊?

来源:百度知道 编辑:UC知道 时间:2024/07/02 22:47:50
Private Sub Form_Click()
Dim x As String, y As Integer
Dim a As String, b As String, c As Integer
x = "1"
y = 123
a = Chr(Asc(x) + 5)
b = Str(Val(x) + 5)
c = Val(Str(y) + "5")
Print a, b, c
End Sub
为什么a=6,b=6,c=1235呢?这是怎么算出来的?

你要先明白各个函数的意义就知道了。
Asc(string)是返回一个 Integer,代表字符串中首字母的字符代码。
所以Asc(x)返回的值是"1"的Ascii码值,为49,49+5=54,Chr(54)返回的值为“6”。可以把Chr()看成Asc()的逆运算。
Val(string)返回包含于字符串内的数字,字符串中是一个适当类型的数值。
所以Val(x)返回的值为1,1+5=6,Str(6)把数字6转换成了字符串"6",用来显示。
str(y)返回值为字符串"123","123"+"5"="1235",这里的加不是数字相加,而是被用做连接字符串。Value("1235")又将他转换为数字。

多查一下各个函数的帮助,就知道了。
也可以按 F8 键来单步调试,对Asc(x)等表达式添加监视,来了解它们运行时的值和类型。

因为Asc()方法不知道,所以a我无法正确的解释。(注:我是学c++和Java的)
不过我猜测a的结果是将字符串x转化为它的ASCII码,然后再加上5.得到的结果转化为字符输出。
b是将字符串x转化成整数再和5相加。得到的结果再转化为字符串输出。所以是6;
c是将整数y转化成字符串再和字符串“5”拼接。(这里涉及到+操作的重载)得到的结果再转化成字符串输出。