Top Banner
Quiz Score: 0% You answered 0 out of 50 questions correctly. To see any answer, scroll down or click a question in the grid below. When you select links on this page, the information appears in the original browser window. Questi on # 1 2 3 4 5 6 7 8 9 10 Correc t / Incorrec t 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 1. A raw data file is listed below. 1---+----10---+----20---+---
44
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Paper3

Quiz Score:  0%

You answered 0 out of 50 questions correctly. To see any answer, scroll down or click a question in the grid below. When you select links on this page, the information appears in the original browser window.

  Question # 1 2 3 4 5 6 7 8 9 10

  Correct  / Incorrect

     

11 12 13 14 15 16 17 18 19 20

21 22 23 24 25 26 27 28 29 30

31 32 33 34 35 36 37 38 39 40

41 42 43 44 45 46 47 48 49 50

1.  A raw data file is listed below.

1---+----10---+----20---+---

01/05/1989    Frank     11

12/25/1987    June      13 

01/05/1991    Sally     9

Page 2: Paper3

The following SAS program is submitted using this file as input: data work.family; infile 'file-specification'; input @1 date_of_birth mmddyy10. @15 first_name $5. @25 age 3;run;

proc print data=work.family noobs;run;

The following output is generated for the Work.Family data set:

Date_of_birth First_name Age

10597 Frank .

10220 June .

11327 Sally .

Which of the following statements is true regarding the Work.Family output? a. The output has the expected data values.b. The output does not have the expected data values due to an

invalid data set name. c. The output does not have the expected data values due to an

invalid informat for Age only. d. The output does not have the expected data values due to invalid

informats for both Age and Date_of_birth.

Correct answer:   c Your answer:  

The output for Work.Family does not have the expected data values. The values for the variable Age are missing because the program contains an invalid informat for Age. The informat for reading standard numeric data is w.d, so the correct informat for Age is 3.. The informat for Date_of_birth, mmddyy10., is correct.  

2.  The following SAS program is submitted: data employees; infile 'file-specification'; input @1 name $10. @15 date date9 @25 department $;run;

How many numeric variables are created?

Page 3: Paper3

a. 0b. 1c. 2d. 3

Correct answer:   cYour answer:  

Name and Department are created as character variables because they both use the $w. informat . If the second line of the INPUT statement was @15 date date9., then the program would create one numeric variable named Date. However, the period is missing from the informat date9.. Therefore, SAS interprets the line as list input rather than formatted input, and creates two numeric variables: Date and Date9.  

3.  What is the function of the FILENAME statement in SAS? a. It associates a file reference with an external file. b. It associates a library reference with an external file. c. It associates a file reference with a relational database. d. It associates a library reference with a relational database.

Correct answer:   a Your answer:  

The FILENAME statement associates a file reference with an external file. The LIBNAME statement associates a library reference with a SAS data library. The LIBNAME statement can also associate a library reference with a relational database if you have the appropriate SAS/ACCESS products licensed for the relational database that you need to access. 

4.  A raw data file is listed below.

1---+----10---+----20---+---

Jose,47,210

Sue,,108

The following SAS program is submitted using this file as input: data employeestats; <insert INFILE statement here>; input name $ age weight;run;

Page 4: Paper3

The following output is desired:

name age weight

Jose 47 210

Sue . 108

Which of the following INFILE statements completes the program and accesses the data correctly? a. infile 'file-specification' pad;

b. infile 'file-specification' dsd;

c. infile 'file-specification' missover;

d. infile 'file-specification' dlm=',';

Correct answer:   bYour answer:  

The correct INFILE statement uses the DSD option to read the data with commas as delimiters and uses two consecutive commas to indicate a missing value. The PAD option specifies that SAS pad variable length records with blanks. The MISSOVER option prevents SAS from reading past the end of the line when reading free-formatted data. The DLM= option specifies the comma as the delimiter, but by default consecutive delimiters are treated as one delimiter rather than as an indication of a missing value. 

5.  A raw data file is listed below.

1---+----10---+----20---+---

RANCH,1250,10MAR2004

SPLIT,1190,10/20/2004

CONDO,1400,17JUN2004

TWOSTORY,1810,12/31/2004

RANCH,1500,20JAN2004

SPLIT,1615,08/19/2004

The following SAS program is submitted using this file as input: data work.condo_ranch; infile 'file-specification' dsd; input style $ @; if style = 'CONDO' or style = 'RANCH' then input sqfeet saledate : date9.; else input sqfeet saledate : mmddyy10.;

run;

Page 5: Paper3

How many observations does the Work.Condo_ranch data set contain? a. 0 b. 3c. 5d. 6

Correct answer:   d Your answer:  

