面试_微软面试100题全部答案

面试_微软面试100题全部答案
面试_微软面试100题全部答案

本文自CSDN大牛的一篇博客:https://www.360docs.net/doc/dd8278261.html,/v_july_v/article/details/6870251

作者:July、阿财

时间:二零一一年十月十三日。

我能够看到此文,还要多同学!让我得以及时分享给大家

微软面试100题全部答案

个人整理的前60题的答案可参见以下三篇文章:

1.微软100题第1题-20题答案https://www.360docs.net/doc/dd8278261.html,/v_JULY_v/archive/2011/01/10/6126406.aspx [博

文 I]

2.微软100题第21-40题答案https://www.360docs.net/doc/dd8278261.html,/v_JULY_v/archive/2011/01/10/6126444.aspx[博文

II]

3.微软100题第41-60题答案https://www.360docs.net/doc/dd8278261.html,/v_JULY_v/archive/2011/02/01/6171539.aspx[博文

III]

最新整理的全部100题的答案参见如下(重复的,以及一些无关紧要的题目跳过):

1.把二元查找树转变成排序的双向链表

题目:

输入一棵二元查找树,将该二元查找树转换成一个排序的双向链表。

要求不能创建任何新的结点,只调整指针的指向。

10

/ \

6 14

/ \ / \

4 8 12 16

转换成双向链表

4=6=8=10=12=14=16。

首先我们定义的二元查找树节点的数据结构如下:

struct BSTreeNode

{

int m_nValue; // value of node

BSTreeNode *m_pLeft; // left child of node

BSTreeNode *m_pRight; // right child of node

};

ANSWER:

This is a traditional problem that can be solved using recursion.

For each node, connect the double linked lists created from left and right child node to form a full list.

/**

* param root The root node of the tree

* return The head node of the converted list.

*/

BSTreeNode * treeToLinkedList(BSTreeNode * root) {

BSTreeNode * head, * tail;

helper(head, tail, root);

return head;

}

void helper(BSTreeNode *& head, BSTreeNode *& tail, BSTreeNode *root) {

BSTreeNode *lt, *rh;

if (root == NULL) {

head = NULL, tail = NULL;

return;

}

helper(head, lt, root->m_pLeft);

helper(rh, tail, root->m_pRight);

if (lt!=NULL) {

lt->m_pRight = root;

root->m_pLeft = lt;

} else {

head = root;

}

if (rh!=NULL) {

root->m_pRight=rh;

rh->m_pLeft = root;

} else {

tail = root;

}

}

2.设计包含min 函数的栈。

定义栈的数据结构,要求添加一个min 函数,能够得到栈的最小元素。

要求函数min、push 以及pop 的时间复杂度都是O(1)。

ANSWER:

Stack is a LIFO data structure. When some element is popped from the stack, the status will recover to the original status as before that element was pushed. So we can recover the minimum element, too.

struct MinStackElement {

int data;

int min;

};

struct MinStack {

MinStackElement * data;

int top;

}

MinStack MinStackInit(int maxSize) {

MinStack stack;

stack.size = maxSize;

stack.data = (MinStackElement*) malloc(sizeof(MinStackElement)*maxSize); stack.top = 0;

return stack;

}

void MinStackFree(MinStack stack) {

free(stack.data);

}

void MinStackPush(MinStack stack, int d) {

if (stack.top == stack.size) error(“out of stack space.”);

MinStackElement* p = stack.data[stack.top];

p->data = d;

p->min = (stack.top==0?d : stack.data[top-1]);

if (p->min > d) p->min = d;

top ++;

}

int MinStackPop(MinStack stack) {

if (stack.top == 0) error(“stack is empty!”);

return stack.data[--stack.top].data;

}

int MinStackMin(MinStack stack) {

if (stack.top == 0) error(“stack is empty!”);

return stack.data[stack.top-1].min;

}

3.求子数组的最大和

题目:

输入一个整形数组,数组里有正数也有负数。

数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和。

求所有子数组的和的最大值。要求时间复杂度为O(n)。

例如输入的数组为1, -2, 3, 10, -4, 7, 2, -5,和最大的子数组为3, 10, -4, 7, 2,因此输出为该子数组的和18。

ANSWER:

A traditional greedy approach.

Keep current sum, slide from left to right, when sum < 0, reset sum to 0.

int maxSubarray(int a[], int size) {

if (size<=0) error(“error array size”);

int sum = 0;

while (cur < size) {

sum += a[cur++];

if (sum > max) {

max = sum;

} else if (sum < 0) {

sum = 0;

}

}

return max;

}

4.在二元树中找出和为某一值的所有路径

题目:输入一个整数和一棵二元树。

从树的根结点开始往下访问一直到叶结点所经过的所有结点形成一条路径。

打印出和与输入整数相等的所有路径。

例如输入整数22 和如下二元树

10

/ \

5 12

/ \

4 7

则打印出两条路径:10, 12 和10, 5, 7。

二元树节点的数据结构定义为:

struct BinaryTreeNode // a node in the binary tree

{

int m_nValue; // value of node

BinaryTreeNode *m_pLeft; // left child of node

BinaryTreeNode *m_pRight; // right child of node

};

ANSWER:

Use backtracking and recurison. We need a stack to help backtracking the path. struct TreeNode {

int data;

TreeNode * left;

TreeNode * right;

};

void printPaths(TreeNode * root, int sum) {

int path[MAX_HEIGHT];

helper(root, sum, path, 0);

}

void helper(TreeNode * root, int sum, int path[], int top) {

path[top++] = root.data;

sum -= root.data;

if (root->left == NULL && root->right==NULL) {

if (sum == 0) printPath(path, top);

} else {

if (root->left != NULL) helper(root->left, sum, path, top);

if (root->right!=NULL) helper(root->right, sum, path, top);

}

top --;

sum -= root.data;

}

5.查找最小的k 个元素

题目:输入n 个整数,输出其中最小的k 个。

例如输入1,2,3,4,5,6,7 和8 这8 个数字,则最小的4 个数字为1,2,3 和4。ANSWER:

This is a very traditional question...

O(nlogn): cat I_FILE | sort -n | head -n K

O(kn): do insertion sort until k elements are retrieved.

O(n+klogn): Take O(n) time to bottom-up build a min-heap. Then sift-down k-1 times. So traditional that I don’t want to write the codes...

Only gives the siftup and siftdown function.

