Skip to content

Commit e875f00

Browse files
committed
chapter 13 exercises
1 parent 5006f14 commit e875f00

File tree

8 files changed

+161
-0
lines changed

8 files changed

+161
-0
lines changed

ex.13.10.c

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
#include <stdio.h>
2+
#include <ctype.h>
3+
4+
#define IS_SPECIAL(c) !(isalpha(c)) && !(isdigit(c))
5+
6+
int main (void)
7+
{
8+
printf ("islower:\n");
9+
printf ("a: %i\n", islower('a'));
10+
printf ("z: %i\n", islower('z'));
11+
printf ("A: %i\n", islower('A'));
12+
printf ("Z: %i\n", islower('Z'));
13+
printf ("0: %i\n", islower('0'));
14+
printf ("9: %i\n", islower('9'));
15+
printf ("!: %i\n\n", islower('!'));
16+
17+
printf ("isupper:\n");
18+
printf ("a: %i\n", isupper('a'));
19+
printf ("z: %i\n", isupper('z'));
20+
printf ("A: %i\n", isupper('A'));
21+
printf ("Z: %i\n", isupper('Z'));
22+
printf ("0: %i\n", isupper('0'));
23+
printf ("9: %i\n", isupper('9'));
24+
printf ("!: %i\n\n", isupper('!'));
25+
26+
printf ("isalpha:\n");
27+
printf ("a: %i\n", isalpha('a'));
28+
printf ("z: %i\n", isalpha('z'));
29+
printf ("A: %i\n", isalpha('A'));
30+
printf ("Z: %i\n", isalpha('Z'));
31+
printf ("0: %i\n", isalpha('0'));
32+
printf ("9: %i\n", isalpha('9'));
33+
printf ("!: %i\n\n", isalpha('!'));
34+
35+
printf ("isdigit:\n");
36+
printf ("a: %i\n", isdigit('a'));
37+
printf ("z: %i\n", isdigit('z'));
38+
printf ("A: %i\n", isdigit('A'));
39+
printf ("Z: %i\n", isdigit('Z'));
40+
printf ("0: %i\n", isdigit('0'));
41+
printf ("9: %i\n", isdigit('9'));
42+
printf ("!: %i\n\n", isdigit('!'));
43+
44+
printf ("IS_SPECIAL:\n");
45+
printf ("a: %i\n", IS_SPECIAL('a'));
46+
printf ("z: %i\n", IS_SPECIAL('z'));
47+
printf ("A: %i\n", IS_SPECIAL('A'));
48+
printf ("Z: %i\n", IS_SPECIAL('Z'));
49+
printf ("0: %i\n", IS_SPECIAL('0'));
50+
printf ("9: %i\n", IS_SPECIAL('9'));
51+
printf ("!: %i\n\n", IS_SPECIAL('!'));
52+
53+
return 0;
54+
}

ex.13.3.c

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
#include <stdio.h>
2+
3+
#define MIN(x, y) ( (x) <= (y) ) ? (x) : (y)
4+
5+
int main (void)
6+
{
7+
printf ("MIN(3, -4) = %i\n", MIN(3, -4));
8+
9+
return 0;
10+
}

ex.13.4.c

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
#include <stdio.h>
2+
3+
#define MAX(x, y) ((x >= y) ? x : y)
4+
#define MAX3(x, y, z) MAX(x, MAX(y, z))
5+
6+
int main (void)
7+
{
8+
printf ("MAX(3, -4, 7) = %i\n", MAX3(3, -4, 7));
9+
10+
return 0;
11+
}

ex.13.5.c

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
#include <stdio.h>
2+
3+
#define SHIFT(num, n) ( (n > 0) ? (num >>= n) : (num <<= -n) )
4+
5+
int main (void)
6+
{
7+
unsigned int num = 3;
8+
9+
SHIFT(num, 1);
10+
printf ("%u\n", num);
11+
SHIFT(num, -2);
12+
printf ("%u\n", num);
13+
14+
return 0;
15+
}

