Code:
int displayval()
  {
    char car;
    printf("Character: %c\t ascii: %u\t hex: %#X\n", car, car, car);
    return (0);
  }
And what value do you expect car to have when printf() does it's work in this function? You haven't assigned it any value!

[edit]
There's a whole load of "passing the variable around" that you need to do. The value of car needs to be passed between getval(), repeat(), displayval(). For example, when you leave repeat() to go back to main, the value of the local car variable in the main is untouched.