面试题记2

只记录一些比较有借鉴性的,答案以后慢慢完善,希望各位看客能给出精彩的答案,现行谢过了!

1:什么是大小端模式,请用宏实现大小端模式的读写

可以参考:http://blog.csdn.net/ce123/article/details/6971544

2:比较以下两个模式的的for循环的优缺点,如何优化

for (i=0; i<N; i++)

{

if (condition)

DoSomething();

else

DoOtherthing();

}

优点:写法简洁易懂

缺点:每次循环都要进行一次if判断,这样相较于下面的方法至少多出N-1次if判断,并且if判断打断了for循环流水线作业,效率低

if (condition)
{
for (i=0; i<N; i++)
    DoSomething();
}
else
{
    for (i=0; i<N; i++)
    DoOtherthing();
}

缺点:写法复杂,较难阅读

优点:效率比上面那个高

3:以下代码有什么错误或者有什么效果

#define MAX 255
unsign char a[MAX],i;
for(i=0; i < MAX; i++)
    a[i] = i;

4:sizeof的使用,具体是啥不记得了,但是主要考的是sizeof对指针和数组的求值

5:自己实现strcmp库函数

面试时我自己写的一个,感觉还可以(如果用于比较的两个字符串结尾没有‘\0’,程序就有问题):

int strcmp(const char * str1,const char *str2)
{
    while(str1 && str2 && (*str1++ == *str2++))
    ;
    return (*str1)-(*str2);
}
看了window中的这个函数的定义,感觉有点复杂,不知道上面的还有什么bug没有,请各位看客指正

6:用winsock实现一个简单的客户端服务器程序

对于我这个从来不高window C的人来说这个真不会,只知道用socket就可以了,相信对搞windows的人来说这个应该很简单吧

7:写出BOOL,float和指针与“零值”比较的if语句

参考:http://blog.csdn.net/jhg1204/article/details/8980186


你可能感兴趣的:(面试题记2)