51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 5393|回复: 8
打印 上一主题 下一主题

[求助] 面试笔试题目,大家共享!

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2006-2-17 21:37:44 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
一.
编程题:
请写出实现下面功能的转换程序,输入一个32-bit整数(4字节),将此整数二进制码中的模式 001 替换为 011 ,将替换后结果作为返回值返回。
函数原型: long replace_pattern(long inputInt);

       
二.
完成函数 void reverse_str(unsigned char *str);
功能:将输入字符串 str 转换成 各字节顺序从尾到头排列的新字符串。
输入:str, 要被翻转处理的字符串,以 0 结尾。
输出:str, 翻转后的结果,以 0 结尾。

要求:使用最小的内存空间(数据部分)


三.
分析题:
若干台电脑通过一个NAT Gateway共享一条线路上网,仅仅通过在这条线路(WAN口)上抓网络数据包,怎样可以知道局域网内有多少台电脑在共享上网?


四.
算法题:
某数值计算需要进行大量余弦函数cos(x)的运算,要求精确到0.001,请给出一个快速计算的算法,不要求将程序写出来,但要将实现思路清晰表达,必要时可以辅以C语言的程序片段。


五.
算法题:
计算机在发送IP包前,需要通过在ARP表中查找该IP对应的MAC地址,请选择合适的数据结构来管理ARP表,不要求将程序写出来,但要将实现思路清晰表达,必要时可以辅以C语言的程序片段。
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
发表于 2006-2-20 11:52:17 | 只看该作者
这是面试测试么?我怎么觉得是面试开发的呢.
回复 支持 反对

使用道具 举报

该用户从未签到

3#
发表于 2006-2-21 13:03:27 | 只看该作者
现在的公司总是希望做测试的编程要懂,系统要懂,网络要懂,英语要懂,又要有经验,又要学校好,又要人品好,又要长相好,又要工资低,又要肯加班……
回复 支持 反对

使用道具 举报

该用户从未签到

4#
发表于 2006-2-21 18:27:54 | 只看该作者

哈哈

楼上说的可真具体
回复 支持 反对

使用道具 举报

该用户从未签到

5#
发表于 2006-2-25 14:24:06 | 只看该作者
dream
回复 支持 反对

使用道具 举报

该用户从未签到

6#
发表于 2006-3-1 09:45:58 | 只看该作者

前面两题不知道有没有人回做

还望高手答复
回复 支持 反对

使用道具 举报

该用户从未签到

7#
发表于 2006-6-27 16:41:30 | 只看该作者

真实答案

1)请写出实现下面功能的转换程序:
  输入一个 32-bit 整数 ( 4字节 ),从高位到低位,将此整数二进制码中的模式 101 替换为 011,
  将替换后结果作为返回值返回。

  函数原型:long replace_pattern(long inputInt);

回答:

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
long replace_pattern(long inputInt)
{
    char bits[33],*p=bits,e;
    long re=0,i=0;
    unsigned long mask=0x80000000;
    while(mask)bits[i++]=((mask&inputInt)?49:48),mask>>=1;
    bits=0;
    while(p=strstr(p,"101"))
    {
        e=*(p+3),*(p+3)=0;
        strcpy(p,"011");
        p+=3;
        *p=e;
    }
    p=bits;
    while(*p)re=re*2+*p-48,p++;
    return re;
}
int main()
{
    long n;
    printf("Please Enter a Number:\n");
    scanf("%ld",&n);
    printf("After replace :%ld\n",replace_pattern(n));
    system("PAUSE");
    return 0;
}

2)完成函数 void reverse_str(unsigned char *str);
  功能:将输入字符串 str 转换成 各字节顺序从尾到头排列的新字符串。
  输入:str, 要被翻转处理的字符串,以 0 结尾。
  输出:str, 翻转后的结果,以 0 结尾。

  要求:使用最小的内存空间(数据部分)

#include<stdio.h>
#include<stdlib.h>
#include<string.h>

void reverse_str(unsigned char *str)
{
  int i;
  unsigned char temp;
  int num=0;

  if(NULL == str) return;
  while(str[num] != '0')
    {
     num++;
     }
  for(i=0;i<num/2;i++)
    {
     temp = str;
    str = str[num-1-i];
     str[num-1-i] = temp;
    }
}

int main()
{
    char *str="abcdefghijk0";
    printf("Please Enter a String :%s\n",str);
    reverse_str(str);
    printf("After reverse :%s\n",str);
    system("PAUSE");
    return 0;
}

直接运行,绝对OK!
回复 支持 反对

使用道具 举报

该用户从未签到

8#
发表于 2006-7-7 17:23:16 | 只看该作者
3楼的,真的是这样的么?
回复 支持 反对

使用道具 举报

该用户从未签到

9#
发表于 2006-9-2 19:47:54 | 只看该作者
高手哦!
回复 支持 反对

使用道具 举报

本版积分规则

关闭

站长推荐上一条 /1 下一条

小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

GMT+8, 2024-11-26 21:46 , Processed in 0.070600 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

快速回复 返回顶部 返回列表