1.main函数执行完毕,从栈中弹出操作函数

void fn1(void), fn2(void), fn3(void);

int main()
{
atexit(fn3);
atexit(fn1);
atexit(fn2);
cout << "hello world" << endl; //检测内存泄漏
_CrtDumpMemoryLeaks();
return ;
} void fn1()
{
cout << "A" << endl;
} void fn2()
{
cout << "B" << endl;
} void fn3()
{
cin.get();
}

执行代码效果为:

hello world

B

A

具体解释可以参考:http://www.cnblogs.com/wxxweb/archive/2011/05/25/2055696.html

2.为了取代C中带参数的宏,C++中使用内联函数代替,类似宏直接将相应代码插入。

我原本还以为是模板,因为宏忽略类型检查,模板在一定程度上适应多种类型。

3.关于多层继承的虚基类

class A
{
public:
A(const char *s)
{
cout << s << endl;// ~A() {}
}
};
class B : virtual public A
{
public:
B(const char *s1, const char *s2) :A(s1) { cout << s2 << endl; }
}; class C : virtual public A
{
public: C(const char *s1, const char *s2) :A(s1) { cout << s2 << endl; }
}; class D : public C,public B
{
public: D(const char *s1, const char *s2, const char *s3, const char *s4) :C(s1, s3), B(s1, s2), A(s1)
{
cout << s4 << endl;
}
};
void main()
{
D *ptr = new D("class A", "class B", "class C", "class D");
delete ptr;
ptr = NULL;
}

输出结果为:A,C,B,D。相关理论解释可以参考:http://blog.csdn.net/lovemysea/article/details/5298853

Ps:C++ primer上总结:可以使用一个数组来表示多种类型的对象,这就是多态性。

Ps:为何积累需要使用虚析构函数:

如果函数不是虚的,则将只调用对应于指针类型的析构函数。

如果是基类指针指向派生类,析构函数不为虚的话,则只会调用基类析构函数,而派生类的析构函数不会被调用。

Ps:创建派生类对象时,比需调用派生类的构造函数。然而,派生类的构造函数通常使用成员初始化列表来调用基类构造函数,以创建派生对象的基类部分。

如果派生类构造函数没有使用成员初始化列表显示调用及类构造函数,将使用基类的默认构造函数。

在继承链中,每个类都可以使用成员初始化列表将信息传递给相邻的基类。

3.递归次数计算:

int fib(int n)
{
if ( == n) return ;
if ( == n) return ;
return fib(n - ) + fib(n - );
}

诸如此类计算递归调用次数,此处可以分解为N[fib(n)]=N[fib(n-1)]+N[fib(n-2)]+1,N表示调用次数。

4.运算符优先级(可能是一个常考点)

struct num
{
int x;
int y;
}sa[] = { {,},{,},{,} }; num *p = sa + ;
int x = p->y / sa[].x*++p->x;
cout << x << " " << p->x << endl;

此处,需注意x赋值表达式是按照从左向右执行,即先执行

p->y / sa[0].x

后续问题在于是(++p)->x || ++(p->x)

此处->运算符优先级高于前置++,故是先结合p->x,再执行++操作。

相关可以参考:http://blog.csdn.net/sxhelijian/article/details/17276879

5.递归调用:

int test(int m, int n)
{
if ( == m) return n + ;
if ( == n) return test(m - , );
return test(m - , test(m, n - ));
}

此题只知答案为9,快捷做法暂不清楚。

6.不合法表达式:

    int n = ;
double m = 3.2; (m + n) | n;
m << ;
!m *= n;

三个表达式皆为不合法的,其中一二项不是整数或者是未区分范围的整形,第三项是表达式必须是可修改的左值。

7.printf参数:

int a = , b = ;
printf("%d\n", a, b);

输出:123。

此处输出参数仅为一个,参数列表中有两个亦无妨输出。

如果改为%f,输出0.0000。

8.数组正确初始化:

char a[] = { ,,,, };

