1。编写函数:
这个函数的返回值value的二进制位模式从左到右翻转后的值。
例:在32位机器上输入25这个值包含下列各位:
00000000000000000000000000011001 翻转后: 2550136832
#include <stdio.h>
int reverse_bit( int val)
{
int data=0;
int i=0;
int num=32;
while(i<num)
{
if((val>>i) &1)
{
data|=1<<(num-1-i);
}
i++;
}
return data;
}
int main ()
{
int data=0;
scanf("%d",&data);
printf("begin=%u\n",data);
printf("result=%u\n",reverse_bit(data));
return 0;
}
2。
不使用(a+b)/2这种方式,求两个数的平均值。
#include <stdio.h>
int main()
{
int a=0;
int b=0;
scanf("%d%d",&a,&b);
printf("%d\n",a+(b-a)/2);
printf("%d\n",(a+b)>>1); //存在溢出
printf("%d\n",(a&b)+(a^b)/2); //相同保留 相异均分
return 0;
}
3。编程实现:
一组数据中只有一个数字出现了一次。其他所有数字都是成对出现的。
请找出这个数字。(使用位运算)
#include <stdio.h>
int main()
{
int arr[]={1,2,3,4,5,0,6,6,5,4,1,2,3};
int len=sizeof(arr)/sizeof(arr[0]);
int i=0;
int ret=arr[0];
for(i=1;i<len;i++)
{
ret^=arr[i];
}
printf("result=%d\n",ret);
return 0;
}
4。
有一个字符数组的内容为:”student a am i”,请你将数组的内容改为”i am a student”.
要求: 不能使用库函数。只能开辟有限个空间(空间个数和字符串的长度关)。
#include <stdio.h>
#include <assert.h>
#include <ctype.h>
void Reverse(char *left,char *right)
{
while(left<right)
{
char tmp ;
tmp = *left;
*left = *right;
*right = tmp;
left++;
right--;
}
}
void strReverse (char *pStr)
{
char *p =pStr;
char *q =p;
assert(pStr);
while(*p)
{
if(isspace(*p))
{
Reverse(q,p-1);
p++;
q = p;
}
else
{
p++;
}
}
Reverse(q ,p-1);
Reverse(pStr ,p-1);
}
int main()
{
char str[]="student a am i";
strReverse(str);
printf("%s\n",str);
return 0;
}
答案: 2*(4+(6*5+1))=70
//宏替换时不进行运算
常用C语言操作符:
http://blog.youkuaiyun.com/romantic_c/article/details/78235116
二分查找:
http://blog.youkuaiyun.com/romantic_c/article/details/78235337
冒泡查找:
http://blog.youkuaiyun.com/romantic_c/article/details/78278861
解析二维数组;
http://blog.youkuaiyun.com/romantic_c/article/details/78252234
解析一维数组
http://blog.youkuaiyun.com/romantic_c/article/details/78669195
C语言中的关键字及常用语句:
http://blog.youkuaiyun.com/Romantic_C/article/details/78660805
递归(题)
http://blog.youkuaiyun.com/romantic_c/article/details/78664881
宏(题)
http://blog.youkuaiyun.com/romantic_c/article/details/79451028
位&翻转_1(题)
http://blog.youkuaiyun.com/romantic_c/article/details/79455583
位&翻转_2(题)
http://blog.youkuaiyun.com/romantic_c/article/details/79476849