2010年大连华信校园笔试题及答案
一、逻辑题(这3道逻辑题华信以前都是考过的,好像是07年,做过之后网上找答案是才
发现的。)
1、 某公司男女比例为5:3,该公司又分为总公司和子公司,人数比例为3:2,总公司男女比
例7:5,子公司有35名女员工,总公司和子公司共有男员工多少人?
首先要看清题目,是要求男员工总数,而不是总公司和子公司各有多少男员工! 设共有男员工5x 人,则
公司女员工数是3x 人
公司共有员工是5x+3x=8x
总公司女员工数:3/5*8x*5/12=2x
故3x – 2x = 35 x = 35
答案:5x = 175
2、 10个人分100斤苹果,年龄从小到大,每两人相差的重量都一样,又知第八个人分到6
斤,每两人相差的苹果重量是多少?
设第一个人分到的重量是x ,每两人相差的重量是y ,由题意
X + 7y = 6
X +(x+y) + (x+2y) + ….+(x+9y)=10x + 45y = 100
得到y= - 1.6
故可知每两人相差的苹果重量是1.6斤
3、 哥五个各有一些糖块,大的比小的多,老大把自己的分给大家一些,谁有多少块再分给
谁多少块,然后老二把现有的块数分给大家一些,谁有多少块再分给谁多少块,老三、老四、老五依次类推,最后五个人每人都有32块糖,问最初每人各有多少块糖?
这题可用逆推的方式求得
设初始值: a b c d e
老大分后: ? 2b 2c 2d 2e
老二分后: ? ? 4c 4d 4e
老三分后: ? ? ? 8d 8e
老四分后: ? ? ? ? 16e
老五分后: 32 32 32 32 32
逆推可知老四分后各值为:
16 16 16 16 32*5 – 16*4=16e 得到e = 6
同理可得知老三分后为
8 8 8 8d=160-72 8e=48 得到d=11
同理可得到其他值依次为
81 41 21 11 6
二、编程题
1、 写一个函数统计其中出现的特殊字符的个数,依次存放在b 【10】数组中,存放如下:
~ b[0]
! b[1]
@b[2]
#b[3]
$b[4]
%b[5]
^b[6]
&b[7]
*b[8]
其他b[9]
可用Java 或c 实现
我写的大概如下:
viod fun(char[] str){
int[] b = new int[10];
for(int i=0;i
Switch(str[i]){
case ‘~’:b[0]++;break;
case ‘! ’:b[1]++;break;
case ‘@’:b[2]++;break;
case ‘#’:b[3]++;break;
case ‘$’:b[4]++;break;
case ‘%’:b[5]++;break;
case ‘^’:b[6]++;break;
case ‘&’:b[7]++;break;
case ‘*’:b[8]++;break;
default:b[9]++;
}
}
}
2、给出如下的链表定义:
typedef struct structLink {
int value;
struct structLink *pHead;
};
分别写出对删除第一个节点、最后一个节点、和制定节点的函数
#define ERROR -1
#define SUCCESS 1
int delectHead(structLink &link){
if(link->pHead == NULL) return ERROR;
link = link->pHead;
return SUCCESS;
}
int deleteTail(structLink &link){
if(link->pHead == NULL) return ERROR;
while(link->pHead->pHead != NULL){
link = link->pHead;
}
Link->pHead = NULL;
return SUCCESS;
}
int deleteNode(structLink &link, int n){
int i = 0;
structLink p = link;
if(link->pHead == NULL) return ERROR;
while(ipHead!=NULL){
p = p->pHead;
i++;
}
if(i>n || !p) return SUCCESS;
p->pHead = p->pHead->pHead;
return SUCCESS;
}
3、关于世博会国家馆门票的,设中国馆门票为100元/人,德国馆门票为10元/人,日本馆门票为10/3元/人。假设有一个单位有100人,打算用1000元来购置门票,要求: 每个国家馆的门票都要求至少有一张
每人都要有一张门票,不能多也不能少
1000元必须都花完,不能多也不能少
编程共有多少种购票方案?
void funBuy(){
int count = 0;
for(int i=1;i
for(int j=1;j
if(100*i + 10*j + 10/3*(100-i-j)==1000)
count++;
}
}
}
2010年大连华信校园笔试题及答案
一、逻辑题(这3道逻辑题华信以前都是考过的,好像是07年,做过之后网上找答案是才
发现的。)
1、 某公司男女比例为5:3,该公司又分为总公司和子公司,人数比例为3:2,总公司男女比
例7:5,子公司有35名女员工,总公司和子公司共有男员工多少人?
首先要看清题目,是要求男员工总数,而不是总公司和子公司各有多少男员工! 设共有男员工5x 人,则
公司女员工数是3x 人
公司共有员工是5x+3x=8x
总公司女员工数:3/5*8x*5/12=2x
故3x – 2x = 35 x = 35
答案:5x = 175
2、 10个人分100斤苹果,年龄从小到大,每两人相差的重量都一样,又知第八个人分到6
斤,每两人相差的苹果重量是多少?
设第一个人分到的重量是x ,每两人相差的重量是y ,由题意
X + 7y = 6
X +(x+y) + (x+2y) + ….+(x+9y)=10x + 45y = 100
得到y= - 1.6
故可知每两人相差的苹果重量是1.6斤
3、 哥五个各有一些糖块,大的比小的多,老大把自己的分给大家一些,谁有多少块再分给
谁多少块,然后老二把现有的块数分给大家一些,谁有多少块再分给谁多少块,老三、老四、老五依次类推,最后五个人每人都有32块糖,问最初每人各有多少块糖?
这题可用逆推的方式求得
设初始值: a b c d e
老大分后: ? 2b 2c 2d 2e
老二分后: ? ? 4c 4d 4e
老三分后: ? ? ? 8d 8e
老四分后: ? ? ? ? 16e
老五分后: 32 32 32 32 32
逆推可知老四分后各值为:
16 16 16 16 32*5 – 16*4=16e 得到e = 6
同理可得知老三分后为
8 8 8 8d=160-72 8e=48 得到d=11
同理可得到其他值依次为
81 41 21 11 6
二、编程题
1、 写一个函数统计其中出现的特殊字符的个数,依次存放在b 【10】数组中,存放如下:
~ b[0]
! b[1]
@b[2]
#b[3]
$b[4]
%b[5]
^b[6]
&b[7]
*b[8]
其他b[9]
可用Java 或c 实现
我写的大概如下:
viod fun(char[] str){
int[] b = new int[10];
for(int i=0;i
Switch(str[i]){
case ‘~’:b[0]++;break;
case ‘! ’:b[1]++;break;
case ‘@’:b[2]++;break;
case ‘#’:b[3]++;break;
case ‘$’:b[4]++;break;
case ‘%’:b[5]++;break;
case ‘^’:b[6]++;break;
case ‘&’:b[7]++;break;
case ‘*’:b[8]++;break;
default:b[9]++;
}
}
}
2、给出如下的链表定义:
typedef struct structLink {
int value;
struct structLink *pHead;
};
分别写出对删除第一个节点、最后一个节点、和制定节点的函数
#define ERROR -1
#define SUCCESS 1
int delectHead(structLink &link){
if(link->pHead == NULL) return ERROR;
link = link->pHead;
return SUCCESS;
}
int deleteTail(structLink &link){
if(link->pHead == NULL) return ERROR;
while(link->pHead->pHead != NULL){
link = link->pHead;
}
Link->pHead = NULL;
return SUCCESS;
}
int deleteNode(structLink &link, int n){
int i = 0;
structLink p = link;
if(link->pHead == NULL) return ERROR;
while(ipHead!=NULL){
p = p->pHead;
i++;
}
if(i>n || !p) return SUCCESS;
p->pHead = p->pHead->pHead;
return SUCCESS;
}
3、关于世博会国家馆门票的,设中国馆门票为100元/人,德国馆门票为10元/人,日本馆门票为10/3元/人。假设有一个单位有100人,打算用1000元来购置门票,要求: 每个国家馆的门票都要求至少有一张
每人都要有一张门票,不能多也不能少
1000元必须都花完,不能多也不能少
编程共有多少种购票方案?
void funBuy(){
int count = 0;
for(int i=1;i
for(int j=1;j
if(100*i + 10*j + 10/3*(100-i-j)==1000)
count++;
}
}
}