Its possible only with int.If a function is declared as void that it may return anything by default.
Yes it can be done. returning int is a common occurrence. char can also be returned because internally it is represented as nothing but int. returning float is also possible because there is an implicit conversions from int to float and vice versa. so if an int can be returned. so can be a float.