I like Construct's TokenString system expressions for things like this. They are just string variables with different fields separated by some character or string. In this case, I'd use a TokenString with NewLine separators, where each field is another TokenString with a '|' separator, containing each question and answer pair.
I made a quick example of such a method, here:
http://dl.dropbox.com/u/5868916/MathQuiz1.cap
It's not commented, and quickly written, but it should get the idea across. It's fairly dynamic, and can help keep the number of events down. If anything in it sparks your interest, and you have any questions, I'll check back when I have more time.
Basically, you can just double-click the text object above the layout, and enter each 'question|answer' pair on a new line in the popup editor, then run it to test it out. You can end the question list with a NewLine or 'END'.
Also, You can also just read 'enter key pressed' instead of using a button if you like.
It assumes all answers are numbers, and converts the strings to floating-point numbers. This can be a bit tricky, if you work with floats. This example uses the system expression FormatDecimal to round off the numbers, but I'm not sure that it works as I would expect it to. May just have to specify that all answers follow a certain format at the beginning of the quiz...
The data structures that scidave mentioned can also be used in much the same way, though setting them up may require more steps.