1. UNIVERSITI TUN HUSSEIN ONN MALAYSIA
FACULTY OF MECHANICAL AND MANUFACTURING ENGINEERING
BTI 10202: COMPUTER PROGRAMMING
REVISION EXERCISES
NAME : ________________________________
MATRICS NO.: _______________ DATE : _____________
1. Determine, as best you can, the purpose of each of the following C programs. Identify all
variables within each program. Identify all input and output statements, all assignment
statements, and any other special features that you recognize.
int smaller ( int a, int b);
main( )
{
int a, b, min;
printf ( "Please enter the first number: " ) ;
scanf ("%d" , &a) ;
printf ("Please enter the second number: " ) ;
scanf ( "%d", &b);
min = smaller(a, b);
printf ( " n The smaller number is : %d", min);
int smaller ( int a, int b)
{
if (a <= b)
return(a);
else
return(b);
}
2. Determine which of the following are valid identifiers. If invalid, explain why.
(a) record1 (e) $tax (h) name_and_address
(b) 1record (f) name (i) name-and-address
(c) file_3 (g) name and address (j) 123-45 -6789
(d) return
3. Write appropriate declarations for each group of variables and arrays.
(a) Integer variables: p, q
Floating-point variables: x , y , z
Character variables: a, b, c
(b) Floating-point variables: root1 , root2
Long integer variable: counter
Short integer variable: f l a g
2. 4. Explain the purpose of each of the following expressions.
(a) a - b (d) a >= b (f) a < ( b / c )
(b) a * (b + c) (e) (a % 5 ) == 0 (g) --a
(c) d = a * (b + c)
5. Suppose a, b and c are integer variables that have been assigned the values a = 8, b = 3 and c =-
5. Determine the value of each of the following arithmetic expressions.
(a) a + b + c (f) a % c
(b) 2 * b + 3 * ( a - c ) (g) a * b / c
(c) a / b (h) a * (b / c)
(d) a % b (i) (a * c) % b
(e) a / c (j) a * (c % b)
6. Suppose x, y and z are floating-point variables that have been assigned the values x = 8.8, y =
3.5 and z = -5.2. Determine the value of each of the following arithmetic expressions.
(a) x + y + z
(b) 2 * y + 3 * ( x - z )
(c) x / y
(d) x % y
7. A C program contains the following declarations and initial assignments:
int i= 8, j = 5, k;
float x = 0.005, y = -0.01, z;
char a, b, c = ' c ' , d = ‘d ' ;
Determine the value of each of the following assignment expressions. Use the values originally
assigned to the variables for each expression.
(a) k = (i + j ) (i) z = k = x
(b) z = (x + y) (j) k = z = x
(c) i = j (k) i += 2
(d) k = (x + y) (l) y -= x
(e) k = c (m) x *= 2
(f) z = i / j (n) i /= j
(g) a = b = d (o) i %= j
(h) i= j = 1.1 (p) i+= ( j - 2)
8. A C program contains the following declarations and initial assignments:
int i = 8, j = 5;
double x = 0.005, y = -0.01;
char c = 'c’ , d = ‘d';
Determine the value of each of the following expressions, which involve the use of library
functions.
(a) abs(i - 2 * j ) (g) exp(x)
(b) fabs(x + y) (h) log(x)
(c) ceil(x) (i) log(exp(x))
(d) ceil(x + y) (j) sqrt(x*x + y*y)
(e) floor(x) (k) sin(x - y)
(f) floor(x + y) (l) sqrt(sin(x) + cos(y))
3. 9. A C program contains the following statements:
#include <stdio.h>
char a, b, c;
(a) Write appropriate getchar statements that will allow values for a, b and c to be entered into the
computer.
(b) Write appropriate putchar statements that will allow the current values of a, b and c to be
written out of the computer (i.e., to be displayed).
10. Solve Prob. 9 using a single scanf function and a single print f function rather than the getchar
and putchar statements.
11. A C program contains the following statements:
#include <stdio.h>
int i, j, k;
Write a printf function for each of the following groups of variables or expressions. Assume all
variables represent decimal integers.
(a) i, j and k
(b) (i + j), (i - k)
(c) sqrt(i + j),abs(i - k)
12. A C program contains the following statements.
#include <stdio.h>
char text [ 80];
Write a printf function that will allow the contents of text to be displayed in the following ways.
(a) Entirely on one line.
(b) Only the first eight characters.
(c) The first eight characters, preceded by five blanks.
(d) The first eight characters, followed by five blanks.
13. A C program contains the following array declaration.
char text[80];
Suppose that the following string has been assigned to text.
Programming with C can be a challenging creative activity.
Show the output resulting from the following printf statements.
(a) printf ( "%s", text ) ; (d) printf ( "%18.7s", text ) ;
(b) printf ("%18s", text ) ; (e) printf ( " % -18.7s " , text ) ;
(c) printf ( “%.18s", text ) ;
14. Write a switch statement that will examine the value of a char-type variable called color and
print one of the following messages, depending on the character assigned to color.
(a) RED, if either r or R is assigned to color,
(b) GREEN, if either g or G is assigned to color,
(c) BLUE, if either b or B is assigned to color,
(d) BLACK, if color is assigned any other character
4. 15. Write an appropriate control structure that will examine the value of a floating-point variable
called temp and print one of the following messages, depending on the value assigned to temp.
(a) ICE, if the value of temp is less than 0.
(b) WATER, if the value of temp lies between 0and 100.
(c) STEAM, if the value of temp exceeds 100.
Can a switch statement be used in this instance?
16. Describe the output that will be generated by each of the following C program.
#include <stdio. h>
main ( ) {
int i = 0, x = 0;
while(i<20){
if (i % 5 == 0) {
x += i;
printf("%d ", x);
}
++i ;
}
printf('nx = %d", x);
}
17. What is meant by a function call? From what parts of a program can a function be called?
18. Can a function be called from more than one place within a program?
19. When a function is accessed, must the names of the actual arguments agree with the names of
the arguments in the corresponding function prototype?
20. Each of the following is the first line of a function definition. Explain the meaning of each.
(a) float f ( float a, float b) (c) void f ( int a)
(b) long f (long a) (d) char f (void)
21. Write an appropriate function call (function access) for each of the following functions.
(a) float formula(f1oat x) (b) void display ( int a, int b)
{ {
float y; int c;
y = 3 * x - 1; c = sqrt(a * a + b * b);
return ( y ) ; printf ( " c = % i n " , c ) ;
} }
5. 22. Write the first line of the function definition, including the formal argument declarations, for
each of the situations described below.
(a) A function called sample generates and returns an integer quantity.
(b) A function called root accepts two integer arguments and returns a floating-point result.
(c) A function called convert accepts a character and returns another character.
(d) A function called transfer accepts a long integer and returns a character.
(e) A function called inverse accepts a character and returns a long integer.
(f) A function called process accepts an integer and two floating-point quantities (in that order),
and returns a double-precision quantity.
23. Explain the meaning of each of the following declarations.
(a) int *px;
(b) float a = -0.167;
float *pa = &a;
24. A C program contains the following statements.
float a = 0.001, b = 0.003;
float c, *pa, *pb;
pa = &a;
*pa = 2 * a;
pb = &b;
c = 3 * (*pb - *pa);
Suppose each floating-point number occupies 4 bytes of memory. If the value assigned to a begins
at (hexadecimal) address 1130, the value assigned to b begins at address 1134, and the value
assigned to c begins at 1138, then
(a) What value is assigned to &a?
(b) What value is assigned to &b?
(c) What value is assigned to &c?
(d) What value is assigned to pa?
(e) What value is represented by *pa?
(f) What value is represented by &( *pa)?
(g) What value is assigned to pb?
(h) What value is represented by *pb?
(i) What value is assigned to c?
Multiple selection questions
1. Which of the following is the correct variable definition?
a. 123_name b. &name
c. Name_1 d. #name@
2. Which of the following is not a data type in C?
a. Integer b. Double
c. data d. unsigned
6. 3. How would you assign the value 3.14 to a variable called pi?
a. int pi; b. unsigned pi;
pi=3.14; pi=3.14;
c. string pi; d. float pi;
pi=3.14; pi=3.14;
4. A common mistake for new students is reversing the assignment statement. Suppose you want
to assign the value stored in the variable "pi" to another variable, say "pi2":
i. What is the correct statement?
a. pi2 = pi; b. pi = pi2;
ii. What is the reverse? Is this a valid C statement (even if it gives incorrect results)?
a. pi2 = pi; is a valid C statement if pi b. pi = pi2; is a valid C statement if
is not a constant. pi is not a constant.
iii. What if you wanted to assign a constant value (like 3.1415) to "pi2": What would the correct
statement look like? Would the reverse be a valid or invalid C statement?
a. pi2 = 3.1415; b. 3.1415 = pi2;
The reverse is not a valid statement. The reverse is a valid statement.
5. scanf() is a very powerful function. What does it do?
a. scanf echos characters from the standard input, interprets them according to the
specification in format, and stores the results through the remaining arguments.
b. scanf displays characters from the standard input, interprets them according to the
specification in format, and stores the results through the remaining arguments.
c. scanf is the input analog of printf, providing many of the same conversion facilities
in the opposite direction.
d. scanf is the output analog of printf, providing many of the same conversion
facilities in the opposite direction.
6. Write the scanf() function call that will read into the variable "var":
i. a float ii. an int iii. a double
a. scanf("%f",&var); b. scanf("%f",&var);
scanf("%d",&var); scanf("%d",&var);
scanf("%d", &var); scanf("%lf", &var);
c. scanf("%f",&var); d. scanf("%f",&var);
scanf("%i",&var); scanf("%d",&var);
scanf("%u", &var); scanf("%s", &var);
7. 7. What is the output for the following program?
#include<stdio.h>
main()
{
int a,b;
float c,d;
a = 18;
b = a / 2;
printf("%dn",b);
printf("%2dn",b);
printf("%04dn",b);
c = 18.3;
d = c / 3;
printf("%5.3fn",d);
printf(":%-15.10s:n", "Are
you ready?!");
getch();
}
a. 9 b. 9
9 9
0009 0009
6.100 6.100
:Are you re : :Are you re :
c. 9 d. 9
9 9
0009 0009
6.100 6.10
:Are you read : :Are you re :
8. 8. Which of the following flowchart is best suitable for multiple choices problem?
(a) While, for, do-while (b) If – else selection
(c) Case structures
9. 9. Write a complete program that outputs a right isosceles (with (at least) two equal sides) triangle
of height and width n, so n = 6 would look like
*
**
***
****
*****
******
The triangle function is given as below:
void isosceles(int n)
{
int x,y;
for (y= 0; y < n; y++)
{
for (x= 0; x <= y; x++)
putchar('*');
putchar('n');
}
}
a. #include<stdio.h> b. #include<stdio.h>
#include<conio.h> #include<conio.h>
void isosceles(int n); void isosceles(int n)
{
main() int x,y;
{ for (y= 0; y < n; y++)
int n; {
printf("n insert no of rows of your for (x= 0; x <= y; x++)
triangle:"); putchar('*');
scanf("%d",&n); putchar('n');
isosceles(n); }
}
getch(); main()
} {
void isosceles(int n) int n;
{ printf("n insert no of rows of your
int x,y; triangle:");
for (y= 0; y < n; y++) scanf("%d",&n);
{
for (x= 0; x <= y; x++) getch();
putchar('*'); }
putchar('n');
}
}
10. c. #include<stdio.h> d. #include<stdio.h>
#include<conio.h> #include<conio.h>
void isosceles(int n); void isosceles(int n)
{
main() int x,y;
{ for (y= 0; y < n; y++)
int n; {
printf("n insert no of rows of your for (x= 0; x <= y; x++)
triangle:"); putchar('*');
scanf("%d",&n); putchar('n');
}
getch(); }
}
void isosceles(int n) main()
{ {
int x,y; int n;
for (y= 0; y < n; y++) printf("n insert no of rows of your
{ triangle:");
for (x= 0; x <= y; x++) isosceles(n);
putchar('*');
putchar('n'); getch();
} }
}
10. What is the correct output of the following code?
#include <stdio.h>
#include <conio.h> a. Please input two numbers to
be multiplied: 1
int mult ( int x, int y ); 5
The product of your two
int main()
{
numbers is 5
int x;
int y; b. Please input two numbers to
be multiplied: 1
printf( "Please input two 5
numbers to be multiplied: " );
scanf( "%d", &x ); The product of your two
scanf( "%d", &y ); numbers is 15
printf( "The product of your
two numbers is %dn", mult( x, c. The product of your two
y ) );
getch();
numbers is 15
}
d. The product of your two
int mult (int x, int y) numbers is 5
{
return x * y;
}
11. 11. How many functions are there (including main function) in the coding?
#include<stdio.h>
#include<conio.h>
void myFunction();
int add(int, int);
int main()
{
myFunction();
printf("nn%d",add(10,15));
getch();
}
void myFunction()
{
printf("This is inside function :D");
}
int add(int a, int b)
{
return a+b;
}
a. 1
b. 2
c. 3
d. 4
12. What is the output of the program in Ques.11?
a. This is inside function :D
b. 25
c. 25
This is inside function :D
d. This is inside function :D
25
13. Below are the advantages of using functions except?
a. It makes possible top down modular programming. In this style of programming, the
high level logic of the overall problem is solved first while the details of each lower
level functions is addressed later.
12. b. The length of the source program can be reduced by using functions at appropriate
places.
c. It becomes complicated to locate and separate a faulty function for further study.
d. A function may be used later by many other programs this means that a c
programmer can use function written by others, instead of starting over from scratch.
14. The correct output for the following function is:
#include<stdio.h>
#include<conio.h>
void add(int x,int y)
{
int result;
result = x+y;
printf("Sum of %d and %d
is %d.nn",x,y,result);
}
main()
{
add(10,15);
add(55,64);
add(168,325);
getch();
}
a. Sum of 10 and 15 is 25.
Sum of 55 and 64 is 119.
Sum of 168 and 325 is 493.
b. Sum of 10 and 15 is 25.
Sum of 168 and 325 is 493.
Sum of 55 and 64 is 119.
c. Sum of 20 and 15 is 25.
Sum of 65 and 64 is 119.
Sum of 168 and 325 is 493.
d. Sum of 55 and 64 is 117.
Sum of 10 and 15 is 25.
Sum of 168 and 325 is 493.