![C语言速成与ACM入门课件_第1页](http://file4.renrendoc.com/view/1d6f7726d2ff88a8a5bfa771958a3989/1d6f7726d2ff88a8a5bfa771958a39891.gif)
![C语言速成与ACM入门课件_第2页](http://file4.renrendoc.com/view/1d6f7726d2ff88a8a5bfa771958a3989/1d6f7726d2ff88a8a5bfa771958a39892.gif)
![C语言速成与ACM入门课件_第3页](http://file4.renrendoc.com/view/1d6f7726d2ff88a8a5bfa771958a3989/1d6f7726d2ff88a8a5bfa771958a39893.gif)
![C语言速成与ACM入门课件_第4页](http://file4.renrendoc.com/view/1d6f7726d2ff88a8a5bfa771958a3989/1d6f7726d2ff88a8a5bfa771958a39894.gif)
![C语言速成与ACM入门课件_第5页](http://file4.renrendoc.com/view/1d6f7726d2ff88a8a5bfa771958a3989/1d6f7726d2ff88a8a5bfa771958a39895.gif)
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、Page 1C+语言速成语言函数数据类型运算符指针数组语句第1页,共35页。Page 2char:字符,用来存英文字母、数字或其他字符int:整型数字,输入的数字均为整数数据类型float:浮点数,用来存储小数C+语言速成第2页,共35页。Page 3数据类型数据类型可加入以下扩展声明:short:该数据类型精度较小long:该数据类型精度较大(例:short int 范围为 -32768 32767,long int 范围为 -2147483648 2147483647)unsigned: 该数据类型没有符号位signed:该数据类型有符号位(例:signed long int 范围为 -2
2、147483648 2147483647,unsigned long int 范围为 0 4294967295)long float 可以写作 double默认情况下,int为signed 的 long当使用 int时,若有其他扩展声明可省略int比如:long a;第3页,共35页。Page 4数据类型如果觉得long不够长的话,还可以使用另外一种更长的intlong long范围为-(2 63) 2 63 - 1如果还不够长,还可以unsigned long long范围为 0 2 64 - 1 (2 64 = 18446744073709551616)在dev C+编译器下输入long
3、long long后编译出错错误提示为:long long long is too long(注意,在VC+ 6.0中,long long必须写成_int64)第4页,共35页。Page 5算术运算符1逻辑运算符2关系运算符3赋值运算符4运算符第5页,共35页。Page 6算术运算符+:加法运算,比如3+2=5-:减法运算,比如 3-2=1*、/: 同上(注意除法运算中,int类型的除法的结果为带余除法的商)%:取模运算,算a对b带余除法后的余数&:两个数进行二进制与运算|:二进制或运算:二进制异或运算:二进制取反运算第6页,共35页。Page 7逻辑运算符计算机逻辑运算:0为假,1为真对计算
4、机而言,一切不是0的数都是真&:逻辑与,而且|:逻辑或,或者!:逻辑非,不是第7页,共35页。Page 8关系运算符判别两个数据之间的大小关系=:等于!=:不等于:大于=:大于等于第8页,共35页。Page 9赋值运算符=:让某个数据的值变为另一个值+=、-=、*=、/=、&=:让某个数据变成该数据加(减、乘、除、取余)某个值后的结果&=、|=、=等等+、-:自加一、自减一第9页,共35页。Page 10ifelseswitchwhilefordo.whilegoto循环控制语句continue & break条件语句循环语句C+语句C+语言速成第10页,共35页。Page 11条件语句if(
5、条件)内容1;else内容2;当内容1/内容2只有一条语句时,if / else后面的大括号可省略if(条件1)内容1;elseif(条件2) 内容2;else 内容3;if(条件1) 内容1;else if(条件2) 内容2;else 内容3;第11页,共35页。Page 12循环语句while(条件)内容;内容只有一条语句时大括号可省略for(内容1;条件;内容2)内容3;内容1;while(条件)内容3;内容2;第12页,共35页。Page 13循环控制语句continue不执行下面的语句,重新进入条件判断,如果条件成立则重新执行循环语句break直接结束循环第13页,共35页。Page
6、 14数组与指针一维数组 = 数列二维数组 = 很多个数列a0a1a2a3a4a5a6a7a8a9a5的位置a的位置a00a01a02a03a04a05a06a07a08a09a10a11a12a13a14a15a16a17a18a19a20a21a22a23a24a25a26a27a28a29第14页,共35页。Page 15数组与指针需要的数据存放在内存上内存可以视作一个很长的表,申请一个长度为k的数组(即int ak)实际上是在内存上找一段长度为k的没有其他程序使用的连续的内存,然后将之命名为a而申请二维数组int akl,实际上也是申请一个长度为k*l的没有其他程序使用的连续的内存,然
7、后将之命名为a,然后将第一个位置命名为a0,第l+1个位置命名为a1,第2*l+1个位置命名为a2.以此类推a0a2a1a4a3a00a10a01a20a11a21第15页,共35页。Page 16数组与指针地址:存储一个数据的位置取址运算&:获得该数据的地址取值运算*: 获得该地址的数据a实际上指的就是a0的地址即*a a0&a0 a&a1 a+1a0a2a1a4a3内存第k个格子内存第k+1个格子第16页,共35页。Page 17数组与指针指针:用来存储某个元素的地址int *p = a;*p a0p &a0 (a,k)p + 1 &a1&*p &a0 (a,k)p+ :让p的值+1,实际
8、上就是指向p的下一个位置&p ?a0a2a1a4a3p=k内存第k个格子内存第k+1个格子内存第l个格子,存储的值为k第17页,共35页。Page 18数组与指针双指针:用来存储某个指针的地址int *p1 = &p;p1 &p (l)*p1 p (k,a,&a0)*p1 a0&p1 ?a0a2a1a4a3p1=lp=k内存第k个格子内存第k+1个格子内存第l个格子,存储的值为k内存第m个格子,存储的值为l第18页,共35页。Page 19函数返回类型 函数名(参数1,参数2,.); int f ( int x, int y);返回类型 函数名(参数1,参数2,.) int f ( int x
9、, int y) . return x*(x+y);return .;f(x, y) = x*(x + y)第19页,共35页。Page 20函数main函数是整个程序的开始一般情况下main类型为int,返回值应为0函数一旦运行到return时,立即返回该值并结束函数的运行,并不运行return之后的任何语句函数可不带任何参数当函数不需要返回值时,可以使用void作为该函数的类型,要结束函数运行时直接return;即可void f()return;函数内部可以调用其他的函数,也可以调用自身int f(long x)if(x = 0)return 0;else return x+f(x-1);
10、else可省略第20页,共35页。Page 21函数函数运行时,不会修改参数的值void f(int a)a+;int main()int b = 3;f(b);return 0;事实上,f(b)的调用是先申请int a,成功后令a=b(即复制一个b,名字为a),然后再对a进行操作。运行后a会被销毁,但是b不会被改变。若调用的是指针又会如何呢?void f(int &a)a+;int main()int b = 3;f(b);return 0;第21页,共35页。Page 22ACM扎实的数学基础良好的英语阅读理解能力编程经验创新思维能力团队合作精神心理素质ACM入门第22页,共35页。Pag
11、e 23ACM比赛规则三个人一台电脑(Linux系统)队内可讨论,可由队内任何人编写任意题目共612道题目,45小时可用CC+Java答题可带任何纸质材料每次提交答案都有返回结果,若不正确可以修改后再次提交每次通过一道题目时,你的通过题目数+1,你的总罚时会加上当前的时间(分钟为单位)再加上你之前提交此题不通过的次数*20没有回答顺序限制,可按任意顺序答题场内有打印机,可打印任何你需要的东西(通常是代码)可随时通过电脑向裁判(judge)问任何问题,judge可选择回不回答排名按题数降序排序,若题数相同则按罚时升序排序可以在比赛过程中查看所有队伍回答题目的情况以及当前的排名,此排名被称之为bo
12、ard在比赛结束前一小时board将停止更新,保持在比赛结束前一小时的状态,在比赛结束后才会看到最终的结果,称为frozen或封board第23页,共35页。Page 24状态解释Accepted(AC):成功解决一道题目,答案正确Presentation Error(PE):输出的答案正确,但是格式错误了Wrong Answer(WA):输出的答案与要求的答案不一致Runtime Erorr(RE):程序运行时崩溃Time-limit Exceeded(TLE):程序运行时间过长Memory-limit Exceeded(MLE):程序花费内存空间过大Output-limit Exceede
13、d(OLE):输出的答案过长System Error:裁判系统崩溃第24页,共35页。Page 25初学者易犯的错误题目:输入两个数,输出该两个数的差样例输入:12 3样例输出:9#includeusing namespace std;int main()int a,b;cout ab;cout The answer is: a-b endl;return 0;第25页,共35页。Page 26初学者易犯的错误ACM比赛中,期待获得的程序是输入一些数据后能马上输出需要输出的结果即输入12 3之后马上输出9而该程序会输出的是:Please input the numbers:The answer
14、 is:9这与答案9不一样,虽然方法是对的,但仍然会出现WA#includeusing namespace std;int main()cin ab;cout a-bendl;return 0;没有endl会返回PE第26页,共35页。Page 27ACM常用技巧一般而言,C+的cin与cout速度上会比C语言的scanf和printf慢很多,所以我们推荐使用scanf和printf而不是cin coutscanf的格式为scanf(“, &a,);例如int a;scanf(%d,&a);%以及后面的内容为需要代换的内容,不同的字母有不同的含义:%d:一个整数%f:一个小数%c:一个字符%s
15、:一个字符串(遇到空格与回车的时候结束)%:一个百分号第27页,共35页。Page 28ACM常用技巧除了%以外,每一个百分号后面读入的内容要按顺序在后面的列表中提供读入到哪一个地址:int a;float b;scanf(%d%f,&a,&b);将一个整数读入到a,一个小数读入到b可以添加扩展说明l:长型元素 %ld长整数对应long %lf长小数对应double*:读入后被忽略 比如scanf(%d%*d%d,&a,&c);读入三个整数,第一个读入到a,第二个被忽略,第三个读入到c可以自己定义输入格式,如scanf(%d:%d,&a,&b);是指读入两个被分号分开的数,例如3:15,分别读
16、到a和b,如读入数据并非如此则会出现混乱第28页,共35页。Page 29ACM常用技巧printf:与scanf类似的格式写出数据printf(%ld %ldn, a,b);printf(“Answer is : %ldn,a);printf(%5.2lfn,f);printf(%8dn,a);右对齐占八位的数字printf(%-8dn,a);左对齐占八位的数字printf(%08dn,a);八位(补0)的数字第29页,共35页。Page 30ACM常用技巧n:输出一个回车t:输出一个间隔:输出一个双引号:输出一个斜杠( ):输出一个单引号第30页,共35页。Page 31ACM常用技巧一般
17、而言,ACM题目中常常会有多组数据,一般有两种表示方法1:第一行为数据组数t,下面总共有t个数据2:有多个数据,读到当m=0之类时停止处理3:有多个数据,处理到结束为止1:scanf(%d,&t);while(t-)scanf(%d,&t);for(h=1;h=t;h+).printf(Case %d:n,h);第31页,共35页。Page 32ACM常用技巧2:有多个数据,读到当m=0之类时停止处理while(scanf(%d,&m), m!=0).;3:有多个数据,处理到结束为止while(scanf(%d,&m)!=EOF).;第32页,共35页。Page 33ACM团队合作三个人一台电脑:只能由一个人编写程序队内可讨论:讨论总能够得到更好的结果可由队内任何人编写任意题目:轮流上机可带任何纸质材料:模板每次提交答案都有返回结果,若不正确可以修改后再次提交:随时知道自己的答案正确与否没有回答顺序限制,可按任意顺序答题:三个人不要看同一道题目场内有打印机:如果提交错误则可以打印代码,将机器交给队友使用,自己查看代码发现错误第33页,共35页。Page 34提示不要盲目交题,要有充分把握才交。并不
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 浙教版数学七年级下册《3.5 整式的化简》听评课记录1
- 湘教版地理八年级下册《第一节 北京市的城市特征与建设成就》1课时听课评课记录
- 八年级道德与法治下册第二单元理解权利义务第四课公民义务第1框公民基本义务听课评课记录(新人教版)
- 湘教版数学九年级上册第一章《反比例函数》复习听评课记录
- 人教部编版九年级历史上册:第15课 探寻新航路 听课评课记录
- 苏科版七年级数学上册《3.4.2合并同类项》听评课记录
- 通海口小学一年级口算测试卷
- 苏教版四年级数学下册期末复习口算练习题一
- 月业务经理聘用协议书范本
- 二手房房屋买卖协议书范本
- Q-HN-1-0000.08.004《风力发电场电能质量监督技术标准》
- 多指畸形-课件
- 5G NSA站点开通指导书(临时IP开站)
- 宗教与社会课件
- 3人-机-环-管理本质安全化措施课件
- 生殖医学中心建设验收标准分析-讲座课件PPT
- DB44∕T 1811-2016 石灰岩山地造林技术规程
- 庆阳煤炭资源开发调研报告
- 桥博常见问题
- 贵州省电梯日常维护保养合同范本
- 《我们的方言》-教案(共4页)
评论
0/150
提交评论