As stated, depending on brands, the amount of available "k" is a very fluctuating parameter, and relates to various memories and units : processor internal memory, user data storage memory, including or not the program memory, and can be measured in bits, bytes, words, steps...
Example : 120k CPU, where you choose by "cursors" which amounts of memory are assigned to progam (steps), data files (words), machine langage, sampling trace, ...
Your post seems to refer to program length ("ladder logic") often measured in k-steps. If your PLC offers a "10k-steps program memory", you only have to understand what means a step / what can be written in a step.
In "ladder-based" PLCs and programming softwares, you'll find clearly how many steps your instruction set occupies (much more difficult in IEC61131 environments, since there is a compiler with its compiling rules between your design and the final code). Only notice that each instruction (or ladder symbol!) uses from 1 to xx steps (xx = see your instruction set. I'm currently programming a PLC with up to 17 steps function blocks).
Many softwares (IEC61131...) allow you to build your own function blocks, and to use them in programs. But, depending on your programming method / compiler / and... many other factors, your function code can be written once (and re-used as a subroutine) or added in final code each time your function is called (occurence)!
Summarized : as for PCs, big amounts of "k" are vendor's or manufacturer's marketing arguments (and what means 1k ? I know PLCs where "10k-steps" means... 9727 program steps !
). You can't easily deduce from this value, what can be performed with products (so, avoid to use it for PLC comparisons). Today's PLCs -as for PCs- are usually... powerful enough! (and you could meet your own limits before reaching their memory's ones).
In some cases, you'll perhaps have to optimize your code for scan time decrease. But by the way, what about a powerful "79380k" CPU if your program is scanned in... 8 seconds (at 0,1ms/k-step!) ?