こちらで質問するのがあっているのがわからないのですがC言語の勉強を始めたのです、
研修先がunix を使い vi gcc gdb を使っているので自宅でも似た環境をと思ってcygwinを利用しようと思い導入いたしました。
allでインストールをしてとりあえずhello c と表示させるプログラムを書きました。
ソースは下記のとおりです。
#include <stdio.h>

int main(void)
{
printf("Hello World!\n");

return 0;
}
この程度なのでコンパイルエラーは起きていません。ファイル名はtest.c です。
問題点は3つありまして
1つ目
gcc test.c でコンパイルをした際に a.exeができます。a.exe で実行した際に bash: a.exe: command not foundと出てしまいます。 なぜ実行できないのでしょうか?
2つ目
gcc -o test test.c でコンパイルしてできたtest.exeをtest.exeで実行しても実行はされているようなのですが(エラー等がでていないだけの理由ですが・・・)
何も表示されず 次の入力待ちの状態になってしまいます。なぜ表示されないのでしょうか?
3つ目
以上の理由からぐぐってみたのですが解決方法がわからずcygwin上でなくウィンドウズ上のコマンドライン?で実行できるようにあったので試してみました。
gcc -mno-cygwin test.c です。これでコンパイルしたものをウィンドウズ上で実行してみたのですが1瞬ちらっと表示されて窓が消えてしまいます。
ぎりぎりプログラムとおり表示されていると確認できたのですがこれ以降このままだと困るのでしっかり表示されるようにするにはどうしたらいいのか?

unixも今回初めて触って勉強中なのでおかしな言葉遣いや初心者過ぎるミスなのかもしれませんが、
ご回答のほどよろしくお願いします。 
また、それぐらい調べろよ・・・と思うかもしれませんが cygwin c言語 で検索してみたのですが
質問3ぐらいの方法しか見つかりませんでしたので、検索ワードぐらいでも教えていただけれたらと思います。