There are 6 observations in the Work.Condo_ranch data set. The trailing @ in the first INPUT statement holds the record in the input buffer and allows the next INPUT statement that is executed to continue reading from the same record. The program uses IF-THEN/ELSE conditional logic to execute either the second or third INPUT statement conditionally based on the value of Style. Because of the trailing @ in the first INPUT statement, the second or third INPUT statement reads from the same record as the first INPUT statement. Therefore, each line in the raw data file is read once, which creates a total of 6 observations in the output data set.  

6.  A raw data file is listed below.

1---+----10---+----20---+----30---+----40---+----50

TWOSTORY 1040 2      1SANDERS ROAD      $55,850

CONDO    2150 4    2.5JEANS AVENUE     $127,150

The following program is submitted using this file as input: data work.houses; infile 'file-specification'; <insert INPUT statement here>run;

Which one of the following INPUT statements reads the raw data file correctly? a. input @1 style $8.

+1 sqfeet 4. +1 bedrooms 1. @20 baths 3. street 16. @40 price dollar8;

b. input @1 style $8 +1 sqfeet 4. +1 bedrooms 1. @20 baths 3. street $16 @40 price dollar8.;

c. input @1 style $8. +1 sqfeet 4.

Page 6: Paper3

+1 bedrooms 1. @20 baths 3. street $16. @40 price dollar8.;

d. input @1 style $8. +1 sqfeet 4. +1 bedrooms 1. @20 baths 3 street 16. @40 price dollar8.;

Correct answer:   c Your answer:  

To read formatted input, an INPUT statement requires valid informats. A valid informat always contains a period. The correct INPUT statement creates 2 character variables (Style and Street) and 4 numeric variables (Sqfeet, Bedrooms, Baths, and Price).  

7.  The following SAS program is submitted: data both; set M F(in = INF); if INF then gen = 'F'; else gen = 'M'; by name;run;

The SAS data sets Work.M and Work.F are each sorted by the variable Name. The data set Work.M contains 10 observations, and the data set Work.F contains 9 observations. How many observations does the Work.Both data set contain? a. 0b. 9c. 10d. 19

Correct answer:   d Your answer:  

The Work.Both data set contains 19 observations. The valid SET statement contains two input data sets, which causes the input data sets to be concatenated. The IN= data set option creates an indicator variable that is used to conditionally assign a value to the variable Gen. The variable Inf indicates whether Work.F contributed data to the current observation. When Work.F contributes to the current observation, the IF statement is true and the value of Gen is set to F. Otherwise, the IF statement is false and the value of Gen is set to M.  

Page 7: Paper3

8.  The following SAS program is submitted: data test(drop=age); set sashelp.class(keep=name age gender height weight); drop=gender; newage=age+1;run;

Sashelp.Class contains 5 variables. What is the result? a. No variables are written to the data set Work.Test.b. 4 variables are written to the data set Work.Test.c. 5 variables are written to the data set Work.Test.d. 6 variables are written to the data set Work.Test.

Correct answer:   d Your answer:  

The Work.Test data set contains 6 variables: Name, Gender, Height, Weight, Drop, and Newage. The KEEP= option in the SET statement reads 5 variables from the input data set. The variable Age is read from the input data set, but it is dropped from the output data set by the DROP= data set option. There are also two new variables created in the DATA step.  

9.  The following SAS program is submitted at the start of a new SAS session: libname sasdata 'SAS-data-library';data sasdata.sales; set sasdata.salesdata; profit=expenses-revenues;run;

proc print data=sales;run;

The SAS data set Sasdata.Salesdata has 10 observations. Which one of the following answers explains why a report fails to generate? a. The DATA step fails to execute.b. The SAS data set Sales does not exist. c. The SAS data set Sales has no observations.d. The PRINT procedure statement syntax is incorrect.

Correct answer:   bYour answer:  

The LIBNAME statement creates a permanent data library named

Page 8: Paper3

Sasdata. The DATA statement indicates that the new data set Sales will be stored in the permanent library Sasdata. The PRINT procedure references a temporary SAS data set, Sales, which is stored in the Work library. At the beginning of the SAS session, Work.Sales does not exist.  

10.  The SAS data set Sasdata.Two is listed below.

Sasdata.Two

x y

5 2

5 4

3 6

The following SAS program is submitted: data sasuser.one one; set sasdata.two; output one;run;

What is the result? a. The data set Sasuser.One has 0 observations and the data set One

has 0 observations.b. The data set Sasuser.One has 0 observations and the data set One

has 3 observations.c. The data set Sasuser.One has 3 observations and the data set One

has 0 observations.d. The data set Sasuser.One has 3 observations and the data set One

has 3 observations.

Correct answer:   b Your answer:  

There are 2 output data sets listed in the DATA statement: the permanent data set Sasuser.One and the temporary data set One. The SET statement reads 3 observations from Work.Two. The OUTPUT statement is used to explicitly output the 3 observations to the Work.One data set. When the OUTPUT statement is used, it turns off automatic output in the DATA step, so any data set that is listed in the DATA statement but not in the OUTPUT statement will not have any observations written to it. Because there is no explicit OUTPUT statement for Sasuser.One, the data step creates Sasuser.One but it has 0 observations.  

