CSc 265 Lab5


CSc 265 - Lab Exercise 5

Team Name:

Team Members:





contents of file "intersection.c":

#include 

int findpos(int a[],int n,int x)
{
	int i;

	for (i = 0; i < n; i++)
		if (a[i] == x) return i;
	return -1;
}

void shiftleft(int a[],int startpos,int endpos)
{
	int i;
	
	for (i = startpos; i < endpos; i++)
		a[i] = a[i+1];
}

void intersection(int a[],int *alen,int b[],int blen)
{
	int i;

	for (i = *alen-1; i >= 0; i--) {
		if (findpos(b,blen,a[i]) == -1) {
			shiftleft(a,i,*alen-1);
			(*alen)--;
		}
	}
}

main()
{
	int a[] = {1,3,5,7,9};
	int alen = 5;
	int b[] = {1,5,9};
	int blen = 3;
	int i;

	intersection(a,&alen,b,blen);
	for (i = 0; i < alen; i++)
		printf("a[%d]: %d ",i,a[i]);
	printf("\n");

	abort();
}



To the left is the corrected code from last week's exercise, which computes
the intersection of the arrays a[] and b[], stores it in a[], then
outputs the contents of a[]. The abort() function call at the end of
the main function causes the program to generate a core dump, which
is required for the dbx debugger. For the questions below, assume the 
following commands have been executed:

        cc -g -o intersection intersection.c
        unlimit coredumpsize
        intersection
        dbx intersection core 

What is the result of entering the following commands (questions 1-5)?
1) whatis a

		int a[5]


2) whereis i

		findpos
		shiftleft
		intersection
		main		


3) which i

		main


4) print a[0]*10 - b[2]

		1

5) &a/5D

		1 5 9 9 9


6) How would you display the source code for the intersection function?

		list intersection
		

7) How could you display the contents of the array a[] (5 elements) plus the
   contents of the 8 bytes immediately following a[]?

		&a/7D


8) What sequence of commands would you use to run the program and stop
   execution after the 7 has been eliminated from a[] and then display 
   the contents of the 4th element of a[]? (Hint: use stop in [functionname])

		rm core
		dbx intersection
		stop in intersection
		run
		cont
		print a[3]

		(one of many different ways)


9) What sequence of commands would you use to run the program and generate
   trace output every time the variable alen is changed? How many times does
   this occur?

		rm core
		dbx intersection
		trace alen
		run

		It happens 3 times