文档介绍:ACM入门进阶程序设计语言是学习数据结构的一个重要组成部分,任何算法只有通过程序设计语言实现之后才能真正解决问题。C++语言凭借其高度的灵活性和强大的功能在大学生竞赛中被非常广泛地使用,在中学生竞赛中的使用也越来越广泛。本文旨在给初学者一个窗口,通过例题了解什么是ACM,希望能够对刚入门的读者有所帮助(题目是英文的,不用担心,很简单得英文,不懂可以查金山词霸~~)ACM一般要求在一定的时间内,理解并分析题意,设计符合给定时间和空间复杂度要求的算法,并在计算机上使用一定的程序设计语言正确地实现算法。由于整个竞赛存在时间限制(特别是ACM/ICPC类竞赛,在解决问题数目相等的情况下以做题累计时间的多少来决定名次),因此所使用的程序设计语言能否正确、快速地实现算法对竞赛的成绩影响颇大。一般信息学竞赛比较常用的程序设计语言有以下几种:BASIC、Pascal、C/C++、Java,它们的特点如下表所示:BASICPascalC++Java学习难度容易一般较难较难语言特点简单严谨灵活高度面向对象程序运行速度慢较快快慢库函数功能弱一般很强强在目前的ACM竞赛中,C++和C语言使用较为广泛。但是C++语言凭借其本身所具有的高度的灵活性,以及它所带的库的强大功能,被越来越多的选手所使用。本文几乎所有内容都是例子,详细的见一些相关的参考书。"Hello,world!"C++基础知识C++对于大小写是敏感的。首先,让我们通过一个非常简单的C++程序,来初步地了解C++语言。#include<iostream>usingnamespacestd;//(){cout<<"Hello,world!"<<endl;return0;}///:~这个程序的作用就是在屏幕上输出“Hello,world!”的字样。以“#”开始的内容被称为预处理指令,这一行的作用是把一个叫做iostream的头文件包含到我们的程序中来。C++默认是不包含任何头文件的。另外,,而标准的C++提倡使用没有扩展名的头文件。第四行让我们可以在程序中直接使用std名字空间内的标识符。std名字空间包含了所有标准C++提供的类和函数,为了简便起见,一般总在包含头文件的预处理命令后写上这一行。如果是C语言的话,程序将变成:#include<>intmain(){printf(“%s\n”,"Hello,world!");return0;}///:~++提供了基本类型以及程序员可以自定义的类型:名称C++类型范围大小布尔型booltrue/false1字符型char所有单字节字符18位有符号整型char-128..12718位无符号整型unsignedchar0..255116位有符号整型short-32768..32767263636416位无符号整型unsignedshort0..65535232位有符号整型int-2147483648..2147483647432位无符号整型unsignedint0..4294967295464位有符号整型longlong-2..2-1864位无符号整型unsignedlonglong0..2--38..-308..-4932..++中,很多其他类型的量都可以隐式地转化为布尔型,这时,非零的值都被转化成true,而零被转化成false。其中VC中没有longlong类型,可用_int64代替,sizeof的作用就是返回括号里的类型的大小(也可以是变量或者常量)。单个字符的常数要用单引号括起来,一些不能显示的字符可以通过转义符来表示(参见下表)。另外,从上表中可以看出,在C++中,字符型和单字节的整型实际上是等价的。举例来说,'A'的数值就是65。名称ASCII名称C++名称换行NL(LF)\n水平制表符HT\t竖直制表符VT\v退格BS\b回车CR\r复位FF\f铃声BEL\a反斜杠\\\问号?\?,我们来看下表:操作符名称C++操作符加法+减法-乘法*整数除法/实数除法/取余数%小于<小于等于<=大于>大于等于>=相等==不等!=位非~逻辑非!位与&逻辑与&&位或|逻辑或||位异或^位左移<<位右移>>从中可以看出,C++语言最大的特点就是几乎所有的操作符都是由符号字符构成的。注意:C++中,整数除法和实数除法都是由“/”来完成的,当两个操作数都是整数时进行整数除法,当至少有一个是实数时进行实数除法;C++中,位运算与逻辑运算的操作符是不同的。1.