当前位置: 首页 > news >正文

腾讯面试题(持续更新ing)

1、请定义一个宏,比较两个数a、b的大小,不能使用大于、小于、if语句

答案:#define compare(a, b) ( (a) - (b) & (1 << sizeof(int) * 8 - 1) ? (a) : (b))

解析:这里的做法,是将a - b,然后看首位是1,还是0,然后返回大的那个值。当然,你要是返回1跟0也是对的。

如果这道题写成这样,#define comapre(a, b) ( ((a) + (b)) - abs((a) - (b)) / 2 ) 你认为可行不?答案是否定的,只要a,b其中有一个数是无符号的,a - b 就会变成一个非常大的数,结果就会错得离谱。

2、如何输出源文件的标题和目前执行行的行数

答案:cout << __FILE__ << " " << __LINE__; 还有几个常用的宏,__DATE__, __TIME__, __FUNCTION__, 注意__DATE__和__TIME__是预编译的结果,也就是说,是你这个文件编辑后被重新编译的日期和时间,日期类似于Mar 16 2013 时间则是hh:mm:ss 如 08:42:39,__FUNCTION__则是对应函数的函数名,还有个很少用的宏__VA_ARGS__,这是不定参数的参数列表,也就是fun(...)中的那个...,如果你想把一个函数的可变参数...传递给另外一个函数时,就可以使用这个宏,但是,这个宏只是C99支持,现在的VS2008也还支持,但g++不支持,so,你懂的,少用为妙

3、两个数相乘,小数点后位数没有限制,请写一个高精度算法

答案:参考:http://blog.csdn.net/dssdss123/article/details/8765159

解析:参考的网址没有设计小数位,但原理是一样的,如果下次有涉及小数,会及时更新

4、写一个病毒程序

答案:参考:http://blog.csdn.net/dssdss123/article/details/8710560

5、有A、B、C、D四个人,要在夜里过一座桥。他们通过这座桥分别需要耗时1、2、5、10分钟,只有一支手电,并且同时最多只能两个人一起过。请问,如何安排,能够在17分钟内这四个人都过桥?

答案:AB一起过桥,耗时=2,A回来,耗时=2+1=3,CD一起过桥,耗时=3+10=13,B回来,耗时=13+2=15,AB一起过桥,耗时=15+2=17

6、一个人上台阶,一次可以上一个台阶或者两个台阶,问,上到10个台阶有多少种走法?

答案:89

解析:

上第一个台阶,只有一种走法,L1 = 1

上第二个台阶,有两种走法,可以直接上两个台阶,也可以从第一个台阶走一步,L2 = L1 + 1 = 2

上第三个台阶,可以从第一个台阶走两个台阶,也可以从第二个台阶走一个台阶,也就是,走到第一个台阶的所有方法,再加上走到第二个台阶的所有方法,L3 = L1 + L2= 1 + 2 = 3

上第四个台阶,可以从第二个台阶走两个台阶,也可以从第三个台阶走一个台阶,也就是,走到第二个台阶的所有方法,再加上走到第三个台阶的所有方法,L4 =L2 + L3 = 2 + 3 = 5

上第五个台阶,可以从第三个台阶走两个台阶,也可以从第四个台阶走一个台阶,也就是,走到第三个台阶的所有方法,再加上走到第四个台阶的所有方法,L5 =L3 + L4 = 3 + 5 = 8

。。。。。。

后面的数等于前面两个数的和,这个是???哈,就是斐波那契数列哈,1,2,3,5,8,13,21,34,55,89,答案就是89。

相关文章:

  • 几种排序算法与运用实例
  • 计算文件夹下.h和.cpp文件的总行数
  • 为什么仍还用C编码?
  • 线程同步
  • AndEngine安全移除精灵的方式
  • 可评审代码之道
  • JDK的动态代理
  • 实验一 Linux基本环境
  • 病毒原理实例
  • 利用jodconverter+openoffice+flexpaper实现的在线文档系统核心demo
  • 八数码编码(优化数据结构,优化算法)
  • mac 下 git svn 设置代理
  • 实时机票/火车票抓取系统整体架构
  • 我是伪程序员
  • asp.net实验一:hello world!
  • 0基础学习移动端适配
  • 4月23日世界读书日 网络营销论坛推荐《正在爆发的营销革命》
  • axios请求、和返回数据拦截,统一请求报错提示_012
  • create-react-app做的留言板
  • css选择器
  • Docker下部署自己的LNMP工作环境
  • E-HPC支持多队列管理和自动伸缩
  • JavaScript HTML DOM
  • JavaScript 无符号位移运算符 三个大于号 的使用方法
  • JAVA之继承和多态
  • Mac 鼠须管 Rime 输入法 安装五笔输入法 教程
  • React 快速上手 - 07 前端路由 react-router
  • Sublime Text 2/3 绑定Eclipse快捷键
  • VirtualBox 安装过程中出现 Running VMs found 错误的解决过程
  • vue和cordova项目整合打包,并实现vue调用android的相机的demo
  • Vue全家桶实现一个Web App
  • zookeeper系列(七)实战分布式命名服务
  • 初识 webpack
  • 搭建gitbook 和 访问权限认证
  • 解析 Webpack中import、require、按需加载的执行过程
  • 面试总结JavaScript篇
  • 前端每日实战:70# 视频演示如何用纯 CSS 创作一只徘徊的果冻怪兽
  • 通信类
  • 国内开源镜像站点
  • ​无人机石油管道巡检方案新亮点:灵活准确又高效
  • (c语言版)滑动窗口 给定一个字符串,只包含字母和数字,按要求找出字符串中的最长(连续)子串的长度
  • (HAL)STM32F103C6T8——软件模拟I2C驱动0.96寸OLED屏幕
  • (ibm)Java 语言的 XPath API
  • (vue)页面文件上传获取:action地址
  • (ZT)薛涌:谈贫说富
  • (八)光盘的挂载与解挂、挂载CentOS镜像、rpm安装软件详细学习笔记
  • (笔试题)分解质因式
  • (二)windows配置JDK环境
  • (分布式缓存)Redis哨兵
  • (附源码)ssm高校实验室 毕业设计 800008
  • (附源码)计算机毕业设计SSM疫情社区管理系统
  • (官网安装) 基于CentOS 7安装MangoDB和MangoDB Shell
  • (力扣记录)1448. 统计二叉树中好节点的数目
  • (三)docker:Dockerfile构建容器运行jar包
  • (十一)c52学习之旅-动态数码管