printf()のところがなかなかまぬけ。
#include <stdio.h>
char* data[] = {
"*------*------*",
"-*-----*-----*-",
"--*----*----*--",
"---*---*---*---",
"----*--*--*----",
"-----*-*-*-----",
"------***------",
"*******Q*******",
"------***------",
"-----*-*-*-----",
"----*--*--*----",
"---*---*---*---",
"--*----*----*--",
"-*-----*-----*-",
"*------*------*" };
int main() {
  int x, y, i;
  printf("x ?"); scanf("%d", &x);
  printf("y ?"); scanf("%d", &y);
  for (i = 0; i < 8; i++) {
    printf("%c%c%c%c%c%c%c%c\n",
      (int)data[y + i][x + 7], (int)data[y + i][x + 6],
      (int)data[y + i][x + 5], (int)data[y + i][x + 4],
      (int)data[y + i][x + 3], (int)data[y + i][x + 2],
      (int)data[y + i][x + 1], (int)data[y + i][x + 0]);
  }
  return 0;
}