CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
IBM Rational 系统开发最佳实践工具包 WebSphere MQ 最佳实践 TOP 15
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VB >  基础类

求助一道选择题

楼主bojianyu()2006-03-07 23:15:55 在 VB / 基础类 提问

S是一个长整型数,下列语句不能正常执行的是:()  
   
  A   s=16384*2  
  B   s=4*0.5*16384  
  C   s=190^2  
  D   s=32768*2 问题点数:20、回复次数:6Top

1 楼daisy8675(莫依 沉迷)回复于 2006-03-07 23:27:05 得分 0

晕死,最基础的知识不过关.  
   
  Private   Sub   Form_Load()  
    Dim   S   As   Long  
      S   =   16384   *   2  
      Debug.Print   S  
      S   =   4   *   0.5   *   16384  
      Debug.Print   S  
      S   =   190   ^   2  
      Debug.Print   S  
      S   =   32768   *   2  
      Debug.Print   S  
  End   Sub  
   
  自己F8看那里出错就知道那里不行了Top

2 楼faysky2(出来混,迟早是要还嘀)回复于 2006-03-07 23:41:52 得分 9

运行结果为   A  
   
  也许该这样解释:  
  16384*2   ,这里16384是Integer类型,16384*2=32768   ,已经超出了Integer的范围,出错  
   
  4*0.5*16384,4*0.5,结果为Double类型,4*0.5*16384整个表达式结果为Double类型,4*0.5*16384=32768,结果未超出Double类型,正确  
   
  190^2,结果是Double类型,190^2=   36100,结果未超出Double类型,正确  
   
  32768*2,32768大于Integer的范围,被当作Long类型,32768*2=65536   未超出Long范围,正确  
  Top

3 楼bojianyu()回复于 2006-03-08 00:23:44 得分 0

还是不太明白,呵呵  
  s是长整型的啊,按道理A选项中16384*2=32768   中的32768没超出长整型数的范围啊,题中说的是长整型,不是整型Top

4 楼NewViewStudio(傻鱼)回复于 2006-03-08 02:14:13 得分 11

的确是A,因为无论你定义的变量如何,VB会按照顺序来执行你的代码  
   
  就拿这个错误的A来讲:  
      如果按照要求,我们应该这样写程序:  
          Dim   S   as   Long  
          S=16384*2  
  而你的代码被分为如下多个片段来执行:  
  首先在内存中开辟一个4字节的空间给变量S来保存它的数据  
  然后执行S=16384*2,  
  而执行16384*2这句要分为两步,步骤1位计算16384*2,步骤2位将结果保存到S的内存占用空间  
  而执行16384*2又要分为3部,判定16384应该占用多大内存,判定2应该占用多大内存  
  这样得出结论为16384占用2个字节(即整型变量空间),2占用1个字节(即字节变量空间)  
  所以,16384*2的结果会先放入一个2字节的整型变量空间,然后再给S。  
  因此就会产生溢出的错误。  
   
  所以A是错误的。  
  Top

5 楼bojianyu()回复于 2006-03-08 12:32:27 得分 0

请问“16384*2的结果会先放入一个2字节的整型变量空间”中的整型变量空间是根据16384的需求空间给的吗,如果是的话那设S为长整型不就起不了什么作用了吗  
  Top

6 楼NewViewStudio(傻鱼)回复于 2006-03-13 00:48:38 得分 0

回去好好研究一下“常量”与“变量”的区别以及编译原理,你就明白了。Top

相关问题

  • 一道选择题
  • 一道选择题
  • 一道选择题
  • 请看一道选择题
  • 一道JAVA认证的选择题,大家研究研究
  • ★★★白给分啦!不来后悔!一道简单的选择题!
  • 网上看到的一道C++选择题,求答案
  • 请伸贵手点击!请回答YES\NO选择题一道。谢谢!(dreamboat)
  • 有谁用过SCSI硬盘,是不是真的值这么多钱?快来做一道选择题喽!!
  • 老问题再问:选择题一道。 (给分出现问题,等正常后再加分,请谅)

关键词

  • debug
  • 长整型
  • 变量
  • 超出
  • 整型
  • double类型
  • 结果
  • 范围
  • 错误
  • 空间

得分解答快速导航

  • 帖主:bojianyu
  • faysky2
  • NewViewStudio

相关链接

  • Visual Basic类图书
  • Visual Basic类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo