ImageVerifierCode 换一换
格式:DOCX , 页数:26 ,大小:32.48KB ,
资源ID:2243468      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/2243468.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(C++基础知识.docx)为本站会员(b****2)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

C++基础知识.docx

1、C+基础知识ACM入门进阶 程序设计语言是学习数据结构的一个重要组成部分,任何算法只有通过程序设计语言实现之后才能真正解决问题。C+语言凭借其高度的灵活性和强大的功能在大学生竞赛中被非常广泛地使用,在中学生竞赛中的使用也越来越广泛。本文旨在给初学者一个窗口,通过例题了解什么是ACM,希望能够对刚入门的读者有所帮助(题目是英文的,不用担心,很简单得英文,不懂可以查金山词霸)ACM一般要求在一定的时间内,理解并分析题意,设计符合给定时间和空间复杂度要求的算法,并在计算机上使用一定的程序设计语言正确地实现算法。由于整个竞赛存在时间限制(特别是ACM/ICPC类竞赛,在解决问题数目相等的情况下以做题累

2、计时间的多少来决定名次),因此所使用的程序设计语言能否正确、快速地实现算法对竞赛的成绩影响颇大。 一般信息学竞赛比较常用的程序设计语言有以下几种:BASIC、Pascal、C/C+、Java,它们的特点如下表所示:BASICPascalC+Java学习难度容易一般较难较难语言特点简单严谨灵活高度面向对象程序运行速度慢较快快慢库函数功能弱一般很强强在目前的ACM竞赛中,C+和C语言使用较为广泛。但是C+语言凭借其本身所具有的高度的灵活性,以及它所带的库的强大功能,被越来越多的选手所使用。本文几乎所有内容都是例子,详细的见一些相关的参考书。一 C+基础知识1.1 Hello,world!C+对于大

3、小写是敏感的。首先,让我们通过一个非常简单的C+程序,来初步地了解C+语言。#includeusingnamespacestd;/ 注意如果不使用.h将要增加本行intmain()coutHello,world!endl; return 0;/:这个程序的作用就是在屏幕上输出“Hello, world!”的字样。以“#”开始的内容被称为预处理指令,这一行的作用是把一个叫做iostream的头文件包含到我们的程序中来。C+默认是不包含任何头文件的。另外,C语言中的头文件都是以.h结尾的,而标准的C+提倡使用没有扩展名的头文件。第四行让我们可以在程序中直接使用std名字空间内的标识符。std名字空

4、间包含了所有标准C+提供的类和函数,为了简便起见,一般总在包含头文件的预处理命令后写上这一行。如果是C语言的话,程序将变成:#includeintmain()printf(“%sn”,Hello,world!); return 0;/:1.2 类型C+提供了基本类型以及程序员可以自定义的类型:名称C+类型范围大小布尔型booltrue / false1字符型char所有单字节字符18位有符号整型char-128 . 12718位无符号整型unsigned char0 . 255116位有符号整型short-32768 . 32767216位无符号整型unsigned short0 . 6553

5、5232位有符号整型int-2147483648 . 2147483647432位无符号整型unsigned int0 . 4294967295464位有符号整型long long-263 . 263-1864位无符号整型unsigned long long0 . 264-18单精度浮点型float1.17e-38 . 3.40e384双精度浮点型double2.22e-308 . 1.79e3088扩展浮点型long double3.36e-4932 . 1.18e493210/12在C+中,很多其他类型的量都可以隐式地转化为布尔型,这时,非零的值都被转化成true,而零被转化成false。

6、其中VC中没有long long类型,可用_int64代替,sizeof的作用就是返回括号里的类型的大小(也可以是变量或者常量)。单个字符的常数要用单引号括起来,一些不能显示的字符可以通过转义符来表示(参见下表)。另外,从上表中可以看出,在C+中,字符型和单字节的整型实际上是等价的。举例来说,A的数值就是65。名称ASCII名称C+名称换行NL(LF)n水平制表符HTt竖直制表符VTv退格BSb回车CRr复位FFf铃声BELa反斜杠问号?1.3 操作符首先,我们来看下表:操作符名称C+操作符加法+减法-乘法*整数除法/实数除法/取余数%小于小于等于大于等于=相等=不等!=位非逻辑非!位与&逻辑

