不负韶华_不负韶华-z的博客-程序员秘密

技术标签: C语言  

1.编写函数:unsigned int reverse_bit(unsigned int value); 这个函数的返回值value的二进制位模式从左到右翻转后的值。
如: 在32位机器上25这个值包含下列各位: 00000000000000000000000000011001
翻转后:(2550136832) 10011000000000000000000000000000 程序结果返回: 2550136832
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
unsigned int reverse_bit(unsigned int value)
{
	unsigned int target=0;
	unsigned int bit=1;
	int i=0;
	for(i=0;i<32;i++)
	{
		if(value & (bit<<i))
			target |= bit<<(31-i);

	}
	return target;
}
int main()
{
	unsigned int value;
	scanf("%u",&value);
	printf("%u\n",reverse_bit(value));
	return 0;
}

2.不使用(a+b)/2这种方式,求两个数的平均值 
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
//法一:
int main()
{
	int a=10;
	int b=20;
	printf("%d\n",(a & b)+((a^b)>>1));
}

//法二:
//int main()
//{
//	int a=20;
//	int b=10;
//	printf("%d\n",a+((b-a)>>1));
//}

3.编程实现: 一组数据中只有一个数字出现了一次。其他所有数字都是成对出现的。 请找出这个数字。(使用位运算)

#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int find_single(int *arr,int len)
{
	int single=arr[0];
	int i=0;
	for(i=1;i<len;i++)
	{
		single ^= arr[i];
	}
	return single;
}
int main()
{
	int arr[]={1,2,3,4,5,1,2,3,4,5,7};
	int len=sizeof(arr)/sizeof(arr[0]);
	printf("%d\n",find_single(arr,len));
	return 0;
}

4. 有一个字符数组的内容为:"student a am i",请你将数组的内容改为"i am a student". 要求: 不能使用库函数。只能开辟有限个空间(空间个数和字符串的长度无关) 

#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
#include <assert.h>
void reverse(char *start,char *end)
{
	while(start < end)
	{
		*start ^= *end;
		*end ^= *start;
		*start ^= *end;
		start++;
		end--;
	}
}
void switch_string(char *str)
{
	char *fast=str;
	char *slow=fast;
	while(*fast != '\0')
	{
		if(isspace(*fast))
		{
			reverse(slow,fast-1);
			fast++;
			slow=fast;
		}
		else
		{
			fast++;
		}
	}
	reverse(slow,fast-1);
	reverse(str,fast-1);
}
int main()
{
	char str[]="student a am i";
	assert(str);
	switch_string(str);
	printf("%s\n",str);
	return 0;
}


版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/iconm/article/details/78788413

智能推荐

Django-rest-framework 接口实现 限制:(Throttle)_weixin_33671935的博客-程序员秘密

限制:(Throttle)主要用来限制 单独一个用户的 访问次数自定义一个 限制类创建一个Throttle.py(截流)文件注意 一定要写两个方法def allow_request(self, request, view): allow(允许)定义限制的逻辑def wait(self): wait (等待) 定义被限制后的等待时间import time# 访问记...

Bandit算法_青松愉快的博客-程序员秘密

经常听身边的人说起使用推荐系统的感受,“某宝某东就是看什么给推什么”,使用者对推荐系统产生厌倦;也有听做推荐系统的同学抱怨推荐的冷启动问题,如何去尝试新用户的兴趣点,尝试到什么时候地步才算真正掌握了用户的兴趣,用户的兴趣发生改变如何灵活的调整推荐策略。这些,都与今天聊到的E&amp;E问题有关,而Bandit算法是解决E&amp;E问题的一种思路。本文首先描述E&amp;E问题的及策略框架,然后介...

开启3个线程循环打印10遍ABC-何氏硬刚版+网红版_实现三个线程顺序输出abc十遍_既过不念,未来不继的博客-程序员秘密

