CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  C/C++ >  C++ 语言

今天的C++笔试题,求解!!!!!

楼主yyxc306()2005-05-21 17:33:05 在 C/C++ / C++ 语言 提问

1.  
  class   A  
    {  
        const   int   Size   =   0;  
    };  
  这个类声明正确吗?为什么?  
   
  2.下面的程序在INTEL机子上运行  
      struct   B  
      {  
          union    
          {  
                struct  
                {  
                    unsigned   int   i:2;  
                    unsigned   int   j:3;  
                    unsigned   int   k:3;  
                }X;  
                 
                unsigned   char   c;  
          };  
      };  
      B   m;  
      m.c   =200;  
      printf("%d\n",m.x.k);  
  输出结果是什么??  
   
  第2题     i   是对应的是二进制的高位还是低位,即200的二进   制是11001000,i对应的是11还是00??若是11,输出应该是11还是3?? 问题点数:50、回复次数:29Top

1 楼foochow(无聊,灌水......)回复于 2005-05-21 17:38:15 得分 0

1.定义不对吧,类的数据应该通过构造函数来初始化,不能直接赋值Top

2 楼llf_hust()回复于 2005-05-21 17:43:53 得分 5

1.  
  class   A  
    {  
        const   int   Size   =   0;  
    };  
  这个类声明正确吗?为什么?  
  //错误,常量必须在构造函数的初始化列表里面初始化  
   
  Top

3 楼yyxc306()回复于 2005-05-21 17:47:12 得分 0

那第2题呢,那个题我不是很清楚,只是模糊的知道一些Top

4 楼qhfu(改个名字)回复于 2005-05-21 17:48:30 得分 5

(2)K是3位,输出为6。110Top

5 楼useresu(俗人)(灌水是我无言的抗议)回复于 2005-05-21 17:49:03 得分 0

楼上说的对,  
  const成员必须在构造函数的初始化列表中  
  初始化.  
   
  class   A  
  {  
  public:  
      A():Size(0){};  
  }  
  Top

6 楼llf_hust()回复于 2005-05-21 17:52:11 得分 0

2  
  应该是输出6吧  
  110的二进制Top

7 楼du51(郁郁思扬)回复于 2005-05-21 17:53:05 得分 5

1.楼上.  
  2.一般是从低向高排.多数都是这样.也有从高向低排的.不多.  
  输出应该为为0Top

8 楼du51(郁郁思扬)回复于 2005-05-21 17:54:17 得分 0

哇人气好旺呀...  
  上面看错了.K应该为6Top

9 楼nodummy(三甲 之 Linux/Unix里面甭给我分,谁给我分我和谁急)回复于 2005-05-21 17:59:50 得分 5

第一个差一点就正确了……加上个static就好了……Top

10 楼nodummy(三甲 之 Linux/Unix里面甭给我分,谁给我分我和谁急)回复于 2005-05-21 18:17:09 得分 0

IA的位顺序是和IBM的某些处理器倒过来的……外在表现一般是字节顺序的颠倒……  
   
  C语言里面只有在位域里面才能超过字节顺序的范围体现这个问题……Top

11 楼yanyuxin(焰.驭心)回复于 2005-05-21 18:43:48 得分 10

第一题:  
  class   A  
  {  
  public:  
      const   int   a;  
      A():Size(0){};  
  }  
  同意楼上的。  
  第二题:  
  输出6。  
  i对应低位   00  
  如果对应11则输出3  
  整个结构体实例定义上占用8位内存。  
  m.c   和i,j,k变量共用。  
  模式为:1     1   0         0   1   0         0     0  
                  ~~~~~~       ~~~~~~         ~~~~  
                        k               j                 i  
                  ~~~~~~~~~~~~~~~~~~~~~~~  
                                        c  
  所以   k==6;j==2;i==0;c==200(整个八位值);  
                   
  Top

12 楼hell_wolf(浪花)回复于 2005-05-21 18:49:54 得分 0

1         不对,常量必须在构造函数的初始化列表里面初始化  
   
  2       200的二进   制是110   010   00  
                                      k       j       i  
          所以输出是6  
   
  Top

13 楼nodummy(三甲 之 Linux/Unix里面甭给我分,谁给我分我和谁急)回复于 2005-05-21 21:38:10 得分 0

这个……楼上这个ID也和某人太……  
   
  召唤某某、某某和某某……Top

14 楼flyingdancing2005(返璞归C)回复于 2005-05-21 22:16:02 得分 0

长见识了................Top

15 楼sunman1982(冥王星)回复于 2005-05-21 22:18:39 得分 0

intel的是小端机,也就是说在内存中低位在前高位在后         所以输出是6Top

16 楼zdy_8212(zdy_8212)回复于 2005-05-22 02:32:58 得分 0

class   A  
    {  
  public:  
        const   int   Size;  
        A():Size(0){   };  
    };  
   
  6  
  Top

