Alternatively to solution1 by Sergey Vaselenko, you can join two pivots:
DECLARE @Questions TABLE (QID INT IDENTITY(1,1), Question VARCHAR(300))
INSERT INTO @Questions (Question)
VALUES('select fruits:'),
('select animals:'),
('Select flowers:')
DECLARE @QuestionOptions TABLE (QOID INT IDENTITY(1,1), IOption VARCHAR(300), QID INT, CorrectOption INT)
INSERT INTO @QuestionOptions (IOption, QID, CorrectOption)
VALUES('Apple', 1, 1),
('Mango', 1, 1),
('rose', 1, 0 ),
('Grapes', 2, 1 ),
('Lotus', 2, 0),
('Orange', 3, 0),
('rose', 3, 1),
('Cat', 3, 0 )
SELECT T1.QID, T1.Question, T1.[1] AS Answer1, T1.[2] AS Answer2, T1.[3] AS Answer3, T2.[1] AS IsProper1, T2.[2] AS IsProper2, T2.[3] AS IsProper3
FROM (
SELECT QID, Question, [1], [2], [3]
FROM (
SELECT Q.QID, Q.Question, QO.IOption, ROW_NUMBER() OVER(PARTITION BY Q.QID ORDER BY Q.QID) AS OptNo
FROM @Questions AS Q INNER JOIN @QuestionOptions AS QO ON Q.QID = QO.QID
) AS DT
PIVOT(MAX(IOption) FOR OptNo IN ([1], [2], [3])) AS PT
) AS T1 INNER JOIN (
SELECT Question, [1], [2], [3]
FROM (
SELECT Q.QID, Q.Question, QO.CorrectOption, ROW_NUMBER() OVER(PARTITION BY Q.QID ORDER BY Q.QID) AS OptNo
FROM @Questions AS Q INNER JOIN @QuestionOptions AS QO ON Q.QID = QO.QID
) AS ET
PIVOT(MAX(CorrectOption) FOR OptNo IN ([1], [2], [3])) AS RT
) AS T2 ON T1.Question = T2.Question
Result:
1 select fruits: Apple Mango rose 1 1 0
2 select animals: Grapes Lotus NULL 1 0 NULL
3 Select flowers: Orange rose Cat 0 1 0