Answers To Exercises in C Book
Answers To Exercises in C Book
Chapter 1 - Introduction To C
Chapter 2 - First C Program
Chapter 3 - Language Elements
Chapter 4 - Operators
Chapter 5 - Control Statements
Chapter 6 - Looping Structures
Chapter 7 - Character Handling
Chapter 8 - Arrays
Chapter 9 - Multidimensional Arrays
Chapter 10 - String Handling
Chapter 11 - User-defined functions
Chapter 12 - Storage Classes
Chapter 13 - Pointers
Chapter 14 - Pointer vs. array
Chapter 15 - Structures
Chapter 16 - Union, Typedef, and Enumeration
Chapter 17 - Pre-processor Commands
Chapter 18 - File Handling
Chapter 19 - Binary files and random access
Chapter 20 - Command line arguments
Chapter 21 - Screen Library
Chapter 22 - Graphics
Chapter 23 - Dynamic Memory Allocation
Chapter 24 - Linked List
Chapter 1 - Introduction To C
1. Compiler or interpreter
2. Borland Inc.
3. They use more operators, which make program very compact.
4. Functions
5. F3
6. 9 files
7. CTRL + 0 + I
8. 448 KB
9. Integrated Development Environment, which integrates editor, compiler, linker and
debugger. These are the tools required to develop programs.
10. C:\TC
1. /* */
2. \t
3. main
4. A
1. u%
2. 8 bytes
3. _ (underscore)
4. Character
1. Valid
2. Valid
3. Invalid - main is a keyword
4. Valid
5. Invalid – identifier must not start with a digit
6. Valid
Chapter 4 - Operators
1. &&
2. 10 and store the result back in A
3. a = b is assigning value of b to a, a == b is comparing the value of a with b for equality
4. pre-fix notaion
5. An operator that takes only one operand, such as ++ and --.
Write Programs
1. Accept a number display whether it is an even number or odd number. Use conditional
expression and normal if statement.
2.
3. main()
4. {
5. int n;
6.
7. printf("Enter a number : ");
8. scanf("%d",&n);
9.
10. if ( n % 2 == 0 )
11. printf(" %d is even number");
12. else
13. printf(" %d is odd number");
14.
15. }
16.
17.
18. /* using conditional expression */
19.
20. main()
21. {
22. int n;
23.
24. printf("Enter a number : ");
25. scanf("%d",&n);
26.
27. printf(" %d is %s ", n, n % 2 == 0 ? "Even" : "Odd");
28. }
29.
30. Accept marks in subject and subject code (1 to 4) and display whether student passed or
failed. Pass mark is based on subject code as follows. 1 - 40, 2 - 50 , 3 - 45 , 4 - 55.
31. main()
32. {
33. int marks,pm,subject;
34.
35. printf("Enter subject code [1-4]: ");
36. scanf("%d",&subject);
37.
38. printf("Enter marks : ");
39. scanf("%d",&marks);
40.
41. switch(subject)
42. {
43. case 1:
44. pm = 40; break;
45. case 2:
46. pm = 50; break;
47. case 3:
48. pm = 45; break;
49. case 4:
50. pm = 55; break;
51. }
52.
53. if (marks >= pm )
54. printf(" Passed");
55. else
56. printf(" Failed");
57.
58. }
59.
60. Accept two numbers and display the relationship between these two numbers. The output
should display one of the messages; "Both number are equal", "First number is bigger" or
"Second number is bigger".
61. main()
62. {
63. int n1,n2;
64.
65. printf("Enter two numbers : ");
66. scanf("%d%d",&n1,&n2);
67.
68.
69. if ( n1 == n2 )
70. printf("Both the numbers are equal");
71. else
72. if ( n1 > n2 )
73. printf("First number is bigger");
74. else
75. printf("Second number is bigger");
76.
77.
78. }
79. Accept three numbers from user and display the biggest of three numbers.
80.
81. main()
82. {
83. int n1,n2,n3,big;
84.
85. printf("Enter three numbers : ");
86. scanf("%d%d%d",&n1,&n2,&n3);
87.
88. big = n1 > n2 ? n1 : n2;
89. big = n3 > big ? n3: big;
90.
91. printf(" The biggest of %d %d %d is %d ", n1,n2,n3,big);
92.
93. }
Chapter 6 - Looping Structures
I. Fill in the blanks
1. do..while
2. break
3. initialization, condition and updation
II.Write programs
1. 50
2. iscntrl()
3. Standard input device.
4. Echo.
5. The character will be read from the file on the disk.
6. printf(). For example, printf(“%d”, ‘A’);
1. Accept 10 characters and display number of capital, small letters and digits.
2. #include <ctype.h>
3. #include <stdio.h>
4.
5. main()
6. {
7. char ch;
8. int i,nu,nd,nl;
9.
10. nu = nd = nl = 0;
11. for ( i = 1 ; i <= 10 ; i ++)
12. {
13. ch = getchar();
14. if (isupper(ch))
15. nu ++;
16. else
17. if (islower(ch))
18. nl ++;
19. else
20. if (isdigit(ch))
21. nd ++;
22. }
23.
24. }
25. Accept a character and convert that character to uppercase if it in lowercase or convert it
to lowercase if it is in uppercase.
26. #include <ctype.h>
27. #include <stdio.h>
28.
29.
30. main()
31. {
32. char ch;
33.
34. printf("Enter a character : ");
35. ch = getchar();
36.
37. if ( isupper(ch))
38. putchar( tolower(ch));
39. else
40. if (islower(ch))
41. putchar(toupper(ch));
42.
43. }
44. Accept characters till the user inputs '*' and convert characters to lowercase.
45. #include <ctype.h>
46. #include <stdio.h>
47.
48.
49. main()
50. {
51. char ch;
52.
53.
54. while (1)
55. {
56. printf("Enter a character : ");
57. ch = getchar();
58.
59. fflush(stdin); /* clear keyboard buffer */
60.
61. if ( ch == '*' )
62. break;
63.
64. putch( tolower(ch));
65. }
66.
67. }
68.
Chapter 8 - Arrays
Write Programs
1. Accept 20 numbers into array and display the sum and average along with numbers.
2. main()
3. {
4. int ar[20];
5. int i, sum = 0;
6.
7. for ( i = 0 ; i < 20 ; i++)
8. {
9. printf("Enter number for [%d] element : ",i);
10. scanf("%d", &ar[i]);
11.
12. sum += ar[i];
13. }
14.
15. printf("Entered Numbers \n");
16.
17. for ( i = 0 ; i < 20 ; i++)
18. {
19. printf("%d\n", ar[i]);
20. }
21.
22. printf("Sum = %d Average = %d ", sum, sum / 20);
23.
24. }
25. Take an array of 10 integers and accept values into it. Sort the array in descending order.
26.
27. main()
28. {
29. int ar[10];
30. int i, j, temp;
31.
32. for (i = 0 ; i < 10 ; i++)
33. {
34. printf("Enter number for [%d] element : ",i);
35. scanf("%d", &ar[i]);
36. }
37.
38. /* sort array in descending order */
39.
40. for ( i = 0 ; i < 9 ; i++)
41. {
42. for ( j = i+1; j < 10 ; j ++)
43. {
44. if ( ar[j] > ar[i])
45. {
46. /* interchange */
47.
48. temp = ar[j];
49. ar[j] = ar[i];
50. ar[i] = temp;
51. }
52.
53. } /* end of j loop */
54.
55. } /* end of i loop */
56.
57.
58. /* display sorted array */
59.
60. printf("Entered Numbers \n");
61.
62. for ( i = 0 ; i < 10 ; i++)
63. {
64. printf("%d\n", ar[i]);
65. }
66. }
67.
68. Accept 20 numbers into an array. And display how many numbers are below the average
of the array.
69. main()
70. {
71. int ar[20];
72. int i,avg,sum=0;
73.
74. for (i = 0 ; i < 20 ; i++)
75. {
76. printf("Enter number for [%d] element : ",i);
77. scanf("%d", &ar[i]);
78. sum += ar[i];
79. }
80.
81. avg = sum / 10;
82.
83. /* Display values that are below average of the array */
84.
85. for ( i = 0 ; i < 20 ; i++)
86. {
87. if ( ar[i] < avg )
88. printf("%d \n", ar[i]);
89. }
90.
91. }
92. Create an array of 10 elements and fill 9 elements of the array. Accept a number and
position and insert the number at the given position in the array.
93.
94. main()
95. {
96. int ar[10];
97. int i,num, pos;
98.
99. for (i = 0 ; i < 9 ; i++)
100. {
101. printf("Enter number for [%d] element : ",i);
102. scanf("%d", &ar[i]);
103. }
104.
105. /* take number and position */
106.
107. printf("Enter position and number : " );
108. scanf("%d%d", &pos, &num);
109.
110. /* push all number from position to right */
111.
112. for ( i = 9 ; i > pos ; i-- )
113. ar[i] = ar [i - 1];
114.
115. /* insert new value at position */
116.
117. ar[pos] = num;
118.
119. /* Display array after insertion */
120.
121. for ( i = 0 ; i < 10 ; i++)
122. {
123. printf("%d \n", ar[i]);
124. }
125.
126. }
127.
128.
129. Create an array of 10 elements and fill it. Interchange first 5 elements with last 5
elements.
130.
131. main()
132. {
133. int ar[10];
134. int i,temp;
135.
136. for (i = 0 ; i < 10 ; i++)
137. {
138. printf("Enter number for [%d] element : ",i);
139. scanf("%d", &ar[i]);
140. }
141.
142. /* interchange first 5 elements with last 5 elements */
143.
144.
145. for ( i = 0 ; i < 5 ; i-- )
146. {
147. temp = ar [i];
148. ar[i] = ar [9-i];
149. ar[9-i] = temp;
150. }
151.
152.
153. /* Display array after interchange */
154.
155. for ( i = 0 ; i < 10 ; i++)
156. {
157. printf("%d \n", ar[i]);
158. }
159.
160. }
161.
1. Take an array of 5 * 5 ( 5 rows and 5 columns ) and accept values into it. Display the
array in the form of a matrix.
2. main()
3. {
4. int ar[5][5];
5. int i,j;
6.
7. for (i = 0 ; i < 5 ; i++)
8. {
9. for( j = 0 ; j < 5 ; j ++)
10. {
11. printf("Enter number for [%d][%d] element : ",i,j);
12. scanf("%d", &ar[i][j]);
13. }
14. }
15.
16. /* display array as a matrix */
17.
18.
19. for (i = 0 ; i < 5 ; i++)
20. {
21. /* move to next line before each row */
22. printf("\n");
23.
24. for( j = 0 ; j < 5 ; j ++)
25. {
26. printf("%5d",ar[i][j]);
27. }
28.
29. }
30.
31. }
32.
33. Take an array of 4 * 4. Place 1 in diagonal cells and 0 in remaining and display the array
in matrix format.
34.
35. main()
36. {
37. int ar[4][4];
38. int i,j;
39.
40. for (i = 0 ; i < 4 ; i++)
41. {
42. for( j = 0 ; j < 4 ; j ++)
43. {
44. if ( i == j )
45. ar[i][j] = 1;
46. else
47. ar[i][j] = 0;
48. }
49. }
50.
51. /* display array as a matrix */
52.
53. for (i = 0 ; i < 4 ; i++)
54. {
55. /* move to next line before each row */
56. printf("\n");
57.
58. for( j = 0 ; j < 4 ; j ++)
59. {
60. printf("%5d",ar[i][j]);
61. }
62.
63. }
64.
65. }
66.
67. Accept numbers into an array of 5 * 5. Accept a number. Display all the elements of the
array that are greater than the accepted number.
68. main()
69. {
70. int ar[5][5];
71. int i,j,num;
72.
73. for (i = 0 ; i < 5 ; i++)
74. {
75. for( j = 0 ; j < 5 ; j ++)
76. {
77. printf("Enter number for [%d][%d] element : ",i,j);
78. scanf("%d", &ar[i][j]);
79. }
80. }
81.
82. printf("Enter a number : ");
83. scanf("%d", &num);
84.
85.
86. /* display all elements that are greater than the
87. given number */
88.
89.
90. for (i = 0 ; i < 5 ; i++)
91. {
92.
93. for( j = 0 ; j < 5 ; j ++)
94. {
95. if ( ar[i][j] > num )
96. printf("%d \n",ar[i][j]);
97. }
98.
99. }
100.
101. }
102. Store random numbers into an array of 6 * 6 and interchange first 3 rows with last
three rows.
103. #include <stdlib.h>
104.
105. main()
106. {
107. int ar[6][6];
108. int i,j,temp;
109.
110. for (i = 0 ; i < 6 ; i++)
111. {
112. /* move to next line before each row */
113. printf("\n");
114.
115. for( j = 0 ; j < 6 ; j ++)
116. {
117. ar[i][j] = random(100);
118. printf("%5d",ar[i][j]);
119. }
120.
121. }
122.
123.
124.
125.
126. /* interchange */
127.
128.
129. for (i = 0 ; i < 3 ; i++)
130. {
131. for( j = 0 ; j < 6 ; j ++)
132. {
133. temp = ar[i][j];
134. ar[i][j] = ar[5-i][j];
135. ar[5-i][j] = temp;
136. }
137. }
138.
139. printf("\n\n");
140.
141. for (i = 0 ; i < 6 ; i++)
142. {
143. /* move to next line before each row */
144. printf("\n");
145.
146. for( j = 0 ; j < 6 ; j ++)
147. {
148. printf("%5d",ar[i][j]);
149. }
150.
151. } /* end of i loop */
152.
153. } /* end of main */
154.