1.题目抄错了。理由:①变量C未与text1_keyup事件截获的形参keycode、shift中的任何一个相联系,因此text2.text显示的Chr(Asc(C)+2)的运算结果与“在文本框text1中输入字母时”(确切地说,是“抬起按下的某个键时”)无关,所以text2.text的显示不可能是“A,a,C,c”中的任何一个;②“dim C as integer”将变量C定义为integer(同时VB将自动将未显式赋值的integer变量初始化为数值0),而紧随其后的“Text2.Text = Chr(Asc(c) + 0)”语句却对C求“ASC(C)”,犯了数据类型错误,该过程中的这个ASC(C)函数是无法执行的;③要使“当向文本框text1中输入小写字母a时,文本框text2中显示的是C”,则应修改该“private sub text1_keyup(keycode as integer, shift as integer)”过程为:
Private Sub text1_keyup(keycode As Integer, shift As Integer)
Dim C As String
C = Chr(keycode)
Text2.Text = Chr(Asc(C) + 2)
End Sub
2.“求解1102”的解释可能不妥(I'm sorry!)。理由:①正如“lsj136183”所说,如果C的值是"a"(注意:C是String型),则Asc(C)+2=99,Chr(Asc(C)+2)的结果是"c",不可能是"a";②dim C as integer 和 text2.text=Chr(Asc(c)+2) 中的两个c打没打错无所谓,因为VB中变量名大小写等效(实际上VB会自动将后续的同名变量名调整为与DIM语句的大小写一致),这点与VF相似而与VC不同;③VB的ke系列事件过程(包括keydown、keypress和keyup事件过程)中,形参keycode略有差异:keypress事件过程中的keycode包含了组合键(包括shift键、ctrl键、alt键)信息(这也许是keypress事件过程中只有形参keycode,没有形参shift的原因 );而keydown和keyup事件过程中keycode只管单一键,不管组合键,是当前所down或up的键的键码(请参看VB帮助中的“Keycode 常数”),对于字母键,形参Keycode的值等于当前所down或up的键的大写字母的ASCII码,所以,只要你down或up的是A键,不管是小写字母a或大写字母A,形参Keycode的值都是65,即大写字母A的ASCII码值,因此,变量C的值是Chr(keycode)=Chr(65)="A"(注意:C是String型),从而 Chr(Asc(C)+2)=Chr(65+2)=Chr(67)="C",所以,答案是"C"。
追问哇,你是学计算机的吧,解释得很详细,没注意看,题目还真抄错了,确实是Dim C As String,但题目没 C = Chr(keycode),我昨晚把题目打在VB6里面想验证是否答案为"C",但提示错误,我就奇怪了,我照着卷子上的题目,一个字一个字的打,怎么就有问题呢,原来是差一句C = Chr(keycode)。唉,坑爹的卷子。
谢谢你哦,高手
忘了给悬赏分了,追加给你吧,分不多但是心意哈