天地融2014校园招聘笔试题
注:凭记忆写的,题型可能有变化。
1、
int a;
#define M(x,y) (x/y)
a = M(4+2, 3)
a=?
这是考察宏定义的知识,宏定义就是简单的替换。
M(4+2, 3)的展开式为4+2/3。
所以a=4。
下面的这两个例子可能有助于更好的理解:
#define m(x) x*x*(x+1)
int a=2,b=3;
m(a+b)的结果是26
m(a+b)的展开式是a+b*a+b*(a+b+1),结果是26
#define m(x) (x)*(x)*(x+1)
int a=2,b=3;
m(a+b)的结果是150
m(a+b)展开式是(a+b)*(a+b)*(a+b+1)结果是5*5*6=150
2、
int f(int x)
{static int k = 0;x += k++;return x;
}
int i;
i = f(3)*f(2);
i = ?
k是一个静态变量,它的作用相当于全局变量,但是它定义在了函数内部,外部是不可见的,不可见的全局静态变量。
所以执行完f(3)之后,k=1,再执行f(2)时,k的值还是1,执行完f(2)后,k=2.
3、在X86,32位环境下,下面程序的输出结果是什么?
double dArrary[2] = {4, 8}, *p, *q;
p = &dArrary[0];
q = p+1;
cout<<q-p<<endl;
cout<<(int)q-(int)p<<endl;
q-p表示元素相差的个数,(int)q-(int)p表示把两个元素的地址值相减。
4、计算下列sizeof的值。
char str[] = "http://www.tendyron.com/";
char *p = str;
int n = 10;
sizeof(str) = 25
sizeof(p) = 4
sizeof(n) = 4
void Foo(char str[100]){sizeof(str) = 4;
void *p = malloc(100);
sizeof(p) = 4;
因为Foo只是一个函数,所有传递的都是数组的首地址。
在32位机器上,无论什么指针都占4个字节,包括void *类型。
5、下面程序输出什么?
void Foo(char **p, int num)
{*p = (char *)malloc(num);
}
void Test(void)
{char *str = NULL;Foo(&str,100);strcpy(str, "hello");printf("%s", str);
}
输出hello。
6、下面的程序输出什么?
void Test(void)
{char *str = (char *)malloc(100);strcpy(str, "world");free(str);if(str != NULL){strcpy(str, "world");printf("%s", str);}
}
free(str)后必须手动将str置为NULL,否则它并不是指向NULL。
free(str);释放了指向的内存,str并不为NULL,而是一个随机数,俗称野指针。
free函数只是把malloc申请到的内存块中某个特殊的标志变了一下而已,并没有立刻就清空块中的数据。是否释放这块内存是操作系统自己来判断的,而且释放后是否会对内存块链进行调整,使内存碎片减少,都是用操作系统自己来进行的。
输出world。
7、下面程序的输出结果是什么?
char *GetMemory()
{char p[] = "hello world";return p; //这样返回是错误的
}
char *str = NULL;
str = GetMemory();
printf("%s", str);
在函数内生命的这个字符数组p是局部变量,不能用来返回,所以输出的是一个乱码。
8、说明下面的程序有什么问题
char *_strcpy(const char *strSrc)
{static char str[260];strcpy(str, strSrc);return str;
}
这个问题我说不好,有会的可以解释一下。
9、一下两个循环的优先
for(int i = 0; i < N; i++)
{if(condition)DoSomeThing();elseDoOtherSomeThing();
}
if(condition)
{for(int i = 0; i < N; i++)DoSomething();
}
else
{for(int i = 0; i < N; i++)DoOtherSomething();
}
10、简答Windows平台动态链接库的两种调用方式,以及静态库和动态库的区别。
11、已知链表结点head,写一个函数把这个链表逆序,结构如下
strcut Node
{int data;Node *next
};
typedef struct Node Node;
12、在32位系统上,用程序将16进制字符串,如“FE1234”转化为一个长整型。
13、写一函数IsBigEndian,判断计算机的字节存储顺序是升序还是降序。
14、有28个人买水,3个空瓶可以换一瓶水,请问至少买多少瓶水?
15、教授从2到9的数字中选出两个,把和告诉甲,把积告诉乙,他们轮流猜这个数,甲说:我猜不出,乙说:我也猜不出,甲说:我猜到了,乙说:我也猜到了。请问这两个数是什么?
-------------------------------分析过程-------------------------------------
第一步甲说:“我猜不到”证明和的组合不唯一:满足条件的和:
[15] 6+9,7+8
[8] 2+6,3+5
[7] 2+5,3+4
[14] 5+9,6+8
[10] 2+8,3+7,4+6
[9] 2+7,3+6,4+5
[12] 3+9,4+8,5+7
[13] 4+9,5+8,6+7
[11] 2+9,3+8,4+7,5+6
第二步乙说:“我猜不到”证明积的组合不唯一,满足条件的积:
[24] 3×8,4×6
[18] 2×9,3×6
[12] 2×6,3×4
第三步甲说:“我猜到了”有以下几种情况:
2+6=8 2*6=12(和为8的情况,满足第二步)
3+5=8 3*5=15(和为8的情况,不满足第二步)
2+5=7 2*6=10(和为7的情况,不满足第二步)
3+4=7 3*4=12(和为7的情况,满足第二步)
2+8=10 2+8=16 (和为10的情况,不满足第二步)
3+7=10 3+7=21(和为10的情况,不满足第二步)
4+6=10 4+6=24(和为10的情况,满足第二步)
2+7=9 2*7=14(和为9的情况,不满足第二步)
3+6=9 3*6=18(和为9的情况,满足第二步)
4+5=9 4*5=20(和为9的情况,不满足第二步)
7+8=15 7*8=56(和为15的的情况,不满足第二步)
6+9=15 6*9=54(和为15的情况,不满足第二步)
和为其它值的情况与和为15的的情况类似.
第三步甲说:“我猜到了”证明组合可能是: 2-6 3-4 4-6 3-6
第四步乙说:“我猜到了”有以下几种情况:
如果12,组合可能为2-6,3-4, 2-6,3-4组合的情况下第三步有可能, 所以是乙在第四步不可能猜到
如果18,组合可能为2-9,3-6, 2-9组合的情况下第三步不可能,3-6组合情况下第三步有可能, 所以乙在第四步能确定3-6是唯一的可能,即充分必要条件,所以说猜到了.
如果24,组合可能为3-8,4-6, 3-8组合的情况下第三步不可能,4-6组合情况下第三步有可能, 所以乙在第四步能确定4-6是唯一的可能,即充分必要条件,所以说猜到了.
第四步乙说:“我猜到了”证明组合可能是: 3-6(和为9,积为18) 4-6(和为10,积为24) 中的一种.
最终答案3-6或4-6
天地融2014校园招聘笔试题相关推荐
- 阿里巴巴集团2014校园招聘笔试题(9月22北京)
阿里巴巴集团2014校园招聘笔试题 (9月22北京) (答案仅是个人见解,欢迎补充更正,谢谢) 第一部分 单选题(前10题,每题2分:后10题,每题3分.选对得满分,选错倒扣1分,不选得0分) 1.一 ...
- 阿里巴巴集团2014校园招聘笔试题------9-22北京 研发工程师
转自 http://blog.sina.com.cn/s/blog_6f83fdb40101eyzw.html 阿里巴巴集团2014校园招聘笔试题---研发工程师 (9月22北京) (答案仅是个人 ...
- 人人网 2014校园招聘笔试题
技术笔试题(一) #include <iostream>using namespace std;int hash_table[100];bool judge(int *a, int len ...
- 2014校园招聘笔试题
首先非常感谢Hack0nAir的2013阿里巴巴安全工程师实习生招聘笔试小结,昨天才回到学校,今天花了半上午加一下午的时间好好看了下,就去参加笔试了,心虚啊. 废话不多说,上题.首先五个名词解释,XS ...
- 百度2014校园招聘笔试题(成都站,软件研发岗)——2014.09.21
一.简答题(本题共30分) 1. 当前计算机系统一般会采用层次结构来存储数据,请介绍下典型的计算机存储系统一般分为哪几个层次,为什么采用分层存储数据能有效提高程序的执行效率?(10分) 2. Unix ...
- 迅雷2014校园招聘笔试题
转载请标明出处,原文地址:http://blog.csdn.net/hackbuteer1/article/details/11482103 温馨提示:客观题和主观题得分都要超过一定标准,才能获得面试 ...
- 【面试题】 迅雷2014校园招聘笔试题
温馨提示:客观题和主观题得分都要超过一定标准,才能获得面试资格,如果一项得分很高,而另外一项得分很低,可能无法获得面试资格. 答案仅供参考,不保证完全正确 一.单选题(20题,每题2分) 1.有变量i ...
- 58同城2014校园招聘笔试题
试卷上所写答案不一定是正确答案,请只关注试卷部分~
- 阿里 c语言研发笔试题,阿里巴巴集团2014校园招聘笔试题
第一部分 单选题(前10题,每题2分;后10题,每题3分.选对得满分,选错倒扣1分,不选得0分) 1.一次内存访问,SSD硬盘访问和SATA硬盘随机访问的时间分别是() A.几微秒,几毫秒,几十毫秒 ...
- 阿里2014校园招聘 笔试题
转http://blog.csdn.net/miaolinjie/article/details/11715493 1. 单选题 1. 假设把整数关键码K散列到N个槽列表,以下哪些散列函数是好的散列函 ...
最新文章
- python 微信模块_Python使用itchat模块实现简单的微信控制电脑功能示例
- jQuery仿淘宝商城天猫鼠标移动过去,透明度降低
- 正则表达式,以前总结的,大不分来择自网上
- RE:大家说说开发的时候类名和文件名一般是怎么规范的?
- C# 选择按钮 数字排序 找最大值最小值
- C#中的线程(一)入门
- 一篇文章为你深度解析HTTPS 协议
- 《BI那点儿事》运用标准计分和离差——分析三国超一流统帅综合实力排名 绝对客观,数据说话...
- Teamcenter 入门开发系列问答(4)
- yum离线下载rpm包
- node 创建静态web服务器(上)
- android电视原理图,LCD电视线路原理图分析 - 电视机电路图讲解
- AXI Memory-Mapped SRIO收发控制器
- 2017-Appearance-and-Relation Networks for Video Classification视频分类中的外观与关系网络
- ArcMap进行标记符号制作
- word背景颜色怎么设置绿色?把word背景调成绿色
- Linux perf 1.1、perf_event内核框架
- 研发思维08----嵌入式智能产品数据服务后端分析
- hgoi#20190821
- i58400升级可以换什么cpu_宝贝标题关键词顺序可以换吗?关键词顺序对标题有什么影响?...
热门文章
- PI3激酶生物学研究丨PI3激酶活性检测试剂盒方案
- linux系统认证中级是什么,红帽中级RHCE证书有什么用
- 虚拟机内存管理之内存分配器
- 【Pytorch官方教程】从零开始自己搭建RNN1 - 字母级RNN的分类任务
- 成都链安预警:My Dash Wallet在线钱包存在“关键”漏洞,用户资金面临风险
- K8S---Downward API
- Python头文件写法
- 11 OPENVINO intermediate course experiment 3 增加性别和年龄识别
- 傅里叶变换复数形式的实部代表什么_复数形式傅里叶变换的物理意义中,相位究竟指的是什么?...
- C++算法和数据结构之《二叉树》