考考你的C/C++应用能力
题目:
#include <iostream.h>
/
int main(int argc, char* argv[])
{
cout<<"风声雨声读书声声声入耳\n";
return 0;
}
/
以上是一段完整的C/C++语言代码,可以实现在控制台输出文本:
风声雨声读书声声声入耳
要求:利用你学过的C/C++知识,不改变main函数,编程在控制台输出文本:
风声雨声读书声声声入耳
家事国事天下事事事关心
--------------------------------------------------------------------------------
方法一:编写类A,析构函数中输出“家事国事天下事事事关心\n”,然后定义该类的全局变量a。
#include <iostream.h>
class A
{
public:
~A()
{
cout<<"家事国事天下事事事关心\n";
}
};
A a;
/
int main(int argc, char* argv[])
{
cout<<"风声雨声读书声声声入耳\n";
return 0;
}
/
方法二:编写出口函数A,紧接着定义全局变量N,其值等于atexit(A)。
#include <iostream.h>
void A()
{
cout<<"家事国事天下事事事关心\n";
}
int N = atexit(A);
/
int main(int argc, char* argv[])
{
cout<<"风声雨声读书声声声入耳\n";
return 0;
}
/
方法三:利用宏命令,重新指定cout的意义。
#include <iostream.h>
#define cout cout<<"风声雨声读书声声声入耳\n家事国事天下事事事关心\n";if(0)cout
/
int main(int argc, char* argv[])
{
cout<<"风声雨声读书声声声入耳\n";
return 0;
}
/
方法四:利用宏命令,重新指定return的意义。
#include <iostream.h>
#define return cout<<"家事国事天下事事事关心\n";return
/
int main(int argc, char* argv[])
{
cout<<"风声雨声读书声声声入耳\n";
return 0;
}
/
方法五:利用宏命令,重新指定main的意义。(特别注意“\”的用法!)
#include <iostream.h>
#define main main(int argc, char* argv[])\
{\
cout<<"风声雨声读书声声声入耳\n家事国事天下事事事关心\n";\
return 0;\
}\
int not_used
/
int main(int argc, char* argv[])
{
cout<<"风声雨声读书声声声入耳\n";
return 0;
}
/
方法六:利用条件编译的宏命令,跳过旧版本的main函数,条件编译新的main函数。
#include <iostream.h>
#define A
#ifdef A
int main(int argc, char* argv[])
{
cout<<"风声雨声读书声声声入耳\n家事国事天下事事事关心\n";
return 0;
}
#else
/
int main(int argc, char* argv[])
{
cout<<"风声雨声读书声声声入耳\n";
return 0;
}
/
#endif
方法七:直接用/*...*/注释掉原来的main函数,更换main函数。(嘿嘿,够淫*荡吧!)
#include <iostream.h>
/*
/
int main(int argc, char* argv[])
{
cout<<"风声雨声读书声声声入耳\n";
return 0;
}
/
*/
int main(int argc, char* argv[])
{
cout<<"风声雨声读书声声声入耳\n家事国事天下事事事关心\n";
return 0;
}
方法八:重载运算符<<的实现方法,强制输出符合要求的文本!
#include <iostream.h>
#include <stdio.h>
void operator << (ostream& T, char* S)
{
printf("风声雨声读书声声声入耳\n家事国事天下事事事关心\n");
}
/
int main(int argc, char* argv[])
{
cout<<"风声雨声读书声声声入耳\n";
return 0;
}
/