Using a variable list and Informat list
A variable list is a set of variable names in parentheses.
When used in an INPUT statement, a variable list should always be paired with an informat list.
An informat list is a set of pointer controls and informats in parentheses.
Rule: SAS is driven by the variables in the INPUT statement; SAS will give each of the variables a value (one way or the other).
Aside: There are two other possibilities: That SAS is driven by the informats and that SAS is driven by the data. The first could make some sense but the latter makes no sense. Neither is the way SAS works.
That is, the INPUT statement will trundle through all of the variables in a variable list, giving each a value by reading the data. It does this by using the informat list; It does this by reusing the informat list if it needs to fill another variable but it has hit the right parenthesis of the informat list.
Manually reusing an Informat list
An equivalent way to code the above INPUT statement is:
INPUT ID 1-3 @4 (Q1-Q5)(5*1.) @9 (Q6-Q10 HEIGHT AGE)(7*2.);
The n* informat modifier says, "use the following informat n times."