Course Programming Fundamentals (C language) 1 LAB 9 – Pointers Main content 1 Get used to pointer declarations 2 Get used to using pointers in C programs 3 Complete more complex C programs 4 Check co[.]
Course: Programming Fundamentals (C language) LAB – Pointers Main content: Get used to pointer declarations Get used to using pointers in C programs Complete more complex C programs Check coding styles Practice: Get used to pointer declarations 1.1 What resulting values the variables a1 and a2 have after the execution of the following code? void main() { int a1 = 5, a2 = 8; int* p1 = &a1; int* p2 = &a2; int** p3 = &p2; int** p4 = &p1; *p4 = p2; *p1 += 2; p2 = &a1; (**p3) ; **p4 -= 3; } 1.2 What are the values of a and b variables at the end of the execution of the following program? void main() { int a = 10; float b = 5.5; int* p1 = &a; float* p2 = &b; void* p3 = p1; (*(int*)p3)++; p3 = p2; *(float*)p3 += 3; p1 = p3; *(float*)p1 -= 2; (*p2)++; } 1.3 Write a C program with the following descriptions What is the value of each variable at the end of the execution of the program? 1.3.1 Define an integer variable named “a” Its initialized value is 10 1.3.2 Define a double variable named “b” Its initialized value is 2.5 1.3.3 Define a pointer, named “p1”, which can point to an integer memory location Its initialized value is the address of “a” 1.3.4 Define a pointer, named “p2”, which can point to an integer memory location Its initialized value is NULL 1.3.5 Define a pointer, named “p3”, which can point to a double memory location Its initialized value is the address of “b” 1.3.6 Define a pointer, named “p4”, which can point to a float memory location Its initialized value is NULL 1.3.7 Pointer “p2” points to an integer memory location in the Heap memory 1.3.8 Pointer “p4” points to the same location to which “p3” points 1.3.9 Increase for the value in the integer memory location to which “p1” points 1.3.10 Increase for the value in the float memory location to which “p4” points 1.3.11 Decrease for the value in the double memory location to which “p3” points 1.3.12 Set to the value in the integer memory location to which “p2” points 1.3.13 Pointer “p1” points to the same location to which “p2” points 1.3.14 Pointer “p3” points to the same location to which “p1” points 1.3.15 Increase 10 for the value in the memory location to which “p3” points 1.3.16 Pointer “p2” points to the memory location named “b” 1.3.17 Decrease for the value in the memory location to which “p2” points 1.3.18 Pointer “p3” points to the memory location of floating-point numbers in the Heap memory initialized with zeros 1.3.19 Set 12 to the value of the third number in the memory location to which “p3” points 1.3.20 Pointer “p4” points to the same memory location to which “p3” points 1.3.21 Increase for the value in the memory location to which “p4” points 1.3.22 Pointer “p3” points to the memory location named “b” 1.3.23 Decrease for the value in the memory location to which “p3” points 1.3.24 Pointer “p2” points to the same location to which “p1” points 1.3.25 Increase for the value in the memory location to which “p2” points 1.4 Given a program as follows What is printed on screen? Get used to using pointers in C programs 2.1 Write a C program using functions to process the purchased products of each customer as follows: Customer Products bought Brown milk, beer, peanut White bread, butter, milk, sugar David milk, peanut, egg William bread, butter, coconut Henry beer, coconut, bean, peanut, sugar Tony milk, peanut, bread, butter Peter bread, butter, peanut Find and print the users who bought the products above average After a week, a new list of the purchased products of each customer is updated as follows: Customer Products bought Peter beer, peanut, water Mary milk, peanut, bread, butter, sugar, noodle David beer, coconut Again, find and print the updated users who bought the products above average 2.2 Given a graph representing friend connections among several Facebook users, write a C program using dynamic arrays and functions to find and print the users who have the highest number of direct friends and who have the lowest number of direct friends It is supposed that Peter is a new Facebook user who is a direct friend of John and Mary Now update the information and print the new information about the users who have the highest number of direct friends and who have the lowest number of direct friends A friend graph is given as follows: A new friend graph after adding Peter is as follows: Complete more complex C programs 3.1 Write a C program using functions to compute the addition and subtraction of two matrixes which are randomly generated with random integer numbers in range [-100, 100] The size of each matrix is given by the user 3.2 Given a collection of sentences about sport news, write a C program using functions to return all the sentences relevant to the query input by the user The relevance between a query and a sentence is based on the highest number of the words they have in common For example, given a collection as follows: S1 = “A football game took place in Manchester yesterday.” S2 = “Ronaldo got a hat trick in the football game again for Real Madrid.” S3 = “This was the second time Manchester was full of happy people.” A query is given as: “football in Manchester” The relevant sentences returned are: “A football game took place in Manchester yesterday.” 3.3 It is supposed that each arithmetic expression on integer numbers is represented in the form of binary tree as described in the example as follows: Expression: (1+2)*3 Binary tree: Write a C program using functions to define appropriate structures for this expression tree kind and then allow users to input an expression in the format of a string, parse this expression into an expression tree, and finally determine a value of the given expression by traversing the tree in left-right-node order Check coding styles For each C program that you have written, check coding styles with the following points: - How have you used blank lines? - How have you used tabs for alignment? - How have you used comments in your source code files? - Above all, how about your naming conventions? What have you named in your source code files?