#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[]){
FILE *fp;
int i = 0;
int c;
if(argc == 1){
printf("Miss Command\n");
return 0;
}
while(i < argc){
if((fp = fopen(argv[i], "r")) == NULL){
printf("FILE OPEN ERORR");
exit(1);
}
while((c = getc(fp)) != EOF){
printf("%c", c);
}
i++;
}
return 0;
}

のように実行結果の上にバイナリをそのまま表示したような文字列が表示されます。そのあとには正常な動作をしています。
これはコンパイラの問題なのでしょうか?
それとも他に原因があるのでしょうか?