百度东大笔试题

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值