Tan simple como en el vector resultado, guardar el valor en la posición i+j. Siendo i=3 y j=2, por ejemplo:
v1[3]=4 (4x3)
v2[2]=5 (4x2)
v3[3+2]=4*5 (20x5)
Cuando te toque imprimir el resutlado, haces un recorrido, por ejemplo, en C podrías hacerlo así:
for(i=0;i<N;i++){
if(v3[i]!=0 && i==0) printf("&d ",v3.resultado);
else if(v3[i]!=0 && i==1) printf("&d x",v3.resultado);
else if(v3[i]!=0) printf("&d x^%d",v3.resultado,i);
}
printf("\n");
De esta forma, imprimes a+ax+...+axn, sólo los grados que existan, y para i=0 e i=1, el formato es el correcto. También podrías poner los casos de i, dentro de si es true la condición.
Editado: corregido, cierto #4. Se me fue por completo.