范文资料网>人事资料>招聘与面试>《微软电话面试技巧

微软电话面试技巧

时间:2022-04-04 22:05:50 招聘与面试 我要投稿
  • 相关推荐

微软电话面试技巧

微软电话面试程序题

微软电话面试技巧

      1将一个句子按单词反序,将一个句子按单词反序 1. #include "iostream"

2. #include <http://www.ahsrst.cn

3. using namespace std;

4. const int max=180; //一句话的长度

5. const int num=20; //一个单词的长度

6. p=new char

7. void inversion(char a[],int size)

8. {

9. assert(a!=NULL);

10. char temp;

11. for (int i=0;i<size/2;i++)

12. {

13. temp=a[i];

14. a[i]=a[size-1-i];

15. a[size-1-i]=temp;

16. }

17. }

18. void main()

19. {

20. char str[max];

21. int i,j,size;

22. char *p;

23. p=new char[20];

24. if (!p)

25. {

26. return;

27. }

28. else

29. {

30. memset(p,0,num);

31. }

32. http://www.ahsrst.cn(str,max);

33. size=strlen(str);

34. inversion(str,size);

35. i=0;

36. while (i<size)

37. {

38. p=str+i;

39. j=i;

40. while (str[j]!=' '&&j<size)

41. {

42. j++;

43. }

44. inversion(p,j-i);

45. i=j+1;

46. }

47. cout<<str<<endl;

48. // delete p; //添加这句话会出错?

49. }

2 计算某年某月某日之后的第n天是某年某月某日 1. #include "iostream"

2. using namespace std;

3. class CDate

4. {

5. public:

6. int m_year;

7. int m_mouth;

8. int m_date;

9. };

10.

11. bool Isrun(int year) //判断闰年,366天

12. {

13. if((year%4==0 && year%100!=0) || year%400==0)

14. return true;

15. else

16. return false;

17.

18. }

19.

20. int mouth_cout(int m,int n)

21. {

22. int resual;

23. switch (m)

24. {

25. case 1: resual=31 ; break;

26. case 2: resual=28+Isrun(n); break;

27. case 3: resual=31 ; break;

28. case 4: resual=30 ; break;

29. case 5: resual=31 ; break;

30. case 6: resual=30 ; break;

31. case 7: resual=31 ; break;

32. case 8: resual=31 ; break;

33. case 9: resual=30 ; break;

第2/6页

34. case 10: resual=31 ; break;

35. case 11: resual=30 ; break;

36. case 12: resual=31 ; break;

37. default :resual=0; break;

38. }

39. return resual;

40.

41. }

42.

43. void main()

