Intern Finance Interview Questions | Glassdoor

# Intern Finance Interview Questions

509

Intern finance interview questions shared by candidates

## Top Interview Questions

Sort: RelevancePopular Date

### Accounting/Finance Intern at ConocoPhillips was asked...

Oct 17, 2012
 How have you used microsoft excel in to help solve a problem.1 AnswerKept my hours when doing privated contracting. Also, kept items expenses.

### Financial Software Developer Intern at Bloomberg L.P. was asked...

Apr 17, 2012
 There are 20 floors in a building. If you're on an elevator and you're trying to get to the 20th floor, what is the probability that 4 people ahead of you click the 20th floor before you do? Assuming you click last.10 Answersassume there is one button for each floor, so 20 buttons. a person can press any 1 button out of the 20, prob is 1/20. Since there are 4 people, so1/16000These are independent events so the chances of one person before you going to the 20th floor is 1/20. Since this happens 4 times before you the probability is 4*(1/20) or 1/5.The above two are close, but wrong.. There are 20 buttons, thus 20 choices, sure. But you are getting on at one of the floor. No body will press the button for the floor they get on.. Thus, there is really only 19 choices. P = (1/19)^3 (Independent events mean (1/19)(1/19)(1/19)).Show More Responses1/19 + 1/18 + 1/17 + 1/16 assuming that there were no repeated destinations.based on question: P(all 4 ahead of you want to get off on 20th fl) = (1/19)^4 real life(all 4 want to get off on 20th fl, and one of them is the first person press the button to 20th fl, and that leave all others, including you, stay still): (1/19) * (1/4)about 20% is the right answer. I am surprised with some of the answers, they are all very small possibilities (some less than 1%).I'm quite sure you are all wrong: The real probability is 1 - P(nobody pushes 20) = 1 - (18/19)^3 = 15%1- (19/20)^4If one of the 4 press the button for the 20th floor then the others won't have to do anything. The chances of one of them pressing 20th is: 1/19 + 1/19 + 1/19 + 1/19 = 4/19The answer is 1-(19/20)^4

### Financial Software Developer Intern at Bloomberg L.P. was asked...

Mar 13, 2013
 Linked list memory management: deleting a node from the middle of a list was easy. Next question - how to delete a node from the end of a list. Was too tired to think and realize this was a trick question.5 AnswersYou can't, since the pointer already points to null. No way around it.Disagree, Instead of 1 use 2 pointers, having pointer 1 one step ahead of pointer 2, once pointer 1 points to NULL, use pointer 2 to remove the last node.It depends. on how the link-list is implemented.Show More Responsescheck node->next->next equals to null or not, then can just update node->next = nullI guess this question makes sense only when we don't know the Head node !

### Financial Software Developer Intern at Bloomberg L.P. was asked...

Mar 5, 2010
 Suppose there is a rectangular map where you can only travel up or right to go from a start location in the bottom left corner to the top right corner, and each move is discrete. Write a program that prints all possible solutions to get from the start to finish.4 AnswersSuppose you need 5 R (right moves) and 5 T (top moves) to reach the upper right corner. Then you can do a permutation of the string, "RRRRRTTTTT" to get all the possible paths.@Sid Ray: Thanks for the hint.Thx for a nice hint.Show More Responses#include using namespace std; const int maxx = 5; const int maxy = 5; void printpath(int x = 1, int y = 1, string path = "") { if(x

### Financial Software Developer Intern at Bloomberg L.P. was asked...

Jan 11, 2014
 Write a program that verifies that a binary tree is a binary search tree.3 AnswersLet the BinaryTree contain 3 variables: value, leftChild, rightChild. The leftChild and the rightChild are again type of BinaryTree only. Now say you are given root node as the argument. At every stage, check if the value of the leftChild is less than current node value which is less than value of rightChild. If it is satisfied, recurse through its children. Otherwise, return "Not a Binary Search Tree"void traversal(Node* root){ if(*root== NULL) return; ArrayList thislevel = new ArrayList; thislevel.add(root) ; while(!thislevel.isempty()){ArrayList nextlevel = new ArrayList; for(Node s in thislevel) { if(s= = NULL)break;if(s>s.leftchild)if(s.rightchild>s){nextlevel.add(left);nextlevel.add(right);}else{return(0);)} thislevel = nextlevel;}return(1);}The first ans won't work since there can be a right node on left hand side of root ..thats more than parent and also more than root.. A violation.. So have min max values check each node shd b between min and max.. If yes bst else no

