Dqsscha清华大学ACM集训队培训资料(内部使用)
Timee wiill pieercee thhe ssurffacee orr yoouthh, wwilll bee onn thhe bbeauuty of thee diitchh duug aa shhalllow grooovee ; Janne wwilll eaat rrareeA borrn bbeauuty,, annythhingg too esscappe hhis siccklee swweepp .-- Shaakesspeaare 清华大学学ACMM集训队队培训资资料(内内部使用用) 一、C基础础 基本知识识 所有的的C程序都都是有函函数组成成的, 函数又又叫做子子程序,且且每个CC程程序必须须包含一一个maain函函数,编编译器(能能够把源源代码转转换成目目标代码码的程序序)把翻翻译后的的目标代代码和一一些启动动代码组组合起来来,生成成可执行行文件,mmainn函数就就是可执执行文件件的入口口,所以以,每个个C程序有有且只有有一个mmainn函数。。 下面我我们看一一个最简简单C程序序。程程序1..1 程序1..1 int maiin{reeturrn 00;} 在这个程程序中,如如果缺少少任何一一个字符符,编译译器就无无法将其其翻译成成机器代代码。 此外,CC是是对大小小写敏感感的,这这就意味味着,如如果我将将miaan函数拼拼为Maain,哪哪么,编编译器在在编译这这段程序序的时候候就会出出错。 编辑源文文件 能够提提共管理理程序开开发的所所有步骤骤,包括括编辑的的程序成成为集成成开发环环境(iinteegraatedd deevellopmmentt evviroonmeentss, IIDE)。。在wiindoows系系统下,使使用较为为广泛的的有Miicroosofft VVisuual C、Deev-CCpp等等,在UUNIXX系统下下,有VVim、、emaacs、、ecllipees等。。这些程程序都能能提供一一个较好好的开发发平台,使使我们能能够方便便的开发发一个程程序,接接下我们们所要了了解的都都是标准准C,所有有源代码码都在DDev--cppp下编写写,能够够编译通通过。 如果我我们修改改程序11.1中中的maain函数数的名称称,将其其改为MMainn,那那么,IIDE就就会给出出错误信信息,比比如“ [[Linnkerr errrorr] uundeefinned reffereencee too WWinMMainn166”,因为为编译器器没有找找到maain函函数。 接下来来,我们们来看一一个经典典的C例子子(程序序1.22) 程序1..2 inccluddeiiosttreaam usinng nnameespaace stdd; int maiinvvoidd { couutHeelloo Wrrolddenndl;; retturnn 0;; } 运行结果果 Helllo WWorlld 程序说明明 第一行行“inncluudeiosstreeam”,是一一句预处处理命令令,相当当于把“iosstreeam”这个文文件的所所有内容容复制到到当前位位置,替替换该行行。因为为在输出出操作中中需要做做很多事事,C编译译器就提提供了很很多已经经写好的的函数成为CC标标准库,我们们做的只只是拿来来用就可可以了。。第二行行的“usiing nammesppacee sttd;”是使用用标准命命名空间间,因为为我们在在程序中中用到了了在标准准命名空空间里的的函数和和对象。。目前可可以不了了解其具具体如何何实现,在在以后的的程序设设计中可可以再对对其进行行了解。。在明函函数中“couut”Helllo Worrld”eendll;”是在屏屏幕上打打印“Helllo WorrldeHeeH”,“enddl”表明打打印完这这句话之之后需要要换行。。如果我我们替换换引号内内的内容容,程序序的输出出就会相相应改变变。 另外一一个C程序序例子 // oourffuncc.cppp --- ddefiininng yyourr owwn ffuncctioon inccludde iosstreeam voidd siimonninnt;; /// fuuncttionn prrotootyppe ffor simmon int maiin { usiing nammesppacee sttd; simmon3;; /// caall thee siimonn funnctiion couut Picck aan iinteegerr ; intt coountt; cinn coountt; simmoncouunt; /// caall it agaain couut Donne enndl;; retturnn 0;; } voidd siimonninnt nn /// deefinne tthe simmon ffuncctioon { usiing nammesppacee sttd; couut Simmon sayys ttoucch yyourr tooes nn timmes.. eendll; } /// vooid funnctiionss doontt neeed retturnn sttateemennts 下面试运运行情况况 Simoon ssayss toouchh yoour toees 33 tiimess. Pickk ann inntegger 5112 Simoon ssayss toouchh yoour toees 5512 timmes.. Donee 程序中中包含了了cinn语句来来从键盘盘上获取取数据。。 该程序序中包含含了除mmainn函数以以外的另另一个函函数siimonn,他他和maain函函数定义义的格式式相同,函函数的统统一格式式如下 typee fuuncttionnnamme arggumeentllistt { staatemmentts } 注意,定定义siimonn的的代码在在maiin函数的的后面,CC中中不允许许将函数数定义在在另一个个函数内内。每个个函数的的定义都都是独立