一些有意思的面试题

2023-11-17

1、写一个高效C语言程序,计算一个无符号整数中1的个数。

for(count=0; x ; count++) x &= x-1;

同理,计算0的位数:

for(count=32; x ; count--) x &= x-1;


2、给定字符串S1和S2,写程序判断S2是否能由S1旋转而来,要求只能调用一次strstr系统函数。

void main()
{

    char *str1 = "wang";

    char *str2 = "angw";

    char *tmp = (char*)malloc(2*strlen(str1) + 1);
    sprintf(tmp, "%s%s", str1, str1);

    if (strstr(tmp, str2))

        cout<<"yes"<<endl;

    getchar();

}


3、IF条件中填入什么东西,能能让下面的程序打印出HelloWorld?

[cpp]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. if(<condition>)            
  2.     printf ("Hello");  
  3. else  
  4.     printf("World");  

if (!printf("Hello"))

    printf("Hello");

else

    printf("World");


4、只修改或添加一个字符,使下面的程序打印出20个*号。(至少有3种解法)

[cpp]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. int main()  
  2. {  
  3.     int i, n = 20;  
  4.     for (i = 0; i < n; i--)  
  5.         printf("*");  
  6.     return 0;  
  7. }  

解法1:

int main ( )
{
     int i , n = 20 ;
     for ( i = 0 ; i < n ; n -- )
         printf ( "*" ) ;
     return 0 ;
}

解法2:

int main ( )
{
     int i , n = 20 ;
     for ( i = 0 ; i < n ; i++ )
         printf ( "*" ) ;
     return 0 ;
}

5、写一个算法,反转字符串中的单词顺序。

例如:Hi Welcome to cricode 反转成 cricode to Welcome Hi


void main()
{
    string str("Hi Welcome to cricode");
    stack<char> cstack;
    stack<char> tmp;
    int index = 0;

    for (index = 0; index < str.size(); index++)
    {
        cstack.push(str[index]);
    }

    index = 0;
    while(!cstack.empty())
    {
        if (' ' == cstack.top())  //实验代码,未对标点符号做判断
        {
            while(!tmp.empty())
            {
                str[index++] = tmp.top();
                tmp.pop();
            }
            str[index++] = ' ';
            cstack.pop();
        }
        else
        {
            tmp.push(cstack.top());
            cstack.pop();
        }
    }

    while(!tmp.empty())
    {
        str[index++] = tmp.top();
        tmp.pop();
    }

    cout<<str<<endl;
    getchar();
}


6、100层楼,给你两个球,球的特性如下:如果你从这栋楼的某一小于X的楼层扔下这个球,球不会碎,如果你从大于等于X的楼层扔下,则球必定会碎。假设你能重复使用没有摔碎的球,请给定一个算法,用最少的扔球次数找出边界楼层X.

如果是两个玻璃球,最少次数m确定楼高为N的哪一层开始能使这个玻璃球摔碎这个问题,等价于求最小的m,使得 1+2+...+m >= N 。
假设N正好等于1+2+...+m,那么我觉得最优的策略就是第一个玻璃球扔在第m层,如果碎了,显然需要剩下的m-1层从底往上一一尝试,最坏情况就是m;假设m处没有碎,问题等价于楼高N'=1+2+...+(m-1)的地方同样的问题需要的次数m'+1 (1就是第一次在m层的尝试),根据我们的递归,容易得到N'对应需要的次数正好是m-1次,因此总次数也是m。

我们的二分应该倾向于不管失败还是成功,两种情况的总检测次数相等。因此这应该是最优的算法。

当然,当N不能表示成1+2+...+m使,我们只能找最小的m作为需要测试的次数。

至于100层楼,显然m=14,我们的第一次扔球应该分别在第14, 如果没碎继续在14+13=27,再没有碎则扔在第27+12=39层,以此类推。


7、A、B两座城市相距1000Km,我们有3000个香蕉要从A城市运往B城市,已知一头大象一次最多能运1000个香蕉,而且大象每次走1Km要吃掉一个香蕉,如果香蕉被吃完了,大象就不能再继续往前走。请问,你最终最多能运多少香蕉到B城市?

1000米设置一个回头点,是不可行的。1000米设置两个回头点A,B,也就是将1000米分成3段。设每段长度为从起点到A点X1,A点到B点X2,B点到终点X3,
X1+X2+X3=1000
在A点需要来回5次才能将3000的香蕉运到A点。那么A点有3000-5*X1的香蕉,
通过推理,3000-5*X1小于等于2000,
这样到B点 3000-5*X1-3*X2,这个值小于等于1000,
终点剩下3000-5*X1-3*X2-X3,根据上面的判断,如果都取等于的话:
X1=200;X2=334
最终剩下532。