Page 9: Paper3

11.  The following SAS program is submitted: data work.new; y=10; z=05; x=12; date=mdy(x,y,z);run;

What is the value of the Date variable? a. a character string with the value 12/10/05b. a character string with the value 10Dec2005c. a numeric value of 16780, which represents the SAS date value for

December 10, 2005d. a numeric value of 121005, which represents the SAS date value

for December 10, 2005

Correct answer:   c Your answer:  

The MDY function creates a numeric value that represents a SAS date value. The arguments in the MDY function must be numeric, and they must represent the values for the month, day, and year (in that order). SAS date values are calculated as the number of days from January 1, 1960, to the given date. Therefore, the numeric value 16780 represents the SAS date value for December 10, 2005.  

12.  The following SAS program is submitted: data work.report; set work.sales_info; if qtr(sales_date) ge 3;run;

The SAS data set Work.Sales_info has one observation for each month in the year 2005, and the variable Sales_Date contains a SAS date value for each of the 12 months. How many of the original 12 observations in Work.Sales_info are written to the Work.Report data set? a. 2b. 3c. 6 d. 9

Correct answer:   cYour answer:  

The QTR function extracts a value from 1 to 4 from a SAS date value. This value indicates the quarter of the year in which the date falls. The

Page 10: Paper3

quarters are based on a calendar year starting with January. The subsetting IF statement continues to process only when the observation has a Sales_date value that falls in the last 2 quarters of the year. Because the input data set contains one observation for each month in the year 2005, there are 6 observations written to Work.Report.  

13.  The following SAS program is submitted: data _null_; set old(keep=sales1 sales2); file 'file-specification'; put sales1 sales2;run;

What is the result? a. A raw data file is created with no delimiter separating the fields.b. A raw data file is created with a space delimiter separating the

fields. c. A raw data file is created with a comma delimiter separating the

fields.d. No raw data file is created. The DATA step fails execution

because no delimiter is specified.

Correct answer:   b Your answer:  

The FILE statement specifies the output file for the DATA step. The PUT statement describes the lines to write to the raw data file. In this case, the PUT statement is used with list input, so the fields in the output are delimited by a blank space.  

14.  The following SAS program is submitted: data _null_; set old <insert option here> = last; put sales1 sales2; if last then put 'This is the end of the data set';run;

Which of the following options creates the variable Last? a. ENDb. EOF c. PTOBS d. TOTOBS

Correct answer:   aYour answer:  

Page 11: Paper3

The END= option creates and names a temporary variable whose value is 1 when the DATA step is processing the last observation (otherwise the value is 0). PTOBS, EOF, and TOTOBS are not valid SAS options.  

15.  The SAS data set One is listed below.

One

X Y Z

1 A 27

1 A 33

1 B 45

2 A 52

2 B 69

3 B 70

4 A 82

4 C 91

The following SAS program is submitted: data two; set one; by x; if first.x;run;

proc print data=two noobs;run;

Which of the following reports is the result? a. X Y Z

1 A 27

2 A 52

3 B 70

4 A 82

b. X Y Z

1 A 27

1 B 45

2 A 52

Page 12: Paper3

X Y Z

2 B 69

3 B 70

4 A 82

4 C 91

c. X Y Z

1 B 45

2 B 69

3 B 70

4 C 91

d. No report is produced. The PRINT procedure fails because the data set Two is not created in the DATA step.

Correct answer:   a Your answer:  

First.X is a temporary variable that is automatically created to identify the beginning of each BY group. First.X is not included in the output data set Two. The subsetting IF statement in this program is true for the first observation of each BY group. Therefore, the data set Two contains one observation for the first instance of each value of X in One.  

16.  The following SAS program is submitted: libname sasdata 'SAS-data-library';libname labdata 'SAS-data-library';data labdata.boston labdata.dallas(drop=city dest equipment); set sasdata.cities(keep=orig dest city price equipment); if dest='BOS' then output labdata.boston; else if dest='DFW' then output labdata.dallas;run;

Which variables are output to both data sets? a. Price and Orig onlyb. City and Equipment onlyc. City, Price, and Equipment only d. City, Price, Orig, and Equipment only

Correct answer:   a Your answer:  

The DROP= data set option specifies which variables are dropped when

Page 13: Paper3

the Labdata.Dallas data set is created. If neither the DROP= data set option nor the KEEP= data set option is used, then all of the variables that are read from the input data set are included in the output data set. The KEEP= data set option in the SET statement specifies which variables to read from the input data set. Therefore, the variables that both output data sets contain are the variables that are listed in the KEEP= option in the SET statement and are not listed in the DROP= data set option in the DATA statement.  

17.  The following SAS program is submitted: proc contents data=sasuser.airplanes;run;

What is produced as output? a. the code that created the data set Sasuser.Airplanes b. the data portion only of the data set Sasuser.Airplanes c. the descriptor portion only of the data set Sasuser.Airplanes d. the data and descriptor portions of the data set Sasuser.Airplanes

