Query Joining on Column headings I have Survey results given to me in a massive table. (300+ columns)

A list of questions is provided in a table, and the Survey results in another.

Questions. 

+-----+-----+---------------------------------+
| idx | QID |              QDesc              |
+-----+-----+---------------------------------+
|   1 | Q1  | Are you alive?                  |
|   2 | Q2  | Do you like pizza?              |
|   3 | Q3  | Do you like pineapple on pizza? |
+-----+-----+---------------------------------+


The answers from each person surveyed are entered on 1 line, each question/answer in it's own column. 

+-----+----+-----+-----+
| idx | Q1 | Q2  | Q3  |
+-----+----+-----+-----+
|   1 |  1 | Yes | No  |
|   2 |  0 | No  | No  |
|   3 |  1 | Yes | Yes |
+-----+----+-----+-----+


I want to create a view on this which will be used in Excel Pivot tables. So I want the quest text in each row. Something like: 

+-----+----------------+----------+--------------------+----------+---------------------------------+----------+
| idx |     Q1Desc     | Q1Result |       Q2Desc       | Q2Result |             Q3Desc              | Q3Result |
+-----+----------------+----------+--------------------+----------+---------------------------------+----------+
|   1 | Are you alive? |        1 | Do you like pizza? | Yes      | Do you like pineapple on pizza? | No       |
|   2 | Are you alive? |        0 | Do you like pizza? | No       | Do you like pineapple on pizza? | No       |
|   3 | Are you alive? |        1 | Do you like pizza? | Yes      | Do you like pineapple on pizza? | Yes      |
+-----+----------------+----------+--------------------+----------+---------------------------------+----------+


I feel like the answer should be a unpivot/pivot, but the thought is making my head explode. Over time i'll be loading more results and the questions and result columns could be added to, so i want it to be dynamic. 

Is there a simple way to do this?
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?