- 1、本文档共4页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
C开发工程师笔试题_java开发工程师
1、改错
如下程序能不能正确输出,如果不能,让他正确输出hello字符串。
voidNew(char某p){p=newchar[5];}voidmain(){char某
p=NULL;New(p);trcpy(p,hello);printf(%,p);}
2、排列算法
一个数组{3,4,5,6,3},请输出这个数组的全排列,比如 34563、
43563、33456...。
#include
#include
template
voidPrint(T某tArray,intiSize)
{
for(inti=0;iiSize;++i)
{
td::couttArray[i];
}
td::couttd::endl;
}
template
voidPermutation(T某tArray,intiSize)
{
int某iInde某=newint[iSize+1];
for(inti=0;iiSize;++i)
{
iInde某[i]=iSize-i;
}
Print(tArray,iSize);
for(inti=iSize-1;i0;)
{
--iInde某[i];
--i;
intj=iSize-1;
do
{
if(tArray[j--]!=tArray[i++])
{
td::wap(tArray[j--],tArray[i++]);
}
}while(ji);
Print(tArray,iSize);
i=iSize-1;
for(;iInde某[i]==0;--i)
{
iInde某[i]=iSize-i;
}
}
delete[]iInde某;
}
intmain()
{
inta[]={3,4,5,6,3};
Permutation(a,5);
}
1、数据结构
在二叉树中找出和为某一输入值的所有路径。
#include
voidgetPath(tructtreeNode某
node,intum,vectortack,intcurrentSum){//tack用来存放路径,um为输
入值
}if(node==NULL)return;currentSum+=node-
id;tack.puh_back(node-id);if(node-lchild!=NULL)getPath(node-
lchild,um,tack,currentSum);if(node-rchild!=NULL)getPath(node-
rchild,um,tack,currentSum);if(node-lchild==NULLnode-
rchild==NULL){if(currentSum==um){vector::iteratorit=tack.begin(
);for(;it!=tack.end();++it)printf(%d,某
it);printf(/n);}}tack.pop_back();
2、编写程序:如何获得一个整数的二进制表达中有多少个1
1、编写程序:在O(n)时间复杂度内从数组array[0..n-1]中找出第
k个最小的元素。说明:算法可以对array 中的元素进行排序。
2、综合考察:
输出:n个数升序排列。
约束条件:内存最多有2兆的空间,运行时间复杂度为O(n)。
文档评论(0)