文库网
ImageVerifierCode 换一换
首页 文库网 > 资源分类 > DOC文档下载
分享到微信 分享到微博 分享到QQ空间

程序员面试宝典.doc

  • 资源ID:192379       资源大小:260KB        全文页数:35页
  • 资源格式: DOC        下载积分:20文币
微信登录下载
快捷下载 游客一键下载
账号登录下载
三方登录下载: QQ登录 微博登录
二维码
扫码关注公众号登录
下载资源需要20文币
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
如填写123,账号就是123,密码也是123。
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 
账号:
密码:
验证码:   换一换
  忘记密码?
    
友情提示
2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

程序员面试宝典.doc

1、第 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+ codeint i = 1;void main() int i = i;A.The i within main will have an undefined value. (main()里的 i是一个未定义值)B.The i within main wil

2、l 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面试例题

3、 2:What does the following program print?(下面程序的结果是多少?)中国台湾某著名计算机硬件公司 2005年 12月面试题#include using namespace std;int main() int x=2,y,z;x *=(y=z=5); cout using namespace std; int func(int x)int count = 0;while(x)count +;x=x return count; int main()cout using namespace std; int main()int a,x;for(a=0,x=0

4、;ausing namespace std; int main()int a,x;for(a=0,x=0;a main() int b=3; int arr=6,7,8,9,10; sint *ptr=arr; *(ptr+)+=123; printf( “%d,%dn “,*ptr,*(+ptr);A8 8 B130 8 C7 7 D7 8解析:C 中 printf计算参数时是从右到左压栈的。几个输出结果分别如下:printf( “%dn “,*ptr); 此时 ptr应指向第一个元素 6。*(ptr+)+=123应为*ptr=*ptr+123;ptr+,此时 ptr应指向第二个元素 7。p

5、rintf( “%dn “,*(ptr-1); 此时输出第一个元素 129,注意此时是经过计算的。printf( “%dn “,*ptr); 此时输出第二个元素 7,此时 ptr还是指向第二个元素 7。printf( “%d,%dn “,*ptr,*(+ptr); 从右到左运算,第一个是(+ptr),也就是 ptr+,*ptr=8,此时 ptr指向第三个元素 8,所以全部为 8。答案:A5.3 编程风格面试例题:We have two pieces of code , which one do you prefer, and tell why.(下面两段程序有两种写法,你青睐哪种,为什么?)美

6、国某著名计算机嵌入式公司 2005年 10月面试题A/ a is a variable写法 1:if( A=a ) a+;写法 2:if( a=A ) a+;B写法 1:for(i=0;i#include #include #include using namespace std;int main()float a = 1.0f; cout int main() unsigned int a = 0xFFFFFFF7; unsigned char i = (unsigned char)a; char* b = (char*) printf(“%08x, %08x“, i,*b); 解析:uns

7、igned int 变量赋值给 unsigned char变量时会发生字节截断(3 位和高于 3位的将被程序自动丢弃)。那么第二个数,也就是 char* b = (char*)上面等价于: unsigned int *p = /p中的内容是 a的地址,即 p指向 a char *b = (char *)p; /此处的强制转换只是使 b也指向 a而已 上面的步骤就是将一个 unsigned int 型的指针强制转换成一个 char型的指针。 所以请注意:这里是 char类型的指针转换,而不是 char类型的转换。这样转换后,假设 a的地址是 x: p + 1 = x + 1*sizeof(int

8、) = x + 1* 4 = x + 4; b + 1 = x + 1*sizeof(char) = x + 1* 1 = x + 1; 影响的是指针的寻址。答案:000000f7,fffffff7。扩展知识C+定义了一组内置类型对象之间的标准转换,在必要时它们被编译器隐式地应用到对象上。隐式类型转换发生在下列这些典型情况下。1在混合类型的算术表达式中在这种情况下最宽的数据类型成为目标转换类型,这也被称为算术转换(Arithmetic Conversion),例如:int ival = 3;double dval = 3.14159;/ ival被提升为 double类型:3.0ival +

9、dval;2用一种类型的表达式赋值给另一种类型的对象在这种情况下目标转换类型是被赋值对象的类型。例如在下面第一个赋值中文字常量 0的类型是 int。它被转换成 int*型的指针表示空地址。在第二个赋值中 double型的值被截取成 int型的值。/ 0 被转换成 int*类型的空指针值int *pi = 0;/ dval 被截取为 int 值 3ival = dval;3把一个表达式传递给一个函数,调用表达式的类型与形式参数的类型不相同在这种情况下目标转换类型是形式参数的类型。例如:extern double sqrt( double );/ 2 被提升为 double类型 2.0cout using namespace std; int main() unsigned char a=0xA5; unsigned char b=a4+1;/cout 4,在计算这个表达式的时候,编译器会先把 a和 4的值转换为 int类型(即所谓整数提升)后再进行计算,当计算结果出来后,再把结果转换成 unsigned char赋值给 b。


注意事项

本文(程序员面试宝典.doc)为本站会员(志在邹)主动上传,文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知文库网(点击联系客服),我们立即给予删除!




关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

文库网用户QQ群:731843829  微博官方号:文库网官方   知乎号:文库网

Copyright© 2025 文库网 wenkunet.com 网站版权所有世界地图

经营许可证编号:粤ICP备2021046453号   营业执照商标

1.png 2.png 3.png 4.png 5.png 6.png 7.png 8.png 9.png 10.png