/**

*param i the index of the element in heap a[0...n-1] to be sifted up

void siftup(int a[], int i, int n) {

while (i>0) {

int j=(i&1==0 ? i-1 : i+1);

int p=(i-1)>>1;

if (j

if (a[i] < a[p]) swap(a, i, p);

i = p;

}

}

void siftdown(int a[], int i, int n) {

while (2*i+1

int l=2*i+1;

if (l+1

if (a[l] < a[i]) swap(a, i, l);

i=l;

}

}

第6 题

腾讯面试题:

给你10 分钟时间,根据上排给出十个数,在其下排填出对应的十个数要求下排每个数都是先前上排那十个数在下排出现的次数。

上排的十个数如下:

【0,1,2,3,4,5,6,7,8,9】

举一个例子,

数值: 0,1,2,3,4,5,6,7,8,9

分配: 6,2,1,0,0,0,1,0,0,0

0 在下排出现了6 次,1 在下排出现了2 次,

2 在下排出现了1 次,

3 在下排出现了0 次....

以此类推..

ANSWER:

I don’t like brain t easers. Will skip most of them...

第7 题

微软亚院之编程判断俩个链表是否相交

给出俩个单向链表的头指针,比如h1,h2,判断这俩个链表是否相交。为了简化问题,我们假设俩个链表均不带环。

问题扩展:

1.如果链表可能有环列?

2.如果需要求出俩个链表相交的第一个节点列?

ANSWER:

struct Node {

int data;

int Node *next;

};

// if there is no cycle.

int isJoinedSimple(Node * h1, Node * h2) {

while (h1->next != NULL) {

h1 = h1->next;

}

while (h2->next != NULL) {

h2 = h2-> next;

}

return h1 == h2;

}

// if there could exist cycle

int isJoined(Node *h1, Node * h2) {

Node* cylic1 = testCylic(h1);

Node* cylic2 = testCylic(h2);

if (cylic1+cylic2==0) return isJoinedSimple(h1, h2);

if (cylic1==0 && cylic2!=0 || cylic1!=0 &&cylic2==0) return 0; Node *p = cylic1;

while (1) {

p=p->next->next;

cylic1 = cylic1->next;

if (p==cylic1) return 0;

}

}

Node* testCylic(Node * h1) {

Node * p1 = h1, *p2 = h1;

while (p2!=NULL && p2->next!=NULL) {

p1 = p1->next;

p2 = p2->next->next;

if (p1 == p2) {

return p1;

}

}

return NULL;

}

第8 题

此贴选一些比较怪的题,,由于其中题目本身与算法关系不大,仅考考思维。特此并作一题。

1.有两个房间,一间房里有三盏灯,另一间房有控制着三盏灯的三个开关,

这两个房间是分割开的,从一间里不能看到另一间的情况。

现在要求受训者分别进这两房间一次,然后判断出这三盏灯分别是由哪个开关控制的。

有什么办法呢?

ANSWER:

Skip.

2.你让一些人为你工作了七天,你要用一根金条作为报酬。金条被分成七小块,每天给出一块。

如果你只能将金条切割两次,你怎样分给这些工人?

ANSWER:

1+2+4;

3. ★用一种算法来颠倒一个表的顺序。现在在不用递归式的情况下做一遍。

ANSWER:

Node * reverse(Node * head) {

if (head == NULL) return head;

if (head->next == NULL) return head;

Node * ph = reverse(head->next);

head->next->next = head;

head->next = NULL;

return ph;

}

Node * reverseNonrecurisve(Node * head) {

if (head == NULL) return head;

Node * p = head;

Node * previous = NULL;

while (p->next != NULL) {

p->next = previous;

previous = p;

p = p->next;

}

p->next = previous;

return p;

}

★用一种算法在一个循环的表里插入一个节点,但不得穿越表。

ANSWER:

I don’t understand what is “Chuanyue”.

★用一种算法整理一个数组。你为什么选择这种方法?

ANSWER:

What is “Zhengli?”

★用一种算法使通用字符串相匹配。

ANSWER:

What is “Tongyongzifuchuan”... a string with “*” and “?”? If so, here is the code. int match(char * str, char * ptn) {

if (*ptn == ‘\0’) return 1;

if (*ptn == ‘*’) {

do {

if (match(str++, ptn+1)) return 1;

} while (*str != ‘\0’);

return 0;

}

if (*str == ‘\0’) return 0;

if (*str == *ptn || *ptn == ‘?’) {

return match(str+1, ptn+1);

}

return 0;

}

★颠倒一个字符串。优化速度。优化空间。

void reverse(char *str) {

reverseFixlen(str, strlen(str));

}

void reverseFixlen(char *str, int n) {

char* p = str+n-1;

while (str < p) {

char c = *str;

*str = *p; *p=c;

}

}

★颠倒一个句子中的词的顺序,比如将“我叫克丽丝”转换为“克丽丝叫我”,

实现速度最快,移动最少。

ANSWER:

Reverse the whole string, then reverse each word. Using the reverseFixlen() above.

void reverseWordsInSentence(char * sen) {

int len = strlen(sen);

reverseFixlen(sen, len);

char * p = str;

while (*p!=’\0’) {

while (*p == ‘ ‘ && *p!=’\0’) p++;

str = p;

while (p!= ‘ ‘ && *p!=’\0’) p++;

reverseFixlen(str, p-str);

}

}

★找到一个子字符串。优化速度。优化空间。

ANSWER:

KMP? BM? Sunday? Using BM or sunday, if it’s ASCII string, then it’s easy to fast access the auxiliary array. Otherwise an hashmap or bst may be needed. Lets assume it’s an ASCII string. int bm_strstr(char *str, char *sub) {

int len = strlen(sub);

int i;

int aux[256];

memset(aux, sizeof(int), 256, len+1);

for (i=0; i

aux[sub[i]] = len - i;

}

int n = strlen(str);

i=len-1;

while (i

int j=i, k=len-1;

while (k>=0 && str[j--] == sub[k--])

;

if (k<0) return j+1;

if (i+1

i+=aux[str[i+1]];

else

return -1;

}

}

However, this algorithm, as well as BM, KMP algorithms use O(|sub|) space. If this is not acceptable, Rabin-carp algorithm can do it. Using hashing to fast filter out most false matchings.

#define HBASE 127

int rc_strstr(char * str, char * sub) {

int dest= 0;

char * p = sub;

int len = 0;

int TO_REDUCE = 1;

wh ile (*p!=’\0’) {

dest = HBASE * dest + (int)(*p);

TO_REDUCE *= HBASE;

len ++;

}

int hash = 0;

p = str;

int i=0;

while (*p != ‘\0’) {

if (i++

else hash = (hash - (TO_REDUCE * (int)(*(p-len))))*HBASE + (int)(*p);

if (hash == dest && i>=len && strncmp(sub, p-len+1, len) == 0) return i-len;

p++;

}

return -1;

}

★比较两个字符串,用O(n)时间和恒量空间。

ANSWER:

What is “comparing two strings”? Just normal string comparison? The natural way use O(n) time and O(1) space.

int strcmp(char * p1, char * p2) {

while (*p1 != ‘\0’ && *p2 != ‘\0’ && *p1 == *p2) {

p1++, p2++;

}

if (*p1 == ‘\0’ && *p2 == ‘\0’) return 0;

if (*p1 == ‘\0’) return -1;

if (*p2 == ‘\0’) return 1;

return (*p1 - *p2); // it can be negotiated whether the above 3 if’s are necessary, I don’t like to omit them.

}

★假设你有一个用1001 个整数组成的数组,这些整数是任意排列的,但是你知道所有的整数都在1 到1000(包括1000)之间。此外,除一个数字出现两次外,其他所有数字只出现一次。假设你只能对这个数组做一次处理,用一种算法找出重复的那个数字。如果你在运算中使用了辅助的存储方式,那么你能找到不用这种方式的算法吗?

ANSWER:

Sum up all the numbers, then subtract the sum from 1001*1002/2.

Another way, use A XOR A XOR B = B:

int findX(int a[]) {

int k = a[0];

for (int i=1; i<=1000;i++)

k ~= a[i]~i;

}

return k;

}

★不用乘法或加法增加8 倍。现在用同样的方法增加7 倍。

ANSWER:

n<<3;

(n<<3)-n;

第9 题

判断整数序列是不是二元查找树的后序遍历结果

题目:输入一个整数数组,判断该数组是不是某二元查找树的后序遍历的结果。

如果是返回true,否则返回false。

例如输入5、7、6、9、11、10、8,由于这一整数序列是如下树的后序遍历结果:

8

/ \

6 10

/ \ / \

5 7 9 11

因此返回true。

如果输入7、4、6、5,没有哪棵树的后序遍历的结果是这个序列,因此返回false。

ANSWER:

This is an interesting one. There is a traditional question that requires the binary tree to be re-constructed from mid/post/pre order results. This seems similar. For the problems related to (binary) trees, recursion is the first choice.

In this problem, we know in post-order results, the last number should be the root. So we have known the root of the BST is 8 in the example. So we can split the array by the root.

int isPostorderResult(int a[], int n) {

return helper(a, 0, n-1);

}

int helper(int a[], int s, int e) {

if (e==s) return 1;

int i=e-1;

while (a[e]>a[i] && i>=s) i--;

if (!helper(a, i+1, e-1))

return 0;

int k = l;

while (a[e]=s) i--;

return helper(a, s, l);

}

第10 题

翻转句子中单词的顺序。

题目:输入一个英文句子,翻转句子中单词的顺序,但单词字符的顺序不变。

句子中单词以空格符隔开。为简单起见,标点符号和普通字母一样处理。

例如输入“I am a student.”,则输出“student. a am I”。

Answer:

Already done this. Skipped.

第11 题

求二叉树中节点的最大距离...

如果我们把二叉树看成一个图,父子节点之间的连线看成是双向的,

我们姑且定义"距离"为两节点之间边的个数。

写一个程序,

求一棵二叉树中相距最远的两个节点之间的距离。

ANSWER:

This is interesting... Also recursively, the longest distance between two nodes must be either from root to one leaf, or between two leafs. For the former case, it’s the tree height. For the latter case, it should be the sum of the heights of left and right subtrees of the two leaves’ most least ancestor.

The first case is also the sum the heights of subtrees, just the height + 0.

int maxDistance(Node * root) {

int depth;

return helper(root, depth);

}

int helper(Node * root, int &depth) {

if (root == NULL) {

depth = 0; return 0;

}

int ld, rd;

int maxleft = helper(root->left, ld);

int maxright = helper(root->right, rd);

depth = max(ld, rd)+1;

return max(maxleft, max(maxright, ld+rd));

}

第12 题

题目:求1+2+…+n,

要求不能使用乘除法、for、while、if、else、switch、case 等关键字以及条件判断语句

(A?B:C)。

ANSWER:

1+..+n=n*(n+1)/2=(n^2+n)/2

it is easy to get x/2, so the problem is to get n^2

though no if/else is allowed, we can easilly go around using short-pass.

using macro to make it fancier:

#define T(X, Y, i) (Y & (1<

int foo(int n){

int r=n;

T(r, n, 0); T(r, n,1); T(r, n, 2); … T(r, n, 31);

return r >> 1;

}

第13 题:

题目:输入一个单向链表,输出该链表中倒数第k 个结点。链表的倒数第0 个结点为链表的尾指针。

链表结点定义如下:

struct ListNode

{

int m_nKey;

ListNode* m_pNext;

};

Answer:

Two ways. 1: record the length of the linked list, then go n-k steps. 2: use two cursors. Time complexities are exactly the same.

Node * lastK(Node * head, int k) {

if (k<0) error(“k < 0”);

Node *p=head, *pk=head;

for (;k>0;k--) {

if (pk->next!=NULL) pk = pk->next;

else return NULL;

}

while (pk->next!=NULL) {

p=p->next, pk=pk->next;

}

return p;

}

第14 题:

题目:输入一个已经按升序排序过的数组和一个数字,

在数组中查找两个数,使得它们的和正好是输入的那个数字。

要求时间复杂度是O(n)。如果有多对数字的和等于输入的数字,输出任意一对即可。

例如输入数组1、2、4、7、11、15 和数字15。由于4+11=15,因此输出4 和11。

ANSWER:

Use two cursors. One at front and the other at the end. Keep track of the sum by moving the cursors. void find2Number(int a[], int n, int dest) {

int *f = a, *e=a+n-1;

int sum = *f + *e;

while (sum != dest && f < e) {

if (sum < dest) sum = *(++f);

else sum = *(--e);

if (sum == dest) printf(“%d, %d\n”, *f, *e);

}

第15 题:

题目:输入一颗二元查找树,将该树转换为它的镜像,

即在转换后的二元查找树中,左子树的结点都大于右子树的结点。用递归和循环两种方法完成树的镜像转换。

例如输入:

8

/ \

6 10

/\ /\

5 7 9 11

输出:

8

/ \

10 6

/\ /\

11 9 7 5

定义二元查找树的结点为:

struct BSTreeNode // a node in the binary search tree (BST) {

int m_nValue; // value of node

BSTreeNode *m_pLeft; // left child of node

BSTreeNode *m_pRight; // right child of node

};

ANSWER:

This is the basic application of recursion.

PS: I don’t like the m_xx na ming convension.

void swap(Node ** l, Node ** r) {

Node * p = *l;

*l = *r;

*r = p;

}

void mirror(Node * root) {

if (root == NULL) return;

swap(&(root->left), &(root->right));

mirror(root->left);

mirror(root->right);

}

void mirrorIteratively(Node * root) {

if (root == NULL) return;

stack buf;

buf.push(root);

while (!stack.empty()) {

Node * n = stack.pop();

swap(&(root->left), &(root->right));

if (root->left != NULL) buf.push(root->left);

if (root->right != NULL) buf.push(root->right);

}

}

第16 题:

题目(微软):

输入一颗二元树,从上往下按层打印树的每个结点,同一层中按照从左往右的顺序打印。

例如输入

7

8

/ \

6 10

/ \ / \

5 7 9 11

输出8 6 10 5 7 9 11。

ANSWER:

The nodes in the levels are printed in the similar manner their parents were printed. So it should be an FIFO queue to hold the level. I really don’t remember the function name of the stl queue, so I will write it in Java...

void printByLevel(Node root) {

Node sentinel = new Node();

LinkedList q=new LinkedList();

q.addFirst(root); q.addFirst(sentinel);

while (!q.isEmpty()) {

Node n = q.removeLast();

if (n==sentinel) {

System.out.println(“\n”);

q.addFirst(sentinel);

} else {

System.out.println(n);

if (n.left() != null) q.addFirst(n.left());

if (n.right()!=null) q.addFirst(n.right());

}

}

}

第17 题:

题目:在一个字符串中找到第一个只出现一次的字符。如输入abaccdeff,则输出b。

分析:这道题是2006 年google 的一道笔试题。

Again, this depends on what is “char”. Let’s assume it as ASCII.

char firstSingle(char * str) {

int a[255];

memset(a, 0, 255*sizeof(int));

char *p=str;

while (*p!=’\0’) {

a[*p] ++;

p++;

}

p = str;

while (*p!=’\0’) {

if (a[*p] == 1) return *p;

}

return ‘\0’; // this must the one that occurs exact 1 time.

}

第18 题:

题目:n 个数字(0,1,…,n-1)形成一个圆圈,从数字0 开始,

每次从这个圆圈中删除第m 个数字(第一个为当前数字本身,第二个为当前数字的下一个数

字)。

当一个数字删除后,从被删除数字的下一个继续删除第m 个数字。

求出在这个圆圈中剩下的最后一个数字。

July:我想,这个题目,不少人已经见识过了。

ANSWER:

Actually, although this is a so traditional problem, I was always to lazy to think about this or even to search for the answer.(What a shame...). Finally, by google I found the elegant solution for it.

The keys are:

1) if we shift the ids by k, namely, start from k instead of 0, we should add the result by k%n

2) after the first round, we start from k+1 ( possibly % n) with n-1 elements, that is equal to an (n-1) problem while start from (k+1)th element instead of 0, so the answer is (f(n-1, m)+k+1)%n 3) k = m-1, so f(n,m)=(f(n-1,m)+m)%n.

finally, f(1, m) = 0;

Now this is a O(n) solution.

int joseph(int n, int m) {

int fn=0;

for (int i=2; i<=n; i++) {

fn = (fn+m)%i; }

return fn;

}

hu...长出一口气。。。

第19 题:

题目:定义Fibonacci 数列如下:

f(n)= 1 n=1

\ f(n-1)+f(n-2) n=2

输入n,用最快的方法求该数列的第n 项。

分析:在很多C 语言教科书中讲到递归函数的时候,都会用Fibonacci 作为例子。

因此很多程序员对这道题的递归解法非常熟悉,但....呵呵,你知道的。。

ANSWER:

This is the traditional problem of application of mathematics...

let A=

{1 1}

{1 0}

f(n) = A^(n-1)[0,0]

this gives a O(log n) solution.

int f(int n) {

int A[4] = {1,1,1,0};

int result[4];

power(A, n, result);

return result[0];

}

void multiply(int[] A, int[] B, int _r) {

_r[0] = A[0]*B[0] + A[1]*B[2];

_r[1] = A[0]*B[1] + A[1]*B[3];

_r[2] = A[2]*B[0] + A[3]*B[2];

_r[3] = A[2]*B[1] + A[3]*B[3];

}

void power(int[] A, int n, int _r) {

if (n==1) { memcpy(A, _r, 4*sizeof(int)); return; }

int tmp[4];

power(A, n>>1, _r);

multiply(_r, _r, tmp);

if (n & 1 == 1) {

multiply(tmp, A, _r);

} else {

memcpy(_r, tmp, 4*sizeof(int));

}

}

第20 题:

题目:输入一个表示整数的字符串,把该字符串转换成整数并输出。

例如输入字符串"345",则输出整数345。

ANSWER:

This question checks how the interviewee is familiar with C/C++? I’m so bad at C/C++...

int atoi(char * str) {

int neg = 0;

char * p = str;

if (*p == ‘-’) {

p++; neg = 1;

} else if (*p == ‘+’) {

p++;

}

int num = 0;

whi le (*p != ‘\0’) {

if (*p>=0 && *p <= 9) {

num = num * 10 + (*p-’0’);

} else {

error(“illegal number”);

}

p++;

}

return num;

}

PS: I didn’t figure out how to tell a overflow problem easily.

第21 题

2010 年中兴面试题

编程求解:

输入两个整数n 和m,从数列1,2,3.......n 中随意取几个数,

使其和等于m ,要求将其中所有的可能组合列出来.

ANSWER

This is a combination generation problem.

void findCombination(int n, int m) {

if (n>m) findCombination(m, m);

int aux[n];

memset(aux, 0, n*sizeof(int));

helper(m, 0, aux);

}

void helper(int dest, int idx, int aux[], int n) {

if (dest == 0)

dump(aux, n);

if (dest <= 0 || idx==n) return;

helper(dest, idx+1, aux, n);

aux[idx] = 1;

helper(dest-idx-1, idx+1, aux, n);

aux[idx] = 0;

}

void dump(int aux[], int n) {

for (int i=0; i

if (aux[i]) printf(“%3d”, i+1);

printf(“\n”);

}

PS: this is not an elegant implementation, however, it is not necessary to use gray code or other techniques for such a problem, right?

第22 题:

有4 红色的牌和4 蓝色的牌,主持人先拿任意两,再分别在A、B、C 三人额头上贴任意两牌,A、B、C 三人都可以看见其余两人额头上的牌,看完后让他们猜自己额头上是什么颜色的牌,A 说不知道,B 说不知道,C 说不知道,然后A 说知道了。

请教如何推理,A 是怎么知道的。如果用程序,又怎么实现呢?

ANSWER

I dont’ like brain teaser. As an AI problem, it seems impossible to write the solution in 20 min...

It seems that a brute-force edge cutting strategy could do. Enumerate all possibilities, then for each guy delete the permutation that could be reduced if failed (for A, B, C at 1st round), Then there should be only one or one group of choices left.

But who uses this as an interview question?

第23 题:

用最简单,最快速的方法计算出下面这个圆形是否和正方形相交。"

3D 坐标系原点(0.0,0.0,0.0)

圆形:

半径r = 3.0

圆心o = (*.*, 0.0, *.*)

正方形:

4 个角坐标;

1:(*.*, 0.0, *.*)

2:(*.*, 0.0, *.*)

3:(*.*, 0.0, *.*)

4:(*.*, 0.0, *.*)

ANSWER

Crap... I totally cannot understand this problem... Does the *.* represent any possible number?

第24 题:

链表操作,

(1).单链表就地逆置,

(2)合并链表

ANSWER

Reversing a linked list. Already done.

What do you mean by merge? Are the original lists sorted and need to be kept sorted? If not, are there any special requirements?

I will only do the sorted merging.

Node * merge(Node * h1, Node * h2) {

if (h1 == NULL) return h2;

if (h2 == NULL) return h1;

Node * head;

if (h1->data>h2->data) {

head = h2; h2=h2->next;

} else {

head = h1; h1=h1->next;

}

Node * current = head;

while (h1 != NULL && h2 != NULL) {

if (h1 == NULL || (h2!=NULL && h1->data>h2->data)) {

current->next = h2; h2=h2->next; current = current->next;

} else {

current->next = h1; h1=h1->next; current = current->next;

}

}

current->next = NULL;

return head;

}

第25 题:

写一个函数,它的原形是int continumax(char *outputstr,char *intputstr)

功能:

在字符串中找出连续最长的数字串,并把这个串的长度返回,

并把这个最长数字串付给其中一个函数参数outputstr 所指存。

例如:"abcd12345ed125ss123456789"的首地址传给intputstr 后,函数将返回9,

outputstr 所指的值为123456789

ANSWER:

int continumax(char *outputstr, char *inputstr) {

int len = 0;

char * pstart = NULL;

int max = 0;

while (1) {

if (*inputstr >= ‘0’ && *inputstr <=’9’) {

len ++;

} else {

if (len > max) pstart = inputstr-len;

len = 0;

}

公司常见面试试题及答案精修订

公司常见面试试题及答 案 标准化管理部编码-[99968T-6889628-J68568-1689N]

1、请你自我介绍一下你自己, 回答提示:一般人回答这个问题过于平常,只说姓名、年龄、爱好、工作经验,这些在简历上都有,其实,企业最希望知道的是求职者能否胜任工作,包括:最强的技能、最深入研究的知识领域、个性中最积极的部分、做过的最成功的事,主要的成就等,这些都可以和学习无关,也可以和学习有关,但要突出积极的个性和做事的能力,说得合情合理企业才会相信。企业很重视一个人的礼貌,求职者要尊重考官,在回答每个问题之后都说一句“谢谢”。企业喜欢有礼貌的求职者。 2、你觉得你个性上最大的优点是什么? 回答提示:沉着冷静、条理清楚、立场坚定、顽强向上。 乐于助人和关心他人、适应能力和幽默感、乐观和友爱。我在北大青鸟经过一到两年的培训及项目实战,加上实习工作,使我适合这份工作。我相信我能成功。 3、说说你最大的缺点? 回答提示:这个问题企业问的概率很大,通常不希望听到直接回答的缺点是什么等,如果求职者说自己小心眼、爱忌妒人、非常懒、脾气大、工作效率低,企业肯定不会录用你。绝对不要自作聪明地回答“我最大的缺点是过于追求完美”,有的人以为这样回答会显得自己比较出色,但事实上,他已经岌芨可危了。企业喜欢求职者从自己的优点说起,中间加一些小缺点,最后再把问题转回到优点上,突出优点的部分。企业喜欢聪明的求职者。 4、你对加班的看法? 回答提示:实际上好多公司问这个问题,并不证明一定要加班。只是想测试你是否愿意为公司奉献。 回答样本:如果是工作需要我会义不容辞加班。我现在单身,没有任何家庭负担,可以全身心的投入工作。但同时,我也会提高工作效率,减少不必要的加班 5、你对薪资的要求? 回答提示:如果你对薪酬的要求太低,那显然贬低自己的能力;如果你对薪酬的要求太高,那又会显得你分量过重,公司受用不起。一些雇主通常都事先对求聘的职

微软公司面试题及答案

1.1个小时。现在有若干条 呢? 2. 种颜色的两个。抓取多少个就可以确定你肯定有两个同一颜色的果 3.35 4公升的水? 4. 永远说 5.12 才能用三次就找到那个球。13 6.在9个点上画10 7.在一天的24 1.的记下 取其中一段A。 A 2.~ 3.2 2 4. 5.1213个时只能找出是哪 重不知。 13 4个球中。 还是轻

㈡如左 把①②⑤与③④⑥做第二次称量 是⑦与⑧中谁是重球 的。 的。 当13 ⒈ ⑿还 ⒉不等的情况参见第㈠步的⒉⒊ 6. 见下面的点 10条线的情况是 123 456 789 148 159 247 258 269 357 368 ①②③ ④⑤⑥ ⑦⑧⑨ 7. 11时与0时的分钟区内共享一个重合 242222 11 11 0n点到n+1点间(n=1,2,……10)X 小时 则30°X=60(X-n)6° 即X=12n/11。 此时时针分针的位置是30°X=(360/11)n°=(32+8/11)n° 秒针的位置是 360(X-n)6°=(4320/11)n°=(392+8/11)n°=360n°+(32+8/11)n°=(32+8/11 )n°22个点重合。 微软面试题附答案 逻辑 1.拿钻石问题一楼到十楼的每层电 小不一。你乘坐电梯从一楼到 2.一位逻辑学家被

话、另外一个则 3.100 个人组成10*10 1010个人中挑出最矮的 10 1 1到100有多少个9 2连续整 数之和为1000的共有几组 3. U2合唱团在17分钟内得赶到演唱会 一次同时最多 得有 方式来传递 的。 Bono需花1 分钟过桥 Edge需花2分钟过桥 Adam需花5分钟过桥 Larry需花10分钟过桥他们要如何在17(这是 Micrsoft在五分钟内答出来才可能获 得聘用)。 4说有一份遗产3500 果这个女人生的是儿子那么 他将分得她女儿的2倍,如果这个女人生 5老师d的物 教室上了5d上了3 a、b、c三个同学盗窃 1、a上了两堂课 2、b上了三堂课 3、c上了四堂课 4、a、b、 c每个人都上了老师d的两堂课 5 不相同 6、老师d 6 a b c d e * f __________________ g g g g g g a b c d e f g 7 a进行一次 C和D60km/h但是当他从C到达D 的时候发现平均速度只有30km/h a 应当怎么做才能够使这次往返旅行的平局速度到达60km/h 8烧一 1个小时。现在有若干条材质相 同的 9 种颜色的两个。抓取多少个就可以确定你肯定有两个同一颜色的果 1035公升的 提4公升 11 12 12 13个 139个点上画10

公司常见面试试题及答案

常见面试试题及答案 1、请你自我介绍一下你自己, 回答提示:一般人回答这个问题过于平常,只说姓名、年龄、爱好、工作经验,这些在简历上都有,其实,企业最希望知道的是求职者能否胜任工作,包括:最强的技能、最深入研究的知识领域、个性中最积极的部分、做过的最成功的事,主要的成就等,这些都可以和学习无关,也可以和学习有关,但要突出积极的个性和做事的能力,说得合情合理企业才会相信。企业很重视一个人的礼貌,求职者要尊重考官,在回答每个问题之后都说一句“谢谢”。企业喜欢有礼貌的求职者。 2、你觉得你个性上最大的优点是什么 回答提示:沉着冷静、条理清楚、立场坚定、顽强向上。 乐于助人和关心他人、适应能力和幽默感、乐观和友爱。我在北大青鸟经过一到两年的培训及项目实战,加上实习工作,使我适合这份工作。我相信我能成功。 3、说说你最大的缺点 回答提示:这个问题企业问的概率很大,通常不希望听到直接回答的缺点是什么等,如果求职者说自己小心眼、爱忌妒人、非常懒、脾气大、工作效率低,企业肯定不会录用你。绝对不要自作聪明地回答“我最大的缺点是过于追求完美”,有的人以为这样回答会显得自己比较出色,但事实上,他已经岌芨可危了。企业喜欢求职者从自己的优点说起,中间加一些小缺点,最后再把问题转回到优点上,突出优点的部分。企业喜欢聪明的求职者。 4、你对加班的看法 回答提示:实际上好多公司问这个问题,并不证明一定要加班。只是想测试你是否愿意为公司奉献。 回答样本:如果是工作需要我会义不容辞加班。我现在单身,没有任何家庭负担,可以全身心的投入工作。但同时,我也会提高工作效率,减少不必要的加班 5、你对薪资的要求

微软公司面试题及答案

微软面试题及答案 2009-09-28 10:56 P.M. 1.烧一根不均匀的绳,从头烧到尾总共需要1个小时。现在有若干条材质相同的绳子,问如何用烧绳的方法来计时一个小时十五分钟呢? 2.你有一桶果冻,其中有黄色、绿色、红色三种,闭上眼睛抓取同种颜色的两个。抓取多少个就可以确定你肯定有两个同一颜色的果冻? 3.如果你有无穷多的水,一个3公升的提捅,一个5公升的提捅,两只提捅形状上下都不均匀,问你如何才能准确称出4公升的水? 4.一个岔路口分别通向诚实国和说谎国。来了两个人,已知一个是诚实国的,另一个是说谎国的。诚实国永远说实话,说谎国永远说谎话。现在你要去说谎国,但不知道应该走哪条路,需要问这两个人。请问应该怎么问? 5.12个球一个天平,现知道只有一个和其它的重量不同,问怎样称才能用三次就找到那个球。13个呢?(注意此题并未说明那个球的重量是轻是重,所以需要仔细考虑) 6.在9个点上画10条直线,要求每条直线上至少有三个点? 7.在一天的24小时之中,时钟的时针、分针和秒针完全重合在一起的时候有几次?都分别是什么时间?你怎样算出来的? 答案: 1.一要一头烧,一根从两头烧,再有一根做参照,两头烧完的记下位置(即烧到这里要半小时),把参照的那根从标记位置处剪开,取其中一段A。 一头烧的那根烧完后(就是一个小时后),把A从两头开始烧,烧完后即为十五分钟,加起来共一小时十五分钟。2.答案:四个~3.大桶装满水,倒入小桶,大桶剩下2公升水。小桶水倒掉,大桶剩2公升水倒入小桶中,大桶再装满后,倒入小桶至小桶满,大桶即剩4公升水。4.如果参加过类似于奥林匹克数学班的,都应做过这些题。问他你的国家怎么走,他肯定指向的是诚实国。5.12个时可以找出那个是重还是轻,13个时只能找出是哪个球,轻重不知。 把球编为①②③④⑤⑥⑦⑧⑨⑩⑾⑿。(13个时编号为⒀) 第一次称:先把①②③④与⑤⑥⑦⑧放天平两边, ㈠如相等,说明特别球在剩下4个球中。 把①⑨与⑩⑾作第二次称量, ⒈如相等,说明⑿特别,把①与⑿作第三次称量即可判断是⑿是重还是轻 ⒉如①⑨<⑩⑾说明要么是⑩⑾中有一个重的,要么⑨是轻的。 把⑩与⑾作第三次称量,如相等说明⑨轻,不等可找出谁是重球。 ⒊如①⑨>⑩⑾说明要么是⑩⑾中有一个轻的,要么⑨是重的。 把⑩与⑾作第三次称量,如相等说明⑨重,不等可找出谁是轻球。 ㈡如左边<右边,说明左边有轻的或右边有重的

广告公司面试试题及答案word版本

广告公司面试试题及 答案

设计人员试题 一、个人素质方面的问题 1、你是如何理解设计工作的? 答:设计玩我,我玩设计,大家一起玩完 2、设计与绘画艺术有什么最本质的区别? 答:以自我为中心与以商业为中心的区别。 3、为什么常有人说“纯艺术做的好的人大多不能同样在商业美术有很高的成就”呢? 答:太过自我的人在商业社会有所成就不易,难被接受。 4、商业设计的服务对象是什么? 答:市场 5、商业设计的设计水平是学校里学习来的吗?为什么? 答:不是,学校只是个骗取学费的地方,要靠自己才能学的来 6、你在学校学习的时候学过什么样的相关课程? 答:没什么就随便了解哈。 7、设计有没有最好的概念? 答:没有最好,只有最适合。 8、设计作品好坏的标准在哪里? 答:较高的审美下的创造性,服务于商业。 9、平面设计工作是如何进行?有哪些一般可行的过程? 答:每人的工作方式不同,但是有经验的人会有好的方法,视情形看。 10、目前国内外最时尚的平面设计理念是什么? 答:现在流行简约风(这也是为什么常听人说美指做的很简洁之类) 11、在你所见的平面设计作品中你认为哪些国家或地区的作品令你印象深一些?为什么? 答:视自已的情况而定,主要是要讲出你认为深的理由,由此看出一个人的欣赏水平层次。 12、国内你最欣赏的平面设计师有哪些? 答:视自己的情况而定,但最好能有大家都熟悉的作品。 13、国内的平面设计作品对你印象最深的是哪些? 答:视自己的情况而定,但最好是都熟悉的作品。 14、你认为最成功的平面设计作品是什么,举一二例子说明一下? 答:同上。 15、国外的发达国家的平面设计状况是怎样的? 答:谈你对于世界设计状况的认识,主要看你有没有为自己准备理论知识,有没有关注设计。 16、中国的平面设计与国外的同行比较有什么样的优势与不足? 答:优势在于起步虽晚但机会多,不足在于观念与创新能力。 17、国内做平面设计最发达的地区有哪些?这什么? 答:深圳、上海、广州、北京等地,与经济发展密切相关。 18、国内做平面设计工作的一般是有什么教育背景的人员? 答:大部分为接受过绘画、设计教育的人员,少数例外。 19、国内发达地区平面设计的一般收入状况是怎样的呢? 答:谈自已以往公司的做设计一行的收入状况即可,考查该同志有没有在这些地区工作过。 20、你曾经服务的企业你认为最得意的作品是什么? 答:谈谈你得意的地方,如果没有即可知没有做过啥事。 21、你与他人合作完成的作品中最成功的案例是什么?

面试人际交往类100题

人际交往类试题集 【例1】你新到一个单位做负责人,到了新单位以后发现单位内部分成两派,你如何处理这个事情? 【例2】假如你是刚来的新人,你知道一种办公软件比现在单位用的现进,你会怎么办? 【例3】你的上级领导之间的关系不是很好,经常为一些事争吵,你在中间怎么办? 【例4】同行是冤家,在同一个部门很难找到知心朋友,你认为呢? 【例5】你认为以为才能高的下属应该如何与领导相处? 【例6】你觉得应该如何做才能获得领导的重视与支持? 【例7】怎样正确对待领导的批评? 【例8】怎样正确对待领导的信任? 【例9】举例谈谈,你在生活中如何增进师生之间、同事之间的感情?你的这些经验和技巧对以后的工作有什么帮助? 【例10】你去看电影,很好的位置,结果一个人占了你的位子,你怎么办? 【例11】联系实际,谈谈怎样正确处理同上级的关系? 【例12】在与领导相处的过程中,部属难免有时候要受领导的批评。在大多情况下,这种批评是对的,但也不能排除领导有时会做出错误的批评。在这种情况下,部属应该采取什么样的态度? 【例13】本来你的工作负担已经很重了,领导却又给你安排突击完成另一项中心任务。你觉得没有时间和精力再承担更多的工作,但又不想同领导发生冲突。面对这两个问题,你如何处理? 【例14】你遇到的最令你痛苦的事情是什么?请描述一下当

时的情形。追问:你当时是怎么处理的?结果怎样? 【例15】作为一名公务员,你认为在与熟人交往中应注意什么? 【例16】工作中你难以和同事、上级相处,你该怎么办? 【例17】怎样最快和陌生人拉近谈话距离? 【例18】现代人际关系非常重要,你对此有何看法? 【例19】单位有个心高气傲的人,但很有工作能力,领导提拔他,同事都有意见,如果你是他该怎么做? 【例20】假如领导派你和一个与你有矛盾的同志一起出差,你如何处理?在日常生活中,出现这样的事情你是如何处理的?试举例说明。 【例21】你的工作很忙没有时间回家,这让父母含有抱怨。你该如何去做? 【例22】刘少奇的一句话:人总是会用自己的言语去伤害别人,而当别人伤害我们时,也应要承受得起。结合自己的体会谈谈看法? 【例23】小陈考了三年,终于成为一名公务员。在工作中,他经常对领导提出一些意见,但是领导不予接受,并渐渐觉得有些厌烦,很多同事对他也很不满。你觉得造成这种局面的原因是什么,应该怎样解决? 【例24】老王是一位老同志,工作能力强,性格耿直,对现在年轻人的很多做法都看不惯,如果你是新同事小李,怎样做才能和老王成为好朋友?【和72题是一样的】 【例25】在单位,领导派给小李和小王的工作特别多,而你的工作却很少。你该怎么办? 【例26】领导交给你一项任务,要小张协助你,但是小张总是说忙,你找过他三四次,他都说手头忙,而这项任务工作量很大,你自己也有很多事情,在这种情况下,你怎么办? 【例27】你曾做过一个企划方案,但未经领导审批,有位同事当众告诉领导和同事,说他之前就跟你说过计划方案不可行,

微软的面试题和答案(超变态但很经典)

第一组 1.烧一根不均匀的绳,从头烧到尾总共需要1个小时。现在有若干条材质相同的绳子,问如何用烧绳的方法来计时一个小时十五分钟呢? 2.你有一桶果冻,其中有黄色、绿色、红色三种,闭上眼睛抓取同种颜色的两个。抓取多少个就可以确定你肯定有两个同一颜色的果冻? 3.如果你有无穷多的水,一个3公升的提捅,一个5公升的提捅,两只提捅形状上下都不均匀,问你如何才能准确称出4公升的水? 4.一个岔路口分别通向诚实国和说谎国。来了两个人,已知一个是诚实国的,另一个是说谎国的。诚实国永远说实话,说谎国永远说谎话。现在你要去说谎国,但不知道应该走哪条路,需要问这两个人。请问应该怎么问? 5.12个球一个天平,现知道只有一个和其它的重量不同,问怎样称才能用三次就找到那个球。13个呢?(注意此题并未说明那个球的重量是轻是重,所以需要仔细考虑) 6.在9个点上画10条直线,要求每条直线上至少有三个点? 7.在一天的24小时之中,时钟的时针、分针和秒针完全重合在一起的时候有几次?都分别是什么时间?你怎样算出来的? 8.怎么样种植4棵树木,使其中任意两棵树的距离相等? 第二组 1.为什么下水道的盖子是圆的? 2.中国有多少辆汽车? 3.将汽车钥匙插入车门,向哪个方向旋转就可以打开车锁? 4.如果你要去掉中国的34个省(含自治区、直辖市和港澳特区及台湾省)中的任何一个,你会去掉哪一个,为什么? 5.多少个加油站才能满足中国的所有汽车? 6.想象你站在镜子前,请问,为什么镜子中的影象可以颠倒左右,却不能颠倒上下? 7.为什么在任何旅馆里,你打开热水,热水都会瞬间倾泻而出? 8.你怎样将Excel的用法解释给你的奶奶听? 9.你怎样重新改进和设计一个银行自动取款机?

经典结构化面试试题及答案

经典结构化面试试题及答案 2015-12-23:5 手机版 1、公司现在有了新设备,产品的类别增加产量大大提高,作为质检人员,你会怎么做? 【参考答案】 公司引进新设备提高生产效率,这对于我们每个员工来说都是好事。作为公司的质检人员,首先要明确我的职责就是保证产品的质量达到规定的要求,产品的类别符合生产的实际,使新设备生产的产品能够更好地满足广大消费者的需要。因此,在引进新设备的背景下,对于质量检查,我会遵循以下环节开展: 首先,我会对新设备进行系统学习,了解其性能、特点、产量等,为日后开展工作做好准备。遇到不懂的问题可多向同事、老员工请教,也可查阅相关的资料或查询网络,努力提高自己的专业水平。 其次,我会根据对新设备的了解掌握,根据其生产产品的种类制定相应的检测标准,力求做到分种类、分型号,逐一落实,细致明确,然后交予领导审核,为日后开展工作提供统一的标准。同时,我会把这一标准传达给相应的生产部门,让其他员工了解新标准,以保证能够按照规定保质保量生产。 再次,我会努力提高工作效率。公司新设备的引入大大增加了公司的产量,这对于我们工作效率也是巨大挑战。我会根据引入新设备后的日生产数量制定一个提高工作效率的方案,在工作方式、方法、时间上做必要的调整,争取保质、保量完成工作。如按我的合理计算,在提高效率后仍然不能完成工作,那我会如实向上级反映情况,及早配备人员以防影响公司的正常生产工作。

产品质量是一个公司赖以生存的根本,对广大消费者也是最大的保障,因此,在以后的工作中,我一定会积极学习,提高相关知识能力和水平,在保证质量的基础上,更好、更快地做好单位的质检工作。 2、现在城市交通设施不足,道路拥堵严重,谈谈你的意见和看法。 【参考答案】 城市交通拥堵已经成为城市化进程中的一大痼疾,它直接影响到城市人群的生活质量和城市长远的经济发展。 城市交通拥堵现象的产生是由多方面的因素造成的。第一,经济社会的迅猛发展拉动了交通需求的持续快速增长,人们的出行总量大幅度攀升,机动车量增长过猛、使用过频,与城市交通设施和交通资源产生了尖锐矛盾。第二,路网先天不足,完善结构难度较大,且道路建设速度远不及机动车增长速度的现状,也是造成城市交通拥堵的直接原因。 交通问题解决势在必行,但解决堵车问题不是可以一蹴而就的,需要全面规划,科学管理,循序渐进。 第一,确立适合各城市实际情况的发展战略,加快城市交通立法,发展公共基础设施,限制高能耗、高污染车辆的增长速度,在解决交通拥堵问题的同时也要响应国家低碳的号召。 第二,在推进城乡一体化进程中,坚持交通规划先行,积极疏解城市功能,着力减少不必要的交通发生源和吸引源。重视解决影响公交吸引力的相关问题,努力提高公共交通出行比例和效率。 第三,加强交通信息化智能化建设,建立公交信息综合服务平台,开展交通需求的前瞻性研究,在全社会倡导“绿色出行”。努力创造条件,积极引导小汽车出行向公共交通和自行车、步行等“绿色出行”方式转移。积极推动慢行交通建设,努力促进慢行交通出行比例的回升。

100个面试常见问题及答案

100个面试常见问题及答案 工作动机、个人愿望 (1)问题:请给我们谈谈你自己的一些情况 回答:简要的描述你的相关工作经历以及你的一些特征,包括与人相处的能力和个人的性格特征。如果你一下子不能够确定面试者到底需要什么样的内容,你可以这样说:“有没有什么您特别感兴趣的范围?” 点评:企业以此来判断是否应该聘用你。通过你的谈论,可以看出你想的是如何为公司效力还是那些会影响工作的个人问题。当然,还可以知道你的一些背景。 (2)问题:你是哪年出生的?你是哪所大学毕业的?等等 回答:我是年出生的。我是大学毕业的。 点评:这类问题至为关键的是要针对每个问题简洁明了的回答,不可拖泥带水,也不必再加什么说明。完全不必再画蛇添足的说“我属X,今年岁”之类的话。至于专业等或许主考官接下来的问题就是针对此而言的,故而不必迫不及待和盘托出。 (3)问题:请谈一下你对公司的看法,为什么你想来公司工作?回答:可根据你先前对该公司的情报收集,叙述一下你对公司的了解。适当的对公司的声誉、产品和发展情况予以赞美。还可以

提提你为了了解公司的情况所做的努力然后就说你非常喜欢这个工作,而且你的能力也非常适合并能胜任这份工作。 点评:此问目的测试一下你对公司的了解和喜欢的程度,看看你的能力是否符合公司的要求和方向。看看你是真正地愿意为公司效力,还是仅仅冲着公司的福利、声望和工作的稳定。 (4)问题:你认为对你来说现在找一份工作是不是不太容易,或者你很需要这份工作? 回答: 1.是的。 2.我看不见得。 点评: 一般按1回答,一切便大功告成。 有些同学为了显示自己的“不卑不亢“,强调个人尊严,故按2回答。结果,用人单位打消了录用该生的念头,理由是:“此人比较傲“一句话,断送了该生一次较好的就业机会。 (5)问题:你是怎么应聘到我们公司的? 回答:贵公司是国际上有名的汽车工业公司,虽然我学的专业不是汽车专业,但我一直留意、关心贵公司的发展,特别是贵公司

微软面试题及答案

微软面试题及答案https://www.360docs.net/doc/dd8278261.html,work Information Technology Company.2020YEAR

微软面试题及答案(很需要开放性思维啊) 第一组 1.烧一根不均匀的绳,从头烧到尾总共需要1个小时。现在有若干条材质相同的绳子,问如何用烧绳的方法来计时一个小时十五分钟呢 2.你有一桶果冻,其中有黄色、绿色、红色三种,闭上眼睛抓取同种颜色的两个。抓取多少个就可以确定你肯定有两个同一颜色的果冻 3.如果你有无穷多的水,一个3公升的提捅,一个5公升的提捅,两只提捅形状上下都不均匀,问你如何才能准确称出4公升的水 4.一个岔路口分别通向诚实国和说谎国。来了两个人,已知一个是诚实国的,另一个是说谎国的。诚实国永远说实话,说谎国永远说谎话。现在你要去说谎国,但不知道应该走哪条路,需要问这两个人。请问应该怎么问 5.12个球一个天平,现知道只有一个和其它的重量不同,问怎样称才能用三次就找到那个球。13个呢( 注意此题并未说明那个球的重量是轻是重,所以需要仔细考虑) 6.在9个点上画10条直线,要求每条直线上至少有三个点 7.在一天的24小时之中,时钟的时针、分针和秒针完全重合在一起的时候有几次都分别是什么时间你怎样算出来的

8.怎么样种植4棵树木,使其中任意两棵树的距离相等 第二组 1.为什么下水道的盖子是圆的 2.中国有多少辆汽车 3.将汽车钥匙插入车门,向哪个方向旋转就可以打开车锁 4.如果你要去掉中国的34个省(含自治区、直辖市和港澳特区及台湾省)中的任何一个,你会去掉哪一个,为什么 5.多少个加油站才能满足中国的所有汽车 6.想象你站在镜子前,请问,为什么镜子中的影象可以颠倒左右,却不能颠倒上下

2019国家公务员面试真题:结构化面试经典100题及答案

内蒙古分校内蒙古华图:https://www.360docs.net/doc/dd8278261.html, 更多考试相关内容请戳:https://www.360docs.net/doc/dd8278261.html,/ 2019国家公务员面试真题:结构化面试经典100题及答案【经典题45】领导叫小王打印一份同事制作的文件并叫他签名,领导过目后发现该文件有文字表述错误及数据不实,然后,当面严厉批评小王,如果你是小王,你该怎么做? 【答题要点】此题为人际交往意识与技巧类试题,具体为与多重关系的人际交往。重点考查考生能否正确对待领导的批评,以及在工作中正常处理与同事的关系。此题有一陷阱——“同事制作的文件”,考生在答题过程中一定不要把责任全盘推到同事身上,而是要勇于承担责任。首先,表明自己处理这一事件的基本态度;其次,重点阐述积极处理措施,注意做到思维缜密、逻辑清晰;最后,进行反思和总结,争取做到让领导放心、让同事信任。 【参考答案】领导批评我是对我工作的教导和督促,不管文件中的错误是不是由于我的原因导致的,我都不能当面顶撞领导,更不能有任何抵触情绪而影响正常工作。因此,在这件事上,我要主动承认错误,积极补救;还要做到尊重领导,服从领导安排,多向领导学习请教,不断提高、完善自我。 首先,面对领导的批评,先立即向领导道歉,承认错误,请求领导原谅,并说明自己现在立即就去打印一份新的文件,保证以后不再犯错。 其次,在离开后,立即将打印的文件与原文件进行核实,看是不是在打印的过程中出现读取错误而导致的文字丢失等情况,如果是的话我要重新打印一次,与原文件核实无误后再交给领导;如果原文件本身就存在错误,那我就要找到制作该文件的同事,请其重新进行核对并改正文字表述和数据上的错误,毕竟文件

企业面试问题及答案

企業面試問題及答案 问题一:你是否觉得有能力在自己职位上取得成功?如果感到不妥,你将如何弥补自己的缺点? 正确回答:尽管我确信我还有很多东西要学,在每个新工作中都是这样,但我认为,你会发现我是一个学得很快的人,我相信自己的能力和天分可以满足你们的需要,我不认为前面的道路上会有什么克服不了的困难。 问题二:你能够在压力状态下工作得很好吗? 正确回答:在从事有价值的工作时,任何人在工作时都会不时地遇到压力。我能够应付一定量的压力,甚至在有些情况下还可以承受极大地压力。对我来说,应对压力的关键是找到一种方法控制形势,从而减轻压力的剧烈程度,通过这种方式,压力就不会影响我的工作了。我知道任何工作都有压力,如果必要的话,我会在压力下工作的很好。 问题三:当你确信自己是正确的,但其他人却不赞同你时,你会怎么做? 正确回答:首先,我会确保有足够的信息来支持自己,一旦我确信自己的观点是正确的,我就会密切关注反对者的反对理由,我将从他们的角度看待问题,并以此说服他们,由于互相尊重,我相信我们会最终达成协议的。 问题四:如果你在销售一种产品时,遇到了一位客户一直抱怨你的售后服务很糟糕时,这时你会怎么办?

正确回答:我将向客户解释,我们的企业向来以产品的质量和优质服务为荣。然后我将向客户保证,我将会尽一切努力来改善这种状况,接下来我会听他(她)抱怨,并查找问题的根源,做出必要的改进来满足客户。 问题五:你是怎样准备这次面试的? 正确回答:首先,我研究了你们的年度报告,然后,在网上了解到了贵公司的文化背景,接着我联系了一个我认识的人,询问他对贵公司的印象,我把了解到的情况都记下来了,而且还在来之前复习了这些笔记。 问题六:你认为怎样才能成为一名专业人士? 正确回答:对我来说,做一名专业人士,意味着在做任何工作时都要尽一切努力来完成预期结果,同时,也意味着要对自己的表现负责。作为一名专业人士,最重要的是要自己监督自己,也可以叫做自我质量控制。 问题七:你期望从工作中获得最重要的回报是什么? 正确回答:对我来说,最重要的是自己所做的工作是否适合我,我的意思是说,这份工作应该能让我发挥专长,这会给我带来一种满足感,我还希望所作的工作能够对我目前的技能水平形成挑战,从而能促使我提升自己。 问题八:在高薪、表彰和晋升之间,你认为哪种形式最有价值? 正确回答:这些都是紧密联系,不可分离的。尽管我对金钱并不着迷,但我认为,随着成功、晋升以及表彰的出现,它们一定也会给我带来更多的金钱回报。

100个面试常见问题及答案

100个面试常见问题及答案 面试是对应聘者能否胜任拟聘岗位的综合素质进行探寻与判断的关键阶段,面试时经常提到哪些问题,这些问题又是如何有技巧的回答?以下是小编为你整理的100个面试常见问题及答案,希望能帮到你。 100个面试常见问题及答案 1.请你自我介绍一下 回答提示:一般人回答这个问题过于平常,只说姓名、年龄、爱好、工作经验,这些在简历上都有,其实,企业最希望知道的是求职者能否胜任工作,包括:最强的技能、最深入研究的知识领域、个性中最积极的部分、做过的最成功的事,主要的成就等,这些都可以和学习无关,也可以和学习有关,但要突出积极的个性和做事的能力,说得合情合理企业才会相信。企业很重视一个人的礼貌,求职者要尊重考官,在回答每个问题之后都说一句“谢谢”。企业喜欢有礼貌的求职者。 2.你觉得你个性上最大的优点是什么? 回答提示:沉着冷静、条理清楚、立场坚定、顽强向上。 乐于助人和关心他人、适应能力和幽默感、乐观和友爱。我在北大青鸟经过一到两年的培训及项目实战,加上实习工作,使我适合这份工作。我相信我能成功。 3.说说你最大的缺点? 回答提示:这个问题企业问的概率很大,通常不希望听到直接回答的缺点是什么等,如果求职者说自己小心眼、爱忌妒人、非常懒、脾气大、工作效率低,企业肯定不会录用你。绝对不要自作聪明地回答“我最大的缺点是过于追求完美”,有的人以为这样回答会显得自己比较出色,但事实上,他已经岌芨可危了。企业喜欢求职者从自己的优点说起,中间加一些小缺点,最后再把问题转回到优点上,突出优点的部分。企业喜欢聪明的求职者。 4.你对加班的看法?回答提示:实际上好多公司问这个问题,并不证明一定要加班。只是想测试你是否愿意为公司奉献。 回答样本:如果是工作需要我会义不容辞加班。我现在单身,没有任何家庭负担,可以全身心的投入工作。但同时,我也会提高工作效率,减少不必要的加班 5.你对薪资的要求?回答提示:如果你对薪酬的要求太低,那显然贬低自己的能力; 如果你对薪酬的要求太高,那又会显得你分量过重,公司受用不起。一些雇主通常都事先对求聘的职位定下开支预算,因而他们第一次提出的价钱

经典微软面试题

经典微软面试题 1、一楼到十楼的每层电梯门口都放着一颗钻石,钻石大小不一。你乘坐电梯从一楼到十楼,每层楼电梯门都会打开一次,只能拿一次钻石,问怎样才能拿到最大的一颗? 2、1000!有几位数,为什么? 3、请估算一下CN TOWER电视塔的质量。 4、如何快速找出一个32位整数的二进制表达里有多少个"1"?用关于"1"的个数的线性时间? 5、美国有多少辆加油站(汽车)? 6、一个小猴子边上有100根香蕉,它要走过50米才能到家,每次它最多搬50根香蕉,(多了就被压死了),它每走1米就要吃掉一根,请问它最多能把多少根香蕉搬到家里。提示:他可以把香蕉放下往返的走,但是必须保证它每走一米都能有香蕉吃。也可以走到n米时,放下一些香蕉,拿着n根香蕉走回去重新搬50根。 7、一群人开舞会,每人头上都戴着一顶帽子。帽子只有黑白两种,黑的至少有一顶。每个人都能看到其他人帽子的颜色,却看不到自己的。主持人先让大家看看别人头上戴的是什么帽子,然后关灯,如果有人认为自己戴的是黑帽子,就打自己一个耳光。第一次关灯,没有声音。于是再开灯,大家再看一遍,关灯时仍然鸦雀无声。一直到第三次关灯,才有劈劈啪啪打耳光的声音响起。问有多少人戴着黑帽子? 答案: 1 她的回答是:选择前五层楼都不拿,观察各层钻石的大小,做到心中有数。后五层楼再选择,选择大小接近前五层楼出现过最大钻石大小的钻石。她至今也不知道这道题的准确答案,"也许就没有准确答案,就是考一下你的思路,"她如是说。 2 解:1000 Lg(1000!)=sum(Lg(n)) n=1 用3 段折线代替曲线可以得到 10(0+1)/2+90(1+2)/2+900(2+3)/2=2390 作为近似结果,好象1500~3000 都算对 3 比如你怎样快速估算支架和柱子的高度、球的半径,算出各部分的体积等等。招聘官的说法:"就CNTOWER这道题来说,它和一般的谜语或智力题还是有区别的。我们称这类题为’快速估算题’,

微软面试100题

微软面试100题 1为什么下水道的井盖是圆的? 答案-1.节省材料 2.方便运输 3.方便安装 4.美观 5.受力均匀 2美国有多少辆车?(一个常见的类似问题是:美国有多少家加油站?) 答案:美国有多少人?这些人里又有多少人会开车?而会开车的人里又有多少有这样的经济能力可以购买汽车?可以购买汽车的人里是不是都已经买了?这些问题解决了 3美国有多少个下水道井盖? 4你让某些人为你工作了七天,你要用一根金条作为报酬。这根金条要被分成七块。你必须在每天的活干完后交给他们一块。如果你只能将这根金条切割两次,你怎样给这些工人分? 答案是:把金段切割成1/7、2/7、4/7 第一天给工人1/7 第二天给工人2/7 工人返回1/7 第三天给工人1/7 第四天给工人4/7 工人返回1/7+2/7 第五天给工人1/7 第六天给工人2/7 工人返回1/7 第七天给工人1/7 5一列火车以每小时15英里的速度离开洛杉矶,朝纽约进发。另外一列火车以每小时20英里的速度离开纽约,朝洛杉矶进发。如果一只每小时飞行25英里的鸟同时离开洛杉矶,在两列火车之间往返飞行,请问当两列火车相遇时,鸟飞了多远? 答案:你这么想: 鸟飞了多远呢?鸟的飞行速度一直是每小时25英里不变的,那么只要能知道鸟飞了多久,就能知道鸟飞了多远。 那么鸟飞了多久呢?鸟从最开始一直飞到两列火车相遇的时候。 那么两列火车要多久才能相遇呢?这取决于洛杉矶到纽约有多远。 理论中,纽约到洛杉矶有大约3000英里,两列火车要相遇需要3000除以(15+20),也就是85.7小时。在这段时间里,鸟飞了2142.5 英里。 实际中,一来铁路不一定是直的(确切的铁路距离无法知晓),二来火车路上走走停停还可能晚点,三来两辆火车不一定就会彼此相遇,最后是鸟一路上也需要花些时间吃喝拉撒——所以答案还真不好说。

广告公司面试试题与答案

设计人员试题 一、个人素质方面的问题 1、你是如何理解设计工作的? 答:设计玩我,我玩设计,大家一起玩完 2、设计与绘画艺术有什么最本质的区别? 答:以自我为中心与以商业为中心的区别。 3、为什么常有人说“纯艺术做的好的人大多不能同样在商业美术有很高的成就”呢? 答:太过自我的人在商业社会有所成就不易,难被接受。 4、商业设计的服务对象是什么? 答:市场 5、商业设计的设计水平是学校里学习来的吗?为什么? 答:不是,学校只是个骗取学费的地方,要靠自己才能学的来 6、你在学校学习的时候学过什么样的相关课程? 答:没什么就随便了解哈。 7、设计有没有最好的概念? 答:没有最好,只有最适合。 8、设计作品好坏的标准在哪里? 答:较高的审美下的创造性,服务于商业。 9、平面设计工作是如何进行?有哪些一般可行的过程? 答:每人的工作方式不同,但是有经验的人会有好的方法,视情形看。 10、目前国外最时尚的平面设计理念是什么? 答:现在流行简约风(这也是为什么常听人说美指做的很简洁之类) 11、在你所见的平面设计作品中你认为哪些国家或地区的作品令你印象深一些?为什么? 答:视自已的情况而定,主要是要讲出你认为深的理由,由此看出一个人的欣赏水平层次。 12、国你最欣赏的平面设计师有哪些? 答:视自己的情况而定,但最好能有大家都熟悉的作品。 13、国的平面设计作品对你印象最深的是哪些? 答:视自己的情况而定,但最好是都熟悉的作品。 14、你认为最成功的平面设计作品是什么,举一二例子说明一下? 答:同上。 15、国外的发达国家的平面设计状况是怎样的? 答:谈你对于世界设计状况的认识,主要看你有没有为自己准备理论知识,有没有关注设计。 16、中国的平面设计与国外的同行比较有什么样的优势与不足? 答:优势在于起步虽晚但机会多,不足在于观念与创新能力。 17、国做平面设计最发达的地区有哪些?这什么? 答:、、、等地,与经济发展密切相关。 18、国做平面设计工作的一般是有什么教育背景的人员? 答:大部分为接受过绘画、设计教育的人员,少数例外。 19、国发达地区平面设计的一般收入状况是怎样的呢? 答:谈自已以往公司的做设计一行的收入状况即可,考查该同志有没有在这些地区工作过。 20、你曾经服务的企业你认为最得意的作品是什么? 答:谈谈你得意的地方,如果没有即可知没有做过啥事。 21、你与他人合作完成的作品中最成功的案例是什么?

微软面试题及答案-(很需要开放性思维啊)

第一组 1.烧一根不均匀的绳,从头烧到尾总共需要1个小时。现在有若干条材质相同的绳子,问如何用烧绳的方法来计时一个小时十五分钟呢? 2.你有一桶果冻,其中有黄色、绿色、红色三种,闭上眼睛抓取同种颜色的两个。抓取多少个就可以确定你肯定有两个同一颜色的果冻? 3.如果你有无穷多的水,一个3公升的提捅,一个5公升的提捅,两只提捅形状上下都不均匀,问你如何才能准确称出4公升的水? 4.一个岔路口分别通向诚实国和说谎国。来了两个人,已知一个是诚实国的,另一个是说谎国的。诚实国永远说实话,说谎国永远说谎话。现在你要去说谎国,但不知道应该走哪条路,需要问这两个人。请问应该怎么问? 5.12个球一个天平,现知道只有一个和其它的重量不同,问怎样称才能用三次就找到那个球。13个呢?(注意此题并未说明那个球的重量是轻是重,所以需要仔细考虑) 6.在9个点上画10条直线,要求每条直线上至少有三个点? 7.在一天的24小时之中,时钟的时针、分针和秒针完全重合在一起的时候有几次?都分别是什么时间?你怎样算出来的? 8.怎么样种植4棵树木,使其中任意两棵树的距离相等? 第二组 1.为什么下水道的盖子是圆的? 2.中国有多少辆汽车? 3.将汽车钥匙插入车门,向哪个方向旋转就可以打开车锁? 4.如果你要去掉中国的34个省(含自治区、直辖市和港澳特区及台湾省)中的任何一个,你会去掉哪一个,为什么? 5.多少个加油站才能满足中国的所有汽车? 6.想象你站在镜子前,请问,为什么镜子中的影象可以颠倒左右,却不能颠倒上下? 7.为什么在任何旅馆里,你打开热水,热水都会瞬间倾泻而出? 8.你怎样将Excel的用法解释给你的奶奶听? 9.你怎样重新改进和设计一个A TM银行自动取款机?

面试题目100及最佳答案

面试题目100及最佳答案 1、你的优点和缺点是什么?或简单列举你的三大优势与三大劣势。(如果 自我介绍说了可做追问) 思路:1)沉着冷静,立场坚定,乐观自信,应变能力强,有团队意识,独 立思考,有主动性。 2)充分介绍优点,但最好少用形容词,而用能够反映优点的事实说话 3)介绍缺点时可以从大学生普遍存在的弱点方面介绍,例如缺少社会经验。 2、谈一谈你大学期间的一次失败(或成功)经历. 思路:1)不宜说自己没有失败或成功的经历。 2)不宜把那些明显的成功说成是失败。 3)不宜说出严重影响所应聘工作的失败经历。 4)失败后自己很快振作起来,以更加饱满的热情面对以后的工作。 3、如果我录用你,你将怎样开展工作? 思路:1)考察应聘者对于应聘的职位是否足够的了解,可以不要直接说出 自己开展工作的具体办法。 4、你是应届毕业生,缺乏经验,如何能胜任这项工作? 思路:1)对这个问题的回答最好要体现出应聘者的诚恳、机智、果敢及敬业。 2)如“作为应届毕业生,在工作经验方面的确会有所欠缺,因此在读书期 间我一直利用各种机会在这个行业里做兼职。我也发现,实际工作远比书本知识丰富、复杂。 5、对您来说,哪种决心是最难下的? 思路:考察应聘者是否是一个坚强、果断但是有人性的一个人。 请分析一个常见的各个招聘渠道的优势与劣势。(追问应聘者如何解决校园招聘的不足) 思路:考查应聘者对基础知识的了解、掌握与运用。 参考答案答: 7、现场招聘会 优点:这是传统的人才招聘方式,费用适中。HR们不仅可以和求职者直接

面对面交流(相当于初试),而且可以直观展示企业实力和风采。这种方式总体 上效率比较高,可以快速淘汰不合格人员,控制应聘者的数量和质量。 缺点:其局限性在于往往受到展会主办方宣传推广力度的影响,求职者的数量和质量难以有效保证。这种方式通常用于招聘一般型人才。 8、媒体广告招聘 优点:由于报纸仍然是普通大众,包括求职者了解信息的重要平台,所以这种形式的广告在当地的覆盖面比较广,目标受众接受的概率非常高,不仅可以提升企业在当地的知名度,可以有效宣传公司的业务,有一举多得之功效。 缺点:这种招聘渠道会吸引到很多的不合格的应聘者,增加了人力资源部门筛选简历的工作量和难度,延长招聘的周期,另外该渠道的费用比较高,特别是选择“抢眼”版位和版式费用会更高。 9、广播招聘、电视招聘 优点:如中央台举办的《绝对挑戓》知名企业招聘栏目、湖南电视台举办的《超级女声》节目,前十名优胜者通常会被唱片公司签约,这些都是企业人才营销的重要方式。而且,企业也得到了很好的宣传。 缺点:成本高、适用范围小。 10、你如何理解招聘专员这个岗位? 思路:1)考查应聘者的对专业知识理解和掌握程度。 2)考查应聘者的语言组织、逻辑思维、口才表达等能力。 参考答案:招聘专员的工作内容:进行聘前测试和简历甄别工作;组织和执行招聘计划,包括通知和安排面试等;员工各类人事手续办理,包括员工录用手续、人事合同签订,人事关系转移;员工档案管理并及时更新;维护和招聘渠 道的关系,及时发布招聘广告,管理招聘信息。 11、你如何理解招聘专员这个岗位职责? 全面负责公司内部人才的招聘工作;根据现有编制及业务发展需求,协助上级确定招聘目标,汇总岗位需求数目和人员需求数目,制定并执行招聘计划;协助上级完成需求岗位的职务说明书;发布职位需求信息,做好公司形象宣传;搜集简历,对简历进行分类、筛选,安排聘前测试,确定面试名单,通知应聘者前 来面试(笔试),对应聘者进行初步面试(笔试)考核,出具综合评价意见;组

[第1题-60题汇总]微软数据结构+算法面试100题

精选微软等公司数据结构 精选微软等公司数据结构++算法面试100题 -----[第1题-60题总] 资源说明: 此份,是为微软等公司数据结构+算法面试100题,之前60题的汇总。 总结整理了前第1题-第60题。特此并作此一份上传。以飨各位。:)。 -------------------------------- 相关资源,包括答案,下载地址: [答案V0.2版]精选微软数据结构+算法面试100题[前20题]--答案修正 https://www.360docs.net/doc/dd8278261.html,/source/2813890 //此份答案是针对最初的V0.1版本,进行的校正与修正。 [答案V0.1版]精选微软数据结构+算法面试100题[前25题] https://www.360docs.net/doc/dd8278261.html,/source/2796735 [第二部分]精选微软等公司结构+算法面试100题[前41-60题]: https://www.360docs.net/doc/dd8278261.html,/source/2811703 [第一部分]精选微软等公司数据结构+算法经典面试100题[1-40题] https://www.360docs.net/doc/dd8278261.html,/source/2778852 更多资源,下载地址: http://v_july_https://www.360docs.net/doc/dd8278261.html,/ 很快,我将公布第21-40题的答案,敬请期待。:).. 如果你对以下的前第1-60题,有好的思路,和算法,欢迎跟帖回复, 或者,联系我,发至我的邮箱, zhoulei0907@https://www.360docs.net/doc/dd8278261.html,。 My CSDN Blog:https://www.360docs.net/doc/dd8278261.html,/v_JULY_v My sina Blog:https://www.360docs.net/doc/dd8278261.html,/shitou009 帖子维护地址: [整理]算法面试:精选微软经典的算法面试100题[前1-60题] https://www.360docs.net/doc/dd8278261.html,/u/20101023/20/5652ccd7-d510-4c10-9671-307a56006e6d.html -------------------------------------- July、2010、/11.12.请享用。:)。 1

相关文档
最新文档