概要:void uppers(char *s,char *us){for(;*s!='\0';s++,us++){if(*s>='a'&&*s<='z')*us = *s-32;else*us = *s;}*us = '\0';}int main(){char *s,*us;char ss[20];printf("Please input a string:\n");scanf("%s",ss);s = ss;uppers(s,us);printf("The result is:\n%s\n",us);getch();}随机输入一个数,判断它是不是对称数(回文数)(如3,121,12321,45254)。不能用字符串库函数/***1.函数名称:Symmetry功能: 判断一个数时候为回文数(121,35653)输入: 长整型的数输出: 若为回文数返回值为1 esle 0**/[cpp] view plaincopyprint?unsign
华为C语言笔试题集合,标签:笔试大全,http://www.88haoxue.comvoid uppers(char *s,char *us)
{
for(;*s!='\0';s++,us++)
{
if(*s>='a'&&*s<='z')
*us = *s-32;
else
*us = *s;
}
*us = '\0';
}
int main()
{
char *s,*us;
char ss[20];
printf("Please input a string:\n");
scanf("%s",ss);
s = ss;
uppers(s,us);
printf("The result is:\n%s\n",us);
getch();
}
随机输入一个数,判断它是不是对称数(回文数)(如3,121,12321,45254)。不能用字符串库函数
/***************************************************************
1.
函数名称:Symmetry
功能: 判断一个数时候为回文数(121,35653)
输入: 长整型的数
输出: 若为回文数返回值为1 esle 0
******************************************************************/
[cpp] view plaincopyprint?
unsigned char Symmetry (long n)
{
long i,temp;
i=n; temp=0;
while(i) //不用出现长度问题,将数按高低位掉换
{
temp=temp*10+i%10;
i/=10;
}
return(temp==n);
}
方法一
/* ---------------------------------------------------------------------------
功能:
判断字符串是否为回文数字
实现:
先将字符串转换为正整数,再将正整数逆序组合为新的正整数,两数相同则为回文数字
输入:
char *s:待判断的字符串
输出:
无
返回:
0:正确;1:待判断的字符串为空;2:待判断的字符串不为数字;
3:字符串不为回文数字;4:待判断的字符串溢出
---------------------------------------------------------------------------- */
unsigned IsSymmetry(char *s)
{
char *p = s;
long nNumber = 0;
long n = 0;
long nTemp = 0;
/*判断输入是否为空*/
if (*s == \'\\0\')
return 1;
/*将字符串转换为正整数*/
while (*p != \'\\0\')
{
/*判断字符是否为数字*/
if (*p<\'0\' || *p>\'9\')
return 2;
/*判断正整数是否溢出*/
if ((*p-\'0\') > (4294967295-(nNumber*10)))
return 4;
nNumber = (*p-\'0\') + (nNumber * 10);
p++;
}
/*将数字逆序组合,直接抄楼上高手的代码,莫怪,呵呵*/
n = nNumber;
while(n)
{
/*判断正整数是否溢出*/
if ((n%10) > (4294967295-(nTemp*10)))
return 3;
nTemp = nTemp*10 + n%10;
n /= 10;
}
/*比较逆序数和原序数是否相等*/
if (nNumber != nTemp)
return 3;
return 0;
}
方法二
/* ---------------------------------------------------------------------------
功能:
判断字符串是否为回文数字
实现:
先得到字符串的长度,再依次比较字符串的对应位字符是否相同
输入:
char *s:待判断的字符串
输出:
无
返回:
0:正确;1:待判断的字符串为空;2:待判断的字符串不为数字;
3:字符串不为回文数字
---------------------------------------------------------------------------- */
unsigned IsSymmetry_2(char *s)
{
char *p = s;
int nLen = 0;
int i = 0;
/*判断输入是否为空*/
if (*s == \'\\0\')
return 1;
/*得到字符串长度*/
while (*p != \'\\0\')
{
/*判断字符是否为数字*/
if (*p<\'0\' || *p>\'9\')
return 2;
nLen++;
p++;
}
/*长度不为奇数,不为回文数字*/
if (nLen%2 == 0)
return 4;
/*长度为1,即为回文数字*/
if (nLen == 1)
return 0;
/*依次比较对应字符是否相同*/
p = s;
i = nLen/2 - 1;
while (i)
{
if (*(p+i) != *(p+nLen-i-1))
return 3;
i--;
}
return 0;
}
求2~2000的所有素数.有足够的内存,要求尽量快
答案:
int findvalue[2000]={2};
static int find=1;
bool adjust(int value)
{
assert(value>=2);
if(value==2) return true;
for(int i=0;i<=find;i++)
{
if(value%findvalue[i]==0)
return false;
}
findvalue[find++];
return true;
}
④华为最后三个大题
1.A,B,C,D四个进程,A向buf里面写数据,B,C,D向buf里面读数据,当A写完,且B,C,D都读一次后,A才能再写。用P,V操作实现。
2.将单向链表reverse,如ABCD变成DCBA,只能搜索链表一次。
3.将二叉树的两个孩子换位置,即左变右,右变左。不能用递规(变态!)
⑤华为笔试题:2007.03.31华为笔试题之一二
给大家说几个:(感觉华为不过如此,虽然我的分不高,因为很多题我做给他实在是侮辱我的智商)
上一页 [1] [2] [3] [4] [5] [6] [7] 下一页
上一篇:腾讯web前端开发笔试题和答案
最新更新