当前位置:文档之家› 腾讯面试题—附答案

腾讯面试题—附答案

本文由长春治疗白癜风医院 / 收集,转载请注明出处
本文由长春治疗白癜风医院 / 收集,转载请注明出处
if(x>=0.000001 && x<=-0.000001)(x 不为 0 的比较) float: 6 位精度
本文由长春治疗白癜风医院 / 收集,转载请注明出处
腾讯面试题—附答案
1. 1-20 的两个数把和告诉 A,积告诉 B,A 说不知道是多少, B 也说不知道,这时 A 说我知道了,B 接着说我也知道了,问这两个数是多少? 2 爸爸,妈妈,妹妹,小强,至少两个人同一生肖的概率是多少? 3, 计算 a^b << 2 4 如何输出源文件的标题和目前执行行的行数? 5 a[3][4]哪个不能表示 a[1][1]: *(&a[0][0] 5) *(*(a 1) 1) *(&a[1] 1) *(&a[0][0] 4) 6 fun((exp1,exp2),(exp3,exp4,exp5))有几个实参? 7. 希尔 冒泡 快速 插入 哪个平均速度最快? 8. enum 的声明方式 9. 频繁的插入删除操作使用什么结构比较合适,链表还是数组? 10. *p=NULL *p=new char[100] sizeof(p)各为多少? 11. 顺序查找的平均时间 12. for(i=0,sum=0; i<10; i,sum =i);的运行结果 13. 不能做 switch()的参数类型是: 14.不使用其他变量,交换两个整型 a,b 的值 15. 写出 float x 与“零值”比较的 if 语句
8. 答案:enum 枚举类型名 { 枚举常量 1, 枚举常量 2, … 枚举常量 n }; For example: enum weekday { sunday, monday, tuesday, wednesday, thursday, friday, saturda y}; enum weekday week_day;//week_day 就是一个枚举类型变量
以上给出的分析是假设这两个数是可以相同的。 如果认为这两个数不同,那又应该是哪两个数呢? 还是按照上面的步骤来进行分析:
本文由长春治疗白癜风医院 / 收集,转载请注明出处
本文由长春治疗白癜风医院 / 收集,转载请注明出处
9. 答案:链表 10. 答案:都为 4。因为都是指针类型,所占存储空间必然为 4。 11. 答案:(1 2 3 … n)/n = (n 1)/2 12. 答案:sum = 55 13. 答案:switch 的参数不能为浮点型。 14. 答案:x = x y; y = x-y; x = x-y 15. 答案:
本文由长春治疗白癜风医院 / 收集,转载请注明出处
ห้องสมุดไป่ตู้
double: 16 位精度
第一题分析: 设和为 S,积为 M。 首先,A:我不知道。 说明:S 可以分解成多个组合,而 2=1+1,3=1+2,40=20+20,39=19+20,只有一种分解方 式,因此 S 应属于[4,38]集合。 其次,B:我也不知道。 说明:M 也可以分解成多个组合,因此 M 不是质数。 再者,A:我现在知道了。 说明:S 分解方式中只有一个相乘之后是合数,其他分解方式相乘之后都是质数。这样,A 才能根据 B 说不知道,而排出所有相乘是质数(M 是质数,分解方式只有一种:1*质数) 的可能,剩下的一个相乘之后是合数的组合就是 A 所得到的解。 而相乘之后是质数的:只有 1*质数 = 质数! 1-20 的所有质数:T = {2, 3, 5, 7, 11, 13, 17, 19}。 设 x 为 T 中的任意一个质数。那么,S 的可能取值集合:{2+1, 3+1, 5+1, 7+1, 11+1, 13+1, 17+1, 19+1},即:SS = {3, 4, 6, 8, 12, 14, 18, 20} S= 3 时:3 不在【4,38】集合,排除; S= 4 时:4=2+2=1+3,(2,2)相乘为 4(非质数,满足条件),(1,3)相乘为 3(质数, 排除); S= 6 时:6=1+5=2+4=3+3,相乘分别为 5,8,9,出现两个合数,排除; 其他值都是存在多个合数分解的情况,因此均排除了。 因此,A 得到的解是 2 和 2. 最后,B:我也知道了。 说明:B 根据自己已知的 M 值,站在 A 的立场思考,能够获得 M=4 的结果,现在验证如下: M=4=2*2=1*4,相加结果为 4,5.而 5 不在 SS 集合之中,因此结果为 2 和 2. 因此,最终答案为 2 和 2.
本文由长春治疗白癜风医院 / 收集,转载请注明出处
本文由长春治疗白癜风医院 / 收集,转载请注明出处
答案:两个。 形式参数:在声明和定义函数时,写在函数名后的括号中的参数。 实参是调用参数中的变量,行参是被调用函数中的变量。 7. 答案:快速排序 快速排序、归并排序和基数排序在不同情况下都是最快最有用的。
首先,A:我不知道。 说明:S 有多个分解方式。S 属于【5,37】. 其次,B:我不知道。 说明:M 有多种分解方式。 再者,A:我知道这两个数了。 说明: S 分解方式中只有一个相乘之后是合数,其他分解方式相乘之后的积仅有一种分解方式!这 样,A 才能根据 B 说不知道,而排出所有相乘是质数(M 是质数,分解方式只有一种:1* 质数)的可能,剩下的一个相乘之后是合数的组合就是 A 所得到的解。 那么,S 的可能取值集合:{3,4,5,......,37} S= 3 时:3 不在【5,38】集合,排除; S= 4 时:4=1+3,只有一种分解方式,排除; S=5 时:5=1+4=2+3,相乘分别为 4,8,4=1*4 仅有一种分解方式排除,8=1*8=2*4 满足, 得到一个解。 S= 6 时:6=1+5=2+4,相乘分别为 5,8,显然也满足。 其他值都是存在多个合数分解的情况,因此均排除了。 因此,解为 2 和 3 或 2 和 4 最后,B:我也知道了。 说明: B 站在 A 立场得知结果。验证如下: 如果为 2 和 3,则积为 6,和为 5。此时,5=1+4=2+3,4 仅有一种分解方式,A 能够确定 为 2 和 3;6=1*6=2*3,相加为 7,5,此时 7=1+6=2+5=3+4,相乘后为 6,10,12,无法确定 唯一解,舍掉 1,6 的解;而 5=1+4=2+3,相乘后为 4,6,舍掉 4,有解 2 和 3. 如果为 2 和 4,则积为 8,和为 6.此时,6=1+5=2+4,5 仅有一种分解方式,A 能够确定为 2 和 4. 8=1*8=2*4,相加为 9,6,此时 9=1+8=2+7=3+6=4+5,无法确定唯一解,舍掉 1 和 8 的解;而 6=1+5=2+4,相乘后为 5,6,舍掉 5,有解 2 和 4. 因此,最终解为 2 和 3 或 2 和 4 。
本文由长春治疗白癜风医院 / 收集,转载请注明出处
本文由长春治疗白癜风医院 / 收集,转载请注明出处
=================================答案 =================================== 1. 答案:2 和 3 或 2 和 4 (最下面有详解) 2. 答案:1-12*11*10*9/12*12*12*12 = 1-55/96 = 41/96 3. 答案: 运算符优先级:括号,下标,->和.(成员)最高; 单目的比双目的高; 算术双目的比其他双目的高; 位运算 高于 关系运算; 关系运算 高于 按位运算(与,或,异或); 按位运算 高于 逻辑运算; 三目的只有一个 条件运算,低于逻辑运算; 赋值运算仅比 , (顺序运算)高。 在此题中,位左移”<<” 优先级高于按位异或”^”,所以 b 先左移两位(相当于乘以 4), 再与 a 异或。 例如: 当 a = 6; b = 4 时; 则 a^b<<2 = 22 4. 答案: printf(”The file name: %d\n”, __FILE__); printf(”The current line No:%d\n”, __LINE__); ANSI C 标准预定义宏: __LINE__ __FILE__ __DATE__ __TIME__ __STDC__ 当要求程序严格遵循 ANSI C 标准时该标识符被赋值为 1 __cplusplus__ 当编写 C 程序时该标识符被定义 5. 答案: *(&a[1] 1) a 是数组的首地址,a[1]就表示 a[1][0]地址了,不用再取地址了。 6.
相关主题