デバッグはしてないけどこんな感じかな

gawk -f hoge.awk a.txt b.txt c.txt
----hoge.awk
BEGIN{FS=","}

{
  if(FNR==NR) {
    for(i=1;i<=NF;i++) keys[i]=$i;
  }
  else {
    for(i=1;i<=NF;i++) {
      dat[FILENAME,i]=0;
      for(j in keys) if(keys[j]==$i) dat[FILENAME,i]=1;
    }
    cnt[FILENAME]=NF;
  }
}

END{
  for(i in keys) printf(keys[i]",");
  printf("\n");

  for(fname in cnt) {
    printf(fname",");
    for(i=1; i<=cnt[fname]; i++) {
      printf(dat[fname,i]",");
    }
  }
}