曾经的华为C面试题,一点就通

曾经的华为C面试题,一点就通
【问题区】
有两个变量x和y, x=10; y = 20; 请使用C语言代码实现两个变量的交换,要求至少使用3 种办法!
【提示区】
如果使用一个临时变量,来交换两个x和y的值,这是初学者都会的事情,如果不用临时变量,我们有没有办法实现呢?
大家还记得初中代数中的公式吗?
x + y = z ; 那么 x= z - y 或是 y = z - x ;
x * y = z ; 那么 x = z / y 或是 y = z / x;
上面这个公式说明: 如果我们知道两个数,以及两个数经过某种运算得到的结果,我们就可以通过三者中的任意两者得到第三者的结果!
【C代码实现区】
#include <stdio.h>
int main(void){
int x = 10;
int y = 20;
//第一种方法 临时变量交换
int z = 0;
z = x;
x = y;
y = z;
//第二种方法 加法
x = x + y; //执行后 x=30,y=20
y = x - y; //执行后 x=30,y=10
x = x - y; //执行后 x=20,y=10
//第三种方法 乘法
x = x * y; //执行后 x=200,y=20
y = x / y; //执行后 x=200,y=10
x = x / y; //执行后 x=20,y=10
//第四种方法 异或运算
x = x ^ y;
y = x ^ y;
x = x ^ y;
printf("x=%d, y=%d\n", x, y);
return 0;
}
【视频讲解】
地址:https://v.qq.com/x/page/v08145k1qdr.html
曾经的华为C面试题,一点就通的更多相关文章
- 华为Java笔试题
华为Java笔试题+数据库题 一. 单项选择题 1.Java是从( )语言改进重新设计. A.Ada B.C++ C.Pasacal D.BASIC 2.下列语句哪一个正确( ) A. Java程序经 ...
- 华为j2ee面试题
http://blog.csdn.net/chow__zh/article/details/7741312 java基础1.垃圾回收的优点和原理. Java语言中一个显著的特点就是引入了垃圾 ...
- 求一个int型整数的两种递减数之和(华为2015笔试题及答案)
给出一个整数(负数使用其绝对值),输出这个整数中的两种递减数(1.最大递减数:2.递减数中各位数之和最大的数)之和. 递减数:一个数字的递减数是指相邻的数位从大到小排列的数字,不包含相邻的数位大小相同 ...
- 传说中的华为Python笔试题——两等长整数序列互换元素,序列和的差值最小(修正)
有两个序列a,b,大小都为n,序列元素的值任意整形数,无序:要求:通过交换a,b中的元素,使[序列a元素的和]与[序列b元素的和]之间的差最小. 1. 将两序列合并为一个序列,并排序,得到source ...
- 华为Java机试题
1.程序实现目标: 输入一个字符串,将其各个字符对应的ASCII值加5后,输出结果. 程序要求:该字符串只包含小写字母,若其值加5后的字符值大于'z',将其转换成从a开始的字符. package co ...
- 2014 华为校招机试题(c/c++开发类)
第一题: 1.2.3....n盏灯,同时有n个人, 第1个人将1的倍数的灯拉一下, 第2个人将2的倍数的灯拉一下, ...... 问最后有几盏灯是亮的, 初始状态下灯是灭的, 输入整数n(n<6 ...
- 华为OJ平台试题 —— 数组:输入n个整数,输出当中最小的k个
输入n个整数.输出当中最小的k个: 代码: /* * 输入n个整数,输出当中最小的k个. * 输入说明:1.输入两个整数:2.输入一个整数数组 * 输出说明:输出一个整数数组 */ <p ...
- 【华为2016上机试题C++】最高分是多少
[编程题] 最高分是多少 时间限制:1秒 空间限制:65536K 老师想知道从某某同学当中,分数最高的是多少,现在请你编程模拟老师的询问.当然,老师有时候需要更新某位同学的成绩. 输入描述: 输入包括 ...
- 华为OJ平台试题 ——数组:整形数组合并
代码: /* * 将两个整型数组依照升序合并,而且过滤掉反复数组元素 */ #include <stdio.h> #define N 256 #define M 512 /* * 合并数组 ...
随机推荐
- Android 高级UI设计笔记23:Android 夜间模式之 两种常用方法(降低屏幕亮度+替换theme)
1. 夜间模式 所谓的夜间模式,就是能够根据不同的设定,呈现不同风格的界面给用户,而且晚上看着不伤眼睛.特别是一些新闻类App实现夜间模式是非常人性化的,增强用户体验. 2. 我根据网上的资料 以及自 ...
- jdk1.5-jdk1.9的主要区别
jdk1.5相对以前jdk版本主要新增功能 1.自动拆箱和装箱 其中基本数据类型的包装类有:Double,Float,Long,Integer,Short,Character和Boolean 2.提供 ...
- [SDOI2014]LIS
这道题还是非常好的 首先第一问可以让我们联想到某网络流二十四题里的一道题,发现建图方式应该和这道题差不多啊 所以首先跑一遍\(dp\),求出\(dp[i]\)表示\(i\)位置结束的\(LIS\)长度 ...
- Hive学习之路 (十五)Hive分析窗口函数(三) CUME_DIST和PERCENT_RANK
这两个序列分析函数不是很常用,这里也练习一下. 数据准备 数据格式 cookie3.txt d1,user1, d1,user2, d1,user3, d2,user4, d2,user5, 创建表 ...
- js中使用trim
function trim(s) { return trimRight(trimLeft(s)); } //去掉左边的空白 function trimLeft(s) { if (s == null) ...
- ubuntu16.04常见的问题解决方案
问题一:关于咖啡主机和其他服务器厂商和个人虚拟机VM10安装ubuntu16.04 ubuntu16.04默认是没有root用户的,要想有必须要通过用户创建,通常安装ubuntu16.04会有个让你创 ...
- 使用Charles进行移动APP抓包分析
一.简介 Charles是目前最强大最流行的http抓包调试工具,Mac.Unix.Windows各个平台都支持.特别是做APP开发,调试与服务端的通信,Charles是必备工具. 目前Charles ...
- https协议的一些杂谈
参考文献:百度运维博客&知乎车小胖的回答 这是拖了很久的一篇记录,项目完结了,也找个时间写完.(额,阅读者最好对http协议有一定了解,否则就没必要浪费时间看下去了)首先来一段百度的解释: H ...
- P1169 [ZJOI2007]棋盘制作
题目描述 国际象棋是世界上最古老的博弈游戏之一,和中国的围棋.象棋以及日本的将棋同享盛名.据说国际象棋起源于易经的思想,棋盘是一个8*8大小的黑白相间的方阵,对应八八六十四卦,黑白对应阴阳. 而我们的 ...
- dpkg安装失败解决过程
终于好了.搞到转钟3点都没搞定,耽误不少时间. 执行sudo port install dpkg 报错如下Error: org.macports.build for port gmp return ...