Make a C program that accepts an integer value at the main method from the keyboard and in turn passes the value to a function that squares the number( multiplies is by itself) and to another function that cubes the number ( multiplies by itself twice). The main method displays the results . If an integer to be pass into the first function(squaring of numbers), is 0, pass it to the function that will make the value changed into 2. After the modification or changes, the resulting value will be passed into the square and cube functions.

Here is a step-by-step guide to create a C program that meets your requirements:

Step 1: Create a new C file and include the necessary header files:

```c
#include <stdio.h>
```

Step 2: Define the functions to square and cube the number:

```c
int square(int n) {
return n * n;
}

int cube(int n) {
return n * n * n;
}
```

Step 3: Define a function to modify the number if it is zero:

```c
void modify(int* n) {
if (*n == 0) {
*n = 2;
}
}
```

Step 4: Implement the main() function to accept an integer from the keyboard and display the results:

```c
int main() {
int num;

printf("Enter an integer: ");
scanf("%d", &num);

modify(&num);

printf("Square of the number: %d\n", square(num));
printf("Cube of the number: %d\n", cube(num));

return 0;
}
```

Step 5: Compile and run the program:

After saving the file with a ".c" extension, open the terminal and navigate to the directory where the file is saved. Then, execute the following command to compile the program:

```
gcc program.c -o program
```

Finally, run the program using the following command:

```
./program
```

Now you can enter an integer value from the keyboard, and the program will display the square and cube of the number. If the entered number is 0, it will be modified to 2 before calculating the square and cube.

Sure! Here's a C program that meets your requirements:

```c
#include <stdio.h>

int square(int num) {
return num * num;
}

int cube(int num) {
return num * num * num;
}

void modify(int *num) {
if (*num == 0) {
*num = 2;
}
}

int main() {
int num;
printf("Enter an integer: ");
scanf("%d", &num);

modify(&num);

int squared = square(num);
int cubed = cube(num);

printf("Square: %d\n", squared);
printf("Cube: %d\n", cubed);

return 0;
}
```

Here's how the program works:

1. The program starts by including the necessary header file, `stdio.h`, which provides input/output functionality.
2. The `square` function takes an integer as an argument and returns the square of that number by multiplying it by itself.
3. The `cube` function takes an integer as an argument and returns the cube of that number by multiplying it by itself twice.
4. The `modify` function takes a pointer to an integer as an argument and checks if the value pointed to by the pointer is 0. If it is, it modifies the value to 2 using pointer manipulation.
5. In the `main` function, an integer variable `num` is declared to store the user input.
6. The user is prompted to enter an integer using the `printf` function, and the input is read using the `scanf` function and stored in `num`.
7. The `modify` function is called to check and modify the value of `num` if necessary.
8. The `square` and `cube` functions are called with the modified value of `num` to calculate the square and cube, respectively.
9. Lastly, the results are displayed using the `printf` function.

Hope this helps!