一道计算机VB题

问题描述:

一道计算机VB题
设变量A为长整型,则下列不能正常执行的语句是
A A=32768*2 B A=2*1.5*16384
C A=16384*2 D A=190^2

答案是C.
这个问题涉及到两个问题.一是常数计算过程,二是结果是何种类型的问题.
先说第一个问题.计算A=16384*2时,先计算16384*2,把计算结果保存在一个临时变量中,再把这个临时变量的值赋给A.
再说第二个问题.16384*2的结果是什么类型?是整型.因为16384与2都是整型,计算结果仍是整型.而=16384*2=32768,已经超出了整型数的范围(-32,768 到 32,767),溢出了,运算时会报“溢出”错误.
要说明的是,并不是变量A溢出了,而是那个临时变量溢出了.
选项A怎么就可以呢?因为32768超出了整型范围,按long型(长整型)数处理了,结果仍在long型范围内,所以正常.
B项是因为有1.5,按single型处理,正常.
至于D,190与2都是整型,190^2=36100,貌似应该溢出.实际上,进行乘方^计算时,其前后的数按double型处理,那么也就不溢出了.