程序员面试宝典(第4版) - 程序设计基本概念
本章节主要讲解程序设计基本概念,是程序员面试中非常重要的一部分。作为一个求职者或应届毕业生,公司除了对你的项目经验有所问询之外,最好的考量办法就是你的基本功,包括你的编程风格,你对赋值语句、递增语句、类型转换、数据交换等程序设计基本概念的理解。
赋值语句是程序设计中最基本的概念之一,包括变量的声明、赋值、类型转换等方面。下面是一个来自真实的笔试资料的面试例题:
面试例题1:Which of the following statements describes the results of executing the code snippet below in C++?
```c
int i = 1;
void main()
{
int i = i;
}
```
A. The i within main will have an undefined value.
B. The i within main will have a value of 1.
C. The compiler will not allow this statement.
D. The i within main will have a value of 0.
解析:这个问题考查了变量的作用域和赋值语句的使用。在 C++ 中,这种写法是完全合法的,但显然不合理。`int i = i;` 这一句,`i` 变量从声明的那一刻开始就是可见的了,`main()` 里面的 `i` 不是 1,因为它和 `main()` 外面的 `i` 无关,而是一个未定义值。
答案:A
面试例题2:What does the following program print?
```c
#include <iostream>
using namespace std;
int main(){
int x = 2, y, z;
x *= (y = z = 5); cout << x << endl;
z = 3; x == (y = z);
cout << x << endl;
x = (y == z);
cout << x << endl;
x = (y & z); cout << x << endl;
}
```
这个问题考查了赋值语句、逻辑运算符和位运算符的使用。需要注意的是,这个程序中有多个赋值语句,需要正确地分析每个语句的执行结果。
在面试中,这种类型的题目非常常见,考查了程序员对程序设计基本概念的理解和掌握程度。因此,作为一个程序员,需要牢固地掌握这些基本概念,并且能够正确地应用它们。
此外,在面试之前,你最好对你所掌握的程序概念知识有所复习,尤其是各种细致的考点要加以重视。只有这样,你才能更好地应对面试,并提高自己的竞争力。