I just passed the SAS advanced programming exam last Saturday. Here are few things that I can share with everyone. Following are few exam questions I can only remember. They are not in the sample questions, which I got from this forum. Some descriptions of questions and options might not exactly be the same as the actual ones, but at least you guys can gain some idea.
1. In which situation, SELECT is more efficient than IF/THEN ELSE?
A. In the small amount selected data which is randomly distributed for numeric variables.
B. In the small amount selected data which is uniformly distributed for numeric variables.
C. In the large amount selected data which is randomly distributed for character variables.
D. In the large amount selected data which is uniformly distributed for character variables.
2. %LET VAR= WONDERFUL;
%LET SAS= VAR
%PUT <INSERT A SAS STATEMENT HERE>
The %PUT statement generates "WONDERFUL" in the log, which following code is used for that?
A. "&&&SAS"
B. """&&&SAS""
C. (I forget this one)
D. %QUOTE(&&&SAS)
3. %MACRO LOOP1 (INPUT);
%LOOP2;
%PUT DATE IS &DATE;
%MEND;
%MACRO LOOP2;
CALL SYMPUT('DATE', '28SEP1998');
%MEND;
%LET DATE=31DEC2006;
%MACRO LOOP1(&DATE)
What message is generated by %PUT?
A. DATE IS 31DEC2006 read from global symbol table.
B. DATE IS 28SEP1998 read from local symbol table of LOOP1
C. DATE IS 28SEP1998 read from local symbol table of LOOP2
D. DATE IS 28SEP1998 read from global symbol table.
(There was another question which was almost the same as this one, but the location of %PUT was different.)
(Therefore, we can see that understanding the global and local symbol tables are really important.)
4. sasuser.data contains variables FMTNAME, START, LABEL. What does the following statement do?
PROC FORMAT CNTLIN=sasuser.data
RUN;
(I can barely remembere the options.)
5. %MACRO LOOP1;
hight weight;
%MEND;
%MACRO LOOP2;
age race;
%MEND;
Which one in the following options can correctly generate a report?
A. PROC PRINT DATA=sasuser.data;
VAR %LOOP1 %LOOP2;
RUN;
B. PROC PRINT DATA=sasuser.data;
VAR %LOOP1 age;
RUN;
C. PROC PRINT DATA=sasuser.data;
VAR age %LOOP1;
RUN;
D. PROC PRINT DATA=sasuser.data;
VAR %LOOP1 %LOOP2 height;
RUN;
GROUPFORMAT, NOTSORTED, HASH OBJECT, the purpose of using SASFILE are also in the exam.
Don't even mention how important the different joins and vertical table combination techniques in PROC SQL are.
Many exam questions are the same as those in the sample questions.
I hope you find these pieces of information helpful, and good luck to anyone who is preparing for the test.