2014百度校园招聘笔试题(长春站)

本文探讨了计算机存储系统的层次结构及其对程序执行效率的影响,并深入分析了Unix/Linux系统中的僵尸进程问题及解决方案。此外,还提供了socket编程的具体步骤与实例,以及字符串反转等实用算法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一,简答题(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;
}

三,系统设计题
稍后再传
内容概要:本文探讨了在MATLAB/SimuLink环境中进行三相STATCOM(静态同步补偿器)无功补偿的技术方法及其仿真过程。首先介绍了STATCOM作为无功功率补偿装置的工作原理,即通过调节交流电压的幅值和相位来实现对无功功率的有效管理。接着详细描述了在MATLAB/SimuLink平台下构建三相STATCOM仿真模型的具体步骤,包括创建新模型、添加电源和负载、搭建主电路、加入控制模块以及完成整个电路的连接。然后阐述了如何通过对STATCOM输出电压和电流的精确调控达到无功补偿的目的,并展示了具体的仿真结果分析方法,如读取仿真数据、提取关键参数、绘制无功功率变化曲线等。最后指出,这种技术可以显著提升电力系统的稳定性与电能质量,展望了STATCOM在未来的发展潜力。 适合人群:电气工程专业学生、从事电力系统相关工作的技术人员、希望深入了解无功补偿技术的研究人员。 使用场景及目标:适用于想要掌握MATLAB/SimuLink软件操作技能的人群,特别是那些专注于电力电子领域的从业者;旨在帮助他们学会建立复杂的电力系统仿真模型,以便更好地理解STATCOM的工作机制,进而优化实际项目中的无功补偿方案。 其他说明:文中提供的实例代码可以帮助读者直观地了解如何从零开始构建一个完整的三相STATCOM仿真环境,并通过图形化的方式展示无功补偿的效果,便于进一步的学习与研究。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值