启明星辰2011校园招聘(二) c++部分笔试题

来源:互联网 发布:如何提升淘宝星级 编辑:程序博客网 时间:2024/05/08 11:46

答案如有错误,请大家留言指教。

自己亲身经历的部分笔试题目如下: 

1.C2为字符型,执行语句C2=’A’+’6’-‘3’后,C2的值为  (D)

 分析:ASCII:65+54-51=68->D

       ASCII值  048    对应  字符0

2.c=5,a=2+(c+=c++,c+8,c++);a应该为多少?

答案:a=13;分析:c=5,c+=c++得c=11;c+8,得c=11,c++,得c=12; (c+=c++,c+8,c++)整个逗号表达式的值为11;最后推出a=13;

3. int a=5,b=3,c;

  c=!a&b++;   推出:a=5,b=4,c=0;

c=!a&&b++;   推出:a=5,b=3,c=0;

4.const char* ptr;  指向向量字符串的指针(对);指向向量字符的指针(错)。

5.已知f(int)是类A的公有成员函数,P是指向成员函数的f1()的指针,下列正确的使用方法是(B)

  A: P=f1          B: P=A::f1              C: A::f1 ()        D: P=f1()

6.创建派生类对象时,构造函数的执行顺序是:基类、对象成员、派生类本身(构造函数)

7.

union{    int i;                        4个字节    char x[2];                    2个字节}a;int main(){    a.x[0]=10;                 a.x[1]=1;    printf("%d\n",a.i);}


答案:266(低位低地址,高位高地址,内存占用情况是0x010A)

   分析:a的第一个字节是10,第二个字节是1,我们目前的系统大多是小模式序,低地址存高位数据,所以a.i成为0x010A ,得到:16的平方+10*16的0次方=266

8.常成员函数: 数据类型 函数名(参数表) const;

9.x=x+1;x+=1;x++哪一个效率最高?

  x=x+1;最低,执行过程:(1).读取右x的地址(2). x+1 (3). 读取左x的地址(4).将右值传给左值

x+=1;其次,执行过程:(1).读取右x的地址 (2). x+1 (3). 将得到的值传给x(因为x的地址已读出)

x++;最高,执行过程:(1) .读取右x的地址 (2). X自增1

10.写string的4个函数

11.求一个数是否为素数

12.vector与map的特点,什么时候用map?

13.写一个单例模式