题目来源于笔试后的回忆,如有不真的地方敬请指正!
填空:
1.求1024!末尾有多少个0.
解:
10=2*5
1024!尾0数即5的个数。
1024/5+1024/25+1024/625即为解。
2.某高速公路上30分钟内看到车的概率为0.9,求在10分钟内看到车的概率。
解:
假设10分钟内看到车的概率为A,则30分钟看到车的概率为:
A+(1-A)*A+(1-A)^2*A=0.9
化简即:A^3-3*A^2+3*A=0.9
即:(A-1)^3=0.9-1=-0.1
则A=1-10^(-1/3)
3.给定一个3叉树,定义前序遍历(父,左,中,右),中A序遍历(左,父,中,右),中B序遍历(左,中,父,右),后序遍历(左,中,右,父)。
给定前序,中A序,中B序,求其后序遍历。
基本照搬2叉树即可解。
4.
给定:
char s1[] = "abc" ;
char s2[] = "abc" ;
const char s3[] = "abc" ;
const char s4[] = "abc" ;
const char *s5 = "abc" ;
const char *s6 = "abc" ;
s1 == s2 返回什么?false
s3 == s4 返回什么?false
s5 == s6 返回什么?true
5.
求ABCDEF,A-F为0-9不同的数字,求满足一下条件的数字:
ABCDEF *2 = CDEFAB
CDEFAB * 2 = EFABCD
解:
和小学竞赛题很像,如果用程序很好算。
猜测一下可知:ABCDEF=142857
简答题:
1.给定Input字符串,输入按照顺序进入一个栈,但是出栈的顺序是随机的,问某个output是否合法。
解:
一个基本的栈操作,不解释。
2.一个序列{A,B,C,D,……,Z,AA,AB,……,AZ,……,AAA...}
求该序列第n个字符串是什么?
解:
先求第n个字符串的长度。
在取26进制即可。
3.一个计算机提供如下计算:
①:赋值运算(a=1,b=a)
②:自增运算+1。
③:循环运算,有for(a) b++; for循环内部只能是一个固定的数K,即将b++执行k次。
④:该计算机数据范围0和正整数
⑤:该计算机没有溢出。
现在让你模拟出加减乘除运算。
ps:没有比较(a是否等于b)运算,不知如何实现减法。。
加法和乘法很简单,乘法需要用嵌套的for循环。