CS210 Lab: Recursion Prelab


These questions are designed to review two concepts:

Prelab Questions:

  1. Given the following piece of code, why aren't a and b exchanged after the call to exchange? (How could you modify the code?)
    void exchange(int, int);
    
    int main
    {
        int a=5,b=7;
       
        exchange(a,b);
    }
    
    void exchange (int x, int y)
    {
       int temp;
    
       temp = x;
       x = y;
       y = temp;
       return;
    } // end exchange
    		
  2. What is the difference between ClearPtr and ClearPtr2 in the following code? Will both pointer and pointer2 be set to 0 after the calls to ClearPtr and ClearPtr2. Why/Why not?
    #include<iostream>
    using namespace std;
    
    void ClearPtr(int *&p);
    void ClearPtr2(int *p2);
    
    int main()
    {
    	int x=5, x2=6;
    	int *pointer, *pointer2;
    	
    	pointer=&x;
    	pointer2=&x2;
    	
    	cout << "x is: " << *pointer << endl;
    	cout << "pointer is holding address: " << pointer << endl;
    	cout << endl;
    	cout << "x2 is: " << *pointer2 << endl;
    	cout << "pointer2 is holding address: " << pointer2 << endl;
    	cout << endl;
    
    	ClearPtr(pointer);
    	ClearPtr2(pointer2);
    
    	cout <<"pointer is holding address: " << pointer << endl;
    	cout <<"pointer2 is holding address: " << pointer2 << endl;
    	
    
    	return 0;
    }
    
    void ClearPtr(int *& p)
    {
    	p=0;
    }
    
    void ClearPtr2(int *p2)
    {
    	p2=0;
    }
    
  3. Write a code segment to move through a linked list of characters and remove all occurances of the letter 'c'.

For Answers, click here
Back to Recursion Lab click here

CS Dept Home Page
CS Dept Class Files
CS210 Class Files

Copyright: Department of Computer Science, University of Regina.