文思創新赴微軟測試工程師的軟件測試筆試和軟件測試面試題
今天下午學員參加了一次文思創新赴微軟測試工程師的筆試和面試.微軟面試向來都很怪異.今天給我的這位學員出了這樣的面試題:
1.現在共有三個人,你設計一個方案,把大象放到冰箱里面.該如何設計呢?
2.如果現在讓你去非洲旅行,你應該準備那些物品呢?
這樣的問題,回答起來都是很發散的.沒有什么標準答案,感興趣的話,好好想想.
下面跟大家分享的是一道C語言的筆試題.
用C語言寫一個函數,完成的功能如下:
清除掉圓括號()里面的字符,但是保留方括號[]里面的字符
前提條件:輸入的字符串中括號成對出現
例如:
abc(de[fg]hmw)z
經過函數后最后的結果是abcfgaz
這個題目學員過來問我,用了大概30分鐘左右的時間寫了出來,給大家分享一下:*/
#include<stdio.h>
#include<string.h>
//TestCharacter()函數完成的功能是清除掉圓括號里面的字符,但是保留方括號里面的字符
//abc(de[fg]hmw)z經過我們的TestCharacter()函數后最后的結果是abcfgz
//前提條件:輸入的字符串中括號成對出現
static char * TestCharacter(char *p)
{
static char d[50];
int flag=0;//當遇到'('時flag為1,當遇到')',flag為0;
int i=0;
for(;*p!='\0';p++)
{
if(*p=='(' ||*p==']')
{
if(*p=='(')
flag=1;
if(*p==']')
p++;
for(;*p!=')' && flag && *p!='\0';p++)
if(*p=='['|| *p==']')
break;
}
for(;*p=='[' || *p==']' || *p=='(' || *p==')';p++)
{
if(*p==')')
flag=0;
}
d=*p;
i++;
}
d=0;
return d;
}
void main(void)
{
char s[50];
gets(s);
strcpy(s,TestCharacter(s));
puts(s);
}
/*
你可以輸入下面的數據進行測試:
預期結果
1.(a) a
2.(a) b
3.(a[bc]d)e bce
4.(ad)[e]f(g)h befh
上面的程序通過了測試,你可以試試.*/
原文轉自:http://www.anti-gravitydesign.com