关于C++面试--转载自牛客网

来源:互联网 发布:php时间戳转换 编辑:程序博客网 时间:2024/06/15 19:55

1,分别给出bool,int,float,指针变量与灵芝比较的if语句,假设变量时var.

bool类型变量 if(!var)

int类型变量 if(var==0)

float类型变量

const float EPSINON=0.00001;

if((x>=-EPSINON)&&s<=(EPSINON))

指针变量 if(var==NULL)

考察对0值判断的内功,BOOL类型变量的0值判断完全可以写成if(var==0),而int型变量的判断也完全可以写成if(!var),上述写法虽然程序都能正确运行,但未必能清晰的表达程序的意思。

float的精度是2^32,能保留6位小数点

double的精度是2^52,能保留15位小数点。

2,写一个标准宏MIN,这个宏输入两个参数并返回较小的一个,另外,当你写下面的代码时会大声什么事?

least=MIN(*p++,b);


3,为什么标准头文件都有类似以下结构:



关于条件编译:

提供天骄编译措施使同一源程序可以根据不同的编译条件(参数)产生不同的目标代码,其作用在于便于调试和移植。在编写头文件之前,我们需要引入一些额外的预处理器设施。预处理器允许我们自定义变量。预处理器变量的名字在程序中必须是唯一的。任何与预处理器变量相匹配的名字的使用都关联到该预处理器变量。

预处理器变量有两种状态:已定义或未定义。#define指示接受一个名字并定义该名字为预处理器变量。#ifndef监测指定的预处理器变量是否未定义,如果预处理器变量未定义,那么跟在其后面的语句都会被处理,直到出现#endif。

可以使用这些设施预防多次包含同一个头文件

#ifndef SALESITEM_H

#define SALESITEM_H

//此处是某个类的定义于相关函数的定义

#endif