华三笔试题分析和总结.docx

  1. 1、本文档共7页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 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*

文档评论(0)

tianya189 + 关注
官方认证
内容提供者

该用户很懒,什么也没介绍

认证主体阳新县融易互联网技术工作室
IP属地上海
统一社会信用代码/组织机构代码
92420222MA4ELHM75D

1亿VIP精品文档

相关文档