51Testing软件测试论坛

标题: 看看微软面试的题吧 [打印本页]

作者: repoter    时间: 2006-3-14 18:14
标题: 看看微软面试的题吧
昨天去MS的西格玛去参加了一个面试,总共三道题:
1.通过自己最熟的语言把"I am a student." 转成"student a am I."
2.有一个50页的WORD文件,里面有imge,OLEDB,Video等对象,自己打开编辑时在按保存的时候,程序死掉了.请问如何避免这个问题.
3.写出一个对自动售货机的测试实例.

大家讨论一下吧!
作者: it_english    时间: 2006-3-15 08:26
标题: 第1题答案
public String splitString(String str){
        String returnValue="";
        String[] array =str.split(" ");
        for(int i=array.length-1;i>=0;i--){
            returnValue+=array[i]+" ";
            
        }
        return returnValue;
    }

    public static void main(String[] args) {
        Test tt= new Test();
        System.out.println(tt.splitString("I am a student"));
    }
作者: tzmok    时间: 2006-3-21 14:13
什么 好多人观看 没有做题啊 , 我过几天也去微软面试 想知道答案啊
作者: wzb521    时间: 2006-3-22 14:26
string[] b;
                        string a="I am a student";
                        b=a.Split(' ');
                        string[] c=new string[b.Length];
                        for(int i=0;i<b.Length;i++)
                        {
                               
                               
                                c[b.Length-i-1]=b;
                        }
                        a="";
                        for(int i=0;i<b.Length;i++)
                        {
                                a=a+c+" ";
                        }
                        a=a.Trim();
                        }

[ 本帖最后由 wzb521 于 2006-3-22 14:30 编辑 ]
作者: 阅微草人    时间: 2006-3-23 22:00
哇!好厉害,先学习点好东西。thanks!
作者: tzmok    时间: 2006-3-24 13:06
注意 前面做题的两位 大虾  做是不允许使用库函数的
作者: tutu2006    时间: 2006-3-24 17:43
这个,这么做是不是有什么问题的啊……我试着运行了一下,要报错的……希望哪位大哥可以指点一下哈
作者: brilliantking    时间: 2006-3-25 13:03
标题: 第二题怎么做呀
RT
作者: yun_004    时间: 2006-3-28 15:15
第一题的答案:
#include<iostream>
#include<string>
using namespace std;

int main()
{
   string str("i am a student\n");
   string b(""),tmp(" ");
   for(int i = 0 ; i <= str.length(); i++ )
   {
       if (str[i] == ' ' || str[i] == '\n')
       {
           b = tmp + b;
           tmp = " ";
       }else
       {
           tmp = tmp + str[i];
       }

   }
   cout << b << endl;
   return 0;
}
作者: yun_004    时间: 2006-3-28 15:16
#include<iostream>
#include<string>
using namespace std;

int main()
{
   string str("i am a student");
   string b(""),tmp(" ");
   for(int i = 0 ; i <= str.length(); i++ )
   {
       if (str[i] == ' ' || str[i] == '\0')
       {
           b = tmp + b;
           tmp = " ";
       }else
       {
           tmp = tmp + str[i];
       }

   }
   cout << b << endl;
   return 0;
}
作者: kingtiy    时间: 2006-4-5 12:27
想知道后面两题的答案
作者: 百合心情    时间: 2006-4-5 13:09
厉害,先学两招!
作者: panliyan    时间: 2006-4-6 10:34
标题: 诶,面试题还会提前告诉你吗?
诶,面试题还会提前告诉你吗?
作者: cyyi    时间: 2006-4-10 09:59
想知道后面两题的答案 !!!!!!!!请大虾指教
作者: lidandan    时间: 2006-4-13 16:50
标题: 高手们,后两个题怎么办?
真是吊人胃口
作者: wittysong    时间: 2006-4-16 00:03
第二题怎么做呢? 不会哦。呵呵。
作者: snowflake    时间: 2006-4-21 13:28
string  array[] = "I am a student.".Split(' ');// 合并结果{"I", "am", "a", "student."} OR string  array [] = {''I'', ''am'', ''a'', ''strudent''};
string s = null;
for(int i=array.Length; i>0; --i)
     {
         if (array == ' ' || arrayr == '\0')

              s += array;                                 //结果{"student", "a", "am", "I."};
        }
