免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: 87xiaolin
打印 上一主题 下一主题

遇到一个c笔试题, 帮忙解一下把 [复制链接]

论坛徽章:
0
11 [报告]
发表于 2010-03-11 22:16 |只看该作者
学习了。

论坛徽章:
0
12 [报告]
发表于 2010-03-12 22:33 |只看该作者
直接上汇编,应该是可以的,

论坛徽章:
0
13 [报告]
发表于 2010-03-13 09:39 |只看该作者
这公司够无聊的,找人是要做项目,又不是成天做这种题目

论坛徽章:
0
14 [报告]
发表于 2010-03-13 10:12 |只看该作者
main() { char *s="main() { char *s=%c%s%c; printf(s,34,s,34); }"; printf(s,34,s,34); }
怎么会打印自己

论坛徽章:
0
15 [报告]
发表于 2010-03-14 01:29 |只看该作者
果然bt 只能想到题目中提到的方法...

论坛徽章:
0
16 [报告]
发表于 2010-03-14 18:16 |只看该作者
那段代码很巧妙呵

论坛徽章:
0
17 [报告]
发表于 2010-03-16 00:11 |只看该作者
没有看太明白~~

论坛徽章:
2
IT运维版块每日发帖之星
日期:2015-06-26 22:20:00IT运维版块每日发帖之星
日期:2015-06-29 22:20:00
18 [报告]
发表于 2010-03-17 15:43 |只看该作者
本帖最后由 五岳之巅 于 2010-03-17 15:44 编辑

main() { char *s="main() { char *s=%c%s%c; printf(s,34,s,34); }"; printf(s,34,s,34); }
程序执行向外输出时的printf语句:
printf(s,34,s,34);
就相当于:
printf("main() { char *s=%c%s%c; printf(s,34,s,34); }",34,s,34);
然后,红色的%c%s$c将被后面的参数34,S,34替换,就变成了输出:
"main() { char *s=34%s34; printf(s,34,s,34); }",而其中的s被替换为"main() { char *s=%c%s%c; printf(s,34,s,34); }",所以最后向屏幕上打印:
"main() { char *s=34%s34; printf(s,34,\"main() { char *s=34%s34; printf(s,34,s,34); }\",34); }"
就是程序自己罗,挺好玩的,构思很巧妙。

论坛徽章:
0
19 [报告]
发表于 2010-03-17 17:16 |只看该作者
看看这个
test.c

#include <stdio.h>
#include <stdlib.h>

extern char * _binary_test_c_start;
int main()
{
  printf("%s", (char *)&_binary_test_c_start);

  printf("hahah\n");
}




Makefile

SRC = test.c
TAR = test
ALL:test.c
        objcopy -I binary -O elf32-i386 -B i386 test.c test.bin
        gcc -o test test.c test.bin

论坛徽章:
2
CU十二周年纪念徽章
日期:2013-10-24 15:41:34IT运维版块每日发帖之星
日期:2016-07-04 06:20:00
20 [报告]
发表于 2010-03-26 10:54 |只看该作者
//路过
void main(学习ing)
{
      
       if (晕ing = read(,,,,,)) {
                 thinking......;
                 main(学习ing);
      }
}
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP