**Supplementary**** samples for exam**

Besides questions like the ones stated
in "Review questions.html"
here are some other sample *closed** book* questions:

What does the following program print?

#include
<stdlib.h>

#include
<stdio.h>

#include
<string.h>

#include
<ctype.h>

int main(void)

{

char a[8];

char *b;

char c = 'U';

strcpy(a+1, "gObLiN");

printf("1:
%c\n", a[0]);

*a
= 'A';

printf("2:
%s\n", a);

a[3] = c;

b
= &c;

printf("3:
%c\n", *b);

b
= &(a[3]);

toupper(a[1]);

toupper(a[2]);

printf("4:
%s\n", a);

a[0] = a[1] = a[2] = a[3];

printf("5:
%s\n", a);

b;

printf("6:
%d\n", b a);

return EXIT_SUCCESS;

}

The following pseudocode algorithm
was design to find all
the proper divisors of *n* ∈ N (i.e without
1 and *n*):

read n;

if (n >1) then

begin

n2:=n div 2;

d:=1;

while
(d<=n2) do

begin

if (n mod d
=1) then write
d; endif;

d:=d+1;

end;

end

endif;

What must be changed to
make this algorithm work?

Sample problem 1

Many gas stations use plastic digits on an illuminated sign to indicate prices. When there is an insufficient quantity of a particular digit, the attendant may substitute another one upside down.

The digit "6" looks much like "9" upside down. The digits "0", "1" and "8" look like themselves. The digit "2" looks a bit like a "5" upside down (well, at least enough so that gas stations use it).

Due to rapidly increasing prices, a certain gas station has used all of its available digits to display the current price. Fortunately, this shortage of digits need not prevent the attendant from raising prices. She can simply rearrange the digits, possibly reversing some of them as described above.

Your job is to compute, given the current price of gas, the next highest price that can be displayed using exactly the same digits.

The input consists of several lines, each containing between 2 and 30 digits (to account for future prices) and a decimal point immediately before the last digit. There are no useless leading zeroes; that is, there is a leading zero only if the price is less than 1.

You are to compute the next
highest
price that can be displayed using the same digits and the same format
rules. An input line containing a
decimal point alone terminates the input.
If the price cannot be raised, print "The price cannot be
raised."

Sample Input

65.2

76.7

77.7

.

Output for Sample Input

65.5

77.6

The price cannot be raised.

Sample Problem 2

The factorial function, *n *! is defined
thus for n a non-negative integer:

0! = 1

*n*
!
= *n* * (*n* – 1)!
(*n* > 0)

We say that a divides b if
there
exists an integer *k* such that

*k* ×* a* = *b*

The input to your program
consists of
several lines, each containing two non-negative integers, n and m, both
less
than 2^{31}. For each input
line, output a line stating whether or not *m*
divides *n* !,
in the format shown below.

Sample Input

6 9

6 27

20 10000

20 100000

1000 1009

Output for Sample Input

9 divides 6!

27 does not divide 6!

10000 divides 20!

100000 does not divide 20!

1009 does not divide 1000!