Correct answer:   c Your answer:  

The CONTENTS procedure cannot produce the code that created the data set Sasuser.Airplanes. PROC CONTENTS displays only the descriptor portion of the data set. To see a listing of the data portion of the data set, you can use the PRINT procedure or the REPORT procedure. 

18.  Which SAS procedure displays a listing of the observations in the data portion of a SAS data set? a. FSLISTb. REPORTc. TABULATEd. CONTENTS

Correct answer:   b Your answer:  

The REPORT procedure displays a listing of the observations in the data portion of the SAS data set. The FSLIST procedure displays the contents of an external file. The TABULATE procedure displays a tabular report of the observations in the data portion of the SAS data set. The CONTENTS procedure displays the descriptor portion of the SAS data

Page 14: Paper3

set.  

19.  The observations in the SAS data set Work.Test are ordered by the values of the variable Salary. The following SAS program is submitted: proc sort data=work.test; <insert statement here>run;

Which of the following statements completes the program and sorts the Work.Test data set by Name in descending order? a. by desc name;

b. by name desc;

c. by descending name;

d. by name descending;

Correct answer:   cYour answer:  

The SORT procedure orders SAS data set observations by the values of one or more character or numeric variables that are listed in the BY statement. The SORT procedure arranges the data in ascending order by default. To sort in descending order, the keyword DESCENDING must be included in the BY statement before the sort variable. The keyword DESCENDING cannot be abbreviated in the BY statement.  

20.  The following SAS program is submitted: proc sort data=payroll; by EmployeeIDNumber;run;

How are the observations sorted? a. Payroll is re-created in sorted order by EmployeeIDNumber.b. Payroll is stored in original order, and a new data set Payroll is

created in sorted order by EmployeeIDNumber.c. Payroll is stored in original order, and a new data set

Payrollsorted is created in sorted order by EmployeeIDNumber.d. Payroll is re-created in sorted order by EmployeeIDNumber, and a

new data set Payroll is created in sorted order by EmployeeIDNumber.

Correct answer:   a Your answer:  

The SORT procedure orders SAS data set observations by the values of one or more character or numeric variables that are listed in the BY

Page 15: Paper3

statement. The SORT procedure re-creates and replaces the original data with the sorted version of the data if the OUT= option is not used. If the OUT= data set is used, a new data set is created to hold the sorted data, and the original data remains unchanged.  

21.  Which one of the following SAS programs creates a variable named City with a value of Chicago? a. data work.airports;

AirportCode='ord'; if AirportCode='ORD' City='Chicago';run;

b. data work.airports; AirportCode='ORD'; if AirportCode='ORD' City='Chicago';run;

c. data work.airports; AirportCode='ORD'; if AirportCode='ORD' then City='Chicago';run;

d. data work.airports; AirportCode='ORD'; if AirportCode='ORD'; then City='Chicago';run;

Correct answer:   c Your answer:  

This DATA step uses an IF-THEN statement to conditionally assign the value Chicago to the variable City. The correct syntax for an IF-THEN statement is IF expression THEN statement. 

22.  The SAS data set Employees is listed below.

Employees

Name Salary

Patel 60000

Payne 50000

Ellis 55000

Liu 45000

The following SAS program is submitted: proc print data=employees;

Page 16: Paper3

where name ? 'e';run;

What is the result? a. No observations are written to the report.b. The observation for Ellis only is written to the report. c. The observations for Patel and Payne only are written to the

report.d. The observations for Patel, Payne, and Ellis only are written to the

report.

Correct answer:   cYour answer:  

Two observations are written to the report: one for Patel, and one for Payne. The WHERE statement uses ?, which is a mnemonic equivalent for the CONTAINS operator. The CONTAINS operator searched for a specific set of characters within the values of a character variable. The position of the string does not matter, but the case does. Because Ellis contains an uppercase E, it is not included in the report.  

23.  The following SAS program is submitted: data result; lname="o'reiley"; <insert statement here>;run;

Which statement completes the program and creates the variable X with a value of O'Reiley? a. x=propcase(lname);

b. x=propcase(lname,"'");

c. x=upcase(lname);

d. x=upcase(lname,"'");

Correct answer:   b Your answer:  

The PROPCASE function converts all words in an argument to proper case. The PROPCASE function uses a default list of delimiters if none are specified. The delimiter required to correctly convert the value o'reiley to proper case is a single quotation mark. Because the single quotation mark is not one of the default delimiters, it must be listed as the second argument in the function. The UPCASE function converts all letters in the argument to uppercase. There is only one argument for the UPCASE function.  

Page 17: Paper3

24.  The following SAS program is submitted: data work.count; if OriginalAmount= . then OriginalAmount=100; AdditionalItems=100; OriginalAmount= .; TotalCount=(OriginalAmount+AdditionalItems)+0;run;

