您的位置:首页 > 编程语言 > C语言/C++

2016/10/08 TCL技术笔试题目

2016-10-08 21:46 155 查看
多数是C语言、少量的C++,两道编程题目真恶心,妈的,又是之前的的那种文本编辑器,代码不会自动换行缩进。随后贴题目和自己的解答。

编程题1:

编写一个函数
revert(int* src,int* dst,int n);
把指向整数数组的src中所有奇数放置到所有的偶数之前,并且奇数部分正序排列,偶数部分逆序排列,将新的序列存入到dst数组指针中。n为src和dst指向的数组个数。例如,n=8,处理前的src为{1,2,8,7,9,6,12,17},处理后的dst中数据为{1,7,9,17,12,8,6,2}。

#include<iostream>
using namespace std;
void revert(int* src,int* dst,int n)
{
int i;
int j;
int cnt_odd = 0;
int cnt_even = 0;
int tmp;
for(i = 0;i < n;i++)
{
for(j = i + 1;j < n;j++)
{
if(*(src + i) > *(src + j))
{
tmp = *(src + i);
*(src + i) = *(src + j);
*(src + j) = tmp;
}
}
}
for(i = 0;i < n;i++)
{
if(((*(src + i)) % 2) == 1)
{
cnt_odd = cnt_odd + 1;
*(dst + cnt_odd - 1) = *(src + i);
}
else if(((*(src + i)) % 2) == 0)
{
cnt_even = cnt_even + 1;
*(dst + n - cnt_even) = *(src + i);
}
}
}
void main(void)
{
int* src = (int*)malloc(sizeof(int) * 10);
int* dst = (int*)malloc(sizeof(int) * 10);
for(int i = 0;i < 10;i++)
{
*(src + i) = i * i;
cout<<*(src + i)<<"\t";
}
cout<<endl;
revert(src,dst,10);
for(int i = 0;i<10;i++)
{
cout<<*(dst + i)<<"\t";
}
cout<<endl;
free(src);
free(dst);
system("pause");
}


运行结果如下所示,基本上达到了要求的目标:



2016年10月16日更新:

昨天下午就收到了TCL 的面试通知,但是……是在杭州的武林广场,这让我很是无奈。其实很早我就知道,因为宁波的TCL不在哈尔滨开展校园招聘,宁波的那个是阿尔卡特朗讯的部门,在高新区的扬帆路那里。其实挺好的,离我现在家里车程大概也就只有40多分钟吧,而且有一个马上工作三年的高中师兄在里面。

结果昨天下午还不小心把邮件里的是否参加面试点击成了参加,导致今天HR直接电话过来问我,看你这个很奇怪啊,应该是在哈尔滨的,能来杭州参加面试。我把情况介绍了之后,人还说这两天在杭州面试,等杭州完事儿了之后安排视频面试吧!尴尬!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  c语言 tcl