青少年信息奥赛C++语言基础_第1页
青少年信息奥赛C++语言基础_第2页
青少年信息奥赛C++语言基础_第3页
青少年信息奥赛C++语言基础_第4页
青少年信息奥赛C++语言基础_第5页
已阅读5页,还剩85页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

C+语言基础,C+程序实例1,#includeusingnamespacestd;intmain()coutHello!n;coutWelcometoC+!n;return0;运行结果:Hello!WelcometoC+!,C+字符集,C+字符集是C+程序中可以使用的基本符号大小写的英文字母:AZ,az数字字符:09特殊字符:例如空格!#%.,(),C+词法记号(类似单词),关键字C+预定义的单词标识符程序员声明的单词,它命名程序正文中的一些实体文字在程序中直接使用符号表示的数据操作符用于实现各种运算的符号分隔符如;用于分隔各个词法记号或程序正文空白符空格、制表符(TAB键产生的字符)、换行符(Enter键所产生的字符)和注释的总称,C+字符集类似英语的字母或者汉语的笔画。C+的词法符号类似英语的单词或汉语的字。C+程序类似英语的十四行诗或者汉语的诗词歌赋。,C+字符集、词法符号、程序关系,C+词法记号关键字,关键字又称保留字,是C+预定义的单词关键字是C+中具有固定意义的一批英文单词或其缩写,有专门的用途,用在固定的位置,不能移作它用。C+中共有74个关键字/保留字,每一个都有自己的故事。,C+常用关键字及分类,C+词法记号标识符,构成规则:以大写字母、小写字母或下划线(_)开始,由大写字母、小写字母、下划线(_)或数字09组成。注意事项标识符区分大小写标识符长度任意(取决于操作系统)提倡使用“见名知义”的标识符避免使用系统已定义的标识符(系统保留字),例:判断下面哪些是合法的标识符:,MyFile,94Salary,Salary94,Salary94,amount,$amount,void,f3.5,Num_of_Student,C+程序实例2,#includeusingnamespacestd;intmain()constintPRICE=30;intnum,total;floatv,r,h;num=10;total=num*PRICE;couttotalendl;r=2.5;h=3.2;v=3.14159*r*r*h;coutvendl;return0;,数据类型,数据类型告诉我们存储单元中的数据的形式,及可以对存储单元中的数据执行哪些操作。C+的数据类型可以分为基本类型、构造类型、指针类型、空类型(void)四个大类。,基本数据类型,类型修饰符,C+还允许在基本数据类型前加上类型修饰符,来更具体地表示数据类型。C+的类型修饰符包括:signed有符号unsigned无符号short短型long长型,说明:(1)表中带的部分表示是可以省略的,如shortint可以写为shortint或简写为short,二者的含义是相同的。(2)四种修饰符都可以用来修饰整型。用signed修饰的类型的值可以为正数或负数,用unsigned修饰的类型的值只能为正数。(3)用short修饰的类型,其值一定不大于对应的整数,用long修饰的类型,其值一定不小于对应的整数。,C+的构造类型是基本类型的组合,包括数组、结构体和联合体等指针类型是对基本类型或构造类型的地址进行操作的一种数据类型。空类型(void)是什么也没有的一种特殊数据类型,仅用在有限的一些情况下,通常用作无返回值函数的返回类型。有时也被归类到基本类型,常量,在C+语言中,数据分为常量和变量两大类。由于程序中的数据是有类型的,所以常量和变量都是有类型之分的。常量按照不同的数据类型可以分为:字符型常量、整型常量、浮点型常量,以及字符串常量等。程序是根据程序中常量的书写格式来区分它是哪种类型常量的。,整型常量,在程序中书写整型常量时,没有小数部分。用户可根据需要分别可以用十进制、八进制和十六进制的形式书写:十进制格式:由数字0至9和正、负号组成,书写时直接写出数字,如:123,-516,+1000等。八进制格式:以数字0开头的数字(0至7)序列,0111,010007,0177777等。十六进制格式:以0 x或0X开头的数字(数字0至9、字母A至Z)序列,如0 x78AC,0 xFFFF等。,浮点型常量,只能用十进制来表示。可以用小数或指数形式表示,不分单精度和双精度类型。如:34.5,.345,1.5e-3,字符型常量,(1)用一对单引号括起来的一个字符,单引号只是字符与其他部分的分割符,不是字符的一部分,并且,不能用双引号代替单引号。在单引号中的字符不能是单引号或反斜杠。如:a,A,#合法的字符常量,非法的字符常量“A”不代表字符常量(2)另一种表示字符常量的方法是使用转义字符。C+规定,采用反斜杠后跟一个字母来代表一个控制字符,具有新的含义。,C+中常用的转义字符,字符串常量,用一对双引号括起来的一个或多个字符的序列称为字符串常量或字符串。字符串以双引号为定界符,双引号不作为字符串的一部分。如:“Hello”,“GoodMorning!”,“Isay:“Goodbye!”字符串中的字符数称为该字符串的长度,在存储时,系统自动在字符串的末尾加以字符串结束标志,即转义字符0。,符号常量,常量也可用一个标识符来代表,称为符号常量。如:#definePRICE30intmain()coutPRICEa变量名一般要以小写字母开头,且见名知义。,算术运算符和算术表达式算术运算符就是对数据进行算术运算,如:加、减、乘、除等,是在程序中使用最多的一种运算符,C+的算术运算符如表所示。,运算符和表达式,C+的算术运算符,(1+x)/(3*x)(2*x-3)*x+2)*x)-53.14*sqrt(r)b*b-4.0*a*c,算术运算符注意事项,算术运算符/有整除和一般除法两种功能。如果两个操作数都是整数,/的功能就是整除,否则就是一般除法。例如:3/2=13/2.0=1.53.0/2=1.5a+与+a(a-与-a)a+的功能是:a的值增1,a+的值是a增加前的值;+a的功能是:a的值增1,+a的值是a增加后的值;+a可以用作左值,即能放在赋值号的左边。,赋值运算符和赋值表达式赋值运算符的功能将某个数据的值赋给某个变量。格式:变量名赋值运算符表达式说明:(1)被赋值的目标,即赋值运算符左边的量必须是变量,而不能是常量或表达式。,(2)C+中的赋值运算符表(3)要注意区分赋值运算符“=”与数学上的“等号”间的区别,关系运算符和关系表达式关系运算符就是对两个量之间进行比较的运算符。,由关系运算符将两个表达式连接形成的运算式子是关系表达式,一个关系表达式的值是一个逻辑值,当为真时,值为1,为假时,值为0。如:假设a=1,b=20,c=3,则ac)的值为1(真)。,(2)在逻辑表达式的求值过程中,并不是所有的逻辑运算符都被执行,只是在必须执行下一个逻辑运算符才能求出表达式的值时,才执行该运算符。a则表达式i则表达式i+|i+|i+的值为1(真),运算结束后,变量i的值为2,而不是4。,intn=3,m=6;if(n4),对于数学上的表示多个数据间进行比较的表达式,在C+中要拆写成多个条件并用逻辑运算符连接形成一个逻辑表达式。如:在数学上,要表示一个变量a的值处于-1和-9之间时,可以用-9-9)longa,b;(x?a:b)=1;(x?x:a)=2;/error:x和a不同类型(x=2?1:a)=3;/error:1非左值,位运算符1位运算符及其运算规则所谓位运算符是指能进行二进制位运算的运算符。C+提供的位运算符:,位运算的运算规则为:(1)按位与则表达式i=1,i+=2?i+1:i+4的值为6。,该运算符的功能是将某一数据从一种数据类型向另一种数据类型进行转换。其使用的一般形式:数据类型标识符(表达式)(数据类型标识符)表达式如:inti=2;floata,b;a=float(i);/将变量i的类型强制转换为浮点型,并将其值赋给变量ab=(float)i;/将变量i的类型强制转换为浮点型,并将其值赋给变量b,强制类型转换运算符,每个运算符都有自己优先级和结合性。当一个表达式中包含多个运算符时,要确定运算的结果,必须首先确定运算的先后顺序,即运算符的优先级和结合性。C+中运算符的优先级和结合性如表2.11所示。,运算符的优先级与结合性,C+中运算符的优先级和结合性,输出流对象输出数据的语句格式为:cout数据1数据2数据n;说明:(1)cout是系统预定义的一个标准输出设备(一般代表显示器);“”是输出操作符,用于向cout输出流中插入数据。(2)cout的作用是向标准输出设备上输出数据,被输出的数据可以是常量、已有值的变量或是一个表达式。,数据的输出cout,(3)可以在cout输出流中插入C+中的转义字符。如:cout“Inputthevalueofa:n;couta;表示输出完字符串Inputthevalueofa:后,在下一行输出变量a的值。(4)可以将多个被输出的数据写在一个cout中,各输出项间用“”操作符隔开即可,但要注意cout首先按从右向左的顺序计算出各输出项的值,然后再输出各项的值。,如:coutvalueofa:avalueofb:bTheresultis:sqrt(a*a+b*b);再如:设变量i的值为10,则couti,i+,i+;的输出结果为:12,11,10(5)一个cout语句也可拆成若干行书写,但注意语句结束符“;”只能写在最后一行上。如:对于上面的语句也可写成如下形式:,coutvalueofa:/注意行末无分号avalueofb:bTheresultis:sqrt(a*a+b*b);/在此处书写分号,(6)在cout中,实现输出数据换行功能的方法:既可使用转义字符“n”,也可使用表示行结束的流操作endl。如:coutThisisfirstLine.nThisissecondline.;上面语句可等价地写为:coutThisisfirstLine.endlThisissecondline.;,(7)在cout中还可以使用流控制符控制数据的输出格式。I/O流的常用控制符,设置域宽:所谓域宽就是被输出数据所占的输出宽度(单位是字符数)。设置域宽可以使用流控制符setw(n)和cout的方法cout.width(n)其中n为正整数,表示域宽。但是,cout.width(n)和setw(n)二者都只对下一个被输出的数据有作用,若一个输出语句内有多个被输出的数据,而要保持一定格式域宽时,需要在每一输出数据前加上cout.width(n)或setw(n)。,此外,当参数n的值比实际被输出数据的宽度大时,则在给定的域宽内,数据靠右输出,不足部分自动填充空格符;若被输出数据的实际宽度比n值大时,则数据所占的实际位数输出数据,设置域宽的参数n不再起作用。,例cout流控制符setw的使用。#includeusingnamespacestd;intmain()inta=21,b=999;coutsetw(3)asetw(4)asetw(5)aendl;cout.width(3);coutb;cout.width(4);coutb;return0;,其输出结果是:212121/程序中第一个cout的输出结果999999,设置域内填充字符:在默认情况下,当被输出的数据未占满域宽时,会自动在域内靠左边填充相应个数的空格符。但我们也可以设置在域内填充其他的字符,方法是利用cout的fill方法cout.fill(c)或setfill(c)。cout.fill(c)上和setfill(c)可以对所有被输出的数据起作用。,例在例2-2的基础上增加域内填充字符的功能。#includeusingnamespacestd;intmain()inta=21,b=999;cout.fill(#);/设置域内填充字符为#字符coutsetw(3)asetw(4)asetw(5)aendl;,coutsetw(3)bsetw(4)bsetw(5)bendl;cout.fill(%);/将域内填充字符改为%字符coutsetw(3)a+bsetw(4)a+bsetw(5)a+bendl;return0;,其输出结果是:#21#21#21/程序中第一个cout的输出结果,未占满域宽的部分填充#字符。999#999#999/程序中第二个cout的输出结果10201020%1020/程序中第三个cout的输出结果,未占满域宽的部分填充%字符。,设置输出数据的进位计数制:在默认情况下,被输出的数据按十进制格式输出。但可以使用流控制符hex和oct控制数据的输出格式为十六进制和八进制,一旦设置成某种进位计数制后,数据的输出就以该种数制为主,可利用流控制符dec将数制重新成十进制。,inta=21,b=999;coutsetw(3)setfill(#)hexaendl;coutsetw(3)bendl;coutsetw(3)setfill(#)octbendl;coutsetw(3)bsetw(4)bsetw(5)bendl;coutsetw(3)setfill(#)decaendl;coutsetw(3)bsetw(4)bsetw(5)bendl;,程序的输出结果为:#15/以十六进制格式输出数据3e7#25/以八进制格式输出数据1747#21/以十进制格式输出数据999,设置浮点数的输出格式:对于浮点数,既可以用小数格式输出,也可以用指数格式输出。这可以分别通过setiosflags(ios:fixed)和setiosflags(ios:scientific)来控制。,例已知圆的半径r=6.779,计算并输出圆的周长和面积,要求分别用指数和小数两种格式输出。#includeusingnamespacestd;constdoublepi=3.14159;intmain()doubler=6.779,c,s;c=2.0*pi*r;/计算圆的周长s=pi*r*r;/计算圆的面积,/以指数格式输出圆的面积和周长cout“圆周长(指数)为:”setiosflags(ios:scientific)cendl;cout“圆的面积(指数)为:”sendl;/以小数输出圆的面积和周长cout“圆的周长(小数)为:”setiosflags(ios:fixed)cendl;cout“圆的面积(小数)为:”setiosflags(ios:fixed)s变量名1变量名2变量名n;说明:(1)cin是系统预定义的一个标准输入设备(2)cin的功能是:当程序在运行过程中执行到cin时,程序会暂停执行并等待用户从键盘输入相应数目的数据,用户输入完数据并回车后,cin从输入流中取得相应的数据并传

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论