测试之道、
测试问题汇总
上一篇 /
下一篇 2008-08-28 17:45:39
/ 个人分类:测试问题汇总
一、 c笔试题 (字符串反转)
我没有记错的话是一道MSN的笔试题,网上无意中看到的,拿来做了一下。题目是这样的,给定一个字符串,一个这个字符串的子串,将第一个字符串反转,但保留子串的顺序不变。例如:
输入:
第一个字符串: "This is zhuxinquan's Chinese site: http://www.zhuxinquan.com/cn"
子串:
"zhuxinquan"
输出: "nc/moc.zhuxinquan.www//:ptth :etis esenihC s'zhuxinquan si
sihT"
一般的方法是先扫描一边第一个字符串,然后用stack把它反转,同时记录下子串出现的位置。然后再扫描一遍把记录下来的子串再用stack反转。我用的方法是用一遍扫描数组的方法。扫描中如果发现子串,就将子串倒过来压入堆栈。
最后再将堆栈里的字符弹出,这样子串又恢复了原来的顺序。源代码如下:
#include <iostream>
#include <cassert>
#include <stack>
using namespace std;
//reverse the string 's1' except the substring 'token'.
const char* reverse(const char* s1, const char* token)
{
assert(s1 && token);
stack<char> stack1;
const char* ptoken = token, *head = s1, *rear = s1;
while (*head != '\0')
{
while(*head!= '\0' && *ptoken == *head)
{
ptoken++;
head++;
}
if(*ptoken == '\0')//contain the token
{
const char* p;
for(p=head-1;p>=rear;p--)
stack1.push(*p);
ptoken = token;
rear = head;
}
else
{
stack1.push(*rear);
head=++rear;
ptoken = token;
}
}
char * return_v = new char[strlen(s1)+1];
int i=0;
while(!stack1.empty())
{
return_v[i++] = stack1.top();
stack1.pop();
}
return_v[i]='\0';
return return_v;
}
int main(int argc, char* argv[])
{
cout<<"This is zhuxinquan's Chinese site: http://www.zhuxinquan.com/cn\n";
cout<<reverse("This is zhuxinquan's Chinese site: http://www.zhuxinquan.com/cn","zhuxinquan");
return 0;
}
二、LoadRunner怎样让众多用户同时登陆
从数据库中虚拟用户,用虚拟的用户登陆就可以了.
三、Unix 中的常用命令
1、od 按八进制转储文件;
2、pack 压缩文件;
3、passwd 改变口令;
4、paste 文件合并;
5、pax 可移植档案管理程序;
6、pcat 显示压缩格式文件;
7、pg 分屏显示;
8、pr 按打印格式显示文件;
9、pstat 报告系统信息;
四、 小于一万的含有一的正整数个数?
public static void main(String[] args) {
int j=0;
for (Integer i = 0; i < 10000; i++) {
if(i.toString().indexOf("1")!=-1){
System.out.print("-"+i);
j++;
if(i%20==0){
System.out.println();
}
}
}
System.out.println(" J: "+j);
}
五、软件的生命周期,软件测试的生命周期分别是什么?
六、有两个砝码,一个7克、一个2克,还有一天平,现在有140克的盐,怎么可以把它分成50克和90克???(有想法的,请回复,谢谢!!!)
收藏
举报
TAG:
测试问题汇总