C++ OOP Interview Questions



1. How do you write a function that can reverse a linked-list? (Cisco System)

void reverselist(void)
{
  if(head==0)
    return;
        if(head->next==0)
    return;
  if(head->next==tail)
  {
    head->next = 0;
    tail->next = head;
  }
   else
  {
    node* pre = head;
    node* cur = head->next;
    node* curnext = cur->next;
    head->next = 0;
    cur->next = head;
    for(; curnext!=0; )
    {
      cur->next = pre;
      pre = cur;
      cur = curnext;
      curnext = curnext->next;
    }
    curnext->next = cur;
  }
}

2. What is polymorphism?

Polymorphism is the idea that a base class can be inherited by several classes. A base class pointer can point to its child class and a base class array can store different child class objects.

3. How do you find out if a linked-list has an end? (i.e. the list is not a cycle)

You can find out by using 2 pointers. One of them goes 2 nodes each time. The second one goes at 1 nodes each time. If there is a cycle, the one that goes 2 nodes each time will eventually meet the one that goes slower. If that is the case, then you will know the linked-list is a cycle.

4. How can you tell what shell you are running on UNIX system?

You can do the Echo $RANDOM. It will return a undefined variable if you are from the C-Shell, just a return prompt if you are from the Bourne shell, and a 5 digit random numbers if you are from the Korn shell. You could also do a ps -l and look for the shell with the highest PID.

5. What is Boyce Codd Normal form?

A relation schema R is in BCNF with respect to a set F of functional dependencies if for all functional dependencies in F+ of the form a->b, where a and b is a subset of R, at least one of the following holds:

  • a->b is a trivial functional dependency (b is a subset of a)
  • a is a superkey for schema R


Leave a comment

Name: (Required)

eMail: (Required)

Website:

Comment: