VB中调用函数fun过程的问题
form1中用publicsubfun(xasinteger,yassingle)定义过程fun,在窗体form2的某事件过程中定义了变量I和J均为integer,若要在...
form1中用public sub fun(x as integer,y as single)定义过程fun,在窗体form2的某事件过程中定义了变量I和J均为integer,若要在此过程中调用form1中的fun过程,下列语句正确的是
a.call fun(i,j) b.call form1.fun(i,j) c.funi,(j) d.form1.funi,(j)
做这个题目的思路和想法是什么,完全不明白。
这道题目的答案是D。。。 展开
a.call fun(i,j) b.call form1.fun(i,j) c.funi,(j) d.form1.funi,(j)
做这个题目的思路和想法是什么,完全不明白。
这道题目的答案是D。。。 展开
展开全部
可能是你输入错误吧,答案d应该是
form1.fun i,(j) '(也就是fun和i之间是有个空格的)
这个最后的(j)是为了让j参与一次虚拟的四则运算(这里括号()是作为运算符来处理的),这样运算结果VB会自动根据fun过程的参数类型(即single)进行转换。如果不加(),则VB会提示你类型不符(因为j是Integer,不是Single)。
具有同样效果的处理方式还有:
form1.fun i,j+0
原理同样
其实标准的做法是要显式进行格式转换:
form1.fun i,CSng(j)
form1.fun i,(j) '(也就是fun和i之间是有个空格的)
这个最后的(j)是为了让j参与一次虚拟的四则运算(这里括号()是作为运算符来处理的),这样运算结果VB会自动根据fun过程的参数类型(即single)进行转换。如果不加(),则VB会提示你类型不符(因为j是Integer,不是Single)。
具有同样效果的处理方式还有:
form1.fun i,j+0
原理同样
其实标准的做法是要显式进行格式转换:
form1.fun i,CSng(j)
更多追问追答
追问
亲,我没有打空格,打了就是对的吗?那如果题目改成private sub fun(x as integer,y as single调用函数fun的过程定义了I,J和K三个integer型变量,A.Fun 3.14,J B. call fun(i,365) C .FUN (I),(J) D.K=FUN("24","35"),为什么答案选B不可以调用呢,不是有call,有括号吗?其他几个为什么又都可以
追答
亲,我试了你说的答案B,是可以调用的哦。反倒是A不行哦,原理同上。
补充一下,我第一次回答b,是因为我没看到fun过程的最后一个参数类型是single,加上答案c和d中缺一个空格(这个可不是个小错误)。所以拜托你提问的时候一定要把代码交待清楚,代码中差一个字符结果就可能差十万八千里。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询