44. {

45. CDate d;

46. int num;

47. cout<<"请输入年,月,日:";

48. cin>>http://www.ahsrst.cn

49. if (http://www.ahsrst.cn||http://www.ahsrst.cn||(mouth_cout(http://www.ahsrst.cn)http://www.ahsrst.cn)<0)

50. {

51. cout<<"输入有误,请重新输入"<<endl;

52. cout<<"请输入年,月,日:";

53. cin>>http://www.ahsrst.cn

54. }

55. cout<<"请输入天数:";

56. cin>>num;

57. cout<<"距离"<<http://www.ahsrst.cn"年"<<http://www.ahsrst.cn"月"<<http://www.ahsrst.cn"日后"<<num<<"天

是:"<<endl;

58. int i=0,j=0,k=0;

59. //计算年

60. if(http://www.ahsrst.cn)

61. {

62. while (i<=num)

63. {

64. if(Isrun(http://www.ahsrst.cn)) i+=366;

65. else i+=365;

66. http://www.ahsrst.cn

67. }

68. http://www.ahsrst.cn

69. num=num-i+365+Isrun(http://www.ahsrst.cn); //剩余天数

70. }

71. else

72. {

73. while (i<=num)

74. {

75. if(Isrun(http://www.ahsrst.cn)) i+=366;

76. else i+=365;

77. http://www.ahsrst.cn

78. }

79. http://www.ahsrst.cn

80. num=num-i+365+Isrun(http://www.ahsrst.cn); //剩余天数

81. }

82. //计算月份

83. while (j<=num)

84. {

85. j+=mouth_cout(http://www.ahsrst.cn);

86. http://www.ahsrst.cn

87. if (http://www.ahsrst.cn)

88. {

89. http://www.ahsrst.cn

90. http://www.ahsrst.cn

91. }

92. }

93. http://www.ahsrst.cn

94. if (http://www.ahsrst.cn)

95. {

96. http://www.ahsrst.cn

97. http://www.ahsrst.cn

98. }

99. num=num-j+mouth_cout(http://www.ahsrst.cn);

100.

101. //计算天数

102. if(mouth_cout(http://www.ahsrst.cn)http://www.ahsrst.cn)

103. http://www.ahsrst.cn

104. else

105. {

106. http://www.ahsrst.cn(http://www.ahsrst.cn)+http://www.ahsrst.cn

107. http://www.ahsrst.cn

108. if (http://www.ahsrst.cn)

109. {

110. http://www.ahsrst.cn

111. http://www.ahsrst.cn

112. }

113. }

114.

115. cout<<http://www.ahsrst.cn"年"<<http://www.ahsrst.cn"月"<<http://www.ahsrst.cn"日"<<endl;

116.

117. }

3 计算一个字符数组中的逆序对个数,要求时间复杂度最低 1. #include <http://www.ahsrst.cn

2. #include <http://www.ahsrst.cn

3.

4. /**///////////////////////////////////////////////////////////////////////////

5. //求逆序数

6. //最快的算法是归并排序时计算逆序个数,时间复杂度是nlog2n, 空间复杂度是2n

7. //a为字符数组,len为字符数组的长度

8. int number = 0; //number表示逆序对的个数

9. void mergePass(char *, char *, int, int);

10. void merge(char*, char*, int, int, int);

11. void copy(char *dest, char *src, int l, int r)

12. {

13. while(l <= r)

14. {

15. dest[l] = src[l];

16. l++;

17. }

18. }

19. void mergeSort(char *a, int size)

20. {

21. char *b = (char*)malloc(sizeof(char) * size);

22. mergePass(a, b, 0, size - 1);

23. free(b);

24. }

25.

26.

27. void mergePass(char *a, char *b, int l, int r)

28. {

29. int m;

30. if(l < r)

31. {

32. m = (l + r) / 2;

33. mergePass(a,b,l,m); //a分段有序,b也分段有序

34. mergePass(a,b,m+1,r);

35. merge(a,b,l,m,r); //a归并排序到b

36. copy(a,b,l,r); //排序后的b复制到a

37.

38. }

39. }

40.

41. void merge(char *a, char *b, int l, int m, int r)

42. {

43. int i = l, j = m + 1;

44. while( i <= m && j <= r)

45. {

46. if(a[i] <= a[j])

47. b[l++] = a[i++];

48. else

49. {

50. b[l++] = a[j++];

51. //a[i] > a[j], 表示出现了逆序对,此时由于

52. //a[i..m]是已经有序了,那么a[i+1], a[i+2], ... a[m]都是大于a[j]的,

53. //都可以和a[j]组成逆序对,因此number += m - i + 1

54. number += m-i+1;

55. }

56. }

57. while(i <= m)

58. b[l++] = a[i++];

59. while(j <= r)

60. b[l++] = a[j++];

61. }

62.

63.

64. int main()

65. {

66. char b[5] = {'F', 'D', 'C', 'B','A'};

67. mergeSort(b, 5);

68. for(int i = 0; i < 5; i++)

69. printf("%c ",b[i]);

70. printf("%d ", number);

71. system("pause");

72. return 0;

73. }

【微软电话面试技巧】相关文章:

微软校园大使面试技巧04-17

电话的面试技巧03-22

电话面试技巧05-10

电话面试技巧02-07

面试技巧之电话面试04-29

电话销售面试技巧05-14

电话邀约面试技巧05-12

英语电话面试技巧05-11

面试电话销售技巧05-18

面试电话销售的技巧05-18