What is the value of the Totalcount variable in the output data set? a. 0b. 100 c. 200d. . (missing numeric value)

Correct answer:   dYour answer:  

Arithmetic operators do not ignore missing values. The result of adding a missing value to an expression with an arithmetic operator is a missing value. In this program, the value of OriginalAmount is missing at the beginning of the DATA step. The IF-THEN logic changes the value of OriginalAmount to >100. Then, the assignment statement for OriginalAmount changes the value to missing. Therefore, OriginalAmount has a missing value when it is used in the expression for the TotalCount assignment statement.  

25.  Which SAS program renames two variables? a. set work dept1

work dept2(rename=(jcode=jobcode) (sal=salary));

b. set work dept1 work dept2(rename=(jcode=jobcode sal=salary));

c. set work dept1 work dept2 rename=(jcode=jobcode sal=salary);

d. set work dept1 work dept rename=jcode=jobcode sal=salary;

Correct answer:   b Your answer:  

In the RENAME= data set option, you list the old variable name, followed by an equal sign and the new variable name. You enclose the variable names in one set of parentheses, and you enclose the entire

Page 18: Paper3

RENAME= option in a second set of parentheses. 

26.  The variable Name in the data set Employee has a format of $CHAR9. The variable Name in the data set Sales has a format of $CHAR15. The following SAS program is submitted: data merged; merge employee sales; by name; format name $CHAR12.;run;

What is the format for the variable Name in the data set Merged? a. $CHAR.b. $CHAR9. c. $CHAR12. d. $CHAR15.

Correct answer:   c Your answer:  

The FORMAT statement specifies $CHAR12. as the format for the variable Name in the data set Merged. By default, the FORMAT attribute is determined by the data set that is listed first in the MERGE statement. If you use a FORMAT statement in the DATA step, then the FORMAT statement overrides the FORMAT attribute from the first data set that is listed in the MERGE statement. 

27.  What is true of the sum statement in a SAS DATA step program? a. It is valid only in conjunction with a SUM function.b. It is not valid with the SET, MERGE, and UPDATE statements.c. It adds the value of an expression to an accumulator variable and

ignores missing values.d. It does not retain the accumulator variable value from one iteration

of the SAS DATA step to the next.

Correct answer:   c Your answer:  

The sum statement in the DATA step is used to create an accumulator variable. It adds the value of the expression to the accumulator variable and ignores missing values. The value of the accumulator variable is retained from one iteration of the SAS DATA step to the next. The sum statement is valid in any DATA step. 

Page 19: Paper3

28.  What is the correct form of the sum statement in a DATA step? a. sum var1 var2;

b. var1 + var2;

c. total=var1 + var2;

d. total=sum(var1,var2);

Correct answer:   b Your answer:  

The sum statement specifies the name of an accumulator variable and adds the result of the expression to that variable. The value is initially set to 0 and is retained. The SUM statement in the PRINT procedure is different from the sum statement in the DATA step. There is also a SUM function that can be used in the DATA step. 

29.  The following SAS program is submitted: data one; address1='214 London Court';run;

data output; set one; address1=<insert code here>;run;

Which of the following completes the program and changes the word Court to Drive in the value of the variable Address1? a. tranwrd(address1,'Court','Drive')

b. trantab(address1,'Court','Drive')

c. translate(address1,'Court','Drive')

d. transform(address1,'Court','Drive')

Correct answer:   aYour answer:  

The TRANWRD function replaces or removes all occurrences of a word in a character string. The TRANTAB function transcodes a data string by using a translation table. The TRANSLATE function replaces a specific character expression. TRANSFORM is not a valid SAS function. 

Page 20: Paper3

30.  The following SAS program is submitted: data work.test; title="Hitchhiker's Guide to the SAS Language"; word=substr(title,13,5);run;

What is the value of the variable Word in the output data set? a. Guideb. ide tc. s Guidd. Guide to the SAS Language

Correct answer:   a Your answer:  

The SUBSTR function in this program returns a 5-character substring of the value of Title, beginning at the 13th character. 

31.  The following SAS program is submitted: data work.products; Product_Number=5461; Item='1001'; Item_Reference=item||'/'||product_Number;run;

What is the result?a. The variable Item_reference is created with a missing value.b. The variable Item_reference is created with the value

1001/5461.c. The variable Item_reference is created with the value

1001/    5461.d. The variable Item_reference is not created. The program fails to

execute because of errors.

Correct answer:   c Your answer:  

The Item_Reference variable is created as a character variable with the value 1001/    5461, even though a numeric variable was concatenated with the value of a character variable. SAS performs automatic numeric-to-character conversion for the purpose of concatenation. When Item_Reference is created, the automatic conversion from numeric to character uses the BEST12. format for conversion, and the leading blanks are included in the converted value. 

Page 21: Paper3

32.  The following SAS program is submitted:

data work.month; date=put('13mar2000'd,ddmmyy10.);run;

