一些容易出问题题目

来源:互联网 发布:英语口语速成软件 编辑:程序博客网 时间:2024/04/29 13:29

1.

unsigned int i;
 i = -1;         //i = -m (m是正整数)
 cout<<i<<endl;  //输出4294967296-m

 

2.关于类占用的空间的大小

 

 

3. int a(5),b(6); 下面会出现二义性的语句是(C)

A. k = ++a+b++;    //6+6 = 12
B. k = a+(b=3);      //5+3 = 8
C. k = b+a<<2;      //
D. k = (b=3)-b++;  //3-3 = 0

 

 4. 这是yahoo2011年校园招聘的一道题目,着重考察了指针引用,字符数组和字符串的内存表示,使用strcpy必须确保字符串有结束符'/0'等,是一个很能体现基本功的题:

 

 

5. Little-endian和Big-endian的概念解释,判定

 

      little endian和big endian是表示计算机字节顺序的两种格式,所谓的字节顺序指的是长度跨越多个字节的数据的存放形式.
        假设从地址0x00000000开始的一个字中保存有数据0x1234abcd,且假设机器是每个内存单元以8位即一个字节为单位的,那么在两种不同的内存顺序的机器上从字节的角度去看的话分别表示为:
       1) Little-endian:在内存中的存放顺序是0x00000000-0xcd,0x00000001-0xab,0x00000002-0x34,0x00000003-0x12
       2) Big-endian:在内存中的存放顺序是0x00000000-0x12,0x00000001-0x34,0x00000002-0xab,0x00000003-0xcd 
       简言之,Little-endian把低字节存放在内存的低位;而Big-endian将低字节存放在内存的高位.
       现在主流的CPU,intel系列的是采用的little endian的格式存放数据。而motorola系列的CPU采用的是big endian。

 

 

 

6. 

 

 

 7. 注意下面的构造函数调用方法(默认的复制构造函数)