【面试题】数码视讯---2013校园招聘---笔试题

今天在北交大的笔试。小题就不记录了。

嵌入式C方向

三道大题是:

1,strcmp函数实现。

 

#include <iostream>
using namespace std;

int My_Strcmp(const char *p1,const char * p2)
{
	register const unsigned char *s1 = (const unsigned char *) p1;
	register const unsigned char *s2 = (const unsigned char *) p2;
	unsigned char c1, c2;
	do
	{
		c1 = (unsigned char) *s1++;
		c2 = (unsigned char) *s2++;
		if(c1 == '\0')
		{
			return c1 - c2;
		}
	}while (c1 == c2);
	return c1 - c2;
}

int __cdecl you_strcmp (const char * src,  const char * dst)  
{  
        int ret = 0 ;  
        while( ! (ret = *(unsigned char *)src - *(unsigned char *)dst) && *dst)   
		{
			++src, ++dst;  
		}
        if ( ret < 0 )  
		{
			ret = -1 ;  
		}
        else if ( ret > 0 )  
		{
			ret = 1 ;     
		}
        return( ret );  
}  

int Yeah_strcmp(const char *pStr1, const char *pStr2)  
{  
    if(NULL == pStr1 && NULL == pStr2)  
    {  
        return 0;  
    }  
    while(('\0' != *pStr1) && ('\0' != *pStr2))  
    {  
        if(*pStr1 < *pStr2)  
        {  
            return -1;  
        }  
        else if(*pStr1 > *pStr2)  
        {  
            return 1;  
        }  
        else  
        {  
            ++ pStr1, ++ pStr2;  
        }  
    }  
    if(('\0' == *pStr1) && ('\0' == *pStr2))  
    {  
        return 0;  
    }  
    else if(('\0' == *pStr1) && ('\0' != *pStr2))  
    {  
        return -1;  
    }  
    else   
    {  
        return 1;  
    }  
} 

void main()
{
	char *a = "a";
	char *b = "ab";
	cout << My_Strcmp(a,b) <<endl;
	cout << you_strcmp(a,b) <<endl;
	cout << Yeah_strcmp(a,b) <<endl;
}


2,判断大段小段模式。

 

#include <iostream>
using namespace std;

int checkCPU()
{
	union w
    {
		int a;
        char b;
	}c;
    c.a = 1;
    return(c.b ==1);
}

void main()
{
	if(checkCPU())
	{
		cout << "小段模式"<<endl;
	}
	else
	{
		cout << "大端模式" <<endl;
	}
}


3,有序链表的创建。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值