B and C. One of the purposes of DE() is to stop ColdFusion from evaluating an expression. This can be used in an IIf() function to return a literal rather than a value. Answer A is incorrect because DE() is not used only for output. Answer D is incorrect because DE() stands for delay evaluation.
A2:
C. The condition (1 is 1) is true and returns the first of the two arguments. The first argument has three expressions within it (1,2,3 are three separate expressions). Because ColdFusion always returns the last expression, the rightmost one is returned (3).
A3:
B. The Evaluate() function can create expressions by concatenating strings and literals. The complete expression evaluates to "p=ArrayNew(1)", which creates a new array.
A4:
A. It might appear that the answer is B (y). Because x is not equal to y (x = "y" and y = "x"), the second of the two expressions can run. The second expression is simply "x". If the expression had quotation marks around it, then x would be evaluated as the value "y". But because x has no quotes around it, it is actually evaluated twice. First, it is evaluated to see what it equals (y), and then that value is evaluated as an expression in itself, which equals "x". It is doubtful that anything this difficult would be on the exam, but it is sure good practice!