ex.13.6.c

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
#include <stdio.h>
2+
3+
#define IS_UPPER_CASE(c) ('A' <= (c)) && ((c) <= 'Z')
4+
5+
int main (void)
6+
{
7+
printf ("a: %i\n", IS_UPPER_CASE('a'));
8+
printf ("z: %i\n", IS_UPPER_CASE('z'));
9+
printf ("A: %i\n", IS_UPPER_CASE('A'));
10+
printf ("Z: %i\n", IS_UPPER_CASE('Z'));
11+
printf ("1: %i\n", IS_UPPER_CASE('1'));
12+
13+
return 0;
14+
}

ex.13.7.c

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
#include <stdio.h>
2+
3+
#define IS_LOWER_CASE(c) ('a' <= (c)) && ((c) <= 'z')
4+
#define IS_UPPER_CASE(c) ('A' <= (c)) && ((c) <= 'Z')
5+
#define IS_ALPHABETIC(c) IS_LOWER_CASE(c) || IS_UPPER_CASE(c)
6+
7+
int main (void)
8+
{
9+
printf ("a: %i\n", IS_ALPHABETIC('a'));
10+
printf ("z: %i\n", IS_ALPHABETIC('z'));
11+
printf ("A: %i\n", IS_ALPHABETIC('A'));
12+
printf ("Z: %i\n", IS_ALPHABETIC('Z'));
13+
printf ("1: %i\n", IS_ALPHABETIC('1'));
14+
15+
return 0;
16+
}

ex.13.8.c

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
#include <stdio.h>
2+
3+
#define IS_LOWER_CASE(c) ('a' <= (c)) && ((c) <= 'z')
4+
#define IS_UPPER_CASE(c) ('A' <= (c)) && ((c) <= 'Z')
5+
#define IS_ALPHABETIC(c) IS_LOWER_CASE(c) || IS_UPPER_CASE(c)
6+
#define IS_DIGIT(c) ('0' <= (c)) && ((c) <= '9')
7+
#define IS_SPECIAL(c) !(IS_ALPHABETIC(c)) && !(IS_DIGIT(c))
8+
9+
int main (void)
10+
{
11+
printf ("IS_DIGIT:\n");
12+
printf ("a: %i\n", IS_DIGIT('a'));
13+
printf ("z: %i\n", IS_DIGIT('z'));
14+
printf ("A: %i\n", IS_DIGIT('A'));
15+
printf ("Z: %i\n", IS_DIGIT('Z'));
16+
printf ("0: %i\n", IS_DIGIT('0'));
17+
printf ("9: %i\n", IS_DIGIT('9'));
18+
printf ("!: %i\n\n", IS_DIGIT('!'));
19+
20+
printf ("IS_SPECIAL:\n");
21+
printf ("a: %i\n", IS_SPECIAL('a'));
22+
printf ("z: %i\n", IS_SPECIAL('z'));
23+
printf ("A: %i\n", IS_SPECIAL('A'));
24+
printf ("Z: %i\n", IS_SPECIAL('Z'));
25+
printf ("0: %i\n", IS_SPECIAL('0'));
26+
printf ("9: %i\n", IS_SPECIAL('9'));
27+
printf ("!: %i\n\n", IS_SPECIAL('!'));
28+
29+
return 0;
30+
}

ex.13.9.c

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
#include <stdio.h>
2+
3+
#define ABSOLUTE_VALUE(n) ((n) >= 0) ? (n) : -(n)
4+
5+
int main (void)
6+
{
7+
printf ("ABSOLUTE_VALUE( 9 + 3): %i\n", ABSOLUTE_VALUE( 9 + 3));
8+
printf ("ABSOLUTE_VALUE(-9 + 3): %i\n", ABSOLUTE_VALUE(-9 + 3));
9+
10+
return 0;
11+
}

0 commit comments

Comments
 (0)