《程序员面试宝典(第4版)》【迷你书】.pdfVIP

  • 22
  • 0
  • 约1.92万字
  • 约 20页
  • 2016-02-03 发布于山西
  • 举报

《程序员面试宝典(第4版)》【迷你书】.pdf

《程序员面试宝典(第4版)》【迷你书】

第 5章 程序设计基本概念 作为一个求职者或是应届毕业生,公司除了对你的项目经验有所问询之外,最好的考量 办法就是你的基本功,包括你的编程风格,你对赋值语句、递增语句、类型转换、数 据交换等程序设计基本概念的理解。当然,在考试之前你最好对你所掌握的程序概念知识有 所复习,尤其是各种细致的考点要加以重视。以下的考题来自真实的笔试资料,希望读者先 不要看答案,自己解答后再与答案加以比对,找出自己的不足。 5.1 赋值语句 面试例题1 :Which of the following statements describe the results of executing the code snippet below in C++? (下列C++代码的输出结果是什么?)[台湾某著名杀毒软件公司2010 年7 月笔试 题] C/C++ code int i = 1; void main() { int i = i; 程序员面试宝典(第 4 版) } A. The i within main will have an undefined value. (main()里的i 是一个未定义值) B. The i within main will have a value of 1. (main()里的i 值为1 ) C. The compiler will not allow this statement. (编译器不允许这种写法) D. The i within main will have a value of 0. (main()里的i 值为0 ) 解析 :当面试者看到int i=i;时,也许第一反应就是怎么有这么诡异的代码?但是在C++ 中这样做是完全合法的(但显然不合理)。int i = i ,i 变量从声明的那一刻开始就是可见的了, main()里的i 不是1 ,因为它和main()外的i 无关,而是一个未定义值。 答案 :A 面试例题2 :What does the following program print? (下面程序的结果是多少?)[中国台湾某著 名计算机硬件公司2005 年12 月面试题] #include iostream x =(y==z); cout x endl; using namespace std; x =(yz); cout x endl; int main() x =(yz); cout x endl; { y=4; x=(y|z); cout x endl; int x=2,y,z; x=(y||z); cout x endl; x *=(y=z=5); cout x endl; return 0; z=3; } x ==(y=z); cout x endl; 解析: x *=(y=z=5)的意思是说5 赋值给z ,z 再赋值给y ,x=x*y ,所以x 为2*5=10。 x ==(y=z) 的意思是说z 赋值给y ,然后看x 和y 相等否?不管相等不相等,x 并未发生 变化,仍然是10。 x =(y==z)的意思是说首先看y 和z 相等否,相等则返回一个布尔值1 ,不等则返回一个布尔 30

文档评论(0)

1亿VIP精品文档

相关文档