注:凭记忆写的,题型可能有变化。

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校园招聘笔试题相关推荐

  1. 阿里巴巴集团2014校园招聘笔试题(9月22北京)

    阿里巴巴集团2014校园招聘笔试题 (9月22北京) (答案仅是个人见解,欢迎补充更正,谢谢) 第一部分 单选题(前10题,每题2分:后10题,每题3分.选对得满分,选错倒扣1分,不选得0分) 1.一 ...

  2. 阿里巴巴集团2014校园招聘笔试题------9-22北京 研发工程师

    转自 http://blog.sina.com.cn/s/blog_6f83fdb40101eyzw.html 阿里巴巴集团2014校园招聘笔试题---研发工程师 (9月22北京) (答案仅是个人 ...

  3. 人人网 2014校园招聘笔试题

    技术笔试题(一) #include <iostream>using namespace std;int hash_table[100];bool judge(int *a, int len ...

  4. 2014校园招聘笔试题

    首先非常感谢Hack0nAir的2013阿里巴巴安全工程师实习生招聘笔试小结,昨天才回到学校,今天花了半上午加一下午的时间好好看了下,就去参加笔试了,心虚啊. 废话不多说,上题.首先五个名词解释,XS ...

  5. 百度2014校园招聘笔试题(成都站,软件研发岗)——2014.09.21

    一.简答题(本题共30分) 1. 当前计算机系统一般会采用层次结构来存储数据,请介绍下典型的计算机存储系统一般分为哪几个层次,为什么采用分层存储数据能有效提高程序的执行效率?(10分) 2. Unix ...

  6. 迅雷2014校园招聘笔试题

    转载请标明出处,原文地址:http://blog.csdn.net/hackbuteer1/article/details/11482103 温馨提示:客观题和主观题得分都要超过一定标准,才能获得面试 ...

  7. 【面试题】 迅雷2014校园招聘笔试题

    温馨提示:客观题和主观题得分都要超过一定标准,才能获得面试资格,如果一项得分很高,而另外一项得分很低,可能无法获得面试资格. 答案仅供参考,不保证完全正确 一.单选题(20题,每题2分) 1.有变量i ...

  8. 58同城2014校园招聘笔试题

    试卷上所写答案不一定是正确答案,请只关注试卷部分~

  9. 阿里 c语言研发笔试题,阿里巴巴集团2014校园招聘笔试题

    第一部分 单选题(前10题,每题2分;后10题,每题3分.选对得满分,选错倒扣1分,不选得0分) 1.一次内存访问,SSD硬盘访问和SATA硬盘随机访问的时间分别是() A.几微秒,几毫秒,几十毫秒 ...

  10. 阿里2014校园招聘 笔试题

    转http://blog.csdn.net/miaolinjie/article/details/11715493 1. 单选题 1. 假设把整数关键码K散列到N个槽列表,以下哪些散列函数是好的散列函 ...

最新文章

  1. python 微信模块_Python使用itchat模块实现简单的微信控制电脑功能示例
  2. jQuery仿淘宝商城天猫鼠标移动过去,透明度降低
  3. 正则表达式,以前总结的,大不分来择自网上
  4. RE:大家说说开发的时候类名和文件名一般是怎么规范的?
  5. C# 选择按钮 数字排序 找最大值最小值
  6. C#中的线程(一)入门
  7. 一篇文章为你深度解析HTTPS 协议
  8. 《BI那点儿事》运用标准计分和离差——分析三国超一流统帅综合实力排名 绝对客观,数据说话...
  9. Teamcenter 入门开发系列问答(4)
  10. yum离线下载rpm包
  11. node 创建静态web服务器(上)
  12. android电视原理图,LCD电视线路原理图分析 - 电视机电路图讲解
  13. AXI Memory-Mapped SRIO收发控制器
  14. 2017-Appearance-and-Relation Networks for Video Classification视频分类中的外观与关系网络
  15. ArcMap进行标记符号制作
  16. word背景颜色怎么设置绿色?把word背景调成绿色
  17. Linux perf 1.1、perf_event内核框架
  18. 研发思维08----嵌入式智能产品数据服务后端分析
  19. hgoi#20190821
  20. i58400升级可以换什么cpu_宝贝标题关键词顺序可以换吗?关键词顺序对标题有什么影响?...

热门文章

  1. PI3激酶生物学研究丨PI3激酶活性检测试剂盒方案
  2. linux系统认证中级是什么,红帽中级RHCE证书有什么用
  3. 虚拟机内存管理之内存分配器
  4. 【Pytorch官方教程】从零开始自己搭建RNN1 - 字母级RNN的分类任务
  5. 成都链安预警:My Dash Wallet在线钱包存在“关键”漏洞,用户资金面临风险
  6. K8S---Downward API
  7. Python头文件写法
  8. 11 OPENVINO intermediate course experiment 3 增加性别和年龄识别
  9. 傅里叶变换复数形式的实部代表什么_复数形式傅里叶变换的物理意义中,相位究竟指的是什么?...
  10. C++算法和数据结构之《二叉树》