C++-结构化程序设计(兼容-C语言)教学课件

上传人:文**** 文档编号:240744928 上传时间:2024-05-04 格式:PPT 页数:33 大小:450.50KB
返回 下载 相关 举报
C++-结构化程序设计(兼容-C语言)教学课件_第1页
第1页 / 共33页
C++-结构化程序设计(兼容-C语言)教学课件_第2页
第2页 / 共33页
C++-结构化程序设计(兼容-C语言)教学课件_第3页
第3页 / 共33页
点击查看更多>>
资源描述
C+结构化程序设计结构化程序设计(兼容兼容 C语言语言)51、山气日夕佳,飞鸟相与还。52、木欣欣以向荣,泉涓涓而始流。53、富贵非吾愿,帝乡不可期。54、雄发指危冠,猛气冲长缨。55、土地平旷,屋舍俨然,有良田美池桑竹之属,阡陌交通,鸡犬相闻。1.3 第一个简单的第一个简单的C程序程序#include int main()coutHello World!endl;return 1;1.4 C+的数据类型的数据类型C(C)中的数据类型分为中的数据类型分为常量常量和和变量变量,C中的基本数据类型有中的基本数据类型有:关键字关键字常量表示常量表示 占用字节数占用字节数(vc中中)整型整型长整型长整型long(int)24整型整型int4短整型短整型short(int)2字符型字符型chara1实型实型单精度单精度float2.0f4双精度双精度double2.08逻辑型逻辑型booltrue false1#include int main()int iV1=2;int iV2=iV1;coutiV1=iV1endl iV2=iV2endl;coutsizeof(int)endl sizeof(2)endlsizeof(iV1)endl;return 1;1.5程序结构程序结构1.5.1 顺序结构顺序结构1.5.2 选择结构选择结构 (a)关系运算符:)关系运算符:,=,=,!=.关系表达式:例关系表达式:例 21,2+1=3 关系表达式返回一个逻辑值关系表达式返回一个逻辑值0或或1 (b)逻辑运算符:与逻辑运算符:与&,或,或|,非非!逻辑表达式:例逻辑表达式:例 21&32 0&3 23|43 !(24)if(逻辑表达式逻辑表达式)程序语句程序语句1;程序语句程序语句2;if(逻辑表达式逻辑表达式)程序语句程序语句1;else 程序语句程序语句2;if(逻辑表达式逻辑表达式)程序语句程序语句1;else if(逻辑表达逻辑表达式式)程序语句程序语句2;例:从键盘输入两个整例:从键盘输入两个整 数,输出这两个数中数,输出这两个数中最大者;最大者;#include#include int main()int main()int a;int a;int b;int b;cinab;cinab;if(ab)if(ab)couta;couta;elseelsecoutb is coutb is the bigger!endl;the bigger!endl;return 1;return 1;对于简单的选择结构可直接用条件运算符对于简单的选择结构可直接用条件运算符?#include#include using namespace std;using namespace std;int main()int main()int a;int a;int b;int b;cinab;cinab;int c=(ab)?a:b;int c=(ab)?a:b;coutc is the coutc is the biggerendl;biggergrade;switch(grade)case a:cout80-90endl;break;case b:cout70-80endl;break;case c:cout60-70endl;break;case d:cout60endl;break;default:couterrorendl;1.5.3循环结构循环结构while(while(表达式表达式表达式表达式)语句块语句块语句块语句块 dodo 语句块语句块语句块语句块 while(while(表达式表达式表达式表达式)int i=1;int i=1;int sum=0;int sum=0;while(i=100)while(i=100)sum+=i;sum+=i;i+;i+;int i=1;int i=1;int sum=0;int sum=0;dodo sum+=i;sum+=i;i+;i+;while(i=100);while(i=100);for(for(表达式表达式表达式表达式1;1;表达式表达式表达式表达式2;2;表达式表达式表达式表达式3)3)语句块语句块语句块语句块 int main()int main()int sum=0;int sum=0;for(int i=1;i=100;i+)for(int i=1;i=100;i+)sum+=i;sum+=i;coutsumendliendl;coutsumendlia;int a;#define NUM 10int aNUM;例:用一维数组输出例:用一维数组输出Fibonacci数列的前数列的前20项项 1,1,2,3,5,8,#include#include using namespace std;using namespace std;int main()int main()int Fib20=1,1;int Fib20=1,1;for(int i=2;i20;i+)for(int i=2;i20;i+)Fibi=Fibi-Fibi=Fibi-1+Fibi-2;1+Fibi-2;for(int j=0;j20;j+)for(int j=0;j20;j+)if(j%5=0)if(j%5=0)coutendl;coutendl;coutFibj coutFibj ;1.6.2多维数组的定义多维数组的定义类型类型 数组名数组名常量表达式常量表达式常量表达式常量表达式int a1010int main()int main()int a45;int a45;for(int i=0;i4;i+)for(int i=0;i4;i+)for(int j=0;j5;j+)for(int j=0;j5;j+)aij=i*j;aij=i*j;coutaij coutaij ;coutendl;coutendl;1.6.3字符数组与字符串字符数组与字符串例例char c4=a,b,c,0;C(C+)中把字符数组当作字符串处理中把字符数组当作字符串处理char c5=abcd;/c4=0cout=b)return a;else return bC(C+)C(C+)都是以函数调都是以函数调都是以函数调都是以函数调用来组织程序,都有用来组织程序,都有用来组织程序,都有用来组织程序,都有一个入口函数一个入口函数一个入口函数一个入口函数mainmain,c c中中中中mainmain函数的返回类函数的返回类函数的返回类函数的返回类型为型为型为型为voidvoid。C+C+标准标准标准标准规定规定规定规定mainmain有一个整形有一个整形有一个整形有一个整形返回值。但有的返回值。但有的返回值。但有的返回值。但有的C C编译器,(如编译器,(如编译器,(如编译器,(如VC6.0VC6.0)也支持)也支持)也支持)也支持void void 返回值的返回值的返回值的返回值的mainmain函数。函数。函数。函数。1.7.2函数的调用函数的调用调用函数时的数据传递调用函数时的数据传递(形参与实参形参与实参)形参:定义函数时函数名后的括号中的变量。形参:定义函数时函数名后的括号中的变量。实参:函数调用时函数名后的括号中的变量或常量。实参:函数调用时函数名后的括号中的变量或常量。#include#include int max(int a,int b)int max(int a,int b)if(a=b)if(a=b)return a;return a;elseelsereturn b;return b;int main()int main()int c;int c;int ma=2;int ma=2;int mb=5;int mb=5;c=max(ma,mb);c=max(ma,mb);coutcendl;coutcendl;此处的此处的此处的此处的a,ba,b为形参为形参为形参为形参此处的此处的此处的此处的ma,mbma,mb为实参为实参为实参为实参a.)a.)定义函数时并不为函数中定义函数时并不为函数中定义函数时并不为函数中定义函数时并不为函数中的变量分配内存空间,而是的变量分配内存空间,而是的变量分配内存空间,而是的变量分配内存空间,而是在函数调用时在内存的栈区在函数调用时在内存的栈区在函数调用时在内存的栈区在函数调用时在内存的栈区为函数分配空间来存放函数为函数分配空间来存放函数为函数分配空间来存放函数为函数分配空间来存放函数中的变量。中的变量。中的变量。中的变量。b.)b.)函数调用时将实参的值复函数调用时将实参的值复函数调用时将实参的值复函数调用时将实参的值复制给被调函数栈中的形参,制给被调函数栈中的形参,制给被调函数栈中的形参,制给被调函数栈中的形参,然后对形参的值进行加工处然后对形参的值进行加工处然后对形参的值进行加工处然后对形参的值进行加工处理后以函数返回值的形传给理后以函数返回值的形传给理后以函数返回值的形传给理后以函数返回值的形传给主调函数。所以函数就是一主调函数。所以函数就是一主调函数。所以函数就是一主调函数。所以函数就是一个数据加工厂,吸收原料加个数据加工厂,吸收原料加个数据加工厂,吸收原料加个数据加工厂,吸收原料加工产品。工产品。工产品。工产品。1.7.3函数的申明函数的申明当被调函数定义在主调函数之后时,要在调用语句以前当被调函数定义在主调函数之后时,要在调用语句以前对被调函数进行申明,格式如下:对被调函数进行申明,格式如下:返回类型返回类型 函数名(形参表);函数名(形参表);#include#include int max(int a,int b);int max(int a,int b);int main()int main()int c;int c;int a=2;int a=2;int b=5;int b=5;c=max(a,b);c=max(a,b);coutcendl;coutc=b)if(a=b)return a;return a;elseelsereturn b;return b;a)a)函数申明可以放在调用语函数申明可以放在调用语函数申明可以放在调用语函数申明可以放在调用语句之前的任何地方。句之前的任何地方。句之前的任何地方。句之前的任何地方。b)b)如果只有函数的申明而没如果只有函数的申明而没如果只有函数的申明而没如果只有函数的申明而没有函数的定义或函数的申明有函数的定义或函数的申明有函数的定义或函数的申明有函数的定义或函数的申明与定义形式不一致。则编译与定义形式不一致。则编译与定义形式不一致。则编译与定义形式不一致。则编译无错,而链接有错。无错,而链接有错。无错,而链接有错。无错,而链接有错。1.7.4函数的递归调用函数的递归调用函数的递归调用:函数的递归调用:函数的递归调用:函数的递归调用:在调用一个函数的过程中又出现直在调用一个函数的过程中又出现直在调用一个函数的过程中又出现直在调用一个函数的过程中又出现直接或间接地调用该函数本身。接或间接地调用该函数本身。接或间接地调用该函数本身。接或间接地调用该函数本身。函数函数函数函数f f调用函数调用函数调用函数调用函数f f函数函数函数函数f1f1调用函数调用函数调用函数调用函数f2f2函数函数函数函数f2f2函数函数函数函数f1f1直接递归调用直接递归调用直接递归调用直接递归调用间接递归调用间接递归调用间接递归调用间接递归调用例:定义求例:定义求例:定义求例:定义求n!n!的递归函数的递归函数的递归函数的递归函数n=0n=0n0n0#include#include int factorial(int n);int factorial(int n);int main()int main()coutfactorial(3)endl;coutfactorial(3)endl;int factorial(int n)int factorial(int n)if(n=0)if(n=0)return 1;return 1;elseelsereturn n*factorial(n-return n*factorial(n-1);1);factorial(3factorial(3)factorial(2factorial(2)factorial(1factorial(1)1.8指针指针1.8.1地址和指针地址和指针地址:地址:地址:地址:定义了一个变量,运行时就按照变量的类型为定义了一个变量,运行时就按照变量的类型为定义了一个变量,运行时就按照变量的类型为定义了一个变量,运行时就按照变量的类型为变量分配一定字节的内存单元。内存区的每一个字节变量分配一定字节的内存单元。内存区的每一个字节变量分配一定字节的内存单元。内存区的每一个字节变量分配一定字节的内存单元。内存区的每一个字节都有一个编号。首字节的编号就称为变量的地址。在都有一个编号。首字节的编号就称为变量的地址。在都有一个编号。首字节的编号就称为变量的地址。在都有一个编号。首字节的编号就称为变量的地址。在变量名前加一个变量名前加一个变量名前加一个变量名前加一个&符就表示该变量的地址。(例如符就表示该变量的地址。(例如符就表示该变量的地址。(例如符就表示该变量的地址。(例如&a&a)指针:指针:指针:指针:专门用来存放变量地址的变量。专门用来存放变量地址的变量。专门用来存放变量地址的变量。专门用来存放变量地址的变量。指针变量的定义:指针变量的定义:指针变量的定义:指针变量的定义:类型类型类型类型 *指针变量名指针变量名指针变量名指针变量名例如:例如:例如:例如:int *pI;int *pI;1.8.21.8.2指针的应用指针的应用#include#include#include#include int main()int main()int main()int main()int a=2;int a=2;int a=2;int a=2;int*pa=&a;/paint*pa=&a;/paint*pa=&a;/paint*pa=&a;/pa指向了变量指向了变量指向了变量指向了变量a a a acouta=a*pa=*pacouta=a*pa=*pacouta=a*pa=*pacouta=a*pa=*paendl;endl;endl;endl;*pa=5;/*pa=5;/*pa=5;/*pa=5;/指针的间接应用指针的间接应用指针的间接应用指针的间接应用couta=aendl;couta=aendl;couta=aendl;couta=aendl;a=7;a=7;a=7;a=7;cout*pa=*paendl;cout*pa=*paendl;cout*pa=*paendl;cout*pa=*paendl;a)a)a)a)数组名代表了数组的首地数组名代表了数组的首地数组名代表了数组的首地数组名代表了数组的首地址。址。址。址。b)b)b)b)指针或变量指针或变量指针或变量指针或变量+1+1+1+1等于将其向等于将其向等于将其向等于将其向后移动它所指向的变量所占后移动它所指向的变量所占后移动它所指向的变量所占后移动它所指向的变量所占的字节数。的字节数。的字节数。的字节数。#include#include#include#include using namespace std;using namespace std;using namespace std;using namespace std;int main()int main()int main()int main()int a5=2,6,3,4,5;int a5=2,6,3,4,5;int a5=2,6,3,4,5;int a5=2,6,3,4,5;for(int for(int for(int for(int*pa=a;paa+5;pa+)*pa=a;paa+5;pa+)*pa=a;paa+5;pa+)*pa=a;paa+5;pa+)cout*pa,;cout*pa,;cout*pa,;cout*pa,;coutendl;coutendl;coutendl;coutendl;return 0;return 0;return 0;return 0;1.8.3指针变量作为函数参数指针变量作为函数参数#include#include using namespace std;using namespace std;void swap(int*a,int*b);void swap(int*a,int*b);int main()int main()int a=2,b=4;int a=2,b=4;swap(&a,&b);swap(&a,&b);couta=a couta=a b=bendl;b=bendl;void swap(int*pa,int*pb)void swap(int*pa,int*pb)int temp=*pa;int temp=*pa;*pa=*pb;*pa=*pb;*pb=temp;*pb=temp;a)a)如果以传值方式调用如果以传值方式调用如果以传值方式调用如果以传值方式调用 函数函数函数函数 ,则,则,则,则被调函数只能以返回值来影响主被调函数只能以返回值来影响主被调函数只能以返回值来影响主被调函数只能以返回值来影响主调函数。而以传指针方式调用函调函数。而以传指针方式调用函调函数。而以传指针方式调用函调函数。而以传指针方式调用函数可以在被调函数中通过指针修数可以在被调函数中通过指针修数可以在被调函数中通过指针修数可以在被调函数中通过指针修改主调函数中的变量值。改主调函数中的变量值。改主调函数中的变量值。改主调函数中的变量值。void swap(int a,int void swap(int a,int b)b)int temp=a;int temp=a;a=b;a=b;b=temp;b=temp;void swap(int*a,int void swap(int*a,int*b)*b)int*temp=a;int*temp=a;a=b;a=b;b=temp;b=temp;若将若将若将若将swapswap函数改为如下两个可以函数改为如下两个可以函数改为如下两个可以函数改为如下两个可以不?不?不?不?1.8.4字符指针表示的字符串字符指针表示的字符串字符串的表示字符串的表示(1)字符数组字符数组例例 char a=“abcd”;coutaendl;/字符串字符串 cout*a;/字符字符(2)字符指针字符指针例例 char*pc=“abcd”;coutpcendl;cout*pcendl;使用字符指针和字符数组来表示字符串的区别:使用字符指针和字符数组来表示字符串的区别:字符数组名为地址,是常量,所以不能先定义字符数组,然后再字符数组名为地址,是常量,所以不能先定义字符数组,然后再赋值。赋值。字符指针是变量,所以可以先定义字符指针,然后再赋值。字符指针是变量,所以可以先定义字符指针,然后再赋值。char a 10;a=“abcdefg”;错误错误char*p;p=“abcdefg”;正确正确1.9结构体结构体为了表示大型的数据结构,有时需要将若干基本数据类型复为了表示大型的数据结构,有时需要将若干基本数据类型复为了表示大型的数据结构,有时需要将若干基本数据类型复为了表示大型的数据结构,有时需要将若干基本数据类型复合起来表示一个数据类型。合起来表示一个数据类型。合起来表示一个数据类型。合起来表示一个数据类型。C C、C+C+提供了结构体来让用户自提供了结构体来让用户自提供了结构体来让用户自提供了结构体来让用户自己定义数据类型。己定义数据类型。己定义数据类型。己定义数据类型。struct struct 结构体名结构体名结构体名结构体名 成员列表;成员列表;成员列表;成员列表;;/末尾要加分号末尾要加分号末尾要加分号末尾要加分号例:例:例:例:struct Peoplestruct People char name20;char name20;int sex;int sex;int id;int id;1.9.1 结构体类型的定义结构体类型的定义1.9.2 结构体变量的定义与初始化结构体变量的定义与初始化结构体类型是用户自定义的类型。它的作用如同基本结构体类型是用户自定义的类型。它的作用如同基本类型类型(int,char等等)一样,定义了好了结构体类型以后就可一样,定义了好了结构体类型以后就可以用它来定义变量了。也可以定义结构体变量数组,指针。以用它来定义变量了。也可以定义结构体变量数组,指针。C形式:形式:struct People p1;C+形式:形式:People p1;也可以在定义结构体类型的同时定义变量。也可以在定义结构体类型的同时定义变量。struct People char name20;int sex;char id18;p1,p2;1.9.3 结构体变量的初始化结构体变量的初始化结构体变量的初始化可以在定义变量时以类似数组初结构体变量的初始化可以在定义变量时以类似数组初始化的方式初始化,也可以在定义变量后单个成员初始始化的方式初始化,也可以在定义变量后单个成员初始化。化。#include#include struct Peoplechar*name;int sex;char id18;int main()/People zhanSan=张三张三,1,622801810403043;People zhanSan;zhanSan.name=张三张三;zhanSan.sex=0;strcpy(zhanSan.id,600845952635);coutZhanSan的信息如下:的信息如下:endl;cout姓名:姓名:zhanSan.nameendl;cout性别:性别:;if(zhanSan.sex)cout男男endl;elsecout女女endl;cout身份证号身份证号:zhanSan.idendl;return 1;21、要知道对好事的称颂过于夸大,也会招来人们的反感轻蔑和嫉妒。培根22、业精于勤,荒于嬉;行成于思,毁于随。韩愈23、一切节省,归根到底都归结为时间的节省。马克思24、意志命运往往背道而驰,决心到最后会全部推倒。莎士比亚25、学习是劳动,是充满思想的劳动。乌申斯基供娄浪颓蓝辣袄驹靴锯澜互慌仲写绎衰斡染圾明将呆则孰盆瘸砒腥悉漠堑脊髓灰质炎(讲课2019)脊髓灰质炎(讲课2019)
展开阅读全文
相关资源
相关搜索

最新文档


当前位置:首页 > 办公文档 > 教学培训


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!