8 位下 127 加 1 等于几?
算法进阶 · 小纸条
选一章打印。双面打印(按长边翻页)后沿虚线剪开,每张卡片正面题目、背面答案。
为什么浮点数有精度误差?
金额计算该用浮点数吗?
为什么要分这么多层?
数组比链表快,和这个有关吗?
这个差别有多大?
这四步叫什么?
这和工厂流水线是一个道理吗?
这对写代码有什么启发?
这就是为什么程序要针对平台编译吗?
参考答案(家长):尾数位数有限,很多小数无法精确表示。
参考答案(家长):-128,绕回去了。
参考答案(家长):快的贵而小,慢的便宜而大,分层能兼顾成本和速度。
参考答案(家长):不该,通常用整数存"分"来避免误差。
参考答案(家长):大数组上可能差好几倍。
参考答案(家长):有关,数组连续存放,缓存命中率高得多。
参考答案(家长):完全一样,每个工位同时处理不同的产品。
参考答案(家长):指令周期。
参考答案(家长):正是。
参考答案(家长):可预测的分支比随机分支快,有时值得考虑。
编译器主要做什么?
各举一个例子。
没有操作系统会怎样?
同时打开两个浏览器窗口,是几个进程?
进程和线程最大的区别是什么?
一个人同时聊天和做饭,是并发还是并行?
为什么不能让一个程序一直占着 CPU?
两个线程同时给计数器加一,结果可能是几?
加锁的代价是什么?
死锁和过独木桥的比喻像在哪?
参考答案(家长):C++ 编译型,Python 解释型。
参考答案(家长):翻译加优化,把人写的代码变成机器能跑的指令。
参考答案(家长):看实现,可能是多个进程,也可能是一个进程的多个部分。
参考答案(家长):每个程序都要自己驱动硬件,且无法同时运行多个。
参考答案(家长):并发,快速切换而已。
参考答案(家长):进程内存独立,线程共享内存。
参考答案(家长):可能只加了一次,因为都读到了旧值。
参考答案(家长):别的程序会卡死,系统失去响应。
参考答案(家长):都是互相等待、谁也不让。
参考答案(家长):其他线程要等待,性能下降。
这解决了什么问题?
为什么按页而不是按字节?
删除文件时,数据真的被清掉了吗?
为什么要分层?
这和寄信有什么相似?
视频通话适合用哪个?
为什么两次不够?
为什么不用文件自己存?
学生信息表可能有哪些列?
索引的代价是什么?
参考答案(家长):按字节映射表会大得离谱,按页才实际可行。
参考答案(家长):内存隔离、地址统一、以及内存不够时可以用硬盘补。
参考答案(家长):每层只管自己的事,互不干扰,也便于替换。
参考答案(家长):通常只是标记为可用,数据还在,所以有恢复的可能。
参考答案(家长):UDP,宁可丢几帧也不能卡。
参考答案(家长):都是按地址逐站转运。
参考答案(家长):并发、事务、索引、崩溃恢复,自己写很难做好。
参考答案(家长):两次只能确认一个方向,第三次才确认另一个方向也通。
参考答案(家长):多占空间,且插入删除时要维护索引。
参考答案(家长):学号、姓名、班级、成绩。