关于数据存储的三道面试题,你会吗?


每博一文案

想要活得自在,快乐就要学会简单做人,淡然处事人活一世,
草木一秋,不必时时与别人真上游行简单,人就自然没有忧愁,
何必总让烦恼踩下眉头,却上筋头人参,就像一叶扁舟,
装得越少才能越自在飘游。
我们总是爱追逐虚无缥缈的自由,以为所谓的成功就是什么都能拥有,
却总在追逐的过程中迷失了方向,忘记了真正重要的是精神的富有
其实幸福与否,从来不靠财富衡量,心里装了太多欲望,总会
有累的时候。
浮华转瞬皆成空,千金一德,一个好的心态全难求
一种米养百种人,自然会有人让你快乐。
有人让你难受,遇事宽容,别对他人有太多要求,少计较别人的对与错
多关注自身的得与失,宽容,才能看见生活不一样的美,坦然
面对那些是与非不值得关注的,别放在心上。
神念不满百,昌华千岁忧,已经过去的,何必执着还会到来的
何必担忧,总是左顾右盼,怎么能往前走,坦然面对一切,
管它什么烦恼忧愁,我自窥然不动,自在风流。————————————     一禅心灵庙语

文章目录

  • 关于数据存储的三道面试题,你会吗?
    • 每博一文案
    • 开胃菜
      • 解析:
      • 运行验证:
    • 中胃菜
      • 解析:
      • 运行验证:
    • 结胃菜
      • 解析:
      • 运行验证:
    • 举一反三
      • 解析:
      • 运行验证:
    • 最后:

话不多说,上菜

开胃菜

请问下面的 strlen 的结果输出是多少 ???

#include<stdio.h>
#include<string.h>int main()
{unsigned char arr[1000];int i = 0;for (i = 0; i < 1000; i++){arr[i] = -1 - i;}printf("strlen: %d\n", strlen(arr)); return 0;
}

解析:

  • 首先我们需要知道 strlen() 该函数的作用:

    • 作用就是:计算字符串的长度,结束的标志是:(‘\0’) 分隔符,计算到

      该分隔符,就停止了

    • 注意: ‘\0’ == 0 注意它们之间的关系:是相等的 ,’\0’ 其实就是数值 0 ,不过它是用来在字符中表示的 0 ,注意区别

    • 所以这里我们就可以得出一个strlen()结束的条件 就是 当arr[i] = 0 的时候

  • 明白char的范围和的图示表示


运行验证:


中胃菜

  • 下面代码显示的 结果:
#include<stdio.h>int main()
{int i = -20;unsigned int j = 10;printf("i+j = %d\n ", i + j);printf("i+j = %u\n", i + j);return 0;
}

解析:

  • 首先我们明白,数值的 存 是与我们定义的类型 (int , unsigned,char) 无关的,而是与它本身的类型 (正负) 有关的,数值是以 二进制补码的形式 存放到内存当中去的,取 是与我们定义的了类型 (int,unsigned,char) 有关:1. 在内存中取数值补码的范围 —— 是否存在截断 2. 看类型是有无符号 (unsigned ,signed) ,有符号:则补码转反码,再转原码显示; 无符号 : 则补码=反码=原码,直接显示

  • 数值以补码存放在内存中,我们同样使用的是 它们之间的 补码相加 :

  • 原码 补码的方式:原码 ——> 符号位不变,按位取反 反码,——> 反码 +1, 补码

  • 补码 原码的方式:和原码转补码的方式一样:补码——> 符号位不变,按位取反 反码,——>反码 +1 , 原码

  • 一般有符号位的和无符号位的计算 ——结果会整形提升至 无符号的

]


运行验证:


结胃菜

  • 下面的代码存在这什么问题 ?
  • 运行的结果是什么呢 ?

