Final Examination: Version
December
Department of Computing Science
University of Alberta
Instructors: G. Lin Time: 120 Minutes
Your name (last, first):
Your student ID (last 4 digits):
• Read these instructions and wait for the time to start.
• Do NOT detach any page from the staple, 3 physical pages in total.
• There are 7 problems; 28 marks in total.
• Use space below the questions, and the next empty page if needed, to write your solutions legibly.
• No electronic devices, no calculators, no conversations.
• Closed book; one letter-size paper with hand-written notes allowed.
• In general, no questions will be answered during the exam; if unsure, state your best assumptions
clearly and proceed.
• When the time (120 minutes) is up, stop writing and sit still waiting for your papers to be collected.
1
,Do NOT write on this page, for instructor’s use only.
total marks problem your marks
4 1
4 2
4 3
4 4
4 5
4 6
4 7
28
2
, Last Name: ID#:
Problem 1 – arrays and pointers (4 = 1 + 1 + 1 + 1 marks)
Consider the following declarations and definitions
int temperature[7][30];
char *months[] = {"January", "February", "March", "April", "May", "June", "July"};
1. Write statements to initialize all elements of temperature to 15:
for (int i = 0; i < 7; i++)
for (int j = 0; j < 30; j++)
temprature[i][j] = 15;
2. Write statements to assign 1 to the element temperature[3][10] using pointer arithmetics (that is,
not allow to use subscript “[·]”. Use parentheses to make clear the order of evaluation, if necessary.
*(*(temprature + 3) + 10) = 1;
3. What is the exact value that *(months[3] + 2) has?
r
4. What is the exact value that *(months + 4) has?
"May"
3