文章目录面试题目+吐槽何氏硬刚版思路代码网红版思路代码面试题目+吐槽我是不知道为什么这个东西一直在面试编码题中吃香,真的。不过真说起来,也没啥好吐槽的,人为刀俎我为鱼肉,你去面试,就得按照别人的评审标准来。你要不乐意,谁也没逼着你。那句经典的台词“咱们今天的面试就到这里吧”,从来都不只是面试官可以说的。我最大的槽点是,我知道一个题有最佳解法,但也不能忽视别人的劳动成果呀。实不相瞒,我刚离职的这家公司,我当初去面试有一个编码题就是交替顺序打印10遍ABC,我那时候就没写出来。PS:为啥最后还入职了,可

Xmanager power suit_巨星不乂的博客-程序员秘密

Xmanager Power Suit 6.0.0109 最新版注册激活,长期更新以下方法基本上可以对最近版本适用,也就是说不需要我更新文章,你也可以通过以下方法尝试激活最新的版本!操作步骤Xmanger Power Suit 官方 其实有两种 .exe 文件,一个是用于试用的,在注册的时候不能直接输入密钥。而另一个是为注册用户提供的 .exe 文件,在注册的时候可以输入密钥,直接可以激活...

vue实现 【echarts中 “7种” Pie饼图图例】组件的封装_echarts pie_禾小毅的博客-程序员秘密

1、安装echartsnpm install echarts --save2、在需要的页面引入import * as echarts from "echarts"3、创建组件 PieChart.vue&lt;template&gt; &lt;div&gt; &lt;div id="pie"&gt;&lt;/div&gt; &lt;/div&gt;&lt;/template&gt;&lt;script&gt;import * as echa...

随便推点

程序猿生存指南-37 你好,清华_weixin_33912445的博客-程序员秘密

你好,清华(103)圣诞平安夜,别人收到了苹果橙子,寓意平平安安,心想事成。而我收到了两波刺激,前有王旭这厮撒狗粮,后有老潘这货秀姑娘。王旭的婚期定在了来年五一劳动节。他说若是到那时我仍未结婚,他就邀请我做伴郎。他把我拉进了一个名叫「旭&amp;婵伴郎伴娘」的微信群。此后,这个微信群的规模不断扩大,最终多达20人。也不知婚礼要摆多大阵仗,他居然库存了这么多备胎。照王旭所讲,理想状况是婚礼那天,群里...

HDOJ/HDU 1015 Safecracker(深搜)_weixin_30483495的博客-程序员秘密

Problem Description === Op tech briefing, 2002/11/02 06:42 CST === “The item is locked in a Klein safe behind a painting in the second-floor library. Klein safes are extremely rare; most ...

Open3D:Win10 + VS2017配置Open3D(C++、python)_c++ open3d vs2017_累了就要打游戏的博客-程序员秘密

一、下载源码地址:https://github.com/intel-isl/Open3D1.1 克隆源码【笔者的源码路径为D:\Open3D\Open3D】1.2 切换版本【笔者的版本为0.8.0】1.3 更新子模块【用于获取第三方库!很重要!】二、CMake编译2.1 设置路径【source code: D:\Open3D\Open3D;build binaries: D:\Open3D】【笔者设置CMAKE/CMAKE_INSTALL_PREFIX的路径为D:/Open.

python中小学生编程学习-推荐几个适合小白学习Python的免费网站_weixin_37988176的博客-程序员秘密

9gd少儿编程网-Scratch_Python_教程_免费儿童编程学习平台想要学好python,只靠看Python相关的书籍是远远不够的!互联网时代,我们还要充分利用网络上的免费资源,不然怎样成为一名**的Pythoner呢?今天小U就为大家分享几个神奇有效的Python学习网站。9gd少儿编程网-Scratch_Python_教程_免费儿童编程学习平台Python部落9gd少儿编程网-Scrat...

005编程语言分类_2500种 高级语言_阿米er的博客-程序员秘密

前言编程语言(programming language)可以简单的理解为一种计算机和人都能识别的语言。一种计算机语言让程序员能够准确地定义计算机所需要使用的数据,并精确地定义在不同情况下所应当采取的行动。编程语言处在不断的发展和变化中,从最初的机器语言发展到如今的2500种以上的高级语言,每种语言都有其特定的用途和不同的发展轨迹。编程语言并不像人类自然语言发展变化一样的缓慢而又持久,其发展是相当快速的,这主要是计算机硬件、互联网IT行业的发展促进了编程语言的发展一、机器语言只要是谈到计算机基础,有一