cout << s << endl;

yun_004的结果是顺序输出

[ 本帖最后由 snowflake 于 2006-4-21 14:11 编辑 ]
作者: lee_huo    时间: 2006-4-21 17:52
第3题应该不难
有几点建议供大家讨论:
自动售货就是这几个方面,1.投入正好的钱,然后取货;2.投入钱多了,在取货的同时还要找零钱;3.投入的钱不足,在取货的时候,不允许取货。可以围绕这3点使用场景法进行用例的设计。
请大家补充。
作者: zhoubenwen    时间: 2006-4-22 20:54
第1题:应当对语言没有限制,关键是思路要对。str, str[3]
str[];="I am a student"
j=o;n=o;
for i=0; i<length(str); i++
{
if str=' ' then
{
str[n]=substr(str,i-j,i)
j=i;
n++;
}
for (n=4;n>0;n--)
{
print str[n-1];
}
}

第2题:
将里面的对象导出来编辑。

第3题用例:自动售货机用户先选所买物品,再投币。
1.自动售货机应当能识别纸币,硬币;要能判别货币真假;
2. 如果是真币,进行下一步:1).投入正好的钱,取货;2).投入钱多了,在取货的同时还要找零钱;3).投入的钱不足,在取货的时候,不允许取货,提示金额不足,可继续投币或者取消退出所投货币。

[ 本帖最后由 zhoubenwen 于 2006-4-23 21:52 编辑 ]
作者: 月上梅稍    时间: 2006-5-8 15:05
原帖由 lee_huo 于 2006-4-21 17:52 发表
第3题应该不难
有几点建议供大家讨论:
自动售货就是这几个方面,1.投入正好的钱,然后取货;2.投入钱多了,在取货的同时还要找零钱;3.投入的钱不足,在取货的时候,不允许取货。可以围绕这3点使用场景法进行用 ...