17 楼umbrella1984(雨伞(KEN))回复于 2005-05-22 16:46:34 得分 0

第一题的答案乱七八糟的,类的定义应该放在头文件里,类的初始化应该放在CPP文件里.Top

18 楼xxxl()回复于 2005-05-22 18:05:03 得分 0

1题无异议  
   
  2题   输入应该是0,因为是从高往低排的Top

19 楼donrong(执着者)回复于 2005-05-22 18:23:35 得分 0

我在vc++8.0里面试了一下,输出的是6Top

20 楼horisly(SUN YAT-SEN UNIVERSITY (逸仙先生))回复于 2005-05-22 19:11:20 得分 0

1.   声明是错误的.  
  2.   6Top

21 楼tsocpp(小黑子)回复于 2005-05-22 19:36:36 得分 0

1。类在定义的时候不分配内存空间的吧,所以也就无法赋值啊,只能用构造函数  
  2。答案很明显,正如楼上们所说的,为6Top

22 楼huabihan(心灵waiting)回复于 2005-05-22 19:54:05 得分 0

k=6;  
  i=0;  
  测试完毕.Top

23 楼ben_na(笨笨)回复于 2005-05-22 20:01:16 得分 15

第一个问题:   错,   只有常数静态整形(char也算)数据才能够在类或结构中初始化。  
  正确的应该这样:  
  class   A   {  
          const   static   int   i   =   1;  
  };  
   
  当然你可以这样:  
  class   A   {  
          const   static   int   i;  
  };  
  const   int   A::i   =   1;  
   
  第二题:  
  union   {  
          struct   {  
                  unsigned   int   i:2;  
                  unsigned   int   j:3;  
                  unsigned   int   k:3;  
          }X;  
                 
          unsigned   char   c;  
  };  
   
  这题其实是考联合型,以及IntelCPU内存布局,当然,这里涉及到位域。  
   
      m.c   =200;  
  200   化为二进制为:   11001000  
   
  他是倒着排的,   所以m.X.i   占两位是:   00   即为0  
                                        m.X.j   占三位是:   010   即为2  
                                        m.X.k   占三位是:   110   即为6  
   
  我不知道你在哪里碰到这样的笔试题,考一些语法的细节,   不大喜欢这样,  
  考C++完全可以考一些更常规的东西,   比如:   重载运算符   +=   =   <<   ++   的设计,   以及泛形语法,   以及多态等C++具有代表性的东西。   而且更容易在编程实践中碰到。  
   
  上面只是我一时的想法,   没别的意思,呵呵。  
   
   
   
   
   
   
   
  Top

24 楼MagicCarmack(MagiC++)回复于 2005-05-23 02:46:17 得分 0

UP楼上的Top

25 楼xjp6688(大平/要做必须最好)回复于 2005-05-23 07:39:35 得分 0

intel   cpu是小尾顺序的,呵呵Top

26 楼whatsouta(某疯子)回复于 2005-05-23 12:25:09 得分 0

struct  
                {  
                    unsigned   int   i:2;  
                    unsigned   int   j:3;  
                    unsigned   int   k:3;  
                }X;  
  能否高手讲解一下啊?谢谢Top

27 楼xiaolingtongsw()回复于 2005-05-23 15:18:58 得分 5

#include   <stdio.h>  
  struct   B  
      {  
          union    
          {  
                struct  
                {  
                    unsigned   int   i:2;  
                    unsigned   int   j:3;  
                    unsigned   int   k:3;  
                }X;  
                 
                unsigned   char   c;  
          };  
      };  
       
  void   main()  
  {   B   m;  
      m.c   =200;  
      printf("%d\n",m.X.k);}  
   
   
  运行一下吧。!!X要大写。。。  
   
  上面的对。  
  Top

28 楼xiaolingtongsw()回复于 2005-05-23 15:29:09 得分 0

联合。union的各个成员占用共同的存储单元。在一个瞬间只有一个成员起作用咯。  
  输的话是。6。。那样的解释是正确的。  
  Top

29 楼musin1(并合)回复于 2005-05-23 15:48:26 得分 0

高人多阿!  
  学习!Top

相关问题

  • 求解一道笔试题
  • 一道笔试题,求解
  • 老师出的C++试题,500分求解
  • 老师出的C++试题,500分求解
  • scjp试题,求解!
  • 一道c面试题,关于变量值的交换。散分求解!
  • 求解C
  • VIA杭州笔试题最后一道求解
  • 信息学试题求解
  • 一道面试题,求解。

关键词

  • c++
  • 函数
  • 内存
  • 初始化
  • 输出
  • 题
  • 构造函数
  • unsigned
  • 正确
  • 定义

得分解答快速导航

  • 帖主:yyxc306
  • llf_hust
  • qhfu
  • du51
  • nodummy
  • yanyuxin
  • ben_na
  • xiaolingtongsw

相关链接

  • C/C++ Blog
  • C/C++类图书
  • C/C++类源码下载

广告也精彩

反馈

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