c言語自体は2001年冬の高校から2004年に大学で勉強したので
基礎的な部分というか、文法は大体クリアしていたため、
このソースは大体こんな事やってるんだろうなー。という、
ソースの大まかな部分は読めました。
というか、自分の場合、極端に脳みその記憶が悪いため、
体に染みるほど高校3年間を無駄にVB6とBASICとC言語を
覚えていました。(HTMLは、30日で覚えました)
そうすることでとあるところで、電気ショックを受けて病院に行った時も
ちゃんとc言語を2007年の時点でも、2026年の時点でもきちんと
忘れることなく覚えています。
で、実際にc言語2級受けた時は、今年(2026)の6月なのですが、
必死に勉強したのは残り2週間程度でした。
それまでは、気楽にまあこんなものだろう・・・。と
簡単に過去問が平均して68点?(6割)くらいで
ほぼ合格点に達していたので特に勉強らしい勉強をしなかったのです。
しかし、さらに安全圏の得点を取るために、まずポインタについて
学びなおしました。それから文字列操作の関数の使い方も覚えなおしました。
strlenやstrcat、strcmpは自前で実装できるほど理解していたので
問題なかったのですが、、、。
例えば、strchrとか、strstrとか、strrchrやstrtokなどです。
特に困ったのは二重ポインタです。
例えば→がint型の二重ポインタです。 int **po;int *po2[];
さらに追い打ちを叩かれたのが、char型の二重ポインタです。
これらの勉強と、ライブラリ関数のXXXという関数は何というヘッダをインクルードすれば使えるのかを試験一日前に勉強しました。
あと、2級の最後の方に関数の仕様が書かれているのですが、基本情報とは違い、きちんと読めば穴埋め問題が解けるほどヒントが書かれていました。
なので自分のおススメは、
①c言語の文法のほぼ全てを覚える
(特に全ての演算子や演算子の優先順位や関数の作り方、構造体の作り方、関数の引数にポインタを使う方法、関数の引数の構造体や構造体のポインタを使う方法、など)
②文字列処理やテキストのファイル処理が出来るようになる
③適当なバイナリファイル処理が出来るようになる
④ネットのプログラミングで困っている人たちが問題を公開しているので力だめししてみたり、paizaでB級以上の問題を解くといいかもしれません。
(ネットのプログラミングで困っている人の問題を解くのは自由ですが、あまりそのまま教えるのは後々その人の事を考えるとマズいかもしれません)
(paizaでBランク以上のレベルは普通以上なので、カプコンやらゲーム会社からスカウトが来るレベルですが、自分は最高で一回だけBランクに達しました)
以上です。少しでも参考になれば幸いです。