| 编程中国 | 业界新闻 | 技术文章 | 视频教程 | 下载频道 | 程序源码 | 个人空间 | 编程论坛
全能ASP/PHP/ASP.NET主机,支持月付专业 MSSQL 数据库空间,支持月付专业 MySQL 数据库空间,支持月付买域名,送MP3、MP4
高端软件开发 = 年薪十万不是梦赛孚耐:软件保护加密专家身份认证令牌USB KEY买空间,免费送域名(厦门中资源)
共有 522 人关注过本帖
标题:面试题大家试试
收藏  订阅  推荐  打印 
战士
Rank: 2
等级:注册会员
帖子:131
积分:1416
注册:2006-2-19
面试题大家试试

1、用一个类实现两个数组相加,例如数组a=b+c;就是响应位置的数相加等于响应的另外一个数组的元素。
2、读取一个文件中的数据,并且排序,求出第500个小的数。
3、替换字符串中的\t为4个*。
4、char占内存几个字节?
5、请解释线程和进程的区别,别说明什么时候用多进程效率高,什么时候单线程效率高。
6、请解释虚基类,并说明怎么应用。
剩下的输出结果的题太难打出来。有时间再给大家发了。
搜索更多相关主题的帖子: 内存  面试  效率  进程  单线程  
2008-7-13 15:13
linren
Rank: 2
等级:注册会员
帖子:37
积分:552
注册:2005-12-11

2、读取一个文件中的数据,并且排序,求出第500个小的数。

程序:
#include <iostream>
#include <fstream>
#include <vector>
#include <algorithm>
using namespace std;

int main ()
{
    vector<int> a;
    int at;

    ifstream in("data.txt",ios::binary);
    while(in.read((char *)&at,sizeof at))
    {
        a.push_back(at);
    }
    in.close();

    sort(a.begin(),a.end());
    cout<<a[500-1]<<endl;

    return 0;
}

生活就是一个七日接着又一个七日
2008-7-13 21:46
linren
Rank: 2
等级:注册会员
帖子:37
积分:552
注册:2005-12-11

3、替换字符串中的\t为4个*。

程序:
#include <iostream>
#include <string>
using namespace std;

int main ()
{
    string s;
    s+="abcd";
    s+='\t';
    s+="12345";
    s+='\t';
    s+="@$$%^$%#";
    cout<<s<<endl;

    int l=s.find('\t');
    while(l!=string::npos)
    {
        s.replace(l,1,"****");
        l=s.find('\t',l+4);
    }

    cout<<s<<endl;
    return 0;
}

生活就是一个七日接着又一个七日
2008-7-13 22:49
linren
Rank: 2
等级:注册会员
帖子:37
积分:552
注册:2005-12-11

1、用一个类实现两个数组相加,例如数组a=b+c;就是响应位置的数相加等于响应的另外一个数组的元素。

程序:
#include <iostream>
using namespace std;

class A
{
public:
    void add(int c[],const int a[],const int b[],const int n);
};

void A::add(int c[],const int a[],const int b[],const int n)
{
    for(int i=0;i<n;i++)
        c[i]=a[i]+b[i];
}

int main ()
{
    int a[3]={1,2,3};
    int b[3]={2,1,5};
    int c[3];

    A op;
    op.add(c,a,b,3);

    cout<<c[0]<<", "<<c[1]<<", "<<c[2]<<endl;

    return 0;
}

生活就是一个七日接着又一个七日
2008-7-13 23:25
linren
Rank: 2
等级:注册会员
帖子:37
积分:552
注册:2005-12-11

1、用一个类实现两个数组相加,例如数组a=b+c;就是响应位置的数相加等于响应的另外一个数组的元素。

程序(使用模版):
#include <iostream>
using namespace std;

template<class T>
class A
{
public:
    void add(T c[],const T a[],const T b[],const int n);
};

template<class T>
void A<T>::add(T c[],const T a[],const T b[],const int n)
{
    for(int i=0;i<n;i++)
        c[i]=a[i]+b[i];
}

int main ()
{
    int a[3]={1,2,3};
    int b[3]={2,1,5};
    int c[3];
    A<int> op;
    op.add(c,a,b,3);
    cout<<c[0]<<", "<<c[1]<<", "<<c[2]<<endl;

    
    double a1[2]={1.25,5.47};
    double b1[2]={-3.47,6.7};
    double c1[2];
    A<double> op1;
    op1.add(c1,a1,b1,2);
    cout<<c1[0]<<", "<<c1[1]<<endl;

    return 0;
}

生活就是一个七日接着又一个七日
2008-7-13 23:32
alexboy
Rank: 1
等级:新手上路
帖子:2
积分:120
注册:2007-6-12

5,6都比较囧
2008-7-14 08:12
lindayanglong
Rank: 2
等级:注册会员
帖子:83
积分:1036
注册:2008-3-9
不明白string::npos请解释一下

不明白string::npos得到的是什么东西 很想知道 请解释一下 谢谢
2008-7-16 10:01
linren
Rank: 2
等级:注册会员
帖子:37
积分:552
注册:2005-12-11

lindayanglong 在 2008-7-16 10:01 的发言:

不明白string::npos得到的是什么东西 很想知道 请解释一下 谢谢
find失败后的返回值……

生活就是一个七日接着又一个七日
2008-7-16 21:45
关于我们 | 广告合作 | 编程中国 | 清除Cookies | Archiver | WAP | TOP

编程中国 版权所有,并保留所有权利。鲁ICP备08000592号
Powered by Discuz, Processed in 0.058553 second(s), 9 queries.
Copyright©2004-2008, BCCN.NET, All Rights Reserved