#include<iostream>
using namespace std;
int main ( )
{
char qr[21][21];
int num,c,i;
srand(time(NULL));
for(i=0;i < 21;i++){
for(c=0;c < 21;c++)
{
num=rand()%(2);
qr[i][c] == num;
cout<<"QR["<< i << "]["<< c <<"] = ["<< (char)(num==0?'*':num==1?' ':num) <<"]" <<endl;
}}
system("pause");
return 0;
}
(char)(num==0?'*':num==1?' ':num)
Usando esos 2 operadores ternarios encadenados, compruebas en la misma linea si es 1 o 0, e imprimes su respectivo caracter. En caso de que no sea ni 1 ni 0, imprimirá el número que sea. Eso si quieres, lo puedes cambiar a
Para que sea seguro que solo imprime asterisco y espacio.