http://groups.google.com/group/pongba/browse_thread/thread/d4e644a0d165e086
1. 某计算机系统只有以下原子操作:
赋值
+1运算
循环 只能是固定次数的循环
只操作0和正整数
不会溢出
用伪代码实现加法,减法,乘法和除法运算。
2.找出下面程序的错误,如何修正。
#include <vector>
#include <iostream>
#include <string>
#include <fstream>
using namespace std;
class Test
{
public:
string s;
int main()
{
Test *t= new Test[3];
ofstream output("file",ofstream::binary);
t[0].s="hello";
t[1].s="world";
t[2].s="!";
output.write((char* )t,3*sizeof(Test));
output.close();
delete[] t;
ifstream input("file",ifstream::binary);
Test in[3];
input.read((char* )in,3*sizeof(Test));
input.close();
cout<<in[0].s<<in[1].s<<in[2].s<<endl;
return 0;
(1)找出程序中的错误,如何修正
(2)stl中string的内存管理方式
(3)用C实现一个可变长字符串,要求方便高效。
3.大型系统多采用数据库存储数据,但访问量很大,所以要用cache,又因为数据规模也很大,所以用分布式管理。有一个查询语句 select
pid uid content from ltb where fid = FID & power = POWER order by pid.查
询的差别就是fid和power的不同。根据上面信息优化上面的查询语句。
现在请设计一个方案用来实现下面两个目标:
1).可实现查询,更新命令
2).能够高效地查询更新
请给出:
1).核心的数据结构和算法
2).描述存储方案
3).给出一个查询和更新过程。
http://groups.google.com/group/pongba/browse_thread/thread/a5abc11899e04006
一个计算机系统包含以下原子操作:
1. 赋值
2. +1
3. 循环(确定次数的循环)
4. 只处理正整数和 0
5. 运算不会溢出
请在该系统上实现减法
--------------分隔符--------------
首先实现自减一操作:
tmp = 0
result = 0
loop(n) {
result = tmp
tmp++
循环执行后result == n - 1
然后利用该操作作为原语实现任意数的减法操作(假定a>b):
result = a
loop(b) {
dec(result)
循环执行后 result == a - b