Files
.obsidian
.stfolder
IT
education
calculus
computer engineering
ECE1400
(not) Chapter 11 Exercises.md
C.md
Chapter 11 Exercises.md
Chapter 12 Exercises.md
Chapter 13 Exercises.md
Chapter 14 Exercises.md
Chapter 15 Exercises.md
Chapter 16 Exercises.md
Chapter 17 Exercises.md
Chapter 2 Exercises.md
Chapter 3 Exercises.md
Chapter 4 Exercises.md
Chapter 5 Exercises.md
Chapter 6 Exercises.md
Chapter 7 Exercises.md
Chapter 8 Exercises.md
Chapter 9 Exercises.md
Flowcharts and Pseudocode.md
ECE1410
ECE2700
english
Ohm's Law.md
math
nutrition
statistics
notes
personal
software
..gitignore.un~
.gitignore
.gitignore~
notes/education/computer engineering/ECE1400/Chapter 5 Exercises.md
2025-01-07 18:14:44 -07:00

103 lines
2.7 KiB
Markdown

> 2. The following program fragments illustrate the logical operators. Show the output produced by each, assuming that `i`, `j`, and `k` are `int` variables.
a. `i = 10; j = 5;`
```c
printf("%d", !i < j);
// Expected output: `1`, because `!i` evaluates to 0, and 0 is less than 5, so that expression evaluates to true, or 1.
```
b. `i = 2; j = 1;`
```c
printf("%d", !!i + !j);
// Expected output: `1`, because !!2 evaluates to 1, and !j evaluates to 0
```
c. `i = 5; j = 0; k = -5;`
```c
printf("%d", i && j || k);
// Expected output: `1`, because i && j should evaluate to 0, but `0 || 1` should evalulate to true.
```
d. `i = 1; j = 2; k = 3;`
```c
printf("%d", i < j || k);
// Expected output: `1`
```
> 4. Write a single expression whose value is either `-1`, `0`, or `1` depending on whether `i` is less than, equal to, or greater than `j`, respectively.
```c
/*
If i < j, the output should be -1.
If i == j, the output should be zero
If i > j, the output should be 1.
*/
(i > j) - (i < j)
```
> 6. Is the following `if` statement legal?
```c
if (n == 1-10)
printf("n is between 1 and 10\n");
```
Yes the statement is *legal*, but it does not produce the intended effect. It would not produce an output when `n = 5`, because `1-10` evaluates to `-9`, and `-9 != 5`.
> 10. What output does the following program fragment produce? (Assume that `i` is an integer variable.)
```c
int i = 1;
switch (i % 3) {
case 0: printf("zero");
case 1: printf("one");
case 2: printf("two");
}
```
The program would print `onetwo` because each case is missing a `break` statement.
> 11. The following table shows the telephone area codes in the state of Georgia along with the largest city in each area:
| Area code | Major city |
| --------- | ---------- |
| 229 | Albany |
| 404 | Atlanta |
| 470 | Atlanta |
| 478 | Macon |
| 678 | Atlanta |
| 706 | Columbus |
| 762 | Columbus |
| 770 | Atlanta |
| 912 | Savannah |
> Write a switch statement whose controlling expression is the variable `area_code`. If the value of `area_code` is not in the table, the `switch` statement will print the corresponding city name. Otherwise, the `switch` statement will display the message `"Area code not recognized."` Use the techniques discussed in section 5.3 to make the `switch` as simple as possible.
```c
int area_code;
switch (area_code) {
case 404:
case 470:
case 678:
case 770:
printf("Atlanta");
break;
case 706:
case 762:
printf("Columbus");
break;
case 229:
printf("Albany");
break;
case 478:
printf("Macon");
break;
case 912:
printf("Savannah");
break;
default:
printf("Area code not recognized.");
break;
}
```