【C#】考你一个输出“Hello World”程序
前天同学问我这样一个面试题:完成如下代码,使其输出“Hello World!”
if() printf("Hello");else printf(" World!");
using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace HelloWorld{ class Program { static void Main(string[] args) { if (/* 补充这里 */) Console.Write("Hello"); else Console.Write(" World!"); } }}
using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace HelloWorld{ class Program { static void Main(string[] args) { if (Convet.ToBool(Console.Write("Hello"))) Console.Write("Hello"); else Console.Write(" World!"); } }}
[解决办法]
using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace HelloWorld{ class Program { static void Main(string[] args) { if (new Func<bool>(() => { Console.Write("Hello"); return false; }).Invoke()) Console.Write("Hello"); else Console.Write(" World!"); } }}
------解决方案--------------------
c++的话,有逗号表达式就比较容易了。c#。还真想不出还有什么写法。
[解决办法]
学习一下
[解决办法]
new Func<bool>(() => { Console.Write("Hello"); return false; }).Invoke()
没看懂!!!!
[解决办法]
那是。呵呵。有scanf么。
[解决办法]
static void Main(string[] args) { if ((args = new string[1]{"Hello"}).Length > 0 && args.Any(s=>{Console.Write(s);return false;})) { Console.Write("Hello"); } else { Console.Write("World"); } }
[解决办法]
呵呵 ~~~
[解决办法]
还真不会。。。。。。
[解决办法]
using System;
using System.Collections.Generic;
using System.Text;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
if (a())
Console.Write("Hello");
else
Console.Write(" World!");
Console.ReadLine();
}
static bool a()
{
Console.Write("Hello");
return false;
}
}
}
[解决办法]
if (Console.Write("Hello") is object) Console.Write("Hello"); else Console.Write(" World!");
[解决办法]
想不出来......
[解决办法]
using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace HelloWorld{ class Program { static void Main(string[] args) { if (args.Length != 0 ? true : ((Func<bool>)delegate { Main(new string[] { "a" }); return false; }).Invoke()) Console.Write("Hello"); else Console.Write(" World!"); } }}
[解决办法]
真想不出,还有什么样的办法呢,思路与上面完全不一样的,期待
[解决办法]
综合20#,22#
static void Main(string[] args) { if (args.Length == 0 ? (Main(args = new string[]{string.Empty}) is object) : true) { Console.Write("Hello"); } else { Console.Write("World"); } }
[解决办法]
//发散一下。。。 class Program { class BrotherLi { public static bool IsGirl { get { Console.Write("Hello"); return false; } set { Console.Write(" World"); } } } static void Main() { BrotherLi.IsGirl = !BrotherLi.IsGirl; Console.ReadKey(); } }
[解决办法]
using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace HelloWorld{ class Program { static void Main(string[] args) { if (true)Console.Write("Hello World!");else if (false) Console.Write("Hello"); else Console.Write(" World!"); } }}
[解决办法]
[解决办法]
多是牛人,学习了
[解决办法]
代码注入
if (!printf("Hello")) printf("Hello"); else printf(" World!");
[解决办法]
搞了很久才出结果,很难static void Main(string[] args) { if (Convert.ToBoolean(Type.GetType("System.Console").GetMethod("Write", new Type[] { System.Type.GetType("System.String") }).Invoke(null, new string[] { "Hello" }))) Console.Write("Hello"); else Console.Write(" World!"); }
[解决办法]
这弯太急了......转不过来.......
[解决办法]
如果可以定义变量我有个更妙的方法
public static int i = 1; static int Main(string[] args) { if (!(i-->0&&Main(null) is object)) Console.Write("Hello"); else Console.Write(" World!"); return 1; }
[解决办法]
这个。。。不会。看了恍然。
[解决办法]
刚刚发现不要变量也可以
static void Main(string[] args) { if ((args == null||Main(null) is object)) Console.Write("Hello"); else Console.Write(" World!"); }
[解决办法]
上面这方法受 《盗梦空间》启发
"我们要进入到下一层梦境"
我们也要进入下一层main函数
[解决办法]
static int Main(string[] args) { if ( args.Length==0?Main(new string[]{""})!=1:true ) Console.Write("Hello"); else Console.Write(" World!"); return 1; }
[解决办法]
27楼的哥子 太牛B了,人才,顶!!
[解决办法]
[code=C/C++][/code]
if (!printf("Hello"))
printf("Hello");
else
printf(" World!");
[解决办法]
up,自己都没想到
[解决办法]
学习。。。。你人不是一般的多啊!
[解决办法]
if (args.Length != 0 ? true : ((Func<bool>)delegate { Main(new string[] { "a" }); return false; }).Invoke()) Console.Write("Hello");else Console.Write("World");
[解决办法]
学习永无止境啊!那么多方法。顶起!
[解决办法]
给个比较邪恶的,只是个思路,可以改为匿名函数
using System;namespace HelloWorld{ class Program { static void Main(string[] args) { if (Exception()) Console.Write("Hello"); else Console.Write(" World!"); } static bool Exception() { Console.WriteLine("Hello World"); throw (new Exception()); } }}
[解决办法]
好像只有这么一种思路:在if条件中注入 打印Hello, 然后再令条件为false 使程序继续打印World.
还有其他的吗?
27.....-_-!!!
[解决办法]
真不错!可惜1#被占的太没水准了
[解决办法]
真不错 .
[解决办法]
学习下!
[解决办法]
[解决办法]
哎,其实方法还真挺多的哦。楼上写了那么多。
[解决办法]
每天坚持顶帖
[解决办法]
不会C#
C的很简洁
#include<stdio.h>
void main()
{
if((printf("hello"))!=0)
printf(" world!");
else
printf(" world!");
}
[解决办法]
找。。。抽。。。。
[解决办法]
[解决办法]
一种是 LINQ
一种是 递归 MAIN
都是透过另一个“函数”达到目的。
[解决办法]
[解决办法]
if (args.Length != 0 ? true : ((Func<bool>)delegate { Main(new string[] { "a" }); return false; }).Invoke()) Console.Write("Hello");else Console.Write("World");
[解决办法]
打酱油
[解决办法]
来学习一下
[解决办法]
烂题目,还这么多人做,如果是能两个分支一起走,那才真的佩服
[解决办法]