您的位置:首页 > 编程语言 > C语言/C++

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

2012-02-05 20:40 274 查看
答案如有错误,请大家留言指教。

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

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.写一个单例模式
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: