现在的位置: 首页 > 综合 > 正文

2013出笔试题

2018年05月03日 ⁄ 综合 ⁄ 共 839字 ⁄ 字号 评论关闭

又到校招时,领导让出题,随便想了几个

选择

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

 

 

抱歉!评论已关闭.