EXERCISES ON C FUNCTIONS 1. What is wrong with the following C function? int square(int x); { return x*x; } 2. What is the effect of calling show(4)? int show(int x) { printf("%d %d\n", x, x*x); return x*x; printf("%d %d\n", x, x*x*x); return x*x*x; } 3. What does the following C function do? int eq3(int a, int b, int c) { if ((a == b) && (a == c)) return 1; else return 0; } 4. Write a C function that takes two integers as arguments and returns the value of the larger one. 5. Write a C function that takes three integers as arguments and returns the value of the largest one. 6. Write a C function that takes a real number as an argument and returns the absolute value of that number. 7. Write a C function that takes a positive integer n as an argument and returns the largest power of two greater than or equal to n. 8. Write a C function that takes a positive integer n as an argument and returns 1 if n is prime, and 0 otherwise. 9. Write a C function that takes a positive integer n as an argument and returns 0 if n is prime, and 1 otherwise. 10. Write a function that takes a positive integer as input and returns the leading digit in its decimal representation. For example, the leading digit of 234567 is 2. 11. What values are printed out by the following C program? #include <stdio.h> int f(int x) { return x + 2; } int main(void) { int x = 5; printf("%d %d\n", f(x+2), f(f(x+2))); return 0; } 12. What values are printed out by the following C program? #include <stdio.h> int confusion(int x, int y) { x = 2*x + y; return x; } int main(void) { int x = 2, y = 5; y = confusion(y, x); x = confusion(y, x); printf("%d %d\n", x, y); return 0; } 13. Run the following program through the compiler to see the error messages that gcc (or cc) produces for semicolon errors. int square (int x); { return x*x; } int main(void) { int a, b, c; c = 0 b = 0; if (a > b) c = 0 else b = 0; return 0; }