Operators
1. What is the value of variable z in following code snippets?
a.
int x = 5;
int y = 7;
int z = x%y;
Ans: 5
b.
int x = 5;
int y = 7;
int z = x/y;
Ans: 0. Integer division yields only quotient.
c.
double x = 4.4;
double y = 2.0;
double z = x/y;
Ans: 2.2
2. What will be the output of following program snippets?
a.
int x = 5;
double y = 2.5;
printf (“x/y = %f\n”, x/y);
Ans: x/y = 2.000000
x is an int, y is a double. Result of their division is a double which is printed using %f format string.
b.
double x = 5.0;
int y = 2;
printf (“x/y = %f\n”, x/y);
Ans: x/y = 2.500000
x is a double, y is an int. Result of their division is a double which is printed using %f format string.
c.
int x = 5;
double y = 2.5;
printf (“x + y = %f\n”, x+y);
Ans: 7.5. Result of addition of an int and a double is a double.
3. Write a program that swaps value of two int
#include <stdio.h> int main (int argc, char * argv[]) { int var1 = 10, var2 = 20; int temp = 0; printf("var1 = %d and var2 = %d\n", var1, var2); temp = var1; var1 = var2; var2 = temp; printf("var1 = %d and var2 = %d\n", var1, var2); return 0; }
4. Write a program the computes sum of two int
#include <stdio.h> int main (int argc, char * argv[]) { int var1 = 10, var2 = 20; int sum = var1 + var2; printf("%d + %d = %d\n", var1, var2, sum); return 0; }
5. Write a program to convert 15723 meters to kilometres.
#include <stdio.h> int main (int argc, char * argv[]) { int meters = 15723; /* Division of two int will result in an int */ /* Hence we typecast meters to double before dividing */ /* Now result of division is going to be a double */ double kms = ((double)15723)/1000; printf("%d meters is %f kms\n", meters, kms); return 0; }
6. Write a program to convert 42.2 degree Celsius to Fahrenheit.
#include <stdio.h> int main (int argc, char * argv[]) { double celsius = 42.2; /* Note construction of expression below. * We first multiply double with int, that gives us a double * Then we divide this resulting double with an int, that also gives us double * Finally we add it to an int giving us a double as final answer. * If we had instead written (celsius * (9/5)) + 32, then 9/5 both being int * would have evaluated to quotient 1 and we would have computed wrong answer */ double fahrenheit = ((celsius * 9)/5) + 32; printf("%f celsius = %f fahrenheit\n", celsius, fahrenheit); return 0; }
7. Write a program to calculate area and circumference of a circle of radius 2 cm.
#include <stdio.h> int main (int argc, char * argv[]) { int radius = 2; double pi = 22.0/7; double circumference = 0, area = 0; circumference = 2 * pi * radius; area = pi * radius * radius; printf("Circle of radius %d has circumference %f and area %f\n", radius, circumference, area); return 0; }