What are the type and length of the variable Date in the output data set?

a. The type is numeric and the length is 8 bytes.b. The type is numeric and the length is 10 bytes. c. The type is character and the length is 8 bytes. d. The type is character and the length is 10 bytes.

Correct answer:   dYour answer:  

The PUT function converts numeric variables to character variables. You can use a format as the second argument to specify how to write the value. The length of a character variable is determined by the width that is specified in the format name. 

33.  A SAS program is submitted and the following is written to the SAS log:

SAS Log

178 data days;179 do i='SUN' 'MON' 'TUES'; ----- ------ 388 200ERROR 388-185: Expecting an arithmetic operator.

ERROR 300-322: The symbol is not recognized and will be ignored.

180 day=i!!'DAY';181 end;182 run;

What caused the error?

a. The list of values should be in parentheses. b. The values should be separated by commas. c. The values should not be in quotation marks. d. Character values are not allowed on a DO loop statement.

Page 22: Paper3

Correct answer:   b Your answer:  

Character values are allowed in a DO loop statement. If character values are used in the DO loop statement, the values should be separated by commas and enclosed in quotation marks. 

34.  The following SAS program is submitted:

data work.clients; calls=6; do while(calls le 6); calls+1; end; calls+1;run;

What is the result?

a. The variable Calls has a value of 6 in the output data set. b. The variable Calls has a value of 7 in the output data set. c. The variable Calls has a value of 8 in the output data set. d. The variable Calls has no value. The program fails to execute.

Correct answer:   cYour answer:  

The DO WHILE loop checks the validity of the expression at the top of the loop and executes as long as the expression is true. When the expression is false, the DO loop does not execute. In this program, the value of Calls is set to 6 in the assignment statement at the beginning of the DATA step. Therefore, the expression in the DO/WHILE loop is true and the loop executes once. The loop increases the value of Calls to 7, so the loop expression fails and the DATA step continues with the sum statement. At the end of the DATA step, the value of Calls is 8.  

35.  The following SAS program is submitted:

data stats; set revenue; array weekly{5} mon tue wed thu fri; <insert DO statement here> total=weekly{i}*.25;

Page 23: Paper3

output; end;run;

Which one of the following DO statements completes the program and processes the elements of the weekly array?

a. do i=1-5;

b. do i=1 to 5;

c. do weekly=1 to 5;

d. do weekly{i}=1 to 5;

Correct answer:   b Your answer:  

A simple DO loop can be used to process the elements in the array. When you define a DO loop that processes elements in an array, the index variable name should also be the name that is used for the subscript of the array reference. 

36.  The following program is submitted:

data work.test; array diff_sales{3};run;

Which of the variables are written to the Work.Test data set?

a. Diff_sales onlyb. Diff_sales3 only c. Diff_sales, Diff_sales1, Diff_sales2 d. Diff_sales1, Diff_sales2, Diff_sales3

Correct answer:   d Your answer:  

The ARRAY statement creates an array named diff_sales. The diff_sales array has three elements. Because there are no variables referenced in a variable list in this array definition, this ARRAY statement creates three numeric variables named Diff_sales1, Diff_sales2, and Diff_sales3. 

Page 24: Paper3

37.  The following SAS program is submitted:

proc report data=work.houses nowd; column style price; where price<100000; <insert DEFINE statement(s) here> title;run;

The following list report is generated:

Styleof homes     

Askingprice

CONDO        $80,050

$79,350

TWOSTORY        $55,850

$69,250

Which of the following DEFINE statements completes the program and produces the desired output?

a. define price/sum format=comma9. width=10;

b. define style/display width=9.;define price/sum format=comma9. width=10;

c. define style/group width=9;define price/sum format=comma9. width=10;

d. define style/order width=9;define price/sum format=comma9. width=10;

Correct answer:   d Your answer:  

The detail report shown uses the variables Style and Price. The Style variable is specified as an order variable by the ORDER usage option in the DEFINE statement. The DISPLAY usage option would print a detail report listing all of the values of Style. The GROUP usage option would suppress the repetitious printing of Style, but it would collapse all rows with the same Style value into one row.  

38.  The following SAS program is submitted:

proc sort data=houses; by style;

Page 25: Paper3

run;

proc print data=houses; <insert SAS statement(s) here>run;

The following list report is generated:

style bedrooms baths price

CONDO         2

3

4

2

1.5

2.5

2.5

2.0

$80,050

$79,350

$127,150

$110,700TWOSTORY         4

2

2

4

3.0

1.0

1.0

2.5

$107,250

$55,850

$569,250

$102,950

Which of the following SAS statements completes the program and creates the desired report?

a. id style;var bedroom baths price;

b. id style;var style bedrooms baths price;

c. id style;by style;var bedrooms baths price;

d. id style;by style;var style bedrooms baths price;

Correct answer:   c Your answer:  

