Depends on what information you're allowed to access. Assuming you don't simply have a "size" data member, you'd have to copy the stack, and then every time you pop from this copied stack, increase a size variable by one. Once the copied stack is empty, return the summed size, leaving the original stack untouched.
Your second question doesn't make any sense, sorry. A stack is an Abstract Data Type that can hold more than just pure numbers, and even if it was a stack of ints, the top value is independent from other values.