## CS 1401, Exam #1, MW 12-1:20 version

Date: Wednesday, September 18, 2013
Name (please type legibly, ideally in block letters): ______________________________________________________________________

1. On September 18, 1998, the International Corporation for Assigned Names and Numbers (ICANN) was started, an organization that controls the naming of websites.

• Explain how Java is different from all other programming languages, and how this difference helps to transfer computations from one computer to another.
• What programming language(s) was Java based on?
For extra credit: describe one more event from the history of computing.

```

```
2. For each of the following sequences of symbols, describe which can be valid Java identifiers and which cannot be; if you believe they cannot be, briefly explain why (e.g., "is a reserved word" or "does not start with a letter"):
• ICANN

• double

• 1998

• 18September

• Sept-18-1998

```

```
3. The following formula enables us to compute the area a of a right triangle with sides x and y:
```      1
a = - xy
2
```
Assuming that x and y are already placed in the corresponding variables of type double, write a Java code statement for assigning the corresponding value to the variable a of type double. Explain, step-by-step, which arithmetic operations will be performed first, which next, etc., and trace the computations on the above example. Describe two different ways to avoid getting 0 as the result of evaluating 1/2. Explain what happens if you simply write xy in your Java code.

```

```
4-5. To register a website for several years, you need to pay a per-year registration fee. For simplicity, let us take \$35 as this fee. Write the main method which asks the user for the URL of the website, asks for how many years we want to register this website, and prints a memo describing the price. For example, if we want to register CS website http://www.cs.utep.edu for 3 years, your program should print the following message:
```From: ICANN

To register your website http://www.cs.utep.edu, you need to pay
\$35 X 3 = \$105.
```
Declare 35 as an integer constant, so that it will be easy to change if needed.

Reminder: to read from the keyboard, you can define the reader as follows:

```Scanner reader = new Scanner(System.in);
```
the header of the main method is:
```public static void main(String[] args){
```
```

```
6. Suppose that would like to add 2 to the number of years. If the number of years is stored in the integer variable years, which of the two lines of code leads to a correct increase:
• years = years + 2.0;
• years = years + 2;
If originally, before each line, we had 3 years, explain what will happen after each of these lines is implemented by Java. What is a clearer way (different from those above) to add 2 to the variable years?