【计算机面试题总结】计算机组成原理:概述篇

  • 计算机的发展历史大概可以分为几个阶段?每个阶段的计算机分别有什么特点?

四个阶段:电子管计算机、晶体管计算机、集成电路计算机、超大规模集成电路计算机。

  • 你了解“摩尔定律”吗?“摩尔定律”对现代计算机产生了什么影响?

摩尔定律:摩尔定律是由英特尔(Intel)创始人之一戈登·摩尔(Gordon Moore)提出来的。其内容为:当价格不变时,集成电路上可容纳的元器件的数目,约每隔18-24个月便会增加一倍,性能也将提升一倍。换言之,每一美元所能买到的电脑性能,将每隔18-24个月翻一倍以上。这一定律揭示了信息技术进步的速度。尽管这种趋势已经持续了超过半个世纪,摩尔定律仍应该被认为是观测或推测,而不是一个物理或自然法。

  • 你了解冯诺依曼机吗?你是否可以大概描述冯诺依曼机的基本组成和工作原理?冯诺依曼机相对于之前的计算机有什么重要改进?

冯诺依曼机有五大组成部分:输入设备、输出设备、运算器、存储器、控制器。冯诺依曼机把程序指令和运行数据存储起来,使得计算机从专用电路计算机发展成为通用电路计算机。

  • 什么是冯诺依曼瓶颈?冯诺依曼瓶颈对现代计算机产生了什么影响?

冯诺依曼瓶颈指的是存储器和运算器之间的访问速率差异巨大,使得计算机性能无法提升。现代计算机以存储器为核心,根据局部性原理设计了存储器的层次结构,大幅提升计算机性能。

  • 你了解程序解释和程序翻译吗?什么是编译型语言,什么是解释型语言呢?

编程语言可以分为解释型语言和编译型语言,程序解释指的是程序代码在运行时,逐行翻译成较低层次的编程语言去执行;程序翻译指的是程序代码在编译阶段提前翻译成较低层次的编程语言逻辑,在运行时直接运行。

  • 请你列举十种以上的编程语言,并分别分类他们属于什么类型的语言。

编译型语言:C、C++、Go、OC,解释型语言:Php、Python、Javascript、Perl、Lua,翻译+解释型语言:Java、C#、Kotlin等。

  • 你了解计算机的层次结构吗?今天的软件和硬件是怎么界定的。

计算机的层次结构划分是为了方便理解计算机的整一个体系,在不同书籍或领域会有不一样的划分,没有绝对的正确。今天的软件、硬件的划分以硬件电路为界限,从涉及硬件电路逻辑往下的都归为硬件,要注意软件和硬件的划分也是与时俱进的,今天的软件很可能明天就变成了硬件,比如以前编写硬件逻辑代码是软件,而随着高级编程语言的出现和成熟,现在编写硬件逻辑代码已经视为硬件部分了。

  • 请你尝试说明高级语言、汇编语言和机器语言的区别和联系?

高级语言是方便程序员描述程序逻辑的编程语言,与人类语言接近;汇编语言是方便程序员描述硬件逻辑的编程语言,与底层硬件接近;机器语言是方便计算机理解和运行的编程语言,一般程序员无法理解。

  • 请完成常见的容量换算公式:
    1). 1G = ( )Bytes
    2). 1Byte = ( )bits
    3). 一条内存条的容量大约2( )
    4). 一个磁盘的容量大约1( )
    5). 一个SSD的容量大约256( )

1024^3、8、GB、TB、GB。

  • CPU的速度一般使用什么做单位?它具有什么物理意义?

赫兹,是国际单位制中频率的单位,它是每秒中的周期性变动重复次数的计量。1Hz = 1/s,即在单位时间内完成振动的次数,单位为赫兹(1赫兹=1次/秒)。

  • 网络的速度一般使用什么做单位?

bps,比特率是指每秒传送的比特(bit)数。单位为 bps(Bit Per Second),比特率越高,每秒传送数据就越多。

  • 20世纪80年代以前的计算机是不支持输入中文的,当时的计算机使用的是什么编码集?

ASCII编码集。

  • ASCII编码集占用多少个字节?

ASCII有128个字符,占用7个比特位,扩展ASCII编码机占用8个比特位,一个字节。

  • ‘A’, ‘b’, 'C’对应的ASCII十进制数值分别是多少?

65、98、67。

  • 你可以使用你熟悉的语言将 72、96、108转换为ASCII码吗?

Python使用chr函数就可以将十进制数转换为ASCII码对应字符。


>>> chr(72)
'H'
>>> chr(96)
'`'
>>> chr(108)
'l'

C++使用 reinterpret_cast函数 将指向整数的指针转化为指向字符的指针,然后将字符指针输出即可。

void main() {
	int A = 74;
	int *sh = &A;
	char* pc = reinterpret_cast<char*>(sh);
	cout << *sh << endl;
	cout << pc << endl;
	system("pause");
}

  • 你知道Unicode编码和UTF-8编码的区别和联系吗?

Unicode全名为:统一码、万国码,是计算机科学领域里的一项业界标准。Unicode标准有不同的编码实现,比如UTF-8、UTF-16、UTF-32,也即是可以有多种规则来实现Unicode标准,比如UTF-8使用的是不定长字节表示Unicode字符,在表示高位Unicode字符时可以自动扩展,UTF-32使用的是定长4个字节表示Unicode字符。

  • 假设有10000个汉字,6000个日本字,3000个韩国字,1000个特殊字符,如果让你设计一套通用的编码集,请问每个字至少几个比特位?

10000+6000+3000+1000=19000个字符,最起码使用15个比特位,占2个字节。

  • 重要概念

摩尔定律
冯诺依曼机
冯诺依曼瓶颈
程序解释
程序翻译
高级语言
汇编语言
机器语言
计算机软件
计算机硬件
计算机的层次结构
计算机编码集

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Juicy B

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值