前 50 个必须知道的编程面试问题和答案
软件公司一直在寻找优秀的编程人才,电话和在线面试通常会在几分钟内决定你的命运。
一个优秀的程序员需要尽可能多才多艺——从系统理解到一般编程、不同的概念和技术,以及与时俱进。
以下是 50 个顶级编程面试问题及其答案的列表。 他们阐明了每个初学者必须知道才能脱颖而出的各种概念。
1. 什么是计算机编程?
计算机编程是对要由计算机执行的逻辑过程进行编码的过程。 这是通过使用包含必要指令的计算机语言来完成的。
该过程可以进一步分为设计、编码、调试和更新。
2.什么是调试?
调试是在计算机程序的软件源中发现和消除错误的过程。 有很多方法可以解决这个问题,但大多数开发环境都带有一个集成调试器,以使事情变得更容易。
3. 什么是编译器?
编译器是一种软件程序,它将编写的程序转换为计算机可以理解的机器代码。
然而,典型的编译器包由预处理器、将计算机语言转换为汇编代码的主编译器和汇编器组成。
4. 什么是预处理器?
预处理器是一个程序,它分析编写的计算机代码以查找并满足其依赖关系,例如所需的库。
在预处理器确保包括执行环境在内的一切都正常之后,编译器可以将代码转换为汇编代码。
5. 什么是汇编程序?
汇编程序是一种程序,它采用最低级别的人类可读计算机代码(称为汇编语言)并将其转换为计算机可以使用的机器代码。
汇编语言通常由编译器输出,尽管也可以直接编码。 汇编程序可能包含以下代码:
MOV啊,02H
但是当你将它编译成机器代码时,你只会得到零和一(例如0110011110101010)。
6. 程序如何执行?
首先,操作系统将指定程序从硬盘存储加载到系统内存(RAM)中,然后通过指示CPU从程序的第一个内存地址继续执行来允许它执行。 CPU 执行它看到的任何命令,然后移动到下一个命令,通常每秒重复此过程数百万次。
32 位 CPU 一次执行 32 位(4 字节,双字)指令,而 64 位 CPU 一次执行 64 位(8 字节,四字)指令。 这些指令内置在 CPU 中,汇编程序将编程代码转换为表示本机 CPU 命令地址的二进制数。
7. 定义一个 子程序
子程序是程序中的一系列指令,可以随时调用和执行。换句话说,子程序可以是函数、方法或过程,用于执行特定任务,例如发送 发邮件至、打开文件或强行破解登录页面。
8.定义 机器码
机器代码是一个二进制数序列,其中包含特定微处理器的执行指令及其相关的内存地址。
机器代码传统上由专为该特定微处理器系列设计的汇编程序输出。
9. 解释 编译语言与解释语言
已编译的计算机语言必须在计算机上执行之前转换为机器代码,而解释型语言不需要事先编译。
当你执行一个解释程序时,它首先由一个解释器处理,然后编译并即时执行它。 这些额外的步骤使 Python 等解释型语言比 C 等编译型语言慢。
10. 什么是循环?
循环是一种代码结构,它可以重复特定的语句,直到达到指定的标准。 该标准可以包括固定数量的重复或定义变量的变化。
11.列出流行的循环类型
不同的计算机语言将以不同的方式解释循环。 然而,流行的 C 系列循环类型包括:
- While() 循环 – 它允许执行特定代码,只要是布尔值 尽管() 条件满足。
举个例子 而(2> 1){打印(“雅虎!”)};。 - For(;;) 循环 – 包含三个表达式 (初始化; 评估; 更新) 定义要测试的条件,以及增加计数的灵活方法。 它还将至少执行一次代码。
- 执行{} While() 循环 – 这种类型的循环执行 做{} 在确定是否 尽管() 条件仍然成立。
12. 解释迭代 vs 递归
迭代是使用循环来执行相同的代码步骤,而递归是函数一遍又一遍地调用自身的过程。 然而,递归的问题在于,在遇到内存问题之前,您只能达到一定的深度。
13. 解释工作 中断并继续 在一个循环中
A 打破 语句结束循环的执行并继续执行计算机代码的其余部分。 一个 继续 另一方面,语句从头开始继续迭代循环。
14. 什么是面向对象?
OOP 代表面向对象编程,它是一种编程范式,它围绕数据和对象实现软件设计,而不是围绕函数或过程。
15. 什么是过程式编程?
过程式编程是一种编程范式,它围绕要执行的指令的序列或步骤组织计算机代码。 顾名思义,它是一种自上而下的方法,从事件的初始阶段开始代码,并以预期的事件结束结束。
16. 解释函数式编程
函数式编程是一种计算机编程范式,它 软件开发 通过应用既不改变所提供参数的状态也不改变数据的顺序函数。
目标是创建更强大的程序,以产生预期的结果而没有不可预见的副作用。
17. 解释 高级语言
高级编程语言是一种计算机语言,它更多地吸引人类理解,而不是计算机的细节或性质。
C 和 Python 等高级编程语言很容易理解,而低级汇编语言对于初学者来说可能会非常混乱。
18. 列出热门 低级语言
只有两种低级编程语言:汇编和机器代码。
19. 定义 SQL 注入攻击
SQL 注入攻击是在输入字段(例如用户名或地址输入)中输入 SQL 语句的过程,希望开发人员在编程期间没有正确清理输入。 如果成功,这种攻击使攻击者能够获得对服务器的管理员访问权限。
20. 什么是 SQL 中的表?
SQL 中的表是指按列和行分组的数据集合。 每列都有不同的数据类型,您可以在单个数据库中拥有多个表。 您还可以一次查询多个表。
您创建一个表:
CREATE TABLE table_name(column1 数据类型,column2 数据类型,column3 数据类型,...);
21.解释对象和类之间的区别
对象是类的实例,而类是创建对象的蓝图。 对象可以具有状态和属性,例如颜色、高度、重量、速度等。
这些属性至少必须定义或初始化为默认值。
22. 一兆字节有多少位?
8,000,000 兆字节中有 1 位,因为 8 字节是 10 位,而 XNUMX 兆是 XNUMX6.
23. 定义浮点数据类型
浮点数是一种数据类型,表示带有小数的数字。 它用于需要比标准整数提供的精度更高的情况。 一个浮点数的例子是:
0.013
or
25.932
24. HexaDecimal 0xFF 代表什么?
0xFF 代表 Decimal 255 或 Binary 11111111。0x 代表 base16 或 Hexadecimal 表示法,从 1 到 9 再接 A 到 F 表示 15。所以,0xF 是十进制 15,而 0xFF 是十进制 255。
25. 命名编程中的错误类型
计算机程序中有 3 种主要类型的错误,它们是:
- 语法错误
- 逻辑错误
- 运行时错误
26. 什么是语法错误?
当与编程语言通常严格的语法有偏差时,就会发生语法错误。 这可能是由于简单的字母错位导致传递给函数的错误参数造成的。 大多数编译器都会包含发生错误的源代码行号。
27. 什么是逻辑错误?
逻辑错误是由程序工作方式引起的错误。 因此,虽然程序可能完美地执行,但它无法实现其目的。 逻辑错误可能以多种方式发生,并且由多种原因引起。
28. 什么是运行时错误?
运行时错误是在程序执行期间由于不可预见的情况而发生的计算机程序错误。 因此,尽管程序可以完美运行,但内存和网络问题可能会导致程序运行异常。
29. 解释 强类型语言与弱类型语言
强类型语言对其不同的数据类型以及如何转换它们是严格的,而弱类型语言对数据类型及其定义的限制较少。
许多弱类型语言会自动转换数据类型,而强类型语言通常需要显式转换。
30.什么是MVC架构?
MVC 指的是 Model-View-Controller,是一种用户界面的软件开发模式。 它将程序逻辑分为 3 个部分。
这款 模型 部分处理相关对象的底层数据逻辑,而 查看 处理向用户显示的信息,以及 调节器 处理视图和模型之间的数据流。 MVC 设计经常与面向对象编程一起使用。
31. 定义一个 算法
算法是旨在解决特定问题的一系列程序。 这些程序通常被分解成更小的步骤,并且计算机每次都以这种方式完成它们。
算法示例包括 面部识别、谷歌搜索、系鞋带的方式、数据编码或加密等等。
32。 什么是 机器学习?
机器学习或 ML 是 人工智能 其重点是帮助系统通过消费数据来识别模式并自行做出决策。
这然后提高了他们的表现或效率。 机器学习系统可以是有监督的、无监督的和基于强化的。
33。 什么是 常用表达?
正则表达式或 Regex 是用于定义文本文档中的搜索模式的字符串。 不同的编程语言实现正则表达式或使用流行的正则表达式库。 匹配文本中所有字符的示例正则表达式是:
(.*)
而以下仅匹配 mp3 文件:
.+\.(mp3)$
34. 模数 (%) 运算符有什么作用?
模运算符 % 接受两个操作数并使用第二个操作数除第一个操作数。 然后它返回操作的剩余部分作为结果。
它通常用于通过将任何整数除以 2 来测试奇数和偶数,其中 0 结果表示偶数,1 表示奇数。
35. 解释 进程分叉
分叉来自 叉子() Unix 和 Linux 系统中的函数,可以被正在运行的进程用来创建自身的副本。 因此,进程分叉是一个进程的复制,以创建两个相似且同时执行的进程。
另一种分叉类型是获取 开放源码 项目 并以此创建一个全新的程序。
36. 解释 线程生成
线程生成是创建一个新的 CPU 线程来运行一个进程的过程。 计算密集型程序经常使用 Spawning 来利用处理器的多线程功能,它的成功取决于它运行的 CPU、它有多少内核以及它提供的每个内核有多少线程。
37. 做什么 保留字 意思?
保留字是不允许在编程语言中用作标识符的术语。 这包括函数、变量和标签。 它们被保留是因为它们已经被定义并具有特定的含义。
38.列出流行的保留字
不同的语言根据它们的语法有不同的保留字。 以下是编程中最流行的保留字:
- IF
- TRUE
- FALSE
- 开关
- ELSE
- CASE
- 布尔
- 返回
- 功能
- BREAK
- GOTO
39. 什么是字符串?
字符串是一系列字符,通常保存在数组中并用于定义文本数据。 最流行的字符串是“hello world”。
40.什么是变量?
变量是在程序执行期间可以更改的任何值。 变量可以是任何数据类型,包括字符串和整数。 例如,一个程序初始化如下:
整数= 0;
整数 b = 1;
然后在执行期间进行更改:
b = a+b; //b 变化了
41. 什么是常数?
常量是在程序执行过程中不会发生变化的变量。 一个很好的例子是光速或声速。 不同的编程语言允许您以不同的方式定义常量。 例如,在 C 中:
常量浮动 middle_c = 261.62; //钢琴的中调 c 是 261.6255 Hz
42. 定义一个数组
数组是一种变量,用于一次存储多个值。 许多语言只允许您存储相似数据类型的值,而其他语言可以处理不同类型的数组。 您还可以拥有多维数组,它们是数组的数组,可能会变得混乱。
在 mql4 中定义一个数组很简单:
字符串文本数组[100]; //一百个字符串的数组
43。 什么是 函数重载?
函数重载是一种允许开发人员定义多个具有相同名称但具有不同功能的函数的方法。 这是通过创建具有不同参数的不同函数版本来实现的。 然后编译器通过提供的参数的类型和数量知道需要哪个函数。
44. 定义一个 通过引用调用
引用调用是将参数的内存地址传递给函数的方法,与传递参数值副本的标准方法相反。 引用调用的目标是参数直接被函数修改。
45. 解释 算术运算符
这些是用于在编程语言中执行算术运算的特殊字符。 算术运算符包括:
- 加法或一元加号 (+)
- 减法或一元减法 (-)
- 乘法 (*)
- 分配 (/)
- 模数 (%)。
46. 解释 逻辑运算符
逻辑运算符是用于根据条件逻辑执行操作的单词或符号。 大多数语言只有 3 个逻辑运算符:
- AND (&& 在 C、C++、JavaScript 中)
- OR (|| 在 C、C++、JavaScript 中)
- 不是 (!在 C、C++、JavaScript 中)
47. 逻辑 1 与 0 =?
逻辑 1 AND 0 操作将为您提供 false 因为第二个操作数是 0 并且您需要 AND 运算的两个操作数都为 1 或 TRUE 才能获得正输出。
48. 逻辑非 1 =?
一个逻辑 NOT 1 操作会给你 false 因为 NOT 运算符会否定您给它的所有内容,这意味着它将 1 变为 0 并将 0 变为 1。因此,给它一个 1 或 TRUE 操作数会导致 0 或 FALSE。
49. 逻辑 1 与非 1 =?
逻辑 1 NAND 1 操作将产生 false 因为两个操作数都是 TRUE 并且 NAND 运算符总是否定两个相似的输入以产生相反的输出。
因此,如果操作是 0 与非 0, 那么输出将为 1 或 TRUE。
50. 逻辑 1 XOR 1 =?
逻辑 1 XOR 1 操作将产生 false 因为虽然正常的 OR 运算将在一个或两个输入为 TRUE 时产生 TRUE,但 XOR(异或)运算仅在只有一个输入而不是另一个输入为 TRUE 时才产生 TRUE。
总结
我们已经到达了这个前 50 个必须知道的编程面试问题及其答案列表的末尾。 正如你所看到的,编程的世界是广阔而令人兴奋的。
没有两次面试是相同的。 因此,虽然此列表为您指明了正确的主题方向,但您还应该尝试更好地理解每个问题。