struct Record struct Record{
{ int a;
int a; int b; };
int b; }; int create(struct Record *p, int num)
int create(struct Record *&p , int num) {
{ p = new struct Record[num];
p=NULL; //p先指NULL
if (!p)
p = new struct Record[num];
return -1;
if (!p)
else
return -1;
return 0;
else
}
return 0; }
int Test()
int Test()
{
{
struct Record *p = NULL;//p要释放
struct Record *p = NULL;
int i;
int i;
int num;
int num;
printf(\"0x%08x\\n\ printf(\"0x%08x\\n\ scanf(\"Input record num:%d\ printf(\"Input record num:\"); &num); scanf(\"%d\ if (create(p, num) < 0) if (create(p, num) < 0) return -1; return -1; printf(\"0x%08x\\n\ printf(\"0x%08x\\n\ for (i = 0; i < num; i++) for (i = 0; i < num; i++) { { p[i].a = 0; p[i].a = 0; p[i].b = 0; p[i].b = 0; } } delete []p;
return 0; return 0;
} }
int main(void) int main(void)
{ Test(); {
getchar(); Test();
return 0; } getchar();
return 0; }
3. 有一台Mini计算机,内存大小为1K,CPU主频为1M(CPU状态每秒改变10的6次方次),
问在这台计算机上可运行并且确定可以终止的程序的最长运行时间是多少? 给出思路及推理过程(可以做任何假设)。 二、算法设计
1. 某大型项目由n个组件N1, N2……Nn构成,每个组件都可以编译,但是某些组件的编译依赖于其它组件(即某些组件只能在其它组件编译完成后才能编译),设计算法给出统计过程。
#include #define MAXN 505#define MAXM MAXN*MAXN
struct edge { int v;
edge *mNext;
};
int in[MAXN]; int n,m;
edge E[MAXM]; int en;
edge *first[MAXN]; int cnt[MAXN][MAXN];
void insert(int u,int v) { E[en].v=v; E[en].mNext=first[u];
first[u]=&E[en++]; }
void topo() { for(int i=1;i<=n;i++) for(int u=1;u<=n;u++) { if(in[u]==0) { in[u]=-1;
printf(\"%d \
2. 完成函数:
for(edge *e=first[u];e;e=e->mNext)
in[e->v]--; break;
}
}
}
int main() { freopen(\"c:/a.txt\
while(scanf(\"%d%d\ { memset(first,NULL,sizeof(first)); memset(cnt,0,sizeof(cnt)); memset(in,0,sizeof(in)); int u,v; en=0;
for(int i=0;i}}
topo();
printf(\"\\n\"); }
return 0;
}
int maxnumstr(char *inputstr, char *outputstr)
函数功能:找出inputstr中的最长连续数字串存储到outputstr里并返回长度,如调用maxnumstr(\"123abc1234a\outputstr)后返回4且outputstr中为\"1234\"。
#include #define MAXN 1000
int maxnumstr(char *inputstr, char *outputstr) {
if(inputstr==NULL || outputstr==NULL) throw \"Error NULL params\"; if(*inputstr=='\\0') { return 0; }
char* begin=inputstr; int res=1; int cur=1;
char pre=*inputstr++; while(*inputstr) {
if('0'<=*inputstr&&*inputstr<='9'&&pre==*inputstr-1) cur++; else cur=1; }
}
if(respre=*inputstr++;res=cur;
begin=inputstr-(cur-1);
*outputstr='\\0';
for(int i=0;iint main() { }freopen(\"c:/a.txt\char src[MAXN],tar[MAXN]; while(scanf(\"%s\{
printf(\"%d\printf(\"%s\\n\}
return 0;
三、系统设计
URL(统一资源定位符)由site、path组成,并且有其它属性信息如访问时间等。 如:http://www.baidu.com/img/abc中site为http://www.baidu.com,path为/img/abc。
1. 设计系统存储100亿条URL信息;
2. 说明如何完成URL信息的添加、删除及修改; 3. 如何添加URL的属性信息;
http://en.wikipedia.org/wiki/URI_scheme
2010搜狐校园招聘笔试题 一、选择题(20题,40分) 二、名词解释(10题,20分)
诸如SQL、TCP、HTTP、QoS、STL、XML等。 SQL(Structured Query Language)结构化查询语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。同时也是数据库脚本文件的扩展名。
TCP:Transmission Control Protocol 传输控制协议TCP是一种面向连接(连接导向)的、可靠的、基于字节流的运输层(Transport layer)通信协议.
超文本传输协议(HTTP,HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络协议。所有的WWW文件都必须遵守这个标准。设计HTTP最初的目的是为了提供一种发布和接收HTML页面的方法。
QoS(Quality of Service)服务质量,是网络的一种安全机制, 是用来解决网络延迟和阻塞等问题的一种技术。 在正常情况下,如果网络只用于特定的无时间的应用系统,并不需要QoS,比如Web应用,或E-mail设置等。但是对关键应用和多媒体应用就十分必要。当网络过载或拥塞时,QoS 能确保重要业务量不受延迟或丢弃,同时保证网络的高效运行。
STL = Standard Template Library,标准模板库
XML(Extensible Markup Language)即可扩展标记语言,它与HTML一样,都是SGML(Standard Generalized Markup Language,标准通用标记语言)。Xml是Internet环境
中跨平台的,依赖于内容的技术,是当前处理结构化文档信息的有力工具。扩展标记语言XML是一种简单的数据存储语言,使用一系列简单的标记描述数据,而这些标记可以用方便的方式建立,虽然XML占用的空间比二进制数据要占用更多的空间,但XML极其简单易于掌握和使用。
三、程序设计(可用任何编程语言实现)
1. 排序数字字符串的数字(升序),遇到0时从数字字符串中删除,如\"1324”排序后应该为“1234”,”9002“排序后应该为”29“;
2. 前后颠倒输入的英文中的单词位置,标点符号(只可以出现在句尾)位置不变,如输入\"Hello how are you!\"输出应该为“you are how Hello!\"。