Sensor readings when no ultrasonic sensors are connected to Arduino board

Hi everyone! I am sorry to bother you with what might seem like a silly question, but could not find a similar topic referenced anywhere online...so this is rather bizarre...I have been playing with ultrasonic sensors (HCSR04) and Arduino for a few weeks time now and everything has gone well when measuring distance with individual sensors. Especially when one measures within 20-40 cm. When I look at 2-4 m, the story changes and there are measurement errors. I started looking into it. When debugging, I use the serial monitor and print messages each step of the script to follow the flow. While I was doing that a while back, I had the Arduino connected to the PC, but no sensors attached. I thought I would try the code anyway and see what happens. I assumed the sensing "flags" will simply be zero. This is not what I noticed. In one out of 5 cases when starting the sketch, the readings were not zero...and this is without any sensors attached!!! I got 2 or 3 cm distance displayed on the serial monitor. Now, one would say that it is clearly the code showing this...I had 3 people looking at the code and they could not find anything wrong with it. It all comes down to the distance which is given by the PulseIn function...The function which calculates the distance is pretty simple-what everyone uses as far as I have seen:

int UltrasonicSensor (int UltraSonicpinTrigg, int UltraSonicpinEcho){  

digitalWrite(UltraSonicpinTrigg, LOW);
delayMicroseconds(2);  //start with no signal (low signal)
//then generate a trigger signal of 10 microsecond and then send it over to trigger pin:
digitalWrite(UltraSonicpinTrigg, HIGH);
delayMicroseconds(10); 
digitalWrite(UltraSonicpinTrigg, LOW);  //reset the sensor trigger to no signal (Low signal)
duration = pulseIn(UltraSonicpinEcho, HIGH); //read the echo pin and wait for it to get HIGH

//  Serial.println("");
//  Serial.println("Duration: ");
//  Serial.println(duration);
  distance = (duration/2) / 29.1; 
Serial.println("");
Serial.println("Distance: ");
Serial.println(distance);
return (distance); //returns the distance measured by the sensor in cm
  }

This function is called by different ultrasonic sensors consecutively. Sensor senses, distance is calculated, distance is printed. It is as simple as that. When there is no sensor connected, there should be no reading, right?
What could be wrong????
(Any suggestions are welcome..I have been looking into this for too long).

pulseIn() doesn't care if the signal is from an ultrasonic sensor or random noise from a floating (unconnected) input. If you want the pin to stop being random, turn on the pull-up resistor with INPUT_PULLUP.