c/c++某大公司的两道笔试题(含参考答案 )

c/c++某大公司的两道笔试题(含参考答案 )

1.一群人围成一圈,123的报数,报3者出列,求最后一个人。
2.利用链表实现将两个有序队列A和B合并到有序队列H中,不准增加其他空间。
请提供全一点的程序

第一题:

// kickout.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"
#include "malloc.h"
#include "stdio.h"

int main()
{
int m,n;
int kickouts = 0;
int *p = NULL;
int i ,j;
i=j=0;
printf("Please input m,n:");
scanf("%d,%d",&m,&n);

while(n<1)
{
printf("n doen't less 0 , retry n:");
scanf("%d",&n);
}

p=(int*)malloc(m*sizeof(int));
for(i=0;i<m;i++)
p[i]=1;
i = 0;
while(1)
{
i = i%m;
if(p[i++]) j++;
if(j == n)
{
p[i-1]=0;
j = 0;
kickouts++;
}
if(kickouts == m-1)
break;
}
for(i = 0;i<m;i++)
if(p[i]) printf("%d\n",i+1);
return 0;
}


2、升序还是降序?
以升序为例:
while(a != NULL && b!= NULL)
{
if (a->data < b->data)
{
h->data = a->data;
a = a->next;
}
else if (a->data == b->data)
{
h->data = a->data;
a = a->next;
b = b->next;
}
else
{
h->data = b->data;
b = b->next
}
h = h->next;
}
if (a == NULL)
{
while (b != NULL)
{
h->data = b->data;
h = h->next;
b = b->next;
}
}
else
{
while(a != NULL)
{
h->data = a->next;
h = h->next;
a = a->next;
}
}





--------------------------------------------------------------------------------
  相关文章
  JAVA 招聘远程笔试题2007-5-17 8:07:26
  c/c++笔试题(含参考答案 )2007-5-17 8:06:59
  最新 c/c++笔试题(含参考答案)2007-5-17 8:06:30
  java 笔试题2007-5-17 8:05:51
  ORACLE笔试题目2007-4-14 13:34:45
  IT求职经典面试题2007-4-3 8:30:57
  某公司java笔试题.(超难)2007-4-2 19:05:34
  几道c笔试题(含参考答案)2007-4-2 19:05:10
  深圳某公司几个vc/mfc笔试题目(含参考答案)2007-4-2 19:04:44
  数据库笔试题(含参考答案)2007-4-2 19:04:16
Google
分类: Asm,C,C++,VC 面试题 日期:2007-5-17 查看:1