7、与&位或|逻辑或|位异或位左移从中可以看出,C+语言最大的特点就是几乎所有的操作符都是由符号字符构成的。注意:1、C+中,整数除法和实数除法都是由“/”来完成的,当两个操作数都是整数时进行整数除法,当至少有一个是实数时进行实数除法;2、C+中,位运算与逻辑运算的操作符是不同的。1.4 常用的库函数和格式输出标准C+提供了十分强大的库。在这一节,我们只介绍一些和Pascal所提供的标准过程和函数功能相似的库函数。函数定义头文件作用备注void* memset(void* p, int b, size_t n);cstring把p所指向的连续n个字节的值都设置成b与FillChar类似,但要注意参

8、数的顺序void* memmove(void* p, const* q, size_t n);cstring把q所指向的连续n个字节的值复制到p所指向的位置与Move类似,p、q所指向的内存区域可以部分重叠double atof(const char* p);int atoi(const char* p);long atol(const char* p);cstdlib把字符串p转化成所表示的数与Val类似double fabs(double);cmath绝对值函数与Abs类似double ceil(double);double floor(double);cmath取整函数,前者为上取整,后

9、者为下取整double sqrt(double);cmath平方根函数与Sqrt类似double pow(double d, double e);cmath幂函数,返回d的e次方double sin(double);double cos(double);double tan(double);cmath三角函数double asin(double);double acos(double);double atan(double);cmath反三角函数double atan2(double y, double x);cmath增强型反正切函数,返回点(x, y)的辐角很有用,会根据点所在的象限调整弧

10、度值double sinh(double);double cosh(double);double tanh(double);cmath双曲函数double exp(double);cmath指数函数,以e为底与Exp类似double log(double);double log10(double);cmath对数函数,前者以e为底,后者以10为底与Ln类似另外,标准C+中并没有提供函数Pi,要获得Pi的值一般这样做:const double pi = acos(0.) * 2;格式化输出具体参考C语言等相关书籍C+的流可以完成控制格式的操作。指定场宽由成员函数width()来完成,而指定小数部

11、分的位数则稍微麻烦一些,要先把浮点数的输出方式设置为定点输出方式,然后再设置小数部分的位数。例如:cout.setf(ios:fixed, ios:floatfield);cout.precision(2);cout 1.2345 endl;以上程序段中第一个语句的作用就是把浮点数的输出方式设置为定点输出方式,第二个语句的作用是把小数部分的位数设置为2。和Pascal一样,小数部分的最后一位也会进行四舍五入的处理。需要注意的是,width()只对接下来的一个格式化输出有效,如果有多个输出需要指定场宽,那么就要写多个width()函数。而precision()则对之后所有的浮点数输出都有效。例如

12、:cout.width(3);cout 1 2; / 1的场宽为3,而2采用实际宽度cout.width(4);cout 2;如果你觉得这样写太麻烦,你也可以把它写成:cout setw(3) 1 2 setw(4) 2;不过这时不要忘了在程序的最前面加上#include ,因为setw是在iomanip中被定义的。这样,我们就可以完成一般的格式化输出了。C+中流的格式化输出还有很多内容,如果有兴趣可以参考有关资料。1.5 例子要求:每个程序在全部弄懂的前提下,自己编写一次(可以上网AC的都要尽量通过)例1:http:/acm.timus.ru/problem.aspx?space=1&num

13、=1000 A+B ProblemCalculate a + b 输入: a and b输出: a+bSample Input1 5Sample Output6程序:C+:#include using namespace std;int main() int a,b; while(cin a b) cout a+b endl; /cin和cout是iostream里面的东西C:#include int main() int a,b; while(scanf(%d %d,&a, &b) != EOF) printf(%dn,a+b); 注意一般程序要求你多次输入的! printf和scanf是stdio.h里面的东西,注意C语言里面没有类的存在,只有函数。这两个函数要熟练使用的,慢慢来也行,具体见C和C帮助例2:1到n求和输入:n 代表一个非负整数 1=n=10000输出:1到n求和Sample Input100Sample Output5050程序:C:#includeint n,sum;int main() while

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1