In: Electrical Engineering
this program is to be done in c language. Using Pointers Create a program pointerTester.c to experiment with pointers. Implement the following steps one by one in your program: YOU NEED TO ANSWER QUESTION Use printf to print your answers at the end(after 12). 1. Declare three integer variables a, b and c. Initialize them to 0, 100 and 225, respectively. 2. Print the value of each variable and its address. 3. Add the following declaration to your code: int *pA = &a, *pB = &b, *p; 4. Print the value of each pointer and the value it points to (using the pointer) 5. Run your program multiple times. a. Does any of the values *pA, *pB or *p change? b. Does any of the values pA, pB or p change? 6. Change the value that p points to to 50 without declaring the valuable that p points to. Can you print the value that p points to? 7. Declare an array z of 10 integers and initialize its elements to 0, 1, 2, …., 9 8. Print the address of each element in the array using the z[i] notation 9. Print the address of each element in the array using the z + i notation 10. Print the content of the array using z + i notation 11. Declare a string literal x and set it to value “hello”. 12. Change the second character of x to upper case. What happens? Strings Write a program reading.c that reads from standard input according to the user’s choice. The program should ask “How would you like to read?” 1: character by character; 2: word by word; 3: line by line. Default: print “Invalid choice”. You should write the three procedures below. - The procedure readCharByChar asks the user to enter 5 characters and read them (hint: using %c). - The procedure readWordByWord asks the user to enter 5 words and read them (hint: using %s). - The procedure readLineByLine should ask the user to enter 5 lines and read them (hint: using gets). In each of the three procedures, the values read should be printed to the screen, each on a separate line showing: input index, tab, unit (char, word, or line). According to the user choice, your program uses a switch statement to call readCharByChar, readWordByWord, and readLineByLine, respectively. Make sure your code is properly indented, your variables have meaningful names, and macro definitions are used when appropriate.
Refer to the given problem.
Consider the following c language program.
C program:
#include <stdio.h>
int main()
{
// 1. Declaring a, b and c ( integer variables). Now initializing
the integer to 0, 100 and 225, respectively.
int a,b,c;
a = 0;
b = 100;
c = 225;
// 2. Printing each variable value a,b and c and its
address
printf("Variable a = %d and addrress is %u\n", a,&a);
printf("Variable b = %d and addrress is %u\n", b,&b);
printf("Variable c = %d and addrress is %u\n", c,&c);
// 3. Adding declaration to the code:
//int *pA = &a, *pB = &b, *p;
int *pA = &a, *pB = &b, *p;
// 4. Printing each pointer value which it points to (via
pointer)
printf("Value of pointer pA = %u and value it points to %d\n", pA,
*pA);
printf("Value of pointer pB = %u and value it points to %d\n", pB,
*pB);
printf("Value of pointer p = %u and value it points to nothing\n",
p);
// The value and address of For pA and pB gets printed but for
pointer p, nothing points thus it’s a null pointer
//printf("Value of pointer p = %u and value 1it points to %d\n", p,
*p) // will not work and error is fault segmentation;
// 5. Start running the program for multiple times.
// 5.a. Check if any of the values *pA, *pB or *p alter?
// >>>> By running program multiple times *pA *pB does
not changes
// 5.b. check if any of the values pA, pB or p alter?
// >>>> By running program multiple times pA pB changes
but p remains to 0
// 6. Update the value of p.
*p = 50;//Print the value of p.
printf("Value of pointer p = %u and value it points to %d\n\n", p,
*p);
// 7. Declare an array
int z[10];//Initialize the aaray
for(int i = 0 ; i < 10 ; i++)
{
z[10] = i;}
// 8. Iterate through the array and print the value.
for(int i = 0 ; i < 10 ; i++)
{
printf("value of z[%d] = %d\n",i ,i);
z[10] = i;}
// 9. Iterate through the array and print the address.
for(int i = 0 ; i < 10 ; i++)
{
printf("address of z[%d] = %u\n",i ,z+i);
z[10] = i;
}
// 10. Iterate through the array and print using z + i
notation
for(int i = 0 ; i < 10 ; i++)
{
printf("content of z + %d = %d\n",i ,*(z+i));
z[10] = i;}
// 11. Define the string variable.
char *x = "hello";
// 12 . Update the variable change 2nd index to uppercase.
printf("%c", *(++x)-32);return 0;}
Consider the following Output:
Output:
Hope it helps!