正确,%d是数字,%c是对应的ASCII码。我好蠢啊。

9.数组指针和指针数组:

int a[][] = { {,,},{,,} };
int m, *p=&a[][];
m = (*p)*(*(p + ))*(*(p + ));

此处*(p+2)指p[2]。

声明指针数组应该如此

int (*ptr)[] = a;
cout << **ptr << " " << **(ptr + ) << " " << *(*ptr + ) << " " << *(ptr[]) << endl;

输出为:1 4 2 4.

10.异常:(现阶段尚未复习)

class A
{
public:
A() {}
~A()
{
cout << "S" << endl;
}
}; char fun0()
{
A a;
throw('T');
return '';
} int main()
{
try
{
cout << fun0() << endl;
}
catch (char c)
{
cout << c << endl;
}
}

输出结果为:S T。我大概了解了。

11.预处理命令:

以下叙述中正确的是( )。
A.预处理命令行必须位于源文件的开头
B.在源文件的一行上可以有多条预处理命令
C.宏名必须用大写字母表示
D.宏替换不占用程序的运行时间

D正确,编译期间已经进行了替换。预处理命令行可以出现在源文件的任意一行

12.转义字符:

‘\\':代表一个单引号(撇号)字符;'\"' :代表一个双引号字符。

'\081'表示八进制数字,注意前面使用0表示为八进制。

13.scanf使用:

char a, b, c, d;
scanf("%c%c%d%d", &a, &b, &c, &d);
printf("%c,%c,%d,%d",a,b,c,d);

这里输入数字会出现错误输出,主要是c、d为char型,却使用%d,这样会导致错误的取值。

14.下列各组的变量中,含义相同的一组是:(A)

A:signed short int 和 short

B:short int 和 int

C:unsigned short int 和 int

D:unsigned long int 和 long

15.字符串长度:。。。老调重弹还错

char a[] = "xyz", b[] = { 'x','y','z' };
cout << sizeof(a) <<" "<< sizeof(b) << endl;

答案是4 3。。。

16.表达式执行顺序

int j, k, l, m;
int i = (j = , k = , l = , m = );
cout << i << endl;

答案为32

17.enum数值

enum A
{
a1,a2,a3,a4,a5
};
cout << a1 << endl;

输出结果:0。

初始值为0,这么简单还错。。。

蛮好玩的,第一次做题库,感觉刷的挺爽的,就是结果出来不爽。

截一张图纪念一下自己渣渣的水平。

大众点评试题分析(C/C++)的更多相关文章

  1. 大众点评APP分析随笔

    移动APP:大众点评 一.最核心功能:店铺评价功能,用户可以通过此功能对商家进行评分,也可以获取其他人对商家的评分信息. 二.核心功能满足的需求: 1. 去过商家消费的用户:用户已经体验的商家提供的产 ...

  2. 爬虫--反爬--css反爬---大众点评爬虫

    大众点评爬虫分析,,大众点评 的爬虫价格利用css的矢量图偏移,进行加密 只要拦截了css 解析以后再写即可 # -*- coding: utf- -*- """ Cre ...

  3. 大众点评Cat--架构分析

    转自:http://blog.csdn.net/szwandcj/article/details/51025669 Cat功能强大且多,光日志的报表和图表分析就有十几种,但文档却很少,寥寥无几找到一些 ...

  4. 【转】大众点评Cat--架构分析

    https://blog.csdn.net/szwandcj/article/details/51025669 Cat功能强大且多,光日志的报表和图表分析就有十几种,但文档却很少,寥寥无几找到一些粒度 ...

  5. 【原创】大众点评监控平台cat的性能分析

    由于工作的原因,或者说我们之前内部监控设计和实现有点不满足现有的研发需求,所以调研了一下大众点评开源出来的cat这一套监控系统. 今天我们就来实验一把,cat的客户端埋点在我们的程序流程中上报数据到c ...

  6. Node.js大众点评爬虫

    大众点评上有很多美食餐馆的信息,正好可以拿来练练手Node.js. 1. API分析 大众点评开放了查询商家信息的API,这里给出了城市与cityid之间的对应关系,链接http://m.api.di ...

  7. 【腾讯Bugly干货分享】美团大众点评 Hybrid 化建设

    本文来自于腾讯Bugly公众号(weixinBugly),未经作者同意,请勿转载,原文地址:http://mp.weixin.qq.com/s/rNGD6SotKoO8frmxIU8-xw 本期 T ...

  8. 看大众点评V9新版如何为O2O止血 带领行业下半场回归理性

    前不久,美团点评CEO王兴提出的“中国互联网进入下半场”观点一直在持续发酵,并引发了整个互联网圈对于进入下半场该如何改革,如何迎战的深刻反思.在互联网的上半场,大家依托的是人口红利,但是到了下半场,用 ...

  9. 大众点评开源分布式监控平台 CAT 深度剖析

    一.CAT介绍 CAT系统原型和理念来源于eBay的CAL的系统,CAT系统第一代设计者吴其敏在eBay工作长达十几年,对CAL系统有深刻的理解.CAT不仅增强了CAL系统核心模型,还添加了更丰富的报 ...

