专栏中心

EEPW首页 > 专栏 > 可爱的几道C语言题

可爱的几道C语言题

发布人:xinjinlong 时间:2011-05-29 来源:工程师 发布文章
今天我的一个师弟很伤心,本来他们想暑假找份实习的工作挣个零花钱,结果人家给他出了几个C语言的笔试题,他很有信心的几分钟做完了,
感觉小case,没有想到等了几天给人家公司打电话问为什么,人家说你的笔试十分的不理想,是在没有办法,他不服气就让偶看看其中的几道
题,问问为什么,是不是提的不好?我看完后总结了几点:
第一:他花在C上面的功夫太少了,他藐视C了
第二:学校学完C就不管了,认为简单,当然了我们一个学校,也知道老师教的程度
第三:虽然都是计算机,还是没有找到好的网站学习C,这几个题我大一学习完C后总结有重新学习C,写程序时遇到这错误,当时自己遇到时也
很纳闷,后来多次C重看,明白了,当然也有高手早都遇到了,那是我后来在网上找到类似问题,而且也给了说明,只是我这师弟没有找到
第四:也许没有看到好的C语言书本
下面是这个几个问题,不过还挺有意思的,偶尔可以看看,消遣一下烦躁的心:
题目一:
#include <stdio.h>
#define N 12
int main()
{
int a = 12;

printf("size(N) =%d\n", sizeof(N));
printf("sizeof(a++) =%d\n", sizeof(a++));
printf("a = %d\n", a);

return 0;
}
师弟的答案是:12 13 13
我说过我自己重新学过C,这个问题我遇到过,这个问题的要点就是要明白预编译,因为师弟不知道sizeof()是什么,他认为是函数,实际大家
都一样,这是个宏,实际看字体颜色就应该明白,而且这个东西只认变量类型,说白了就是他的结果对PC来说就只有1、2、4、8了,并且sizeof()
自动识别你变量类型,也就是在预编译阶段,sizeof(N)=sizeof(12)=4,sizeof(a++)=4,全部都替换了(++是在运行时操作),所以最终结果应该是
4 4 12
大家都习惯用IDE了,这也是一个坏习惯,用过GCC的应该不会烦这个错误
题目二:
#include <stdio.h>
int main()
{
int i;
int a[4] = {0001,0010,0100,1000};

for(i = ; i < 4; i++)
printf("a[%d]= %d\n", i, a[i]);

return 0;
}
师弟的答案:1 10 100 1000
我看到结果我都笑了,这个不能埋怨他,他不是第一个问我,我说你回去翻书看看C数值的表示方法,如何表示八机制,他恍然大悟,实际的结果
应该是1 8 64 100,八进制是以0开始,他说他错的他不应该了,学以致用不是那么容易的
题目三:
#include <stdio.h>
int main()
{
int a = 3, b =4;

//printf("&b["good boy %s\n"]", &b["goodboy"]); 多谢有人提出,感谢 追求
printf("&b[good boy %s\n]", &b["goodboy"]);

return 0;
}
他说他这个题不会做,不知道是什么意思
实际这个题如果学过JAVA的人应该还好写,C语言定义数组一个公式话了,不像Java习惯这样定义:[6]a
实际结果到现在不用说应该明白了是:d boyoy

我劝他也不要那么灰心,C不是你想象的那样简单和变态,这个不是你的全不错,计算机语言上千种呀,每一种都有他存在的价值,请不要藐视
任何一种,C也不应被藐视,C都过来四十多年了,至今屹立不倒,是有他的价值的
当然在工作中我们也不会写出这样变态的程序,毕竟可读性是很重要的!

专栏文章内容及配图由作者撰写发布,仅供工程师学习之用,如有侵权或者其他违规问题,请联系本站处理。 联系我们

关键词:

相关推荐

2025年我国人形机器人出货量2万台,形成五大应用场景

基于ARM Cortex-M4的Kinetis 微控制器超低功耗,混合信号集成,最具扩展性的产品系列

联发科技校园软件大赛——3L

视频 2011-01-04

电源“免疫力”决定芯片稳定性 PSRR测试为何越来越关键

英伟达与IREN达成战略合作,共建5GW规模AI基础设施

从封装看功率芯片:碳化硅T2PAK封装的优势

联发科技校园软件大赛——压根没有这个

视频 2011-01-04

联发科技校园软件大赛——C--

视频 2011-01-04

3D打印“狂飙”背后:兆易创新GD32 MCU多元方案驱动性能升级

嵌入式系统与物联网

边缘 AI 加速的 Arm Cortex‑M0+ MCU 如何为电子产品注入更强智能

索尼半导体与台积电达成新一代图像传感器战略合作

2026年,AI将给设计工程软件带来哪些变革?

台积电4月营收新台币4107亿,年增17.5%

走进智能工厂 为何智能诊断是持续运行的关键

更多 培训课堂
更多 焦点
更多 视频

技术专区