How can a species switch from r to K - reproductive strategy in a single generation?
The issue in your reasoning is to associate a $r$ or $K$ as being a property intrinsic of the species which, while not entirely wrong, is rather misleading.

The classical and simplistic model of population growth is the model of logistic growth

$$n(t+1) = n(t) + rn(t)\left(1-\frac{n(t)}{K}\right)$$

, where $n(t)$ is the population size (number of individuals in the population) at time $t$, $r$ is the growth rate and $K$ is the carrying capacity. Of course, there exist also continuous time equivalent of this discrete time recursion equation. Here is a quick and dirty R code to compute this recursion equation

r = 0.0004
K = 1e4
f = function(n) {return(n + r * n * (1-(n/K)))}

nbGenerations = 1e5
n = numeric(nbGenerations)
n[1] = 1
for (t in 2:nbGenerations)
{
    n[t] = f(n[t-1])
}

plot(y=n,x=1:nbGenerations)




If you want to compute such function fast you can look for the general solution of the recursion equation (it is a good exercice if you are a little uneasy with recursion equations).

As you can see, the population grows exponentially until some point and then the growth is slower and slower until reaching the carrying capacity. If you look at this species at $t=2000$, then you will deduce that it is a r-strategy species because its growth is dictated by the parameter $r$ (the growth rate). If you look at the same species at generation $t=6000$, then you will deduce that it is a K-strategy species as the population dynamic is dictated by the parameter $K$. Yet, the species has not changed so much.

Being r or K strategic is not a intrinsic characteristic of the species as much as it is a characteristic of the species population size in a given environment.

Now, in my example I chose $r=0.0004$, just pick some greater $r$ value and you'll see that such change from being a r- to being a K- strategy species can change very quickly. Consider for example

r = 0.02 # growth rate
K = 1e10 # carrying capacity
f = function(n) {return(n + r * n * (1-(n/K)))} # recursion function

nbGenerations = 1e3    # number of generations to computer
n = numeric(nbGenerations) 
n[1] = 1e7             # starting population size
for (t in 2:nbGenerations)
{
    n[t] = f(n[t-1])
}

plot(y=n,x=1:nbGenerations)




You can now look for realistic estimates of $r$ and $K$ for humans (data from after the industrial revolution), plug them in this equation and see what you get! You can also try to estimate $r$ and $K$ from data (from after the industrial revolution only) of population size over time.

If you play with high values of $r$, you can get overshooting and you can even get chaotic population dynamic.


  Are there other species which can change their entire reproductive strategy when the population approaches its carrying capacity?


Of course, this change in a conscious. It is not a decision of the species. It is not either so much an evolutionary process. It is just a consequence of their environment. Yes, all species follow some kind of model of population growth. The famous example of logistic population growth comes from daphnia which growth dynamic has been highly studied. Daphnia can have quite a high $r$ value (depending on the environment) and they can typically show overshooting behaviour of the carrying capacity before settling down back to the carrying capacity.