The ID statement prints the ID variable as the left-most column and suppresses the OBS column. If you specify a variable in the ID statement and that same variable is listed in the VAR statement, then the variable appears twice in the report. The report lists the ID variable once for each BY group when you use the ID statement and the BY statement together, with the same variable listed in both statements. The BY lines are also suppressed in the report, and the value of the ID variable identifies the BY

Page 26: Paper3

group. 

39.  The following SAS program is submitted:

proc freq data=class;run;

The SAS data set Class has two character variables and three numeric variables. How many tables are generated?

a. 0b. 2c. 3d. 5

Correct answer:   dYour answer:  

There are five tables generated. By default, the FREQ procedure generates a report that contains a frequency table for every variable in the data set, including both character and numeric variables. 

40.  The following SAS program is submitted:

proc means data=sasuser.houses mean; <insert statement(s) here>run;

The following report is produced:

style N Obs Variable Label Mean

CONDO 4 bedroomsbaths

Number of bedroomsNumber of bathrooms

2.75000002.1250000

RANCH 4 bedroomsbaths

Number of bedroomsNumber of bathrooms

2.25000002.0000000

SPLIT 3 bedroomsbaths

Number of bedroomsNumber of bathrooms

2.66666671.8333333

TWOSTORY 4 bedroomsbaths

Number of bedroomsNumber of bathrooms

3.00000001.8750000

Which of the following statements completes the program and creates the

Page 27: Paper3

desired report?

a. class style;

b. var bedrooms baths;

c. class style;var bedrooms baths;

d. var style;class bedrooms baths;

Correct answer:   c Your answer:  

In the desired report, the variable Style is a grouping variable, and the variables Bedrooms and Baths are analyzed. In the MEANS procedure, the CLASS statement specifies grouping variables. The VAR statement specifies which numeric variables are analyzed. 

41.  The following SAS program is submitted:

options pageno=1 number;proc print data=sasuser.houses;run;

proc means data=sasuser.shoes;run;

The report created by the PRINT procedure generates five pages of output. What is the page number on the first page that is generated by the MEANS procedure? a. 1b. 2c. 5d. 6

Correct answer:   d Your answer:  

The PAGENO= option specifies a starting page number for the output. The page numbers increment by 1, starting with the value in the PAGENO= option. If the PRINT procedure generates five pages of output, then the MEANS procedure output will start on page 6. If you move the OPTIONS statement after the PRINT procedure, the MEANS procedure output would start on page 1.  

Page 28: Paper3

42.  Which one of the following statements describes creating user-defined formats with the FORMAT procedure? a. User-defined formats cannot end in a number.b. The format name can be up to 200 characters in length.c. The format name can end with a period in the value statement.d. User-defined formats can share a name with a SAS format if they

are stored in a different location.

Correct answer:   aYour answer:  

User-defined formats are created using the FORMAT procedure. The name of the user-defined format is specified in the VALUE statement. The name of the user-defined format must start with a letter or an underscore, and can continue with any letter, number, or underscore up to 32 characters. However, the name of the user-defined format cannot end in a number. The name of a user-defined format cannot be the name of an existing SAS format. When you specify the name of a user-defined format in the VALUE statement, you do not use a period. 

43.  The following SAS program is submitted:

ods html file='newfile.html';proc print data=sasuser.houses;run;

proc means data=sasuser.houses;run;

proc freq data=sasuser.shoes;run;

ods html close;proc print data=sasuser.shoes;run;

How many HTML files are created? a. 1b. 2c. 3d. 4

Correct answer:   a Your answer:  

This program creates one HTML file named Newfile.html. By default, one HTML file is created for each FILE= or BODY= option in the ODS

Page 29: Paper3

HTML statement. The ODS HTML CLOSE statement closes the open HTML file and ends the output capture. The Newfile.html file contains the output from the PRINT, MEANS, and FREQ procedures. 

44.  Which statement directs output to an HTML file? a. the ODS HTML statement b. the HTML statement c. the EXPORT statement d. the PRINTTO statement

Correct answer:   aYour answer:  

The ODS HTML statement directs output to an HTML file. HTML is an option that can be used in the ODS HTML statement to specify which destination you are opening and/or closing. EXPORT and PRINTTO are procedures in SAS, not statements. 

45.  The following SAS program is submitted:

data test; set ia.flts_pts; if job_code='fltat3' then description='Flight Attendant'; length description 8;run;

The variable Job_code is a character variable with a length of 6 bytes. What is the result? a. The variable Description with a length of 6 bytes is created.b. The variable Description with a length of 8 bytes is created.c. The variables Description with a length of 16 bytes is created.d. The variable Description is not created. The DATA step fails

because of errors.

Correct answer:   d Your answer:  

The DATA step fails because of errors. The LENGTH statement can be used to assign a length to a character or numeric variable. When this code is compiled, SAS encounters description in the assignment statement before the LENGTH statement, and description is set to a character variable with a length of 16. When the LENGTH statement compiles, there is a conflict because the LENGTH statement attempts to assign a

