- 1、本文档共7页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
H3C华三技术有限公司[笔试题]2013-09-25
注:笔试题根据面试者回忆记录,仅供参考;
以下题目都是在小端结尾的32位x86CPU上面运行的代码:一.编程题
请实现一个函数,对于给定的整型参数N,该函数能够打印出自然数中的头N个质数(15分)。
#includestdio.h#defineN10000voidfind_zs(intnum)
{
inti;intj;
printf(%d以前的质数是:,num);for(i=2;inum;i++)
{
for(j=2;ji;j++)
{
if(0==i%j)
{
break;
}
if(i-1==j)
{
printf(%d,i);
}
}
}
}
intmain()
{
find_zs(N);return0;
}
链表节点结构体定义structnode{
intdata;structnode*prev;structnode*next;
}
假设已经构建完毕的一个双向链表有节点A-B-C-D-E-F,从中截断,以C为截断点,传入节点C的指针,截断后重新连接的链表变为
C-D-E-F-A-B的形式,写出实现这一功能的C语言代码,返回新链表的头节点指针。(10分)
#includestdio.h
#includestdlib.hstructnode{
intdata;structnode*prev;structnode*next;
};
intmain()
{
//形成A-B-C-D-E-F的双向链表用1-2-3-4-5-6来表示
inti;node*head=(node*)malloc(sizeof(node));head-data=1;
head-next=NULL;head-prev=NULL;node*p=head;node*q=head;for(i=0;i5;i++)
{
q=(node*)malloc(sizeof(node));q-data=i+2;
p-next=q;q-prev=p;
q-next=NULL;p=q;
}
//打印链表中的data,确认双向链表生成p=head;
q=head;for(i=0;i6;i++)
{
printf(%d-,p-data);q=p-next;
p=q;
}
printf(\n);
//找到C(3)节点,并把指针放到tmp_head,同时把p,q指向链表尾
p=head;q=head;
node*tmp_head=head;while(NULL!=p-next)
{
if(3==p-data)
{
tmp_head=p;
}
q=p-next;p=q;
}
//把A-B节点挪到F节点后面
p-next=head;head-prev=p;q=head-next;q-next=NULL;
//打印当前链表,验证结果是否正确p=tmp_head;
q=tmp_head;for(i=0;i6;i++)
{
printf(%d-,p-data);q=p-next;
p=q;
}
printf(\n);return0;
}
二.问答题(每题4分)
请写出floatx与“零值”比较的if语句:
#defineEPSINON1e-6
if(x=EPSINON x=-EPSINON)
用预处理指令#define声明一个常数,用来表示一年有多少秒(忽略闰年问题)#defineN(365*24*3600)ul
3.voidGetMemory(char*p)
{
p=(char*)malloc(100);
}
voidTest(void)
{
char*str=NULL;GetMemory(str);strcpy(str,helloworld);printf(str);
}
请问运行Test函数会有什么样的结果?程序崩溃
这其实是一个参数传递的问题.
修改变量值需要传递该变量类型的一级指针;
修改一级指针指需要传递对应类型的二级指针./view/948185300b4c2e3f572763a1.html4.char*GetMemory(void)
{
charp[]=helloworld;returnp;
}
voidTest(void)
{
char*str=NULL;str=GetMemory();printf(str);
}
请问运行Test函数会有什么样的结果
程序执行后结果未知,可能是hell。等(即o以后字符未知)
5.voidGetMemory2(char**p,intnum)
{
*p=(char*
您可能关注的文档
- 合作协议书格式.docx
- 合作学习小组管理制度初三年级组.docx
- 合作与成功分析和总结.docx
- 何必执着分析和总结.docx
- 何道清《仪表与自动化》课后答案.docx
- 何桥学校旗台建筑合同.docx
- 何桥学校食堂食品安全工作自查整改报告.docx
- 何时宽容成了一种过错.docx
- 何时造句分析和总结.docx
- 何为Homeschooling?分析和总结.docx
- 中国行业标准 GM/T 0126-2023HTML密码应用置标语法.pdf
- 《JJF 2121-2024恒转速源校准规范》.pdf
- 餐饮服务中20条处理要点.docx
- 《GM/T 0011-2023可信计算 可信密码支撑平台功能与接口规范》.pdf
- 《JJF 2134-2024旋转流变仪校准规范》.pdf
- JJF 2121-2024恒转速源校准规范.pdf
- 计量规程规范 JJF 2121-2024恒转速源校准规范.pdf
- 《JJF 2118-2024压力式六氟化硫气体密度控制器校验仪校准规范》.pdf
- JJF 2134-2024旋转流变仪校准规范.pdf
- 计量规程规范 JJF 2134-2024旋转流变仪校准规范.pdf
文档评论(0)