补充:
1.自动售货机的外形美观。
2.机器的安全性能高。(不容易被偷货物)
3.机器不容易被推翻。(不要砸到行人)
4.钱,分为纸币和硬币。
5.是否打印账单。
作者: ysmsy    时间: 2006-5-8 18:28
刚好从一本书上看到一份与第三题相关的单元测试用例
作者: snowflake    时间: 2006-5-17 10:46
C语言第一题答案
#include<stdio.h>
#include<string.h> /* 包含字符串库函数说明的头文件* /
#include<stdio.h>
void forward_and_backwards(char line_of_char[] ,int index); /* 函数声明* /
void main()
{
    char line_of_char[80]; / *定义字符数组* /
    int index = 0;
    strcpy(line_of_char,"I am a student."); / *字符串拷贝* /
    forward_and_backwards(line_of_char,index); / *函数调用* /
}
void forward_and_backwards(char line_of_char[],int index) /*函数定义* /
{
    if(line_of_char[index])
    {
        printf("%c",line_of_char[index]); / *输出字符* /
        forward_and_backwards(line_of_char,index+1); / * 递归调用* /
        printf("%c",line_of_char[index]); / * 输出字符* /
    }

[ 本帖最后由 snowflake 于 2006-5-17 10:51 编辑 ]
作者: cuigl    时间: 2006-5-17 16:29
第三题:
测试用例:用假币买东西。
期望结果:售货机识别出假币,并显示投入为假币,并能自动没收。
作者: kinglzj    时间: 2006-8-30 16:46
原帖由 tzmok 于 2006-3-24 13:06 发表
注意 前面做题的两位 大虾  做是不允许使用库函数的



不知道用java做的 不引用方法,难道还自己编一个啊...那要面向对象有什么用...还要从最底层遍啊~~?
那java也失去意义了``不使用方法 那在数组排序得排到少次啊`~
作者: hell_cll    时间: 2006-9-5 21:33
第3题投入石块不知会怎样?
作者: Maggie_8327    时间: 2006-9-29 11:28
#22楼题目看错的,根据你的算法得出的是I am a student.
作者: csguest    时间: 2006-10-21 23:12
sdlkfj5
作者: smz_198181    时间: 2006-10-23 18:50
这么简单得题,大家为什么要复杂化呢!
第一题
#include <iostream>
#include <string>

using namespace std;

void main()
{
        string str1[4] = {"I","am","a","student"};
       
        for( int i = 3; i >= 0; i--)
        {
                cout << str1 <<" ";
        }
       
}
作者: smz_198181    时间: 2006-10-23 18:53
sorry , 上面最后一行 cout<<str1<< " " 应该改成 cout << str1 <<" ";
作者: smz_198181    时间: 2006-10-23 18:54
网页有bug啊,怎么我想表示str1数组得第i个元素 老是显示成str1呢!
作者: tigergrace    时间: 2006-10-25 15:47
标题: 出来瞧瞧
兄弟们考虑的都蛮全面的
以后多交流啊
作者: longtingting    时间: 2006-10-25 16:07
都很厉害哦!
作者: carry    时间: 2006-10-26 15:20
做测试还要编程么,了解一下不就可以了
28楼的写的好,程序就是要用最少的语句把结果运行出来
作者: 羽习    时间: 2006-11-10 16:11
原帖由 hell_cll 于 2006-9-5 21:33 发表
第3题投入石块不知会怎样?


还真是“发散思维”呢!呵呵!sdlkfj2
作者: lxhcba    时间: 2006-11-15 17:51
第3题补充:自动售货机东西买完了
作者: shadowsxl    时间: 2006-11-21 10:22
原帖由 carry 于 2006-10-26 15:20 发表
做测试还要编程么,了解一下不就可以了
28楼的写的好,程序就是要用最少的语句把结果运行出来

引用,用最少的写出最好的
作者: Daven520    时间: 2006-11-22 09:43
有学了一招
作者: youyuanren_05    时间: 2006-11-22 14:24
标题: 第二题答案
按ctrl+s进行保存。
作者: tazs    时间: 2007-3-23 17:03
Very good examination
作者: fuzhijuan    时间: 2007-4-4 09:28
第二题答案应该不是按CTRL+S吧??
作者: morose81    时间: 2007-4-9 10:25
标题: hao
good.
作者: morose81    时间: 2007-4-9 10:31
标题: 还有一种情况
如果自动售款机中没有零钱找也要考虑
作者: culetstudio    时间: 2007-4-10 13:17
就是,谁会把面试题告诉你?出过的题一般都不会再用!
作者: culetstudio    时间: 2007-4-10 13:18
第三题有点难耶,考虑的情况很多.........
作者: poi0110    时间: 2007-4-19 22:36
第二题:
1。备份一个文档。
2。把五十页的文档拆开编辑。
3。记得Word里好像有个功能可以拆分,不过好像和题目无关。
想到的只有这么多了,大家不要PS啊sdlkfj5
作者: mayenhuan    时间: 2007-5-11 10:32
感兴趣
作者: 金城月    时间: 2007-5-18 17:26
微软果然不同一般/
作者: Ramer    时间: 2007-5-19 14:42
我昨天去MS面试的,也是这3道题,早点看见就好了~sigh
作者: HappyGirl    时间: 2007-5-27 19:39
第一题应该相对简单,上面28楼的方法就是最简单明了的.
第二题:A:对文件进行编辑前先备份一份;B:编辑时使用WORD的自动保存功能或者修改一部分就记得CTRL+S;C:死掉后可以关掉重新打开本WORD文档,使用修复功能; 我想这样可能会把问题降低化.
第三题:1、钱多了;正好;钱少了;假币;
2、出售物品不够的情况;可以从上述几方面来设计用例。

以上仅是个人意见,欢迎大家提出更好的想法。sdlkfj6
作者: tearflying2002    时间: 2007-6-1 17:52
wa
作者: naples    时间: 2007-6-14 12:36
恩,经过大家的讨论已经得出正确的答案了。
作者: allen2000    时间: 2007-6-18 15:32
学习到了,谢谢分享!


ps:第二题  

首先是外观与易用性

然后:

正面:Button; import&export;change

负面:Lower power;Mobile;Stem
作者: barcelona    时间: 2007-6-22 11:44
我觉得只要看第三个就可以了 反正编程我是不想看俄
作者: ytzrh    时间: 2007-7-6 03:22
haha. good point.
作者: py31    时间: 2007-7-19 15:36
最简单的是吧:
print "student a am I.";
作者: py31    时间: 2007-7-19 15:38
自动售款机 没有需求怎么测?
作者: py31    时间: 2007-7-19 15:40
禁止Video播放会减少CPU和内存的占用,减少发生死机的可能
如果想彻底解决该问题,最好不要打开该文件
作者: cuckoo_tao    时间: 2007-7-29 23:45
第二题:1、把这些内容都做链接;
2、定时自动保存;
3、调整word 的选项中关于对象处理的选项。

第三题:
分如下阶段:
1、投币验证
2、投币处理
3、货物处理
4、账单处理
作者: swf    时间: 2007-8-29 11:40
又学到了一招
作者: Alexlj_luo    时间: 2007-8-31 01:08
标题: Answer to question 1
# ! /bin/bash
echo "i am a student" |rev
作者: madongjie1984    时间: 2007-9-2 18:47
原帖由 yun_004 于 2006-3-28 15:16 发表
#include
#include
using namespace std;

int main()
{
   string str("i am a student");
   string b(""),tmp(" ");
   for(int i = 0 ; i  

完美答案
作者: guohenyongheng    时间: 2007-9-2 20:03
标题: 感受
28层的兄弟的变成风格我喜欢,很简洁,嘻嘻!sdlkfj2
作者: yyandrea    时间: 2007-9-4 16:17
这个好玩!
作者: mtang008    时间: 2007-9-5 09:40
高手挺多的``先学一下``,谢谢了``
作者: xazaj    时间: 2007-9-10 01:50
标题: 回复 #18 lee_huo 的帖子
恩恩~ 边界值法 hoho~
好像用例少了点
作者: xinyu21    时间: 2007-9-17 14:43
标题: 第二题答案
设置定时保存就可以
作者: elong602    时间: 2007-10-1 00:05
标题: 关注!!!
关注!!!
作者: athenalich    时间: 2007-10-5 22:42
又学到点..
作者: puchonghui    时间: 2007-10-8 20:55
28楼的答案不符合需求
"I am a student." 和"I","am","a","student"明显不一样吧

另外2楼3楼的答案貌似都不符合要求
漏了个标点
作者: kaidong12    时间: 2007-10-17 11:00
标题: 回复 1# 的帖子
我听到了一种声音!!!!!!!!!!
谢谢你为大家敲响了钟声
作者: Boey    时间: 2007-11-1 10:45
第三题我觉得还应该考虑一下突然断电的情况,呵呵
作者: 向南    时间: 2008-6-24 15:49
learn````````
作者: 低头浅笑    时间: 2008-7-4 16:31
原帖由 月上梅稍 于 2006-5-8 15:05 发表



补充:
1.自动售货机的外形美观。
2.机器的安全性能高。(不容易被偷货物)
3.机器不容易被推翻。(不要砸到行人)
4.钱,分为纸币和硬币。
5.是否打印账单。



再次补充::
1.自动售货机库存不足
2.自动售货机机器故障(没电,死机)
3.自动售货机货物到期
作者: lgxqf    时间: 2008-11-7 15:47
标题: My C++ solution for the first questoin.
No library function is used, except strlen()
I think it is easy for us to implement strlen(), so in order to make the code concise, i use strlen, instead write it myself.
If you have any good suggestion about my code and found any falut,please let me know.
Very appreciated!

void revertString(char *str)
{
        if(!str) return;

        int len = strlen(str);
       
        if( len < 1) return ;

        int low =0;
        int high = len -1;

        while(low < high)
        {
                char tmp = str[low];
                str[low] = str[high];
                str[high] = tmp;
                low ++;
                high --;
        }

        int step =0;

        while( step < len)
        {
                while(str[step] == ' ' && step < len )
                {
                        step ++;
                }

                low = step;

                while(str[step] != ' ' && step < len)
                {
                        step ++;
                }

                high = step -1;

                while( low < high)
                {
                        char tmp = str[low];
                        str[low] = str[high];
                        str[high] = tmp;
                        low ++;
                        high --;
                }

        }

   
}
作者: praying    时间: 2008-11-11 13:22
标题: 回复 20# 的帖子
新来的,先学习学习。
作者: praying    时间: 2008-11-11 13:23

作者: zhanghonglan    时间: 2008-11-12 15:00
标题: 回复 28# 的帖子
你这样写没有通用性。




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2