注:其实X2取333,这时候剩余533个,注意这种情况下需要丢弃一根香蕉。


8、给你6跟等长的筷子,要求组成四个等边三角形,不允许折断或者弯曲筷子。

正四面体即可。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

一些有意思的面试题 的相关文章

  • 14:00面试,14:08就出来了,问的问题有点变态。。。。。。

    从小厂出来 没想到在另一家公司又寄了 到这家公司开始上班 加班是每天必不可少的 看在钱给的比较多的份上 就不太计较了 没想到5月一纸通知 所有人不准加班 加班费不仅没有了 薪资还要降40 这下搞的饭都吃不起了 还在有个朋友内推我去了一家互联
  • 不看后悔系列!Android面试经验分享,附经典题库+答案解析

    前言 近期 许多同学向我咨询关于Android技术岗位的招聘事宜 希望能够在求职过程中更好地准备 以冲击大厂 拿到高薪 作为首批Android开发者 我十余年来一直深耕Android及移动互联网开发领域 拥有丰富的面试和实战经验 在此 我想
  • Java面试八股文合集【Java基础,JVM,多线程,数据库(MySQL/Redis)SSM,Dubbo,网络,MQ,Zookeeper,Netty,微服务,大数据,算法,项目,设计模式等】

    一 JDK 和 JRE 有什么区别 JDK Java Development Kit Java开发工具包 JRE Java Runtime Environment Java运行环境 JDK中包含JRE JDK中有一个名为jre的目录 里面包
  • Java面试八股文及答案整理( 2023年 12月最新版,持续更新)

    一 Java 基础 1 JDK 和 JRE 有什么区别 JDK Java Development Kit 的简称 java 开发工具包 提供了 java 的开发环境和运行环境 JRE Java Runtime Environment 的简称
  • 【独家解析】腾讯产品面试题:为什么顺风车是一口价,快车、专车却不是?

    大家好 这里是小米 今天我要和大家聊一个有趣的话题 腾讯产品面试题中的一个经典问题 为什么顺风车是一口价 而快车 专车却不是 这可是个考察逻辑思维和商业洞察力的好问题哦 首先 我们来看一下这个问题的背后 是不是有一些微妙的商业逻辑呢 市场定
  • 外包干了2个月,技术退步明显.......

    先说一下自己的情况 大专生 18年通过校招进入武汉某软件公司 干了接近4年的功能测试 今年年初 感觉自己不能够在这样下去了 长时间呆在一个舒适的环境会让一个人堕落 而我已经在一个企业干了四年的功能测试 已经让我变得不思进取 谈了2年的女朋友
  • Flutter完整开发实战详解(二、 快速开发实战篇)

    作为系列文章的第二篇 继 Flutter完整开发实战详解 一 Dart语言和Flutter基础 之后 本篇将为你着重展示 如何搭建一个通用的Flutter App 常用功能脚手架 快速开发一个完整的 Flutter 应用 我们的目标是 前言
  • 【分布式算法】Gossip协议详解

    一 为什么需要 Gossip 协议 为了实现 BASE 理论中的 最终一致性原则 两阶段提交协议和 Raft 算法需要满足 大多数服务节点正常运行 原则 如果希望系统在少数服务节点正常运行的情况下 仍能对外提供稳定服务 这时就需要实现最终一
  • 自动化测试面试题(附答案)

    1 自动化代码中 用到了哪些设计模式 单例设计模式 工厂模式 PO设计模式 数据驱动模式 面向接口编程设计模式 2 什么是断言 Assert 断言Assert用于在代码中验证实际结果是不是符合预期结果 如果测试用例执行失败会抛出异常并提供断
  • 164页,2023新版《Java面试手册》,抓住机会向前冲

    小伙伴们 2023新版 Java面试手册 来啦 这本小册子总计164页 全都是面试中的高频题目 有兴趣的小伙伴们不妨来看一下 为上岸做一下准备 由于全部内容过多 下面截取部分内容截图 大家可以先来大体看一下 Java基础 由于平台文章篇幅限
  • 外包干了2个月,技术退步明显了...

    先说一下自己的情况 大专生 19年通过校招进入湖南某软件公司 干了接近4年的功能测试 今年8月份 感觉自己不能够在这样下去了 长时间呆在一个舒适的环境会让一个人堕落 而我已经在一个企业干了四年的功能测试 已经让我变得不思进取 谈了2年的女朋
  • 2024年一套超详细Java面试精华资料,让进大厂少走弯路

    在座的诸位有没有是自学Java的 有的话评论区给我扣个1看看 但凡自学过的同学都知道有多难 虽说现在互联网非常发达 不明白的上网一搜就有很多资料 不过大多质量不高 而且非常碎片化 实在很难梳理成一个可持续成长的体系 所以有了这篇文章 我结合
  • 2024 年最新版 Java 面试题及答案整理(纯干货,超详细)

    程序员一步入中年 不知不觉便会被铺天盖地的 危机感 上身 曾经的那个少年已经不在 时间就是这样公平 就算你能发明 Java 语言 随着时间的推移 你注定还是要成为慢慢变蔫的茄子 缓缓变黑的葡萄 看着春招就要来临的消息 吓得我周末赶紧拿出了面
  • 2024年最热门的15个科技工作岗位

    1 系统安全管理员 系统安全管理员的任务是确保公司的网络 数据和系统免受网络安全威胁 方法是确保有适当的安全战略并保持最新的合规性和策略 要求 应聘者应具有网络安全职位的工作经验 并对合规性和安全协议的最佳实践有坚实的基础 这个职位通常需要
  • 新入职一个00后卷王,每天加班到2点,太让人崩溃了····

    在程序员职场上 什么样的人最让人反感呢 是技术不好的人吗 并不是 技术不好的同事 我们可以帮他 是技术太强的人吗 也不是 技术很强的同事 可遇不可求 向他学习还来不及呢 真正让人反感的 是技术平平 却急于表现自己的人 每天加班到12点 在老
  • HarmonyOS 基于eTS高效开发HarmonyOS课程类应用

    随着HarmonyOS 3 0 Beta版的发布 API Version 8新增了大批JS eTS API接口 相信很多开发者已经迫不及待想体验基于eTS的HamronyOS应用开发 本期Codelab 我们将基于API Version 8
  • 程序员找工作难!拿到外包公司的 offer 我应该去么?

    引言 前一阵子有一个帖子引起了非常广泛的讨论 描述的就是一个公司的外包工作人员 加班的时候因为吃了公司给员工准备的零食 被公司的HR当场批评 这个帖子一发出来 让现在测试行业日益新增的外包公司备受关注 那么外包公司和非外包公司有什么样的不一
  • 史上最全Java面试八股文(带全部答案)2024年最新版

    今天要谈的主题是关于求职 求职是在每个技术人员的生涯中都要经历多次 对于我们大部分人而言 在进入自己心仪的公司之前少不了准备工作 有一份全面细致 面试题 将帮助我们减少许多麻烦 在跳槽季来临之前 特地做这个系列的文章 一方面帮助自己巩固下基
  • 最新整理Java面试八股文,大厂必备神器

    在看这篇文章之前 我想我们需要先搞明白八股文是什么 明清科举考试的一种文体 也称制义 制艺 时文 八比文 八股文章就四书五经取题 内容必须用古人的语气 绝对不允许自由发挥 而句子的长短 字的繁简 声调高低等也都要相对成文 字数也有限制 八股
  • 软件测试面试:还没有自动化测试项目经验,3个项目帮你走入软测职场!

    2024软件测试面试刷题 这个小程序 永久刷题 靠它快速找到工作了 刷题APP的天花板 CSDN博客 文章浏览阅读2 3k次 点赞85次 收藏11次 你知不知道有这么一个软件测试面试的刷题小程序 里面包含了面试常问的软件测试基础题 web自

