01-C/C++题目总结

这篇博客汇总了C/C++的编程题目,包括预编译指令、虚函数、构造函数的初始化、二叉树的后序遍历、排序算法、芯片测试问题以及鸡蛋掉落问题。内容涵盖内存对齐、数组大小计算、字符串长度等基础知识。

题目一

#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
using namespace std;

#define a 10

int main(void) {
	cout << a << endl;
	func();
	cout << a << endl;

	system("pause");
	return 0;
}

void func() {
	{
#undef a
#define a 50
	}
}

预编译指令不受作用域限制。看看编辑器给他的位置,永远放在了行首!

 

题目二

sizeof(a)等于:12。

class a {
public:
	virtual void funa( );
	virtual void funb( );
	void fun( );
	static void fund( );
	static int si;
private:
	int i;
	char c;
};

1. 类中的虚函数是使用虚函数指针来指向虚函数表的,类中值保存了虚函数指针指向虚函数表,这个指针是唯一的。
2. 因为类的内存对齐,char也占4个字节。

 

题目三

class A {
...
private:
     int a;
public:
     const int b;
     float* &c;
     static const char* d;
     static double* e;
};

则构造函数中,成员变量一定要通过初始化列表来初始化的是     B      

A. a b c        B. b c        C. b c d e        D. b c d        E. b        F. c

 

题目四

4.对一棵二叉树进行后续遍历,其输出结果为A,B,C,这样的二叉树有     D      棵。
A. 1      B. 2      C. 3      D. 5      E. 7      F. 9  

 

*题目五

对序列{15,9,7,8,20,-1,4}进行排序,进行一趟后数据的排列变为{4,9,-1,8,20,7,15};则采用的是    C     排序。

A. 选择排序      B. 快速排序      C. 希尔排序      D.冒泡排序

 

*题目六

芯片测试:有2k块芯片,已知好芯片比坏芯片多.请设计算法从其中找出一片 好芯片,说明你所用的比较次数上限. 其中:好芯片和其它芯片比较时,能正确给出另一块芯片是好还是坏;坏芯片和其它芯片比较时,会随机的给出好或是坏。

 

题目七

有一栋100层高的大楼,给你两个完全相同的玻璃球。假设从某一层开始,丢下玻璃球会摔碎。那么怎么利用手中的两个球,用什么最优策略知道这个临界的层是第几层???

以下解析转载自:
https://blog.csdn.net/xiaohai0504/article/details/6941467 

      投掷次数分布不均。按最坏情况估计,这种方法就多做了几次。为了使最坏情况的投掷数最小,我们希望无论临界段在哪里,总的投掷数都不变,也就是说投掷数均匀分布。
      接下来的解决方案就很容易想出了:既然第一步(确定临界段)的投掷数增加不可避免,我们就让第二步(确定临界层)的投掷数随着第一步的次数增加而减少。第一步的投掷数是一次一次增加的,那就让第二步的投掷数一次一次减少。假设第一次投掷的层数是f,转化成数学模型,就是要求f+(f-1)+...+2+1>=99,即f(f+1)/2>=99(第一次测试点选择100层是无意义的,必然会碎,所以无任何测试价值,所以第一次测试点k是1-99中的一个数),解出结果等于14。丢下第一颗鸡蛋的楼层就分别是 14 , 27 , 39 , 50 , 60 , 69 , 77 ,84 , 90 , 95 , 99 。

 

题目八

char a[] = {"hello world"};
cout << sizeof(a) << endl; // 12
cout << strlen(a) << endl; // 11

char b[] = {'a', 'b', 'c'};
cout << sizeof(b) << endl; // 3
cout << strlen(b) << endl; // 3

 

 

 

 

 

 


 

 

源码下载地址: https://pan.quark.cn/s/2e09cbca2d82 【针对青龙面板wxpusher推送问题的修复包】是一个为青龙面板(QL Panel)设计的更新或改进版本,其目的是纠正与wxpusher相关的推送故障。青龙面板是一个被广泛应用的自动化部署及管理解决方案,它赋予用户在图形化环境中执行多种IT运维操作的能力,涵盖脚本操作、周期性任务执行以及文件处理等。wxpusher作为青龙面板的一个附加组件,承担着实现微信消息推送的任务,用以保障用户可以即时获取系统关键状态变动或异常警报。 sendNotify.js 是此修复包内含的关键模块,属于wxpusher插件的一部分,其核心职责是发送各类通知。在JavaScript编程语言中,该脚本或许内含了处理推送流程、调用微信推送端点以及消息内容的格式化和校验等操作。一旦青龙面板监测到新的事件状况,例如任务成功完成、发生错误或系统进入维护阶段,sendNotify.js便会被激活,将相关数据传送至用户的微信账户。 ql.js 另一个重要的构成部分,可能代表了青龙面板的核心代码库或专用于wxpusher的设定文档。它或许包含了整合wxpusher的相关参数,例如启动过程、授权核实、故障应对和日志管理等功能。ql.js与sendNotify.js协同工作,确保wxpusher能够顺利与青龙面板进行数据交互,并可靠地向用户传递通知信息。 CK_WxPusherUid.json 这一文档很可能是储存用户信息或配置参数的JSON格式文件。"CK"通常指代Cookie或某种缓存机制,而"WxPusherUid"可能意指wxpusher用户的专属识别码。该文件用于保存用户微信推送服务的连接详情,让青龙面板可以...
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值