收藏 分销(赏)

C++语言基础课件全套整本书电子讲义全书电子课件教学教程.ppt

上传人:a199****6536 文档编号:12068174 上传时间:2025-09-05 格式:PPT 页数:506 大小:3.45MB 下载积分:25 金币
下载 相关 举报
C++语言基础课件全套整本书电子讲义全书电子课件教学教程.ppt_第1页
第1页 / 共506页
C++语言基础课件全套整本书电子讲义全书电子课件教学教程.ppt_第2页
第2页 / 共506页


点击查看更多>>
资源描述
单击以编辑母版标题样式,单击以编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击以编辑母版标题样式,单击以编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击以编辑母版标题样式,单击以编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击以编辑母版标题样式,单击以编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击以编辑母版标题样式,单击以编辑母版文本样式,第二级,第三级,第四级,第五级,b,*,单击以编辑母版标题样式,单击以编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,C+,程序设计基础,1,第一章,C+,语言基础,2,一、,源程序的编辑、编译、连接与执行,编辑:输入、修改、存盘,形成,.cpp,文件。,编译:编译至无语法错误,形成,.OBJ,文件。,连接:与系统标准模块连接,形成,.exe,文件。,执行:运行程序,获得结果。,1.1,程序设计语言概述,3,二、程序错误类型,编译错误,连接错误,运行错误,逻辑错误,4,一、语言特点,中级语言,表达能力强;,结构化语言,层次清晰,结构紧凑;,运算符、数据类型丰富,功能齐全,灵活多样;,简洁,方便、灵活;,目标代码质量高,快捷高效;,可移植性强,适用范围广。,1.2 C+,程序的基本结构,5,二、,C+,程序的基本结构,例,1,一个简单的,C+,程序,/program c101.cpp,#include,void main,(),cout”Welcome to C+world!”;,程序输出结果:,Welcome to C+world,!,6,例,5,从键盘输入两个整数值,计算其和,,并输出结果值。,/program c105.cpp,#include,void main,(),int i,j,sum;,coutij;,sum=i+j;,cout,”,The sum is,”,sum,”,.n”;,运行示例,Enter two integers,:,63 58,The sum is 121.,7,例,6,运行下述,C+,程序将获得与例,1,相同的输出结果。,/program c106.cpp,#include,void displaymessage1,(),cout,”,Welcome,”,;,void displaymessage2,(),cout,”,to,”,;,void displaymessage3,(),cout,”,C+world!n,”,;,8,void main(),displaymessage1();,displaymessage2();,displaymessage3();,运行示例,Welcome to C+world!,9,C+,源程序主要有以下几个特点,:,C+,程序由函数构成,一般用小写字母书写,语句结尾要用,;,程序有且只有一个主函数,main(),,且()不能少,程序体用,和,括起来,函数体中又包括说明部分和执行部分,注释以,/”,开始,后跟注释内容。注释自动在行尾结束。,10,1.3,基本字符集与标识符,一、基本字符集,数字:,0,至,9,英文大、小写字母:,A,至,Z,,,a,至,z,专用符号:,+-*/=(),等等,若干字符对:,=!=,等等。,特定功能的符号:转义符(如,n,表示换行),11,二、标识符,标识符(,identifier,):常量、变量、函数等的,名称,关键字,(保留字):在,C,中有特定含义;,预定义标识符,(预定义标识符):,C,预先规定用来标识预定义的命令、库函数等,如,include,,,printf,等;,允许,程序员将系统,预定义标识符重新定义;,自定义标识符:,由程序员根据程序需要而自行选定的名字,12,作为标识符必须满足以下规则,:,必须由字母或下划线开头,其它部分可由字母、下划线或数字组成,大小写字母代表不同的标识符,只有前,32,个字符有效,不能使用,C+,的关键字,尽量不使用系统预定义标识符,尽量不要使用,l(L),I(i),o(O),等作为标识符,13,例,9,一些符合规则的标识符,smart,_decision,FLOAT,B757,例,10,几个非法的标识符,1st,不能以数字开头,Two Words,不能包含空格符,What_is_this?,问号符不允许,under-weight,减号符不允许,14,四、注释,注释由,/,”,开始,后跟注释内容,于行尾处结束。,要连续书写多行注释,则要求每行都以,/,”,打头。,注释自,/*,”,开始,至,*/,”,结束,其间的注释内容允许跨行书写。,注释,、,空格符,是,分隔符。注释可以加在,C,程序中任何能使用分隔符的地方。,分隔符是指分开两个相邻的词的符号。,15,例,11,以下几种书写注释的形式,均能顺利通过,C+,编译器的编译。,形式一,/the first line,,,/the second line,/and the third line.,形式二,/*the first line,,,the second line,and the third line.*/,形式三,/*the first line,,,*/,/*the second line,*/,/*and the third line.*/,16,例,12,下述书写注释的形式,将不能通过,C,编译器的编译。,/the first line,,,the second line,and the third line.,17,1.4,简单数据类型,两类数据类型:预定义数据类型和程序员自定义数据类型,数据类型定义的作用:,规定变量可接受值的集合以及对它所能执行的操作,指明,对该类型的数据项(即变量)应分配多大,内存空间,规定,能用于该类型数据项的,操作,;,防止,数据,类型不匹配,。,18,19,Visual C 6.0,编译系统系在,32,位计算机上运行,,int,型、,short,型整数将各占内存,4,个字节,20,一、整型类型,整型常量简称整常量。,三种表示整型常量的形式,:十进制形式、八进制形式、十六进制形式。,十进制整常量:,以非,0,数字打头,的,十进制,数字串,八进制整常量:,以数字,0,打头,的,八进制,数字串,十六进制整常量:,以数字和字母的组合,0 x,或,0X,打,头,的,十六进制,数字串,21,例 十进制、八进制、十六进制整常量示例,220,十进制整常量,-560,十进制整常量,06,八进制整常量,相当于十进制数,6,0106,八进制整常量,相当于十进制数,70,0 x4e,十六进制整常量,相当于十进制数,78,0XFF,十六进制整常量,相当于十进制数,255,22,C,允许在变量说明时直接赋予一个初始值,这称为,变量初始化,。,例 整型变量说明及初始化示例,int a,b;/*,说明,a,b,为基本整型变量,*/,/,且它们分别具有,随机,初始值,int m=4,p=3,n=2;/,说明,m,p,n,为基本整型变量,,/,且它们分别具有初始值,4,3,2,23,二、实数类型,24,实型常量简称实常量。,实型常量:,十进制小数点形式和科学记数法的指数形式,例,16,两种形式实常量示例,6.365,十进制小数点形式,6.8e-5,科学记数法的指数形式,表示,6.8,10,-5,,,即,0.000068,。,6.8E-5,与上数相同。,25,实常量缺省认作属于,double,类型。,例,17,单精度型实常量与长双精度型实常量示例,6.365,双精度(,double,)实常量,3.14159f,单精度(,float,)实常量,3.1415926535897932L,长双精度型实常量,所有小,数位均为有效数字。,26,例 实型变量说明及初始化示例,float radius,diameter,area;,/*,说明,radius,diameter,area,为,单精度型实变量,*/,double pi=3.14159265358979;,/*,说明,pi,为双精度型实变量,且具,有相应初始值,*/,27,三、字符类型,char,类型数据用来存放,ASCII,字符集内的某个字符。,C+,支持扩展,ASCII,代码,共包括,256,个不同字符。,28,将字符用,单引号,括起来,即成一个字符型常量或简称,字符常量,。,例,18,字符常量示例,A,表示英文大写字母,A,的字符常量。,a,表示英文小写字母,a,的字符常量。,表示空格符字符常量。,29,例 以下所示均为,非法,的字符常量表示,字符常量的单引号对内必须有一个字符,,若为空格,应写为,。,Turbo,字符常量的单引号对内只能包含一,个字符。,a a,是字符串常量(,a0,),而,a,才是字符常量。,30,四、布尔类型,bool,、,false,和,true,均为,C+,关键字。,规定,falsetrue,。,系统将,false,的值转换为,0,,将,true,的值转换为,1,bool,型数据占据,1,字节内存。,31,五、常量标识符,说明时用关键字,const,做限定符,,且必须为该常量标识符赋值。,在整个程序运行期间,,不允许改变,常量标识符的值。,用,大写字符序列,。,例,21,常量标识符说明示例,const int ZERO=0;,const double PI=3.14159;,32,1.5,运算符与表达式初探,一、算术运算符与算术表达式,33,程序中的算术表达式与一般数学式在表示形式上有所不同:,b,2,-4ac,应表示为,b*b-4*a*c,;,sin2x,应表示为,sin(2*PI*x),,其中假设,PI,是一个预先定义的一个常量标识符。,34,二、关系运算符与关系表达式,35,例 关系运算示例,1+2=3,结果值为,1,(,true,),A=a,结果值为,0,(,false,),A!=a,结果值为,1,(,true,),36,例 设,int,型变量,a,b,c,分别有值,1,3,2,,则,b*b4*a*c=0,结果值为,1,注意:,算术运算符的优先级高于关系运算符,,因此无须用圆括号将该算术表达式括起来。,37,三、逻辑运算符与逻辑表达式,38,例 逻辑运算示例,!0,结果值为,1,(,true,),!1,结果值为,0,(,false,),!5,结果值为,0,(,false,),1&5,结果值为,1,(,true,),39,运算优先级,函数优先,括号优先,(,嵌套括号中内层括号优先,),优先级高者优先,优先级相同者按结合规则,40,运算符,类型,优先级,结合性,(),圆括号,从左到右,+-!,单目运算符,从右到左,*/%,乘法运算符,从左到右,+-,加法运算符,从左到右,=,关系运算符,从左到右,=!=,相等测试运算符,从左到右,&,逻辑与,从左到右,|,逻辑或,从左到右,算术运算符的,优先级,及,结合性,高,41,例 设,int,型变量,a,b,c,分别有值,1,3,2,,则,(a!=0)&(b*b4*a*c=0),与,a!=0&b*b4*a*c=0,等价,结果值为,1,42,四、类型转换,双目运算符两边操作数的类型必须一致。,两种类型转换:隐式类型转换与显式类型转换。,隐式类型转换,由系统自动进行,例,23,设已有带初始赋值的变量说明,int a=2,b=4;,double f=3.15;,则:,(a+f)/b,的结果为,1.2875,,,double,型。,43,2.,显式类型转换,强制类型转换。,一般形式是,(类型名)表达式,或,类型名(表达式),其中类型名是一个任意基本数据类型名。,例 设已有带初始赋值的变量说明,int a=2,b=4;,double f=3.15;,(int)(a+f)/b),结果值为,1,(int)(a+f)/b,结果值仍为,1,,,注意:两者运算过程有所不同,强制类型转换的优先级高于,/,。,44,1.6,赋值语句及简单输入、输出,一、赋值语句,一般形式为,变量表达式;(,=,右结合,低优先级,),例,int i,j,k;,double r;,则以下几个语句均为,合法的赋值语句,:,i=j=k=3;i,j,k,均有整型值,3,r=2.5;r,有双精度实型值,2.5,i=r;i,有整型值,2,r=i;r,有双精度实型值,2.0,45,二、赋值表达式,一般形式:,变量表达式,例,33,设有变量说明,int m,n,k;,k=(m=5)*(n=4);,执行后,,int,型变量,m,n,k,将分别有整数值,5,4,20,。,46,三、输入输出简述,输入、输出,标准库函数,cin,、,cout,使用标准库函数如,cout,、,cin,,需写包含头文件,iostream.h,。,插入运算符,”,分别用于输出和输入。,插入运算符,的,结合性亦为从,左到右,,故能按顺序,将,输入分别赋予相应的变量。,输出和输入时,系统对各种类型的数据都能自动进行分析判别并按照缺省格式进行处理,从而,无需专门提供格式化串,。,48,例,36,下述,C,程序演示了使用,cout,语句对各种数据类型的变量、表达式按缺省格式输出的形式,#include,void main(),int i,j,m=4,p=3,n=2;,double pi=3.14159265;,char ch1=A,ch2=Z;,bool ok=true;,i=m+p+n;,j=m*p/n;,couti=m+p+n=m+p+n=in;,49,coutj=m*p/n=m*p/n=j n;,coutpi=pin;,coutch1=ch1,ch2=ch2n;,coutok=okn;,cout!ok=!okn;,运行示例,:,i=m+p+n=4+3+2=9,j=m*p/n=4*3/2=6,pi=3.14159,ch1=A,ch2=Z,ok=1,!ok=0,50,欲使用这些格式操纵符,需在,C,程序开头书写如下包含命令,#include,51,第二章 程序控制结构,52,条件控制结构:,(,选择结构,),无条件控制结构:,循环控制结构:,(,重复结构,),while,语句、,do-while,语句、,for,语句,if,语句、,switch,语句,break,语句、,continue,语句、,goto,语句,控制结构,53,2.1 if,语句,2.1.1,简单,if,语句,形式一,if(,表达式,),/*,括号不能少,*/,语句,表达式,0,语句,非,0,54,表达式,语句,1,非,0,语句,2,0,形式二,if(,表达式,),语句,1,else,语句,2,55,例,3,从键盘输入一个整数,计算它的绝对值并输出。,#include,void main(),int i,absi;,couti;,if,(,i0,),absi=i;,else,absi=-i;,cout”The absolute value of”i”,is”absi=A&ch=a,&ch=z,),coutch”is an English letter.n”;,else,coutch”is not an English letter.n”;,测试条件不能写成,A=ch=Z|a=ch=z,57,2.1.2,条件表达式与条件表达式语句,一般形式:,表达式,1,?表达式,2,:表达式,3,例,6,使用条件表达式语句实现相同功能。,#include,void main(),int i,absi;,couti;,absi=i0,?,i,:,-i;,cout”The absolute value of”i”is”absi”.n”;,58,2.1.3,复合语句,复合语句:,一对花括号及其中包含的语句集。,说明语句,(,可选,),执行语句集,使用说明语句的复合语句称为程序块,程序中凡可使用单一语句的地方,都可使用复合语句,作为特例,函数体也就是一个复合语句,59,2.1.4,扩展,if,语句与嵌套,if,语句,一般形式:,if(,表达式,1),语句,1,else if(,表达式,2),语句,2,else if(,表达式,n),语句,n,else,语句,n+1,60,例,9,从键盘输入一个表示百分制成绩的非负整数,按相应的五级记分制(,A,、,B,、,C,、,D,、,F,)转换,并输出结果。对于所输入的数据,需判断其合理性,即应为,0,100,之间的某个整数。,#include,void main(),int score;,char grade;,coutscore;,cout”score,:”,scoreendl;,if,(,score100,),cout=90,),grade=A;,else if,(,score=80,),grade=B;,else if,(,score=70,),grade=C;,else if,(,score=60,),grade=D;,else /0=score60,grade=F;,cout”grade,:,”,gradeendl;,运行示例,Enter score,(,0-100,):,95,score,:,95,grade,:,A,62,if,语句允许嵌套,既定解释规则是:,else,应与离它最近的那个尚未与其他,else,匹配的,if-,相匹配。,例,#include,main(),int a=2,b=-1,c=2;,if(ab),if(b0)c=0;,else c+=1;,cout”C,:”,cendl;,输出结果,2,63,2.2 switch,语句,一般形式:,switch(,表达式,),case,常量表达式,1,:语句,1 break;,case,常量表达式,2,:语句,2 break;,case,常量表达式,n,:语句,n break;,default,:语句,n+1,可以省略,default,子句,64,switch(,表达式,),case,常量表达式,1:,语句,1,或空,;,case,常量表达式,2:,语句,2,或空,;,.,.,.,case,常量表达式,n:,语句,n,或空,;,default:,语句,n+1,或空,;,将表达式值逐个与,case,后的常量进行比较:,若与其一个相等,则从该常量下的语句开始向后执行,不再进行判断,直至整个语句结束;,若不与任何一个常量相等,则执行,default,后面的语句。,65,例,10,#include,void main(),int score;,char grade;,coutscore;,cout”score,:,”,scoreendl;,if,(,score100,),cout”Error-out of range.n”;,else,66,switch,(,score/10,),case 10,:,case 9,:,grade=A;break;,case 8,:,grade=B;break;,case 7,:,grade=C;break;,case 6,:,grade=D;break;,case 5,:,case 4,:,case 3,:,case 2,:,case 1,:,case 0,:,grade=F;break;,cout”grade,:,”,gradeendl;,运行示例,Enter score,(,0-100,):,95,score,:,95,grade,:,A,67,2.3 while,语句,while,语句的一般形式是:,while(,表达式,),语句,表达式,0,语句,非,0,为确定究竟执行循环体多少次,必须仔细选择所需的初值、终值以及增量,否则,会犯”多一错误”或”丢一错误”。,68,例,12,设,ch,是个字符变量。,ch=A;,while,(,ch=K,),coutch;,ch=ch+1;,cout2,),cout”NULL OPERATIONn”;,while,(,true,),cout”INFINITE LOOP!n”,;,while(getche()!=X0D);,/,这个循环直到键入回车为止,70,复合语句,do,语句,while(,表达式,);,单一语句,do,语句,while(,表达式,);,0,非,0,表达式,语句,2.4 do-while,语句,71,例,16,承例,12,,可使用,do-while,语句实现同样功能。,ch=A;,do,coutch;,ch=ch+1;,while,(,ch=K,),;,cout2,),cout”NULL OPERATIONn”;,/,空操作语句,do,cout2,),;,/,输出一行文字信息,73,2.5 for,语句,一般形式:,for(,表达式,1;,表达式,2;,表达式,3),语句,注意:三个表达式可以部分地或全部省略,但分号必须保留。,例,23,承例,12,、例,16,,可使用,for,语句实现同样功能。,for,(,ch=A;ch=K;ch=ch+1,),coutch;,coutendl;,74,例,27,使用,for,语句实现循环控制的两种特殊情形,for,(,ch=Z;ch=Y;ch=ch-1,),cout”DO NOTHINGn”;,/,相当于空操作语句,for,(,;true;,),cout”INFINITE LOOP!n”;,/,无限循环!应避免此类语句编码,75,2.6,用于循环控制的几个特殊运算符,2.6.1,增量运算符与减量运算符,76,增量运算符”,+”,:自增运算符。,减量运算符”,-”,:自减运算符。,都是单目运算符,可出现在操作数前,(,作为前缀,),或后,(,作为后缀,),。,结合规则是从右到左。,77,例,28,自增、自减运算符”,+”,、,”,-”,的使用,。,#include,void main(),int i=3,j=5;,cout”i=”i”,j=”jendl;,cout”i+=”i+”,j-=”j-endl;,cout”Now i=”i”,j=”jendl;,i=3;j=5;,cout”i=”i”,j=”jendl;,cout”i=”+i”,-j=”-jendl;,cout”Now i=”i”,j=”jendl;,运行示例,i=3,j=5,i+=3,j-=5,Now i=4,j=4,i=3,j=5,i=4,-j=4,Now i=4,j=4,78,2.6.2,逗号运算符,用于将多个表达式串联在一起,是,优先级最低,的运算符,是,双目运算符,,其结合规则从左到右,由逗号运算符与左右两个操作数组成逗号表达式,逗号表达式一般形式:,表达式,1,,表达式,2,功能:先求表达式,1,的值,再求表达式,2,的值,,并以表达式,2,的值作为该逗号表达式的结果值,。,79,例 计算前,N,个自然数中所有奇数之和。,sum=0;,for(counter=1;counter=N;counter=counter+2),sum=sum+counter;,改写为,for(,sum=0,counter=1;counter=N;,counter=counter+2),sum=sum+counter;,还可改写为,for(,sum=0,counter=1;counter=N;,sum=sum+counter,counter=counter+2);,/for,循环体为空语句,80,2.6.3,自反赋值运算符,自反赋值运算符是一个复合运算符。它用于简写赋值表达式。,81,例 可进一步改写,for,语句,for(sum=0,counter=1;counter=N;,counter=counter+2),sum+=counter,;,或者,for(sum=0,counter=1;counter=,=!=,&,|,?:,=+=-=*=/+%=,类型,圆括号,单目运算符,乘法运算符,加法运算符,关系运算符,相等测试运算符,逻辑与,逻辑或,条件运算符,赋值运算符,逗号运算符,结合性,从左到右,从右到左,从左到右,从左到右,从左到右,从左到右,从左到右,从左到右,从右到左,从右到左,从左到右,高,83,2.8.1 break,语句,break,一般形式是:,break;,功能:用于,switch,、,while,、,do-while,或,for,结构中,转换控制流:,立即退出该结构,使流程控制,转向执行该结构后的第一条语句。,注意:,不能用于从,if,语句的选择结构中跳出。,仅能从它自身所在循环体中跳出,即仅实现向”外”跳一层。,2.8 break,语句、,continue,语句和,goto,语句,84,#include,void main(),int i,j,min,k;,do coutij;while,(,!,(,i0&j0,),;,min=i=1;k-,),if,(,i%k=0&j%k=0,),break;,cout”The greatest common divisor of”i”and”j”is”k.endl;,例,34,求两个正整数,i,j,的,最大公因子,采用穷举法。,85,2.8.2 continue,语句,continue,语句的一般形式是,continue;,功能:,从当前位置将流程控制转移至本次循环的结束,位置,并继续执行下一次循环。,在,while,和,do-,while,结构中,执行完,continue,语句后就立即,测试继续循环的条件。在,for,结构中,执行完,continue,语句后即执行增量表达式,然后测试,继续循环的条件。,注意:只用于,while,、,do-while,及,for,这三类循环中。,86,#include,#include,void main(),int i=0,n;,for,(,n=101;n=200;n+,),if,(,n%3=0|n%5=0|n%7=0,),continue,;,coutsetw,(,5,),n;,if,(,+i%10=0,),coutendl;,coutendl;,例,39,把,101,200,之间除了能被,3,或,5,或,7,整除的数之外所有数输出,每,10,个数据输出在一行上。,87,2.8.3 goto,语句,一般形式:,goto,标号名,;,功能:将流程控制转向由标号名所指定的语句处继续,执行。,注意,:,标号名不必特殊地加以定义,它可以是任意合法的标识符,标号名加上冒号,就形成一个语句标号,语句标号可以出现在任何语句之前,88,#include,#include,main(),int i,sum=0;,i=1;,loop:,if(i=100),sum+=i;,i+;,goto loop,;,cout,”The sum is:”sum;,例 利用,goto,语句实现计算前,100,个自然数之和并输出结果。,89,第三章 数组,90,3.1,一维数组,3.1.1,一维数组说明,一般形式,:,类型说明符 一维数组名,常量表达式,例,1,int ia10;,double da20;,91,92,说明,:,数组以,0,为第一元素下标,。,数组名表示数组第一个元素的地址,。,数组以元素为单位进行操作,,数组不能被整体引用或赋值,。,93,引用一维数组元素:,一维数组名,下标,例,2 int i,ia10;,欲给数组,ia,的所有元素均赋以初始值,0,:,for(,i=0;i10;i+,),iai=0;,94,3.1.2,一维数组的初始化,方式一,对数组全部元素赋初值,例,int ia10=0,0,0,0,0,0,0,0,0,0;,方式二,对数组部分元素赋初值,例,int ib10=1,2,3,4,5;,系统将把,1,2,3,4,5,分别赋予,ib,的前,5,个元素,而后,5,个元素将自动被赋以,0,值。,95,方式三,对全部元素赋初值时,可在说明中省,略对数组大小的指定。,例,int ia=0,0,0,0,0,0,0,0,0,0;,系统将根据所赋初始值的个数自动确定该一维数组的大小。,注意,若此时写,int ia=0;,则其效果将与例,10,中的不一样,,ia,只有一个元素。,96,3.1.3,一维数组应用示例,例,11,从键盘上任意输入,5,个整数,然后先按顺,序将它们输出在一行上,再按与输入时的,相反顺序将它们输出在下一行上。,97,#include,#include,void main(),int i,a5;,cout”Enter 5 integers,:”,;,for,(,i=0;iai;,for,(,i=0;i5;i+,),coutsetw,(,4,),ai;,cout=0;i-,),coutsetw,(,4,),ai;,coutendl;,运行示例,Enter5integers,:,8 6 5 4 1,8 6 5 4 1,1 4 5 6 8,98,3.2,多维数组,3.2.1,二维数组说明,一般形式:,类型说明符 二维数组名,常量表达式,1,常量表达式,2,例,17,int ia34;,double da510;,99,3.2.2,二维数组的初始化,二维数组初始化允许用两种形式:,例,19,形式一,int ia34=0,0,0,0,0,0,0,0,0,0,0,0;,形式二,int ia34=0,0,0,0,0,0,0,0,0,0,0,0;,100,对二维数组的全部元素赋以初值时,可在数组,说明中省略书写第一维的大小,但第二维的大,小不可缺少。,例,int m,5=1,1,1,1,1,2,2,2,2,2,3,3,3,3,3,4,4,4,4,4,;,101,3.2.3,二维数组应用示例,例,26,计算两矩阵,a,与,b,的乘积并输出结果,,其中,102,分析 两矩阵,a(M,P),、,b(P,N),相乘的条件是:,矩阵,a,的列数,=,矩阵,b,的行数,=P=3,设,c=a*b,,则有,(i=1,2,3,4;k=1,2),103,核心语句编码,for(i=,1;i=M;i+),for(,k=1;k=N;k+),s=0;,for(j=1;j=P;j+),s+=aij*bjk;,/for j,cik=s;,/for k,/for i,i=1,2,M;,k=1,2,N,P=3,M=4,N=2,a,(M,P),b,(P,N),c,(M,N),104,C+,语言提供了字符串类,string,(标准标识符)。使用,string,类必须包含头文件,string.h,。,正确使用,string,字符串的几点说明:,(,1,)名字空间名字空间是一种方便有用的工具,用其将标识符限定在名字空间,以便防止标识符命名的冲突。,3.3,字符串类型,string,105,C,程序中的包含命令,#include,#include,将改写成,#include,#include,using namespace std;,using,、,namespace,都是,C+,关键字。,std,是名字空间的名称,(,代表,standard,),C+,语言所有标准函数库都封装在名为,std,的名字空间中。,使用不带扩展名,.h,的头文件形式,必须加上,using,指令。,106,(,2,),string,变量说明及初始化,例,31 string,变量说明及初始化示例,string s1=”I like C very much!”,;,string s2;,/,缺省初始值,为,空串,(,3,)使用赋值运算符”,=,”,对,string,型变量赋值。,例,32 s2=”Do you like C+,?,”,;,107,(,4,),string,字符串的连接,例,33 s1=s1+s2,;,s1=s1+”Yes,I do.”;,或,:,s1+=s2;,s1+=”Yes,I do.”;,108,(,5,),string,字符串的比较,”,”,、”,”,、”,=,”,、”,=,”,、”,!=,”,(,6,),string,字符串的长度,length,是不带参数的函数,,它,返回,某,字符串的长度。,例:求字符串变量,s1,的长度,。,s1.length(),。,109,第四章 函数,110,函数使,复杂问题划分成若干目标明确、较易处理的子问题,,,程序易读写、理解、排错、修改和维护。,一个源程序文件由一个或多个函数组成。,一个源程序文件是一个编译单位。,一个,C,程序由一个或多个源程序文件组成。,一个源文件可以为多个,C,程序公用。,一个较大的程序,一般将函数和其他内容分别放到若干个源文件中,再由若干个源文件组成一个,C,程序。这样可以分别编写、分别编译,提高调试效率。,4.1,函数概述,111,4.2,函数定义与调用,4.2.1,函数定义,1.,无参函数定义,函数类型标识符 函数名,()/,函数首部,语句序列,/,函数体,112,2.,有参函数定义,函数类型标识符 函数名,(,形式参数及类型说明表,),语句序列,形式参数及类型说明表:,类型名,1,形式参数,1,,类型名,2,形式参数,2,,,113,1.,函数的数据类型,函数返回值,允许使用,void,类型。,用于定义不返回值的函数,允许在函数定义中省略书写函数类型标识符,,系统将默认该函数返回值的类型为,int,型,C+,中主函数,main,应指明函数类型。,4.2.2,函数的数据类型和返回值,114,2.,函数的返回值,返回函数结果值的语句:,return(,表达式,);,或,return,表达式,;,或,return;/,可不写,若,return,语句中表达式的类型与函数的返回值类型不一致,则,将转换成函数的返回值类型,在函数体中,可根据需要在,多处使用,return,语句,115,例,7,已给某三角形的三边长,求该三角形的面积,float,area,(float a,float b,float c),float l,s;,l=(a+b+c)/2;,s=sqrt(l*(l-a)*(l-b)*(l*-c);,return,(s);,116,例 若,ch,的值是英文大写字母,则返回相对应的英文小写字母;若,ch,的值是英文小写字母,则返回相对应的英文大写字母;若,ch,的值是任意其他字符,则返回原字符值不变。,char change(char ch),char c=ch;,if(ch=A&ch=a&ch=z),c=ch-32;,return(c);,117,4.2.3,函数调用的一般形式,无参函数调用,函数名,(),有参函数调用,函数名,(,实在参数,1,,实在参数,2,,,),118,4.2.4,函数调用的两种方式,所有允许书写表达式的地方,均可出现对非,void,型函数的调用。,方式一,函数调用可出现在表达式中,例 承例,7,,设已说明实型变量,s1,,可写,s1=,area(3.0,4.0,5.0);,119,方式二,void,型函数调用可作为独立的语句出现在程序中,例 设定义无返回值函数,print,viod print(),int i;,for(i=1;i=5;i+),cout *abc;,while(!(a0,s=area(a,b,c);,coutThe area is s.abc;,while(!(a0,s=area(a,b,c);,coutThe area is s.endl;,126,double area(double a,double b,double c),double l,s;,l=(a+b+c)/2;,s=sqrt(l*(l-a)*(l-b)*(l-c);,return(s);,127,4.4,函数的嵌套调用与递归调用,C,中所有函数的,定义都是平行的,;,不允许,在一个函数的内部再
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 教育专区 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服