### Financial Software Developer Intern at Bloomberg L.P. was asked...

Mar 11, 2010
 Write a function to cause stackoverflow. 3 AnswersCall a function from itself in an infinite loop.That is not true if the compiler use tail recursion. Using tail recursion will not cause a stack overflow.Call a function inside of itself with no exist condition

### Financial Software Developer Intern at Bloomberg L.P. was asked...

Mar 11, 2010
 Write a function to convert First Name, Last Name to Last Name, First Name.3 AnswersYou can do it inplace my swapping the last and first char and then shifting the start index and rest string by one place each time.#include using namespace std; void swap (string * first, string * last); int main () { string first, last; cout > first; cout > last; swap (&first, &last); cout << "Swapping your first and last name." << endl; cout << "Your first name is now " << first << "." << endl; cout << "Your last name is now " << last << "." << endl; return 0; } void swap (string * pfirst, string * plast) { string temp = *pfirst; *pfirst = *plast; *plast = temp; }To be precise I forgot to add: // above swap (&first, &last) cout << "Your name is " << first << ", " << last << endl; // replace above return 0; cout << Your name is now " << first << ", " << last << endl; You don't have to pass by reference, you could have just used the swap function to reverse the order of the first and last name, but this is more impressive for an interview!

### Financial Software Developer Intern at Bloomberg L.P. was asked...

Nov 21, 2011
 Given an array of 1..n numbers with 2 numbers missing in it find the missing ones.3 AnswersSort1. Sort the array 2. Loop from 2 to n, and if array[i] - array[i-1] == 2 then the number missing would be array[i] - 1For a linear solution, find the sum and product of all numbers and use the quadratic formula to find them.

### Financial Software Developer Intern at Bloomberg L.P. was asked...

Aug 2, 2010
 if A! + B! + C! = ABC and A, B, C are single digit numbers, find A, B, and C.2 Answers#include int factorial (int n) { int i, f = 1; for (i = 2; i <= n; i++) { f = f * i; } return f; } int main() { int a,b,c; for (a=0; a < 10; a++) for (b=0; b < 10; b++) for (c=0; c < 10; c++) { int af = factorial (a); int bf = factorial (b); int cf = factorial (c); int sum = af + bf + cf; if (sum == (100*a + 10*b +c)) { printf ("A = %d, B = %d, C = %d\n", a, b, c); return 1; } } return 0; }145. You don't need to check for 0. You don't need to check for any number >=6 (6! = 720, therefore 6! + B! + C! will be greater than 720. Thus, ABC needs to be greater than 720. But even if we assume A = 6, the number cannot be greater than 654, assuming that there are no repetitions in the digits). Thus, we're reduced to [1, 5]. Now, 5! + 4! + 3! = 120 + 24 + 6 = 150. Thus, we know that the first digit of the number has to be a 1. So we're left with just 12 combinations for B and C and 145 seems to fit pretty well :) PS: This is under the assumption that the digits are unique.

### Financial Software Developer Intern at Bloomberg L.P. was asked...

Aug 2, 2010
 Reverse a string2 Answers/* * Reverse a string */ void revstr(char *s) { int i; char *temp, *r, *t; if (strlen(s) == 1) return; r = s; t = s + strlen(s) -1; while (t > r) { *temp = *r; *r = *t; *t = *temp; t--; r++; } }local variable i is not used at all strlen called twice pointers can be incremented while accessing char * revstr (char * string ) { if ( NULL == string ) return NULL; char *start = string; // Save point to beginning char *left = string; char ch; while (*string++) // Find end of string ; string -= 2; // Hop back over zero terminator while (left < string) { ch = *left; *left++ = *string; *string-- = ch; } return(start); }
110 of 509 Interview Questions

More