又到校招时,领导让出题,随便想了几个
选择
1.print()函数是一个类的常成员函数,它无返回值,下列表示中正确的是。( A )
A) void print()const; B) const void print();
C) void constprint(); D)void print(const);
2.系统在调用重载函数时,不能作为确定哪个重载函数被调用的依据是:( D )
A) 参数个数 B) 参数类型
C) 函数名称 D) 函数的返回值类型
填空
1. #include <stdio.h>和#include "stdio.h"的区别是__前者优先从编译器类库路径中查找,后者优先从当前目录查找__
2. 下面代码是一个字符串类的一部分
class String
{
...
String& string::operator=(const String& rhs)
{
...
return *this;
}
...
}
重载=运算符返回*this的原因是__让String类可以链式赋值如a=b=c="hello"__
问答
1.IEEE浮点标准采用V=(-1)^s*M*2^E的形式来表示一个数。C语言单精度浮点数float采用32比特存储,由高位到低位分为3个区域,含义依次为
最高1位s,表示符号是负数(s=1)还是正数(s=0)
接下来的8位e,表示指数
接下来的23位f,表示M
这样,一个32位浮点数可以类似这样表示se7e6...e0f22f21...f0
浮点数结果为
V=(-1)^s * M * E
其中:
M= 1.f22f21...f0
E = 2^((e7e6...e0)- (2^7-1))
采用这种方式表示的一个浮点数在内存中数据为0xc2f60000,这个浮点数的大小为多少?
答:内存中数据为0xc2f60000的数据对应
M = 1.1110110 = 1+ 1/2 +1/4 + 1/8 + 1/32 + 1/64 = 1.926875
E = 2^((10000101)- (2^7-1)) = 2^6 = 64
s=1表示这个数为负数
最后结果V= -1 * M * E = -123