Is Pull-up present by default?
To your first question, an input pin that is not driven by some other circuit can have any voltage from ground to the power supply voltage. If you only measured the voltage with a meter and did not add a resistor, say from the pin to ground, then a "high" value is perfectly reasonable.

The "code" you ask about is not executable code at all. It is defining a C struct datatype for the PERS register. The : allows you to define bit fields within a larger datatype, such as individual bits within a byte. The union allows you to access the register as a unified data value of 8 bits _PERS.Byte or as individual bits _PERS.Bits.PERS2. However, this section of code is not actually doing anything to the register; you need to write your own code to modify the value in the register as necessary.