Query Joining on Column headings
SELECT a.idx 
     , q1.qdesc q1desc, a.q1 q1result
     , q2.qdesc q2desc, a.q2 q2result 
     , q3.qdesc q3desc, a.q3 q3result
     , ...
FROM answers a
   , questions q1
   , questions q2 
   , questions q3
   , ...
WHERE q1.qid=1 
  AND q2.qid=2 
  AND q3.qid=3 
  AND ...


The number of questions/answers is dynamic, so use dynamic SQL for to build the query text.

PS. Do you really want to output the result table which contains 600 columns?