- 22
- 0
- 约1.92万字
- 约 20页
- 2016-02-03 发布于山西
- 举报
《程序员面试宝典(第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
您可能关注的文档
最近下载
- 船舶柴油机装配与调试章节及期末答案.docx VIP
- FOCUS-PDCA原理及流程完整版.pptx VIP
- 整顿劳动纪律实施方案.docx VIP
- 深度解析(2026)《YCT 223.1-2014 特种滤棒 第 1 部分:醋纤沟槽滤棒》.pptx VIP
- 2025年新疆中考语文第二次模拟考试(附答案) .pdf VIP
- 冀教版(新教材)七年级下册英语Unit 5《Our neighbourhood》Lesson 1教学课件.pptx
- 2024年中考模拟试卷语文(新疆卷).docx VIP
- 立足教材开展小学音乐跨学科学习的方式与路径.docx VIP
- 2024新疆中考模拟语文试题(附参考答案) .pdf VIP
- 煤矿劳动纪律整顿实施方案.docx VIP
原创力文档

文档评论(0)