#include<stdio.h>
#include<windows.h>int main()
{unsigned int i = 0;for (i = 0; i >= 0; i--){printf("%u\n", i);printf("%d\n", i);Sleep(1000); // 暂停 1s}return 0;
}

解析:

  • 首先我们可以发现一点:unsigned int i = 0 , i 是一个无符号类型的,从上一题 中胃菜 中我们已经知道了,数值的 与我们自定义的类型(int unsigned)是无关的,而数值的 是才与 我们自定义的类型(int unsigned)有关的,
  • 这里是的 i 是无符号的 unsigned 的,以无符号的形式取出 i 并与 0 比较判断,其结果是 永远大于等于 0 的 ,因为:无符号是不存在 负值 的,符号位会被当作是数值加入计算显示
  • 所以无法退出循环 形成:无限循环

运行验证:


举一反三

  • 请看下面代码的结果是 ?
#include<stdio.h>
#include<windows.h>int main()
{unsigned int i = 0;for (i = 9; i >= 0; i--){printf("%d\n", i);printf("%u\n", i);Sleep(1000); // 暂停 1s}return 0;
}

解析:

  • 同样是 无符号的 出, i 是无符号的 unsigned 的,以无符号的形式取出 i 并与 0 比较判断,其结果是 永远大于等于 0 的 ,因为:无符号是不存在 负值 的,符号位会被当作是数值加入计算显示
  • 不过这里是从 9 开始减的

  • 无法退出循环 形成:无限循环

运行验证:

最后:

限于自身水平,其中存在的错误,希望大家给予指教,韩信点兵 —— 多多益善,谢谢大家,后会有期,江湖再见!

关于数据存储的三道面试题,你会吗?相关推荐

  1. 下列哪个可做 Android 数据存储,Android应用开发试题

    Android应用开发试题 一.选择题(每题2分,共30分) 1. 下列不是手机操作系统的是?()D A. Android B. Window Mobile C. Apple IPhone IOS D ...

  2. 2020 Java面试题最新(九数据存储篇)

    对于数据存储,数据库问题也有很多,列出一些大厂数据库的规范,以及一些面试官可能问到的问题 1.大厂MySQL规范 基础规范 表存储引擎必须使用 InnoDB 表字符集默认使用 utf8,必要时候使用 ...

  3. 以下用于数据存储领域的python第三方库是-南开《网络爬虫与信息提取》19秋期末考核题目【标准答案】...

    <网络爬虫与信息提取>19秋期末考核-0001 试卷总分:100 得分:70 一.单选题 (共 20 道试题,共 40 分) 1.如果很多爬虫同时对一个网站全速爬取,那么其实就是对网站进行 ...

  4. 重新加一个window_Activity、View、Window关系,进程间通信,责任链模式,Https,数据存储...

    码仔,今天就给大家带来了<每日一道面试题>的第九期: 01 理解Activity View window的关系 Activity像一个工匠(控制单元),Window像窗户(承载模型),Vi ...

  5. 数据存储(Po累Po累)

    目录 数据类型简介 数据存储(整型+浮点型) 整型存储 ​ 大小端 浮点型存储 实践练习 今天我们来了解一下数据在内存中是如何存储的 看看下面的代码可以算出结果嘛,如果不确定或是有不会的就请看完这篇博 ...

  6. 用户画像 | 标签数据存储之MySQL真实应用

    本文已收录github:https://github.com/BigDataScholar/TheKingOfBigData,里面有大数据高频考点,Java一线大厂面试题资源,上百本免费电子书籍,作者 ...

  7. 大数据技术之高频面试题

    转载请注明来源! 第一章 项目涉及技术 1.1 Linux&Shell 1.1.1 Linux常用高级命令 序号 命令 命令解释 1 top 查看内存 2 df -h 查看磁盘存储情况 3 i ...

  8. [Redux/Mobx] redux的数据存储和本地储存有什么区别?

    [Redux/Mobx] redux的数据存储和本地储存有什么区别? Redux存储的数据本质上都是JS变量,都是在内存中的,页面刷新就会消失 本质存储是像localStorage Cookie In ...

  9. 【300+精选大厂面试题持续分享】大数据运维尖刀面试题专栏(八)

    持续分享有用.有价值.精选的优质大数据面试题 致力于打造全网最全的大数据面试专题题库 71.Zookeeper的典型应用场景有哪些? 参考答案: Zookeeper是一个典型的发布/订阅模式的分布式数 ...

最新文章

  1. centos把mysql移到数据盘_Centos转移Mysql的数据位置
  2. Windows Phone 二、WP控件
  3. 近90%公司亏损,泡沫破裂期将至:对于AI投资人的耐心还多吗
  4. ValueError: Must have equal len keys and value when setting with an iterable
  5. 如何在 Spring 生态中玩转 RocketMQ?
  6. 我看360与酷派的“爱情”之争
  7. MySQL 5.7建表时date类型提示默认值类型错误的问题处理
  8. kali Linux/Linux 忘记root密码强行修理方法
  9. 面试官:请手写一个带取消功能的延迟函数,axios 取消功能的原理是什么
  10. Android平台RTMP/RTSP播放器开发系列之解码和绘制
  11. 你还不知道Redis 高延迟时发生了啥嘛?
  12. OpenGL:关于获取渲染结果的深度信息的问题
  13. C++ STL inner_product函数的使用方法
  14. matlab 2020b linux版本 下载
  15. 一个超好看的音乐网站设计与实现(HTML+CSS)
  16. 项目要求完成杀毒软件,可是为什么网上关于杀毒软件的资料那么少啊
  17. vb.net html图片,手把手教你VB.NET DataGrid图片显示
  18. 弘辽科技:淘宝开店可以卖不同类型产品吗?会有问题吗?
  19. 通信原理 | 波段的划分
  20. opengl freeglut flew glut安装配置教程 VS2019 Windows10,无需复制文件

热门文章

  1. 2018年9月24日的中秋之约--期限是2020中秋
  2. 简单了解APP黑暗模式
  3. 郑州计算机学校排名2019年排行榜,2021年郑州大学最新排名 全国最新排名
  4. html5 canvas+js实现ps钢笔抠图(速抠图 www.sukoutu.com)
  5. 【记录】RS-232串口通信个人理解
  6. 一起善行,助力乌龙泉小学生户外健康运动
  7. 大学英语四六级作文模板
  8. 安卓手机显示连接不上服务器,安卓手机无法连接服务器
  9. sidebar(侧边栏原理vue admin)
  10. Word排版:页眉不能对应每章标题、页脚偶数页消失等问题