随机推荐

  1. hadoop运行原理之Job运行(三) TaskTracker的启动及初始化

    与JobTracker一样,TaskTracker也有main()方法,然后以线程的方式启动(继承了Runnable接口).main()方法中主要包含两步:一是创建一个TaskTracker对象:二是 ...

  2. Spring之JDBC模板jdbcTemplate

    要使用Jdbctemplate 对象来完成jdbc 操作.通常情况下,有三种种方式得到JdbcTemplate 对象.           第一种方式:我们可以在自己定义的DAO 实现类中注入一个Da ...

  3. ffmepg-nginx-nginx-rtmp-module配置脚本

    把上个月写的的配置脚本贴一下: #!/bin/bash #version:-- #create by itn #dis: this is used to auto install ffmpeg+ngi ...

  4. java.net.BindException: address already in use <null>:xxxx

    linux下,tomcat突然关闭了,执行关闭(shutdown.sh)和启动(startup.sh)成功后,tomcat仍未运行,查看tomcat的catalina日志发现这样一个报错:java.n ...

  5. php通用安装程序,导入数据文件(.sql)的安装程序

    php通用安装程序,导入数据文件(.sql)的安装程序 该程序只需要1个php文件 和 1个数据文件,很方便调用.install/index.php         程序文件install/mycms ...

  6. Ubuntn系统忘记密码的解决方法(虚拟机下同样处理)

    不知道你有没有遇到过忘记了ubuntn系统密码的情况,反正我都了,一段时间没用就很容易忘记密码的,此时无奈只能修改密码了!下面分享一个简单实用的方法: 版本号为: (我用的是V-BOX虚拟机安装的ub ...

  7. DAO接口及实现类

    DAO接口中定义了所有的用户操作,如添加记录.删除记录及查询记录. package chapter13; import java.util.*; public interface UserDAO { ...

  8. ASP代码审计 -4.命令执行漏洞总结

    命令执行漏洞: 保存为cmd.asp,提交链接: http://localhost/cmd.asp?ip=127.0.0.1 即可执行命令 <%ip=request("ip" ...

  9. 记录几款不错的chrome主题

    虽然不是一个主题控,但是浏览器无疑是每天使用最多的工具.而在MAC底下,大多数程序边框都是银灰色的,窗口多了就难以有效区分. 所以精挑细选了几款,要求是标签要容易辨识,简洁而不花哨. 不推荐太固定的风 ...

  10. 2016HUAS_ACM暑假集训2D - 敌兵布阵

    刚开始接触线段树,不得不说,每次接触到一个新的数据结构,都会是一场头脑风暴的“盛宴”.希望我能继续痛苦并快乐着学下去.我相信,有各路大神的博客相助,我还是能坚持下去的. 这个题目是HDU的1166,只 ...