一,简答题(30分)
1,当前计算机系统一般会采用层次结构存储数据,请介绍下典型计算机存储系统一般分为哪几个层次,为什么采用分层存储数据能有效提高程序的执行效率?10分
2,Unix/Linux系统中僵尸进程是如何产生的?有什么危害?如何避免?(10分)
3,简述Unix/Linux系统中使用socket库编写服务器端程序的流程,请分别用对应的socket通信函数表示(10分)
二,算法与程序设计题
1,使用C/C++编写函数,实现字符串反转,要求不使用任何系统函数,且时间复杂度最小,函数原型:char* reverse_str(char* str)。(15分)
char* reverse_str(char* str)
{
if(str == NULL)
return str;
char* begin = str;
char* end = str;
while(*end!='\0')
end++;
while(begin<end)
swap(*begin++,*--end);
return str;
}
2,给定一个如下格式的字符串(1,(2,3),(4,(5,6),7)) 括号内的元素可以是数字,也可以是另一个括号,请实现一个算法消除嵌套的括号,比如把上面的表达式变成:(1,2,3,4,5,6,7),如果表达式有误请报错。(15分)
bool isValid(char* str)
{
if(str == NULL)
return false;
stack<char> s;
char ch;
s.push(*str++);
while(*str)
{
if(*str == '(')
s.push(*str++);
else if(*str == ')')
{
ch = s.top();
s.pop();
str++;
if(s.empty() && str!='\0')
return false;
if(ch != '(')
return false;
}
else if(isdigit(*str) || *str==',')
str++;
else
return false;
}
if(!s.empty())
return false;
return true;
}
bool globleBadInput = false;
char* change(char* str)
{
if(str == NULL)
return str;
char* temp = new char[strlen(str)+1];
char* res = temp;
if(isValid(str))
{
*temp++ = *str++;;
while(*str!='\0')
{
if(*str == ')' || *str=='(')
{
str++;
continue;
}
*temp++ = *str++;
}
*temp++ = ')';
*temp = '\0';
}
else
{
globleBadInput = true;
return str;
}
return res;
}
3,
代码未测试:
struct topic_info_t
{
int topic_id;
float topic_pr;
};
float mul(const vector<topic_info_t>& query,const vector<topic_info_t>& adword)
{
vector<topic_info_t>::const_iterator iter_q,iter_a;
iter_q = query.begin();
iter_a = adword.begin();
float res = 0.0;
while(iter_q!=query.end() && iter_a!=adword.end())
{
if((*iter_q).topic_id == (*iter_a).topic_id)
{
res += ((*iter_q).topic_pr * (*iter_a).topic_pr);
iter_q++;
iter_a++;
}
else if((*iter_q).topic_id < (*iter_a).topic_id)
iter_q++;
else
iter_a++;
}
return res;
}
float max_sim(const vector<topic_info_t>& query_topic_info,const vector<topic_info_t> adwords_topic_info[],int adwords_number)
{
int i = 0;
float maxValue = FLT_MIN;
for(;i<adwords_number;++i)
{
float temp = mul(query_topic_info,adwords_topic_info[i]);
if(maxValue < temp)
maxValue = temp;
}
return maxValue;
}
三,系统设计题
稍后再传
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)