【本文链接】

1. 以下是一颗平衡二叉树,请画出插入键值3以后的这颗平衡二叉树。

分析:考察平衡二叉树的基本操作,插入3变成不平衡,需要节点5右旋一次,节点2左旋一次。。

2. 表达式X=A+(B*(C-D))/E的后缀表示形式可以是 XABCD-*E/+=

如何快速解答,增加括号。

3. 对于一个内存地址是32位、内存页是8KB的系统。0X0005F123这个地址的页号与页内偏移分别是多少。

0x5F123/8K=a*8k+b,页号是a,页内偏移量应该是b。

4. 如果X大于0并小于65536,用移位法计算X乘以255的值为: 255x=256x-x =   (X<<8)-X

5. 一个包含n个节点的四叉树,每个节点都有四个指向孩子节点的指针,这4n个指针中有  4n-(n-1)=3n+1   个空指针。

6. 以下两个语句的区别是:第一个动态申请的空间里面的值是随机值,第二个进行了初始化,里面的值为0

int *p1 = new int[10];
int *p2 = new int[10]();

7. 计算机在内存中存储数据时使用了大、小端模式,请分别写出A=0X123456在不同情况下的首字节是,大端模式:0X12 小端模式:0X56 X86结构的计算机使用 小端 模式。

一般来说,大部分用户的操作系统(如windows, FreeBsd,Linux)是小端模式的。少部分,如MAC OS,是大端模式 的。

8. 在游戏设计中,经常会根据不同的游戏状态调用不同的函数,我们可以通过函数指针来实现这一功能,请声明一个参数为int *,返回值为int的函数指针:

int (*fun)(int *)

9. 头文件中ifndef / define / endif 是做什么用的?防止该头文件被重复引用

10. 写出输出:char array[] = “abcde”; char* s = array;

cout<<sizeof(array)<<strlen(array)<<sizeof(s)<<strlen(s);

答案:6545

11. stable排序有InsertionSort,BubbleSort,MergeSort,CountSort,RadixSort

12. 为什么对于n非常大的时候,堆排序的效率不如快排?

堆排序时,i 2i都是非常大的,要经常跨越长内存,甚至跨越缓存影响效率,而快排始终是在一个小范围内,而且越来越小。

13. [0,2,1,4,3,9,5,8,6,7]是以数组形式存储的最小堆,删除堆顶元素0后的结果是:
A. [2,1,4,3,9,5,8,6,7]

B. [1,2,5,4,3,9,8,6,7]

C. [2,3,1,4,7,9,5,8,6]

D. [1,2,5,4,3,9,7,8,6]

提示:最后一个元素7和0替换,然后将较小的child替换上去直到OK。

14. 在公司局域网上ping www.taobao.com没有涉及到的网络协议是()

A、ARP B、DNS C、TCP D、ICMP

DNS是将域名www.taobao.com映射成主机的IP地址,ARP是将IP地址映射成物理地址,ICMP是报文控制协议,由路由器发送给执行ping命令的主机,而一个ping命令并不会建立一条TCP连接,故没有涉及TCP协议。

15 http属于(应用层)协议,ICMP属于(网络层)协议。
16. 深度为k的完全二叉树至少有(2^(k-1))个结点,至多有(2^k-1)个结点。
17. 字节为6位的二进制有符号整数,其最小值是(-32)。

18. 设有28盏灯,拟公用一个电源,则至少需有4插头的接线板数(9)个。

第一个板4个口,此后每增加1个板会消耗1个原来的口,总的只增加3个口,故N个接线板能提供 1+3*N个电源口。

19 一台指针式钟表的时钟和分钟的指向重合的时间间隔是__。

A.720/13分钟 B. 720/11分钟 C. 60分钟D. 以上都不正确

【分析】时针60分钟走1/12*2π的弧度,V(时针)= 1/12*2π/60 (rad/min);分针60分钟走2π的弧度,V(分针)= 2π/60 (rad/min);假设从重合开始经过了T时间又重合了,则满足:V(时针)*T+2π=V(分针)*T。

