当前位置:  技术问答>linux和unix

下面是一公司给我出的笔试题,有很多人能在60分钟做完吗?

    来源: 互联网  发布时间:2015-11-13

    本文导语:  **********************笔试题目开始********************************* 以下题目请在一个小时内完成。 1、完成字符串拷贝可以使用 sprintf、strcpy 及 memcpy 函数,请问这些函数 有什么区别,你喜欢使用哪个,为什么? Sprintf 和st...

**********************笔试题目开始*********************************
以下题目请在一个小时内完成。

1、完成字符串拷贝可以使用 sprintf、strcpy 及 memcpy 函数,请问这些函数
有什么区别,你喜欢使用哪个,为什么?
Sprintf 和strcpy都是对字符串的拷贝,且前者可以按指定的格式输出,memcpy为对内存的拷贝,一般字符串之外的拷贝只能用memcpy。
我觉得memcpy比较好些,我觉得它更安全,不会出现溢出的情况。
我觉得memcpy比较好些,相对来说它的效率高些。
2、变量的声明和定义有什么区别?
变量的定义是告诉编译器我现在要用这样一个标识(从前没有),并要求其分配一定的内存空间,
而声明是指这个标识已存在,只是要扩大它的使用范围。
变量的定义只能做一次,而声明可做无数次。
3、请写出下面代码在 32 位平台上的运行结果,并说明 sizeof 的性质:

#include 
#include 

int main(void)
{
char a[30];
char *b = (char *)malloc(20 * sizeof(char));
printf("%dn", sizeof(a));
printf("%dn", sizeof(b));
printf("%dn", sizeof(a[3]));
printf("%dn", sizeof(b+3));
printf("%dn", sizeof(*(b+4)));
return 0 ;
}
结果:
30
4
1
4
1

sizeof计算字节数是和平台相关的
4、请完成以下题目。注意,请勿直接调用 ANSI C 函数库中的函数实现。

a)请编写一个 C 函数,该函数给出一个字节中被置 1 的位的个数,并请
给出该题的至少一个不同解法。
unsigned int TestAsOne0(char log)
{
    int i;
    unsigned int num=0, val;
    for(i=0; i> i;
        val &= 0x01;
        if(val)
            num++;
    }
    return num;
}

unsigned int TestAsOne1(char log)
{
    int i;
    unsigned int num=0, val;
    for(i=0; i> i;
        val &= 0x00;
        if(!val)
            num++;
    }
    return num;
}
b)请编写一个 C 函数,该函数将给定的一个字符串转换成整数。
int CharToInt(char* log)
{
int num;
int i;
int n = 1;
int loglen = 0;
char logval[100];

while(log[loglen])
{
loglen++;
if(loglen > 98)
return -1;
}

for(i=0; i>= 1;
  }
  return cnt;
}

unsigned int TestAsOne1(char log)
{
  static int ONECNT[] = { 0, 1, 1, 2 };
  int cnt = 0;
  return ONECNT[log&0x3] + ONECNT[log>>2&0x3] + ONECNT[log>>4&0x3] + ONECNT[log>>6&0x3];
}

b)请编写一个 C 函数,该函数将给定的一个字符串转换成整数。

// 我假设给出的字符串无误
int CharToInt(char* log)
{
  int ret = 0;
  while (*log) {
    ret = ret*10 + (*log) - '0';
    ++log;
  }
  return ret;
}

c)请编写一个 C 函数,该函数将给定的一个整数转换成字符串。

void IntToCharChange(int num, char* pval)
{
  char* p = pval;
  if (num == 0)
    *pval++ = 0;
  while (num) {
    *pval++ = (num%10) + '0';
    num /= 10;
  }
  *pval-- = '';
  while (pval > p) {
    char c = *p;
    *p = *pval;
    *pval = c;
    ++p;
    --pval;
  }
}

d)请编写一个 C 函数,该函数将一个字符串逆序。
void AntitoneValue(char* father, char* child)

// 不懂,为什么要2个参数?

e)请编写一个 C 函数,该函数在给定的内存区域搜索给定的字符,并返回
该字符所在位置索引值。
unsigned char* FindChar(unsigned long start, unsigned long end, char log)
{
  unsigned char* ps = (unsigned char*)start;
  unsigned char* pe = (unsigned char*)end;
  unsigned char* p;
  int idx = -1;
  for (p=ps; p maxcnt) {
ret = p;
maxcnt = cnt;
      }
      cnt = 0;
      p = father;
    }
    prev = *father++;
  }
  return ret;
}


5、给出演示上述函数功能的一个简单程序,并请编写对应的 Makefile 文件。
(prog.c)

// 不知此题什么意思

Makefile:

a:
gcc prog.c

|
bt

|
如果你有空把所有str***函数实现一次,然后在做这些根本不算什么。

|
我老板出的bt题目,最高纪录一个面世的哥们面试了17个小时,完了那哥们都快崩溃了,如果是纯技术的题目还好说,净tmd是一些bt的东西

|
难度不大,不过题量也太大了吧?
60分钟我作不完。

|
楼主高人~

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • mongodb是哪个公司的以及它的内部构造
  • 公司需要DNS服务器吗,如果有是对公司内部服务还是对公网?
  • 我们公司在局域网中,通过Cisco路由器接DDN,连接总公司.win98可以ping到总公司路由器,但是用了win2k专业版就只能在局域网内ping,数据报出
  • 有谁了解“江苏新晨信息科技发展有限公司”吗,公司怎么样?
  • 大连的C/LINUX程序员请进!你们在那个公司?小弟想投奔,但是苦于没有公司招聘。
  • UNIX服务器连接公司局域网和INTERNET,如果要阻止公司内部访问QQ、MSN之类的使用是不是用iptables阻止端口?
  • 在公司注册时,如何自动生成公司的编号?及通常的COMPANY_ID??
  • 请教各位 我将来想从事嵌入式linux方面的工作。 如果我学好ARM+linux后从事那些行业的工作更好呢? 或者进那些公司更有前途呢?那些公司更适合我呢?
  • 求救:我应聘一家公司,老板出的题目是在Linux下用浏览器观看word或execl,我只需要一点资料先应付过去,或者一点思路也可以。这家公司我
  • 打倒杭州(萧山)时比特公司!!!!!!!!!
  • 在南京的兄弟过来看一下,我们公司在招聘。
  • 德国母公司寻求国内软件开发合作伙伴
  • 推荐几个嵌入式行业的公司吧
  • 用UNIX/Linux开发的公司,面试都问些啥????
  • 测试下你的LINUX水平吧 把答案贴出来看看 (老师给的考试题 说是根据某公司面试题改的) 大家试试吧 iis7站长之家
  • 网上下载的redhat可不可以在公司里用?需要lisence吗?
  • 惠通公司诚聘
  • 哪家公司提供嵌入式Linux手机研发平台?
  • 在公司编java程序用什么工具
  • 公司管理软件 eBag
  • 公司网站模板 Akono


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3