展讯笔试题目
展讯笔试题目
1.给出字符串pszBuff, 将其全部转化为大写,a转化为A
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
char *convert(const char* dest)
{
int ilen=0;
char *tmp=(char *)dest;
char *str;
//strcpy(str,dest);
while(*dest++) ilen++;
str = (char *)malloc(ilen);
while(*tmp)
{
if ( (*tmp>'a') && (*tmp<'z')) {
*str = *tmp + 'A' - 'a' ;
}else{
*str = *tmp;
}
str++;
tmp++;
}
*str='\0';
return str-ilen;
}
int main(int argc, char* argv[])
{
const char pszBuff[] = "AbCd";
char *cc;
cc = convert(pszBuff);
printf("%s",cc);
getchar();
return 0;
}
2. 给出输出结果,假设是CPU32位
int main(int argc, char* argv[])
{
char *str="1234567890";
long *pLong= (long *)str;
char *pChar = str;
pLong++;
pChar++;
printf("%d %d %s\n",sizeof(long),sizeof(pLong),pLong);
printf("%d %d %s\n",sizeof(char),sizeof(pChar),pChar);
printf("%d",sizeof(int));
getchar();
return 0;
}
答案: 4 4 567890
1 4 234567890
4
想把 0x12345678 从一台 x86 机器发送到另外一台 x86 机器
www.qz26.com
1. x86 机器是小端的,所以 0x12345678 在内存中的布局为 78 56 34 12;
2. 网络字节序是大端的,所以 0x12345678 在网络中的传输顺序为 12 34 56 78;可以这样理解,传输的顺序是从内存低地址到内存高地址依次传输,在传输之前先将小端的 78 56 34 12 转换为大端的 12 34 56 78,然后再按照内存低地址到内存高地址的顺序依次传输。
3. 在接收方,依次接收到的是 12 34 56 78,但是它本身是小端的,所以需要先将 78 存储在内存低地址,然后依次存储 56 34 12。
Part1 通信
GSM/GPRS/WCDMA区别
GSM的上下行频率
Part2 c语言
c语言中volatile的用处
链表与数组的区别
写出strcpy的c实现代码
求两个字符串的最大公共字符子串
Part3 智力题
一根非均匀绳子可以烧1小时,怎么用它定出15分钟?
两头点燃+中间点燃。一段烧光了,马上到另一段中间点燃。直到最后烧光。
你让工人为你工作7天,给工人的回报是一根金条。