上海一牛公司的面试题目!请教

yinzhun 2008-04-29 11:18:09
现在文本文件S7.txt由0,1组成 共有129列
请处理:(4分类问题)
1. 如果行第64位为1,且129位即最后一位为1 为 A类
2. 如果行第64位为1,且129位即最后一位为0 为 B类
3. 如果行第65位为1,且129位即最后一位为1 为 C类
4. 如果行第65位为1,且129位即最后一位为0 为 D类
 结果保存:
1. 将上面分出来的四类信息分别保存到一个单独的数组中。
2. 将上面分出来的四类信息分别以文本文件的形式保存。
3. 上面的每行都是一个样本,保存的结果依然是每行129个字符。
...全文
1212 61 打赏 收藏 转发到动态 举报
写回复
用AI写文章
61 条回复
切换为时间正序
请发表友善的回复…
发表回复
arong1234 2008-05-06
  • 打赏
  • 举报
回复
只要你有一定基础(包括数据结构和文件操作),不会觉得难得。如果这点基础没有,那根本不能胜任编程工作得。连这么简单得不会怎么做程序员?
[Quote=引用 59 楼 onlinewan 的回复:]
小弟不才,刚刚入门,只是说出自己的想法,说的不对,还请各位前辈谅解
[/Quote]
arong1234 2008-05-06
  • 打赏
  • 举报
回复
你说得这个是“难”么?
行数不确定无非就是while读循环而已,根本不需要固定行数
至于第二个,无非就是先用个list保存,然后再输出到文件中。这不是最最基础得数据结构?
[Quote=引用 52 楼 onlinewan 的回复:]
这题简单吗?

我不认为简单。

文件大小不确定(行数不确定)。
要把四类分别保存在数组中,就这个,至少要对动态内存分配比较熟练。

真觉得简单?写写试试 ,按照题目要求
[/Quote]
onlinewan 2008-05-06
  • 打赏
  • 举报
回复
小弟不才,刚刚入门,只是说出自己的想法,说的不对,还请各位前辈谅解
onlinewan 2008-05-06
  • 打赏
  • 举报
回复
楼上的,谢谢,这个我是知道的

我的意思是,真要求写出来代码,可能会暴露很多编码问题。

就单论问题本身,真的很容易理解,真的很简单。

相信这个题目的目的就是想考查程序员的编码基本功扎实不,效率、异常、代码的质量
linfengc 2008-05-06
  • 打赏
  • 举报
回复
[Quote=引用 52 楼 onlinewan 的回复:]
这题简单吗?

我不认为简单。

文件大小不确定(行数不确定)。
要把四类分别保存在数组中,就这个,至少要对动态内存分配比较熟练。

真觉得简单?写写试试 ,按照题目要求
[/Quote]

文件的size是可以用系统函数得到的,
知道size也就大概知道该分配多少内存了。
linfengc 2008-05-06
  • 打赏
  • 举报
回复
我只能说,太简单了。
onlinewan 2008-05-06
  • 打赏
  • 举报
回复
楼上的,要C
cqqqq 2008-05-06
  • 打赏
  • 举报
回复
#include <iostream>
#include <fstream>
#include <string>
#include <vector>
using namespace std;

void main()
{
vector<string> vec[4];
ifstream fin("S7.txt");
string b;
while(fin>>b)
{
if(b[63]=='1'&&b[128]=='1')vec[0].push_back(b);
if(b[63]=='1'&&b[128]=='0')vec[1].push_back(b);
if(b[64]=='1'&&b[128]=='1')vec[2].push_back(b);
if(b[64]=='1'&&b[128]=='0')vec[3].push_back(b);
}
string txt[4]={"a.txt","b.txt","c.txt","d.txt"};
for(int i=0;i<4;i++)
{
ofstream fout(txt[i].c_str());
for(int j=0;j<vec[i].size();j++)
fout<<vec[i][j];
fout.close();
}
fin.close();

system("pause");
}
redleaves 2008-05-06
  • 打赏
  • 举报
回复
看来我上次出的笔试题写快排是有点难了...
onlinewan 2008-05-06
  • 打赏
  • 举报
回复
这题简单吗?

我不认为简单。

文件大小不确定(行数不确定)。
要把四类分别保存在数组中,就这个,至少要对动态内存分配比较熟练。

真觉得简单?写写试试 ,按照题目要求
wuhuiran 2008-05-01
  • 打赏
  • 举报
回复
张江的很牛吗?
arong1234 2008-05-01
  • 打赏
  • 举报
回复
他只需要判断一个“字节”,bitwise的效率远远低于字节直接比较
他无非就是需要
if(line[63]==1 && line[128]==0) B
if(line[63]==1 && line[128]==1) A
if(line[64]==1 && line[128]==0) D
if(line[64]==1 && line[128]==1) C

不明白为什么会有人认为bitwise好?你难道先把字节数组合成为整数,然后再比较位?那得多差
UltraBejing 2008-05-01
  • 打赏
  • 举报
回复
关注 接分
kingstarer 2008-05-01
  • 打赏
  • 举报
回复
很多人被标题误导了 以为一定要用高级技术
rushman 2008-04-30
  • 打赏
  • 举报
回复
这个题目一点都不牛
亲一 2008-04-30
  • 打赏
  • 举报
回复
恩...
按照字符进行处理,直接从文件读出来.然后判断每一行的64,65,129位,将符合条件的行保存到对应文件中,这样可以吗?
亲一 2008-04-30
  • 打赏
  • 举报
回复
恩...
按照字符进行处理,直接从文件读出来.然后判断每一行的64,65,129位,将符合条件的行保存到对应文件中,这样可以吗?
l_wenb 2008-04-30
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 WingForce 的回复:]
貌似作业题
[/Quote]
hqok 2008-04-30
  • 打赏
  • 举报
回复
这是作业题吧
yanvenhom 2008-04-30
  • 打赏
  • 举报
回复
各位大大,LZ的题还是有点噱头的。如果用每一行来创建数组再判断的话会比较费时,最好有人能想到用bitwise位移运算符或者利用二进制除法来直接得出分类,会快很多,再将结果写入char * []中。

小弟随便说说,说错了请客观指出。

回复7楼:张江男就是在上海张江那边工作的ITer的说法吧。
加载更多回复(41)

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