我高中刚毕业,也是搞信息竞赛的。C++是可以使用的,不过有不少限制,如对STL库的限制等。C++是面向对象的语言,但NOIP完全用不上面向对象的设计思想。对于NOIP这种考算法的比赛来看,学好面向过程的语言才是关键,因为NOIP的考核主要是看算法和数据结构,这正符合面向过程语言的设计思想,而C++的核心是类,是对象,这与NOIP要考的知识相差很大。
如果你已经有了C++的基础,那么完全可以用C++参加NOIP。不过与C和Pascal选手比起来,并没有什么优势。关键还在于对算法和数据结构的积累,以及扎扎实实的练习。
当然,如果你愿意,也可以用C参加竞赛。其实两个是差不多的,只要稍微注意一下竞赛大纲对C++的限制即可。
NOIP常用的书目有《奥赛经典》的基础篇、提高篇、数据结构篇等。最好买详细介绍数据结构和算法的书,这样的书也很多,清华大学出版社的不错。
另外,信息学训练常用的网站:
http://www.vijos.cnhttp://www.oibh.org (有所有网站的比赛消息发布等)
http://train.usaco.org(最后一个是英文的,可以去
http://www.nocow.cn/index.php/USACO_Training看着翻译做。)
其他的也非常多。
信息学竞赛也需要大量的做题量。另外要多找老师咨询,弄清楚有关比赛的基本知识。我初中参加普及组比赛时完全不会文件操作,结果0分……
也应该看一下NOIP近年发布的大纲以了解相关信息。
祝你好运!