一道考遍东北三省和青岛没有一人做出来的简单题目

realweskite 2007-11-27 05:21:49
我们公司要在学校招一批应届毕业生,我被任命出软件笔试题和面试主考官,由于我们公司是一家以硬件为主的公司,即便是招软件人员,也最好是软硬结合的,在此前提下,我出了下面一道简单的C语言题目,主要考查考生对C语言指针和内存布局的了解。

下面的C代码在VC++6.0下的运行结果是什么?请详细说明原因。
#include <stdio.h>
int main()
{
int a[5]={1,2,3,4,5};
int *ptr1=(int *)(&a+1);
int *ptr2=(int *)((int )a+1);
printf("%x,%x",ptr1[-1],*ptr2);
return 0;
}

结果出乎我们的意料,全部答对的没有一个人,有3-5个人ptr1[-1]回答对了。到底我的题目出得太难还是现在的学生确实太差了?我认为这是一道很容易的题,我把它放在试卷的第一题,作为送分的,结果却让我大跌眼镜。当然还有一个原因,我们公司虽然在学电子、单片机的学生中大受追捧,但是计算机专业的学生却对它了解不够,所以很多计算机专业的高手没有过来参加笔试。
...全文
10846 523 打赏 收藏 转发到动态 举报
写回复
用AI写文章
523 条回复
切换为时间正序
请发表友善的回复…
发表回复
fareast_mzh 2021-07-30
  • 打赏
  • 举报
回复

ptr.c:6:13: warning: cast to 'int *' from smaller integer type 'int' [-Wint-to-pointer-cast]
int *ptr2=(int *)((int )a+1);
^
1 warning generated.
chenhuimingdeMacBook-Pro:csdn Mch$ ./a.out
Segmentation fault: 11

  • 打赏
  • 举报
回复
5年了,还不结贴
hitcser01 2012-03-26
  • 打赏
  • 举报
回复
来工大。
run_boy 2012-03-26
  • 打赏
  • 举报
回复
[Quote=引用 198 楼 sun_moon_stars 的回复:]
在《C和指针》165页第8章数组的总结中有这样一段话:
在绝大多数表达式中,数组名的值是指向数组第1个元素的指针。这个规则只有两个例外。sizeof返回整个数组所占用的字节而不是一个指针所占用的字节。单目操作符&返回一个指向数组的指针,而不是一个指向数组第1个元素的指针的指针。

int *ptr1=(int *)(&a+1); //a是指向数组的指针
int *ptr……
[/Quote]例外啊。。
run_boy 2012-03-26
  • 打赏
  • 举报
回复
几年前的帖子啊
ls122326 2012-02-15
  • 打赏
  • 举报
回复
第一题a[4]
第二问涉及到汇编中的一些知识 好像是地址大小为&a+1到&a+5的内存中按小端存储的数据
南气子水 2012-02-15
  • 打赏
  • 举报
回复
留个脚印~~~~~~~~~~~~
cfvmario 2012-02-15
  • 打赏
  • 举报
回复
为什么不写成&(a+1)或者(&a)+1?
表示很讨厌不加括号的写法
peng_weida 2012-02-15
  • 打赏
  • 举报
回复
想必楼主不敢回帖咯
cotton201012 2012-02-15
  • 打赏
  • 举报
回复
请问VC++上运行和GCC编译运行有区别吗?为什么强调环境是VC++?
猿创日记 2012-02-15
  • 打赏
  • 举报
回复
尼玛、看了半天,突然发现N年前的帖子、尼玛,CSDN真能折腾、这帖子都能捞出来。。。。
龙应 2012-02-11
  • 打赏
  • 举报
回复
楼主有点过分了!
hu_kevin 2012-02-10
  • 打赏
  • 举报
回复
我想去lz公司。。。。
无间虚者 2012-02-10
  • 打赏
  • 举报
回复
BS楼主!
netimmortal 2012-02-10
  • 打赏
  • 举报
回复
汗。真厉害。 太难了。
gabios 2012-02-10
  • 打赏
  • 举报
回复
楼主没有注明运行平台
pp25210 2012-02-10
  • 打赏
  • 举报
回复
围观围观
sjjwind 2012-02-10
  • 打赏
  • 举报
回复
本人就是东北三省的,虽然只是大二,专业课没开,不知楼主能不能告诉我贵公司叫什么名字,俺的目标是百度,对您这种大公司我惹不起还躲不起啊。
另外,指针虽然是C和C++的灵魂,但见过有人这么开发的吗?如果贵公司是这么开发的话,我表示高攀不起。
LZ神人,跪求贵公司名字,俺以后一定不去。

水贴,鉴定完毕,请管理员处理。
炼气士 2012-02-10
  • 打赏
  • 举报
回复
看完后发现,是个棺材帖,也不知道是哪个挖坟的给挖的。
估计如果管理员不处理的话,这个帖子能一值回复到2100年呢
炼气士 2012-02-10
  • 打赏
  • 举报
回复
趁着没结贴,mark一下,
题外话:有章的叫“饼子”,普通的三角叫啥?
加载更多回复(503)

69,396

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