随机推荐

  • 数字化转型常见的5种问题:除了意识和能力问题,还有什么?

    来源 数字化动态 编辑 谈数据 数字化转型需要投入 但不只是把技术武装到牙齿 更是需要把技术植入企业基因 开启一场长期的能力进化之旅 当企业思考预算之时 在CIO群体中有很多概念 如ERP 客户关系管理等 CIO年末向董事会 总经理报告新一
  • 【python】pyi文件

    简单做个记录 今天看代码的时候看到这样子一块 就是只有类型的声明 我不知道具体是怎么实现的 关于这个函数的上一级调用定义中 rnorm是通过那个只有申明类型的pyi文件得到的 我想查看细节但是不知道怎么看 百度了一下 pyi文件是存根文件
  • 【华为OD机试真题2023B卷 JAVA&JS】最长连续子序列

    华为OD2023 B卷 机试题库全覆盖 刷题指南点这里 最长连续子序列 知识点数组滑窗 时间限制 2s 空间限制 100MB 限定语言 不限 题目描述 有N个正整数组成的一个序列 给定整数sum 求长度最长的连续子序列 使他们的和等于sum
  • Node.js全网最详细教程(Node.js RESTful API)

    Node js RESTful API
  • python中类的属性(class attribute)的解释

    python中类的属性 class attribute 的解释 分类 python 着实被 dive into python 和 python简明教程 中对类的属性的介绍弄晕了 在经过了若干小时痛苦的想象和实践后 终于略有小成 写文一篇 帮
  • 入门it要学计算机组成原理,计算机语言入门先学什么?

    刚想开端计算机学习的小白不免会有这样的困惑 计算机言语入门先学什么 简略来讲 初学者需求先了解各种计算机言语 了解计算机组成原理 学习数据结构与算法 数据库 根底语法等等 这些都是有必要经历的根底学习阶段 下面我们来详细聊一聊这些根底学习内
  • 02. MAC地址 · ARP · ICMP · IP地址 · 子网 · 超网 · 端口

    MAC IP 子网 超网 MAC地址 MAC地址的表示格式 MAC地址操作 查看 修改 实践 MAC地址的获取 实践 ARP ICMP IP地址 子网掩码 IP地址的组成 IP地址的分类 A类地址 B类地址 C类地址 D类地址 E类地址 子
  • ElasticSearch的可视化应用 ElasticHD

    ElasticHD 详细介绍 ElasticHD 是一款 ElasticSearch的可视化应用 不依赖ES的插件安装 更便捷 导航栏直接填写对应的ES IP和端口就可以操作Es了 目前支持如下功能 ES Real time data se
  • curl命令怎么在没有token的情况下访问https请求-ChatGPT回答

    curl命令怎么在没有token的情况下访问https请求 ChatGPT回答 你可以使用curl的 k选项来忽略服务器证书的验证 这样就可以在不使用任何认证令牌的情况下访问https请求了 例如 curl k https example
  • UNIX网络编程读书笔记(四)第四章 基本TCP套接字编程

    文章目录 概述 socket函数 connect函数 bind函数 listen函数 accept函数 fork和exec函数 并发服务器 close函数 描述引用计数 getsockname和getpeername函数 小结 概述 TCP
  • JDBC 获取数据库连接的方式一,二

    获取方式一 通过实现Driver类的对象获取 使用此方式需要实现以下步骤 1 获取Driver实现类的对象 2 将用户名和密码信息封装在Properties中 3 获取连接 这样我们就获取到了java与数据库的连接 JDBC URL用于标识
  • 订阅消息发送47003

    订阅消息发送失败信息 errcode 47003 errmsg argument invalid data phrase4 value invalid rid 600a44c7 56086c1c 4f499b49 提示phrase4这个字段
  • Cypress笔记--隐式断言.should()和.and()方法详解

    should 作用 为当前对象做断言 语法 should 方法 预期 示例 cy get assertion table find tbody tr last should have class success find td first
  • vue3 无法导入vue-router 报错vue_router__WEBPACK_IMPORTED_MODULE_1__.default is undefined

    问题描述 报错vue router WEBPACK IMPORTED MODULE 1 default is undefined 在启动的时候 报错 export default imported as Vue was not found
  • 蓝图类

    感谢程序员的暴击 https www bilibili com video BV125411h7c4 p 17 这个例子说明了蓝图类的用法 而不是关卡蓝图 把蓝图类当作类就可以了 可以把蓝图类拖到场景多份 就像多个对象一样 蓝图类更加灵活
  • oracle和mysql的区别

    Oracle与MySQL的区别以及优缺点 MySQL的特点 1 性能卓越 服务稳定 很少出现异常宕机 2 开放源代码无版本制约 自主性及使用成本低 3 历史悠久 社区和用户非常活跃 遇到问题及时寻求帮助 4 软件体积小 安装使用简单且易于维
  • tp5 ueditor 请求后台配置项http错误,上传功能将不能正常使用 报错403解决

    百度的都尝试过了 对我没有用 时间有限 简单改了一下部分功能 大部分功能是可以用的 我重新改了一下 打开ueditor本目录下的ueditor confin js将serverUrl修改为您的上传接口 大约在33行左右 serverUrl
  • 【产品运营】如何提升B端产品竞争力(下)

    好产品不是能力内核 做好产品的流程才是 一 建立需求池和需求反馈渠道 需求池管理是B端产品进化最重要的环节 它的重要性远超产品设计 开发等其他环节 维护需求池有主动和被动两种 主动维护是产品经理在参与售前 迭代 交付 售后 竞品分析 老板沟
  • dell 台式机bios虚拟化_如何在BIOS中开启虚拟化技术

    虚拟化技术目前主要依赖于您电脑的CPU型号及BIOS 某些CPU或者BIOS暂时还不能支持虚拟化技术 支持虚拟化技术的可以在BIOS中开启 开启方法如下 1 进入BIOS 开机时按F2或F12或DEL或ESC等键 各电脑有所不同 2 进入B
  • 一些有意思的面试题

    1 写一个高效C语言程序 计算一个无符号整数中1的个数 for count 0 x count x x 1 同理 计算0的位数 for count 32 x count x x 1 2 给定字符串S1和S2 写程序判断S2是否能由S1旋转而