As for mathematics, the original C programming didn't involve much mathematical content. Generally, it is a simple example of the relationship between the greatest common divisor and the least common multiple, because at the beginning, you were asked to learn coding, not to become a computer expert at once, but the course of data structure may have many algorithms and require certain mathematical logic ability.
It won't be too difficult to learn at first. If you want to take the postgraduate entrance examination or study PhD, the programming at that time was similar to most math problems, and they were all very algorithmic. The topics in ACM were mainly algorithms. You can practice.
It's certainly not easy to teach yourself C. You need better textbooks, not too many, just one, such as Tan Haoqiang's C Programming, the fourth edition, or C primer plus. I think Tan Haoqiang's is enough. After all, it has been ups and downs for 20 years, and then I recommend you a video, which is quite good. Teacher Hao Bin recorded his C language class and posted it online for beginners to use for free. I won't post the link If I send it, Baidu will definitely block it. Go to VeryCD and search for "Hao Bin C Language Self-study Tutorial". The first one is 180 episode, which is very suitable for beginners.
I also rely on this video to introduce part of C, and I would like to thank Mr. Hao Bin here, hehe.