




已阅读5页,还剩56页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
C+程序设计语言第2章,数据类型与表达式,第2章数据类型与表达式2.1标识符2.2基本数据类型2.3运算符与表达式2.4类型转换2.5习题实验课堂练习,2.1标识符,标识符是给常量、变量、函数等起的名称,分关键字和自定义标识符两种,由字符组成。2.1.1字符集字符集是组成C+语言的基本字符的集合,包括:数字:09;英文字母:AZ,az;其他字符:键盘上除、$外的可显示字符。2.1.2关键字C+语言约定已具有特定含义的标识符,也称保留字,不可再作其它用途。通常表示基本类型、存储类型、特定语句等,2.1.3自定义标识符,用户命名的变量名、函数名、类型名等。只能有数字、英文字母、下划线(_)组成;第1个字符不能是数字;不能是关键字。注意:(1)尽量做到“见名思义”。(2)C+语言严格区别大小写。如:myName与myname是两个不同的标识符。下列能用作变量名称(合法的自定义标识符)是:float()Int()f#()_999()f-a()9f(),2.2基本数据类型,基本数据类型是指预定义的、不可进一步分割的数据类型;构造数据类型是指由一种或几种数据类型组合而成的数据类型。2.2.1基本数据类型简介基本数据类型主要包括:void(空类型或无值型);bool(布尔型或逻辑型);int(整型);char(字符型);float(单精度);double(双精度)。,2.2.1基本数据类型简介,不同数据类型所占内存空间的大小不同,所能表示数值的取值范围也不相同。C+语言中常用的基本数据类型可以用short、long、unsigned和signed修饰整型数据,用unsigned和signed修饰字符型数据。,2.2.1基本数据类型简介,1布尔型用关键字bool表示,有二个值:真(true或1)和假(false或0)。表达式中,用整型值1或0参与运算。其他类型数据作为布尔型时,0表示假,非0表示真。2整型用关键字int表示,可分为有符号和无符号、长整型和短整型,缺省表示有符号。越界:超出能表示的范围。如shortlong最大为,+1,2.2.1基本数据类型简介,3字符型用关键字char表示,以ASCII码值存储,表示ASCII表中的任一字符。表达式中,以对应ASCII码值(-128127间的整数)参与运算。4空类型用关键字void表示,可以用于函数的形参、函数类型、指针等,但不能说明空类型的变量。5实型通常所说的小数,分为单精度(float)、双精度(double)等。当实数在-10381038之间时,用float和double表示是相同的,超出此范围时应用double表示。实型数据均有符号,不可以用unsigned修饰。,2.2.2常量,常量是指值不变的量,分为字面常量和符号常量两种。1字面常量具体的数据,分为整型、实型、字符、字符串等。(1)整型常量可用十进制、八进制、十六进制三种进制形式表示;缺省为十进制,八进制数是以数字0开头的整数,十六进制数是以0 x或0X开头的整数。如:-3,+55,023,0XE49,-0 x56AD都是合法整型常量。其中:023=2*81+3*80=19-0 x56AD=-(5*163+6*162+10*161+13*160)=-22189而099是非法的整型常量。,2.2.2常量,(2)实型常量有小数和指数两种表示形式。缺省的实数为双精度型,单精度型在数的后面加f或F。如double型有:0.123,.52,765.;float型有-56.2f,86.F。指数形式由尾数和指数两部分组成,中间用e或E隔开,如:0.765E3,12.37e-2,-0.3e1等是正确的指数表示形式。指数形式必须有尾数和指数两部分,且指数部分只能是十进制整数。如:-0.3e,E3,12.37e2.0等都是不正确的表示形式。(3)字符常量普通字符常量一对单引号括起来的单个字符,如%,a,9,等。,2.2.2常量,转义字符常量常用来表示不可显示的特殊字符,有三种情况:后跟特殊含义的字符;后跟字符的八进制ASCII码值,如160;后跟字符的十六进制ASCII码值,如x70。后最多有3个字符;ASCII码值在0255,即00377、00XFF之间。所以0 x70、400、88都是非法字符。,2.2.2常量,(4)字符串常量用一对双引号括起来的一串字符,如“Hello!”,“1234”等。字符串结束标记ASCII值为0的字符,即0,相当于整数0或逻辑假,是字符串常量隐含的最后一个字符,表示字符串到此结束。如字符串“A”在内存中表示为,而字符A在内存中表示为。字符串长度字符串中第一个结束标记前的字符个数。字符串大小字符串占内存字符数。,字符串“ABC0DEF”的长度为3,大小为8。,2.2.2常量,2符号常量用标识符表示的常量。(1)宏定义,基本格式为:#define宏名常量值例如:#definePI3.1415926#definePRC“ThePeoplesRepublicofChina”(2)const定义,基本格式式为:const数据类型常量名=常量值;或const数据类型常量名(常量值);例如:constfloatPI=3.1415926;constlongfloatPI(3.1415926);,2.2.3变量,变量是值可以改变的量,是内存中分配的存储空间。1变量定义使用前必须先定义,基本格式为:数据类型变量名;例如:floatvalue;intx,y,z;,2.2.3变量,2变量赋值初始化在定义的同时赋值,基本格式为:数据类型变量名=常量值;或数据类型变量名(常量值);先定义,后赋值例如:intx=1,y,z(3);y=4;,x1,y,z3,4,无值的变量,除了被赋值、取地址外,不能参与其他运算。,z-x=2y+2=?,2.2.3变量,3指针变量地址指针变量概念存放存储空间地址的变量。指针变量定义基本格式数据类型*指针变量名;例如:float*p1=,指针变量的值:所指变量的地址。如p1的值为/Acin.get(ch1);cin.get(ch2);cin.get(ch3);/B当输入abc(换行符)时:对于A行的输入语句,ch1=a,ch2=b,ch3=c;对于B行的输入语句,ch1=a,ch2=(空格字符),ch3=b。一条cin语句可输入各种类型的多个数据,一条cin.get()语句只能输入一个字符数据。只有变量才能输入。,2.2.4数据的输入/输出,2数据的输出通过cout与插入操作符“”实现,基本格式为:cout变量;例如:intx=1,y,z(3);floatvalue=3.71;coutxn;/输出:1coutvaluetzendl;/输出:3.713cout;运算结果只有真(关系式成立,值为1)和假(关系式不成立,值为0);特别注意等于运算符(=)与赋值运算符(=)的区分。例2-3已知a为4,b为5,c为8,d为2,则下列表达式的值各是多少?(1)aba!=b(a=b)=(c=d)a=a=a(2)a=ba=b,011005(作为逻辑值为1),2.3.4逻辑运算符,包括逻辑非(!)、逻辑与(2)y=b-;,a:4x:4b:4y:5,a=a-1;x=a;y=b;b=b-1;,2.3.5其他运算符,2sizeof运算符单目运算符;求数据占的空间大小(字节数);基本格式为:sizeof(数据)。例2-6下列表达式的值各是多少?(1)sizeof(char)(2)sizeof(4.0)(3)sizeof(4.0f+2.0f),184,2.3.5其他运算符,3条件运算符(?:)唯一三目运算符;基本格式:表达式1?表达式2:表达式3;运算规则:当表达式1的值为真时,执行表达式2,并返回表达式2值,不执行表达式3;否则(表达式0)执行表达式3,并返回表达式3值,不执行表达式2。例2-7执行下列语句后y的值是多少?intx=1,z(3),y;y=xz?1:0;y的值为1。,表达式2,表达式3,2.3.5其他运算符,4逗号运算符(,)优先级最低;基本格式:表达式1,表达式2,表达式n;运算规则:从左到右依次计算表达式1、表达式2、表达式n的值,并将表达式n的值作为整个表达式的值。例2-8执行下列语句后x和y的值各是多少?inta,b,x,y;x=(a=1,3+a,+a);y=b=1,3+b,+b;x的值为2,y的值为1。,表达式n,2.4类型转换,C+要求参加同一运算的操作数类型相同,当一个表达式中出现多种类型数据时,首先要转换成同一类型,然后再进行运算。类型转换有自动类型转换和强制类型转换2种。1自动类型转换又称隐式类型转换,由编译系统自动完成。基本原则是将精度较低的向精度较高的转换,如下所示:charshortintlongfloatdouble字符型数据将转换成整型数据(ASCII码值)参与运算;转换仅仅改变运算过程中数据的类型。例2-9下列程序段的运行结果是什么?inta=50;charc=A,ch=(0?a:c);couta+ctD-At(0?a:c)tch;115365A,2.4类型转换,2强制类型转换也称显式类型转换。当自动类型转换不能满足程序设计要求时,可将数据强制转换成指定类型。强制类型转换的格式为:(类型名)数据或类型名(数据)例2-10下列程序段的运行结果是什么?charc=A;intn=1;coutc+ntchar(c+n)endl;cout(int)5.2%int(3.8)endl;,66B2,1.。2.3.。4.。,2.5习题,实验VC+开发环境与程序调试【实验目的】1熟悉VC+开发环境。2初步掌握程序调试过程。【实验内容】1设计一个程序在屏幕显示自己的信息,格式如下:姓名:华伟年龄:40电话:0511844011622.设计一个程序计算345的长方体表面积,输出格式如下:长方体的长为3,宽为4,高为5表面积为94,实验,一、选择题1设有说明语句:inta5=1,2,3,4,5,b5;charc5=”abcd”,d5;则下列正确的数组赋值语句是()。Ab=a;Bb5=a5;Cstrcpy(b,a);Dstrcpy(d,c);2下列存在语法错误的二维数组说明语句是()。Ainta3=3,2,1,1,2,3;Binta3=3,2,1,1,2,3;Cima23=1;Dinta2=3,2,l,1,2,3;3下列不存在语法错误的字符数组说明语句是()。Acharsl3=“a”,“b”,“c”;Bchars23=a,b;Cchars3=C+;Dchars43=“C+”;4设有:intb10,*p1=b,*p2=p1+;下列说法正确的是()。Ap1i与bi表示同一个元素Bp2i与bi表示同一个元素Cp1i与p2i表示同一个元素Dp1=b+;后,p1i+1与bi表示同一个元素,课堂练习,DDBB,5设有说明语句:chars20=“Program”,*p=s;则以下选项中相同或值相等的是()。Asizeof(s)与strlen(p)Bstrlen(s)与strlen(p)Csizeof(s)与sizeof(p)D数组s与指针p中保存的内容6下列程序段的执行结果是()。charc=“abcde”;inta5=0;c2=a2;coutcendl;Aab0deBab0de0CabDAbc7下列程序段的执行结果是()。chars=“abcdef”;coutstrcat(s,”12345”)endl;A12345Babcdef12345C12345fD内存引用错误,无输出8设有说明语句:intb=5,6,7,8,9,*p=b+1;则*p的值是()。A5B6Cchars=“1,2,3,4,5”,*ps=s;则下列能输出数组所有元素的语句是()。Acoutpa;Bcoutps;Ccout*pa;Dcout=A,二、填空题,123456,a:5d:1e:4f:1g:1,i:1l:1m:1o:3r:3,s:2u:1y:3,8分析下列程序,写出程序运行结果。#includevoidmain(void)charstr=Itis4:30pm.,*p=str;cout=0以上程序的输出是:(1),(2),(3)。,二、填空题,(1)Itis4:30pm.(2)I(3)430,9分析下列程序,写出程序运行结果。#includevoidmain(void)inta15=450,211,164,290,100,228,287,69,488,84,216,390,369,488,66;intb5=100,200,300,400,500,c5=0;for(inti=0;i=bj)j+;cj+;for(i=0;i5;i+)cout100+i*100:tciendl;以上程序的输出是:(1),(2),(3),(4),(5)。,二、填空题,(1)100:3(2)200:2(3)300:5(4)400:2(5)500:3,10分析下列程序,写出程序运行结果。#includevoidmain(void)charres10=0;inti=0,x=3456,rem;dorem=x%16;x=x/16;if(rem=0;i-)coutresi;coutendl;以上程序的输出是:。,二、填空题,D80,11分析下列程序,写出程序运行结果。#includevoidmain()inta=100,300,500,x=0;int*p1=a+2,*p2=以上程序的输出是:(1),(2),(3)。,二、填空题,(1)500(2)800(3)900,12分析下列程序,写出程序运行结果。#includevoidmain(void)chars=ChinatJiangSunPeople0Good;char*p=s;while(*p)p+;coutsizeof(s)np-sendl;以上程序的输出是:(1),(2)。,二、填空题,(1)26(2)20,13下列程序段求15002000之间的二进制对称数,算法:将正整数的二进制字符形式,按正序和反序放入两个字符数组;然后比较。在空格处填上适当的语句,使其能正确执行。chars133=0,s233=0;charc,*p1,*p2;intcount=0,t;for(intn=1500;n2000;n+)p1=s1;p2=;t=;while(t)c=;/最低位二进制的字符形式t/=2;*p1+=c;*p2-=c;p2+;if()coutn=n,二进制形式为:s1endl;count+;cout对称数的个数为:countendl;,二、填空题,s2+31nt%2+0!strcmp(s1,p2),14初始化等比数列(首项为3,公比为2);计算满足条件的j和k,从第j项到第k项的和为720(和中包含第j项及第k项)。#defineLEN20intnumLEN,a=3,q=2,i=0,j,k,t=a,s,flag=0;do=t;t*=q;while(numi720);/初始化等比数列for(i=0;iLEN;i+)/查找符合条件的项;j=k=i;while(s720,二、填空题,numi+s=0flag=1j=k,15合并两个有序数组:依次取出第1个数组中的元素,插入第2个数组,并保持第2个数组的有序。inta10=3,5,9,15,25,30,b20=1,2,8,10,16,18,20;intlen1=6,len2=7;/数组实际元素个数for(inti=0;i+)for(intj=0;jj;k-);bk=ai;len2+;for(i=0;ilen2;)coutbit;if()coutn;coutb;intj,k,s,carry=0;char*pa=a+strlen(a)-1,*pb=b+strlen(b)-1,*ps=sum;while()/位数相同时相加j=*pa-0;k=*pb-0;s=;if(s=aif(pb=b)p1=pb;p2=b;while(p1=p2)/位数不同时相加s=*p1-0+carry;if(s10)*ps=s+0;else*ps=s%10+0;carry=s/10;p1-,ps+;if(carry)*ps+=carry+0;*ps-=0;for(char*p=sum,t;p+,ps-)/数组sum逆序t=*p,*p=*ps,*ps=t;coutSum:setw(23)sumendl;,二、填空题,p=j;k-);tj=ai;for(i=0;in;i+)ai=ti;for(i=0;in;i+)coutait;if(i+1)%5=0)coutendl;coutendl;,二、填空题,tn+continuetk+1=tkn+,18根据运行结果,在空格处填上适当的语句。chars150,s220;cout请输入一个字符串:;cin.getline(s1,50);cout请输入另一个字符串:;cin.getline(s2,20);char*p1=s1,*p2=s2;while()p1+;=;while(*p2)*p1=*p2;couts1endl;以上程序的运行结果是(下划线部分为键盘输入内容):请输入一个字符串:v
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年银行理财产品销售代理协议及客户经理居间服务合同
- 2025年度企业安全生产咨询服务合同范本
- 2025年智慧社区车库使用权转让及维权服务合同
- 2025年度国内夫妻财产分割及子女抚养权协商服务合同(权威范本)
- 2025年度多式联运货物高效运输合同方案
- 2025年度婚姻解除条件及子女监护权协议示范文本
- 2025年智慧城市道路照明设备更新与维护服务合同
- 2025年大型企业信息化系统定制开发与维护服务合同
- 2025年度羽毛球公开赛场地租赁及赛事运营维护合作协议
- 2025年度电竞战队主播团队线上线下活动策划执行合同
- 2025年四川省高考化学试卷真题(含答案解析)
- 乙炔MSDS技术说明书
- 科学防控近视
- GB/T 3622-2012钛及钛合金带、箔材
- GB/T 31989-2015高压电力用户用电安全
- GB/T 24338.6-2018轨道交通电磁兼容第5部分:地面供电设备和系统的发射与抗扰度
- 幼儿园中层干部培训心得体会
- 燃料电池课件
- 学校学生评教表
- 《风力机理论与设计》全套教学课件
- 丽声北极星自然拼读绘本第六级 The Clever Beaver 课件
评论
0/150
提交评论