Page 30: Paper3

numeric length to the character variable Description, and the step fails because of the error.  

46.  The descriptor and data portions of the Work.Salaries data set are shown below.

Variable Type Len Pos

name Char 8 0

salary Char 8 16

status Char 8 8

name status salary

Liz S 15,600

Herman S 26,700

Marty S 35,000

The following SAS program is submitted: proc print data=work.salaries; where salary<20000;run;

No observations are output. Which of the following answers would result in a report of individuals with Salary less than $20,000 upon re-execution of the program? a. Right justify the Salary value in the WHERE statement in the

PRINT step.b. Use a PUT function to write the Salary values with leading

zeroes in a DATA step before the PRINT step.c. Change 20000 (which is a numeric constant) to '20,000' (which

is a character constant) in the WHERE statement in the PRINT step.

d. Convert the Salary values to numeric values in a DATA step before the PRINT step.

Correct answer:   c Your answer:  

In order to output the desired observations, you must specify the value in the WHERE statement as a character value. Salary is defined as a character variable. The variable and value that are referenced in the

Page 31: Paper3

WHERE statement must be of the same type. 

47.  The following SAS program is submitted: data work.totalsales; set work.monthlysales(keep=year product sales); retain monthsales{12}; array monthsales{12}; do i=1 to 12; monthsales{i}=sales; end; cnt+1; monthsales{cnt}=sales;run;

The data set named Work.Monthlysales has one observation per month for each of five years for a total of 60 observations. What is the result? a. The program fails execution because of data errors.b. The program fails execution because of syntax errors.c. The program runs with warnings and creates the Work.Totalsales

data set with 60 observations.d. The program runs without errors or warnings and creates the

Work.Totalsales data set with 60 observations.

Correct answer:   b Your answer:  

The program fails to execute because there is a syntax error in the RETAIN statement. The curly brackets are used to define the array elements in the ARRAY statement. Curly brackets are not used to define the initial value for a variable in the RETAIN statement.  

48.  Which one of the following TITLE statements displays Jane's Dog as the title of SAS output? a. title "Jane"s Dog";

b. title 'Jane"s Dog';

c. title "Jane's Dog";

d. title 'Jane' ' 's Dog'l

Correct answer:   c Your answer:  

To hide an unmatched single quotation mark, you surround the title text with matched double quotation marks. SAS expects single and double quotation marks to be in pairs. 

Page 32: Paper3

49.  The data set Work.Allmonths contains four quarters of data. A DATA step is submitted and a portion of the SAS log is shown below.

SAS Log

208 data arrays;209 set work.allmonths(keep=quarter num_sold);210 by quarter;211 array sold{3};212 if first.quarter then cnt=1;213 sold{cnt}=num_sold;214 cnt+1;215 if last.quarter then output;216 run;

ERROR: Array subscript out of range at line 213 column 4. quarter=2 num_sold=3 FIRST.quarter=0 LAST.quarter=1 sold1=. sold2=. sold3=. cnt=4 _ERROR_=1 _N_=7NOTE: The SAS System stopped processing this step because of errors.NOTE: There were 8 observations read from the dataset WORK.ALLMONTHS.WARNING: The data set WORK.ARRAYS may be incomplete. When this step was stopped there were 1 observations and 6 variables.WARNING: Data set WORK.ARRAYS was not replaced because this step was stopped.NOTE: DATA statement used: real time 0.10 seconds

Which of the following answers would correct the error message?

a. Reverse the order of lines 213 and 214.b. Increase the ARRAY dimension to a value of 4.c. Sort the Work.Allmonths data set in descending order by the

Quarter variable.d. Add a WHERE= data set option to the Work.Allmonths data set

to limit values of the variable Cnt to 3 or less.

Correct answer:   bYour answer:  

There are three dimensions in the sold array and four quarters of data. When the Cnt variable has a value of 4, the value exceeds the specified range in the array and causes SAS to stop processing. Because there are four quarters, increasing the array dimension value to 4 will accommodate

Page 33: Paper3

all of the elements within the array.  

50.  The following SAS program is submitted: data test; infile 'file-specification'; input country $ amount;run;

Which one of the following automatic variables can be used to test whether a value for the variable Amount is non-numeric? a. _N_b. _ERROR_c. _NUMERIC_d. _CHARACTER_

Correct answer:   b Your answer:  

_ERROR_ is an automatic variable that is created by the DATA step. _ERROR_ records when an error is encountered. The value of _ERROR_ is set to 0 by default, and the value changes to 1 when an input error occurs. _N_ is an automatic variable that is created by the DATA step. The value of _N_ represents the number of times the DATA step has iterated. _NUMERIC_ and _CHARACTER_ are not automatic DATA step variables; they are reserved names for use as variable name lists.  

 Copyright © 2006 SAS Institute Inc., Cary, NC, USA. All rights reserved.

Terms of Use & Legal Information | Privacy Statement