In C89 and earlier it is allowed to call a function that has not been declared. When doing so, that function is assumed to have return type int. This is called an implicit declaration.
When you call a function that way, but it has been defined with a return type other than int, you invoke undefined behavior just as if you had explicitly declared the function with a different return type than you defined it with.
So in your case what happens is that you implicitly declare sqrt with the default return type int, so the return value you get from sqrt is (falsely) interpreted as an int and that int is then converted to double when you store it in wurzelZwei
.