招聘测试题 —— 编程部分

姓名: 手机号:

说明:请按如下操作完成上机考试:
1) 在E:盘下手工建立Test(yyyy-mm-dd)(FirstName-LastName)目录,yyyy, mm, dd分别为年,月,日,FirstName是名的拼音,LastName是姓的拼音,并在该目录下为四道编程题分别手工建立Test1,Test2,Test3,Test4四个子目录。
2) 在每个子目录下,用Visual C++(VS6.0或VS2008均可,在桌面上有相应的图标)逐一完成四道编程题。实现上用命令行程序或者图形用户界面都可以,接受输入可以用scanf, stdin, 或者窗口的控件,输出可以用printf, stdout,或者输出到窗口的控件中。
3) 计算机无法联网,帮助文档都安装在本地机器上。需要访问帮助时,可点击Visual Studio的Help->Contents,或用Help->Search进行查找。

1. 输入5个整数,要求输出:
(1) 这5个整数的逆序。示例:输入为3, 6, 8, 9, 0,输出逆序为:Reverse Order: 0, 9, 8, 6, 3
(2) 这5个整数的最大值、最小值和平均值。示例:输入为3, 6, 8, 9, 0,输出为:Max: 9, Min: 0, Average: 5.2
注意:实现时不得使用计算最大值、最小值和平均值的库函数(如max、min和其它类似函数)。

2. 编写一个字符串替换程序,输入一个字符串Str1,一个字符串Str2,以及替换字符串Str3。假设Str2在Str1中出现且只出现一次,要求将Str1中出现字符串Str2的地方替换为Str3,然后输出替换后的结果,实现时不得用专用于字符串替换库函数。
示例:字符串Str1=”Thisa”,字符串Str2=”is”,字符串Str3=”test”,替换后得到的字符串为”Thtesta”。
注意:实现时不得使用字符串查找和替换库函数(如Find, Replace和其它类似函数)。

3. 编写通配符比较程序,输入两个字符串,其中一个字符串str1中包含的字符均为普通字符,而另一个字符串str2中可以包含任何数量的普通字符,以及通配符*和?,*可以匹配任意多个字符 (包括零个), ?可以匹配任何一个字符,程序需要比较str1和str2是否匹配,若匹配,则输出”Match”, 否则,输出”Unmatch”.
示例1:字符串str1=”Alice”,字符串str2=”?li*”,输出”Match”
示例2:字符串str1=”Alice”,字符串str2=”?mi*”,输出”Unmatch”

4. 编写程序,求两个字符串的最长公共子串,每个字符串长度不超过255。
例如:由键盘依次输入两个字符串为:

Whatislocalbus?
Namesomelocalbuses.

则最长公共子串为”localbus”.

要求:需要用两种不同的算法实现,第一种算法要求在性能上最优或者较优,第二种算法对性能没有要求,但是需要保证正确性,然后用第二种算法来检查第一种算法的正确性。