20. 已知一个线性表(38,25,74,63,52,48),假定采用散列函数h(key) = key%7计算散列地址,并散列存储在散列表A【0....6】中,若采用线性探测方法解决冲突,则在该散列表上进行等概率成功查找的平均查找长度为(C

A、1.5                  B、1.7                           C、2.0                       D、2.3

依次进行取模运算求出哈希地址:

A

0

1

2

3

4

5

6

记录

63

48

38

25

74

52

查找次数

1

3

1

1

2

4

74应该放在下标为4的位置,由于25已经放在这个地方,所以74往后移动,放在了下标为5的位置上了。

由于是等概率查找,所以结果为:1/6*(1+3+1+1+2+4)= 2.0

21.(B)设计模式将抽象部分与它的实现部分相分离。

A、Singleton(单例)                                      B、 Bridge(桥接)

C、 Composite(组合)                                   D、 Facade(外观)

22、typedef char *String_t; 和 #define String_d char * 这两句在使用上有什么区别?
答:typedef char *String_t 定义了一个新的类型别名,有类型检查。

而#define String_d char * 只是做了个简单的替换,无类型检查,前者在编译的时候处理,后者在预编译的时候处理。
同时定义多个变量的时候有区别,主要区别在于这种使用方式String_t  a,b;  String_d  c,d;    a,b ,c都是char*类型,而d为char类型
由于typedef还要做类型检查。。#define没有,所以typedef比#define安全。

23、OFFSETOF(s, m)的宏定义,s是结构类型,m是s的成员,求m在s中的偏移量。

#define OFFSETOF(s,m) ((int)&(((s*)0)->m))

24. 为了某项目需要,我们准备构造了一种面向对象的脚本语言,例如,对所有的整数,我们都通过Integer类型的对象来描述。在计算“1+2”时,这里的“1”,“2”和结果“3”分别为一个Integer对象。为了降低设计复杂度,我们决定让Integer对象都是只读对象,也即在计算a=a+b后,对象a引用的是一个新的对象,而非改a所指对象的值。考虑到性能问题,我们又引入两种优化方案:(1)对于数值相等的Integer对象,我们不会重复创建。例如,计算“1+1”,这里两个“1”的引用的是同一个对象——这种设计模式叫做(享元模式);(2)脚本语言解析器启动时,默认创建数值范围[1,32]的32个Integer对象。现在,假设我们要计算表达式“1+2+3+…+40”,在计算过程需要创建的Integer对象个数是(40)。

分析:1到7以及他们的和是不用创建的,从8开始,28(是1到7的和)+8=36,36需要创建,36+9=45,45需要创建…依次类推,在加数是32之前(含32)需要创建的对象是32-8+1=25,某数+32=某数之后33至40所表示的加数也要创建,这样有8个加数 + 8个和,共有16个数需要创建,注意,加数中包含36,这个我们已经创建了,所以有25+8+8-1=40个数的对象需要创建。

n   sn

[1,7] no   [1,3,....28]  no

[8,32] no [36,45,...] yes

[33,40] yes [561,...] yes

总共25+8+8-1=40个

25 由9,2,5,7,构造一个Huffman树,带权路径长度为 9*1+2*3+5*3+7*2 = 44

提示:每次选取最小的2个节点组成一个新的节点。

26 Linux中进入目录都要x权限(执行权限),查看目录下的文件需要r权限(读权限)和x权限,因为相当于进入了目录。执行目录下某个可执行文件,需要进入目录的x权限,以及对该执行文件的x权限。

27 下面哪种排序法对12354最快? 
   A. quick sort 
   B. buble sort 
   C. merge sort

已经部分排序,bubbleSort只需要交换一次即可。

BubbleSort比较相邻元素a和b,如果a>b那么交换,这样一趟下来,最大的元素就到升到了最后。

28 依赖:用到了别人的方法或变量;关联:对称的,好比你是我的朋友,我也是你的朋友;

聚合:非对称的,员工与公司就是聚合关系,还有一个重要特点就是生命周期可以不同,员工离开了公司还是可以活的;组合:生命周期一致,好比人与心脏,一个没了另一个也没了。强度:依赖<关联<聚合<组合。

29 有两个线程,最初 n=0,一个线程执行 n++; n++; 另一个执行 n+=2; 问,最后可能的 n 值?()

A. 1 
B. 2 
C. 3 
D. 4

解析:大家要知道 C语言中的 ++ 和 += 并不是原子操作,而是通过多条微程序组成的,因此 ++ 和 += 在执行过程中可能被中断的

第一种可能情况:现在假设两个线程没有并行顺序执行的那么结果显然是 4。

第二种可能情况:再假设现在第一个n++ 已经执行完了  但是结果还没有写回内存 这个时候 n+=2 已经全部执行完 2 写进了内存 结束 然后回到n++的写回操作 这个时候内存就从2被改回1了,后面再来一次n++  结果就为2。

第三种可能情况: 第n+=2 先读取n的值到寄存器 即0入寄存器 这个时候被中断   第一个n++开始执行 并直到结束 内存被改成了1 ,然后 n+=2 继续执行 结束后内存变为2  第二个n++再执行 结果就是3

30 一棵二叉树的先序遍历是 f b a c d e g h,中序遍历是 a b d c e f g h,问后序遍历是什么

答案:adecbhgf

解析:根据先序遍历和中序遍历,我们可以构建一颗二叉树:

31  在一个 big endian 的 32 位的计算机上,b 的结果是______

unsigned int a = 0x1234;
char b = *((char*)&a);

答案:0

解析:unsigned int是 4 个字节,0x1234 的完整表示是 0x 00 00 12 34,因为是 big endian,所以,所以 &(取地址) 的话,如果当字节看的话,取到了最左边 00 字节的地址,一定要转换成 char 看的话,值就是 0。

32 select foo,count(foo) from pokes where foo>10 group by foo having count(*)>5 order by foo

SQL Select语句完整的执行顺序:

1、from子句组装来自不同数据源的数据;
2、where子句基于指定的条件对记录行进行筛选;
3、group by子句将数据划分为多个分组;
4、使用聚集函数进行计算;
5、使用having子句筛选分组;
6、计算所有的表达式;
7、使用order by对结果集进行排序。

因此 合理的答案应该为 from --where-- group by-- having --select-- order by

只有select选出了相应的表 才能对其排序,删除之类的操作

33 UNIX系统中,目录结构采用(带链接树形目录结构)

34 避免死锁的一个著名算法是(银行家算法)

35 怎么理解分配延迟? dispatch lantency 分配器停止一个进程到开启另一个进程的时间

36 入栈出栈顺序问题,卡特兰数:n=5,那么h(5) = C(2n,n)/(n+1) = 42

37 a+b*(c-d)/e-f的逆波兰式是:abcd-*e/+f-

38 计算 a^b << 2  ===>  a^(b<<2)

移位运算<< >>优先级高于位运算& | ^。

39 不使用其他变量,交换两个整型a,b的值
  答案:x = x+y; y = x-y; x = x-y
40、写出float x 与“零值”比较的if语句。
  if(x>=0.000001 && x<=-0.000001)(x不为0的比较)
  float: 6位精度
  double: 16位精度

转载于:https://www.cnblogs.com/hellogiser/p/interview-questions-quickstart.html

常见计算机基础笔试题总结quickstart相关推荐

  1. Android开发面试经——2.常见Android基础笔试题

     标签: androidAndroid基础Android面试题Android笔试题 2015-03-12 15:04 3361人阅读 评论(3) 收藏 举报  分类: Android开发(29)  版 ...

  2. 计算机基础word简单面试题,Word、excel、PPT、计算机基础笔试题汇总

    Word.excel.PPT.计算机基础笔试题汇总 (31页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 29.9 积分 Word.excel.PPT. ...

  3. 常见Java基础笔试题之二

    1.什么是Java虚拟机?为什么Java被称作是"平台无关的编程语言"?  Java虚拟机是一个可以执行Java字节码的虚拟机进程.Java源文件被编译成能被Java虚拟机执行的字 ...

  4. 大学生计算机实验基础考试,大学生计算机基础考试试题

    大学计算机基础考试试题 一.选择题:(第1~50题每小题0.5分,第51~90题每小题1分,共65分) 下列各题[A].[B].[C].[D]四个选项中,只有一个选项是正确的,请将正确的选项涂写在答题 ...

  5. 常见JavaScript基础面试题上(附答案)

    常见JavaScript基础面试题上(附答案) 1.JavaScript有哪些垃圾回收机制? 有以下垃圾回收机制. 标记清除( mark and sweep) 这是 JavaScript最常见的垃圾回 ...

  6. 计算机基础知识判断题答案,计算机基础知识试题及答案判断题模板.docx

    优质文档 PAGE 页码页码/NUMPAGES 总页数总页数 计算机基础知识试题及答案判断题(一) 1. 冯?诺依曼原理是计算机的唯一工作原理..( × ) 2. 计算机能直接识别汇编语言程序..( ...

  7. 计算机基础判断试题及答案,计算机基础知识试题及答案判断题

    <计算机基础知识试题及答案判断题>由会员分享,可在线阅读,更多相关<计算机基础知识试题及答案判断题(2页珍藏版)>请在人人文库网上搜索. 1.计算机基础知识试题及答案判断题(一 ...

  8. 大学计算机相关基本知识,大学计算机基础知识试题

    大学计算机基础知识试题 导语:大学的计算机课程是要考级的,下面是小编收集整理的大学计算机基础知识试题,欢迎参考! 第一套 1.计算机的五大基本部件为__运算器_____.存储器.__控制器______ ...

  9. 2017计算机基础知识试题及答案,2017计算机基础知识试题及答案

    计算机基础知识与计算机公共基础知识并不同,考试时各占10分!以下是小编为大家整理的2017计算机基础知识试题及答案,希望能够帮助到大家哦! 1.计算机的主机是由____和____组成. 解答:计算机的 ...

  10. 计算机基础知识判断题答案,计算机基础知识试题及答案判断题

    计算机基础知识试题及答案判断题(一) 1.冯?诺依曼原理是计算机的唯一工作原理.(×) 2.计算机能直接识别汇编语言程序.(×) 3.计算机能直接执行高级语言源程序.(×) 4.计算机掉电后,ROM中 ...

最新文章

  1. (连续)周期信号的傅里叶级数(FS)
  2. 编程珠玑第七章 粗略估算
  3. 中国滤清器制造行业竞争格局分析与发展战略规划研究报告2022年版
  4. 基于函数计算的游戏打包最佳实践
  5. 【Android开发】NDK开发(3)-jni开发技巧
  6. 安阳师范学院计算机与信息工程学院吴琴霞,基于甲骨文字形动态描述库的甲骨文输入方法...
  7. 手机电池余量 java,用Java获取电池电量
  8. java apache commons_使用java apache commons下载文件?
  9. 【算法】剑指 Offer 12. 矩阵中的路径
  10. 公司只有1个测试,领导却让我同时操作1000个手机号
  11. 一句代码错误,就要出差
  12. C++ STL sort 函数的用法(自定义排序函数)
  13. standard-version(发版与 Changelog 自动化)
  14. Hadoop加速器GridGain
  15. LTE相关协议2——下行峰值速率计算
  16. Adobe Photoshop 2021 22.1.1.138中文版(win/mac)
  17. 2021网站泛目录源码系统疯狂收录超快排名放在二级目录即可
  18. springboot+小程序老年人健康保障管理系统毕业设计源码302303
  19. 使用echarts 画地球 带lines3D 并有动画效果
  20. C# FileSystemWatcher文件监控

热门文章

  1. 手把手教你在Windows中配置Gradle环境
  2. 【渝粤题库】陕西师范大学500901 基础物理专题(力、热) 作业(专升本)
  3. 【渝粤题库】国家开放大学2021春2779植物病虫害防治基础题目
  4. Pandas系列(九)axis参数理解
  5. 32位的tetview and medit 在64bit的linux运行,有很多32bit的库没有安装,错误不断之解决办法。
  6. BZOJ3626 神思路的树链剖分+线段树维护
  7. [转][中文/英文]VC6 sp6补丁下载|VS6 sp6补丁下载 [防VC6卡死]
  8. WLC HA (for AP)?
  9. canvas的beginPath和closePath分析总结,包括多段弧的情况
  10. LeetCode 407. Trapping Rain Water II