很有趣的一道C语言题

题目要求不允许改变main()函数,只能通过在test()函数中写代码来改变yy的值~~

[codesyntax lang=”c”]

void test(void)
{

//在这写代码

}

void main()

{
	int yy=1;
	test();
	printf("%d",yy);
}

[/codesyntax]

哈哈 当时看了这个题就觉得特别好玩 看了大家的回答更发现自己了解的知识还真是还有很大的欠缺哈 高人太多啦 哈哈哈哈~~~突然又很有奋斗的动力~~为成为计算机很NB的人而努力奋斗哈哈~~

附上几个参考答案,VC++ 6 编译通过。

答案一:

[codesyntax lang=”c”]

void test(void)
{
	int *p;
	p=(int *)&p;
	while (*p!=1)

	{
		p++;
	}
	*p=88888888;
}

[/codesyntax]

(PS:这是出题者自己公布的答案)

答案二:

[codesyntax lang=”c”]

void test(void)
{
	#define yy 9999
	#define int /##/##int
}

[/codesyntax]

(PS:这个很赖皮的说~~哈哈)

答案三:

[codesyntax lang=”c”]

void test(void)
{
	_asm
	{
		push ebp
		mov ebp,[ebp]
		mov dword ptr[ebp-4],0x00000003 //这个0x00000003就是覆盖了y的值
		pop ebp
	}
}

[/codesyntax]

(PS:我认为这是很标准的一个答案。)

《很有趣的一道C语言题》有9个想法

发表评论

电子邮件地址不会被公开。 必填项已用*标注