三讲指针引用运算符语句课件

上传人:无*** 文档编号:240921997 上传时间:2024-05-18 格式:PPT 页数:76 大小:1.41MB
返回 下载 相关 举报
三讲指针引用运算符语句课件_第1页
第1页 / 共76页
三讲指针引用运算符语句课件_第2页
第2页 / 共76页
三讲指针引用运算符语句课件_第3页
第3页 / 共76页
点击查看更多>>
资源描述
时间反复无常,鼓着翅膀飞逝三讲指针引用运算符语句三讲指针引用运算符语句4 45 56 62 2 2 2、指针的定义、指针的定义、指针的定义、指针的定义 格式为:格式为:*;例如:例如:int*pi;int*pi;/一个指向整型变量的指针 float*pl;float*pl;char*pc;char*pc;char(*pa)3;char(*pa)3;/一个指向数组空间的指针 int*pp;int*pp;/一个指向指针变量空间的指针 注:注:类型的不同类型的不同,并不影响,并不影响指针本身空间指针本身空间大小的不大小的不同同(都是内存地址值)(都是内存地址值),但却决定了,但却决定了指针所指向的空间指针所指向的空间的不同,也带来了对的不同,也带来了对指针所指向空间指针所指向空间的不同操作的不同操作。可以指向,但还未指向P2003 100120一个整型空间10017 7 一、赋值运算一、赋值运算 定义一个指针后,必须先给它赋值后才能引定义一个指针后,必须先给它赋值后才能引用,否则易出错。用,否则易出错。如:如:int a=1,*p1,*p2;int a=1,*p1,*p2;p1=&a;p1=&a;/赋给同类型的变量地址值 p2=p1;p2=p1;/赋给同类型的指针变量的值 *p1=2;*p1=2;/给给p1p1所指向的变量赋值所指向的变量赋值 *p2=3;*p2=3;/给给p2p2所指向的变量赋值所指向的变量赋值 3 3 3 3、指针的运算、指针的运算、指针的运算、指针的运算P1a*P1*P2P2.1 2 3此处无代表取值8 8二、加一或减一运算二、加一或减一运算如:如:int a10,*p;p=a;/p指向数组a中的a0元素 p=p+1;/这时p指向a1三、相减运算(一定条件下)三、相减运算(一定条件下)如:如:int a10,*p1,*p2;p1=&a2;p2=&a5;/分别指向数组中的不同元素 int m=p2-p1;/所得为指针间相隔的元素个数P2003 1001a0a100110051009100d1011a1a2a3a4P2003 10050 x00428D54指针地址是无符号长整形:4 byte9 9 C+C+中,数组元素可以用下标表示也可用指针表示。中,数组元素可以用下标表示也可用指针表示。1 1 1 1、一维数组的指针表示、一维数组的指针表示、一维数组的指针表示、一维数组的指针表示如:如:int a5;int a5;a2=3;a2=3;/下标表示 ai *(a+2)=3;*(a+2)=3;/指针表示 *(a+i)其中其中a a是数组名,是数组名,C+C+规定数组名是一个规定数组名是一个常量指针常量指针,其,其值是该数组值是该数组首元素的地址值首元素的地址值。如:如:int a5,*p;p=a;/int a5,*p;p=a;/与与与与p p=&a0=&a0等效等效等效等效 p=p+1;*p=4;p=p+1;*p=4;/将4赋给a1 注意:注意:a=a+1;a=a+1;/错误!为什么?错误!为什么?指针和数组指针和数组10102 2 2 2、二维数组的指针表示、二维数组的指针表示、二维数组的指针表示、二维数组的指针表示如:如:int b34;int b34;b23=3;b23=3;/下标表示 bij *(*(*(b+2)*(b+2)+3)=3;+3)=3;/指针表示 *(*(b+i)+j)其中其中b b是二维数组名,是二维数组名,对于对于b b而言,而言,b0b0等是其元素,但要注意等是其元素,但要注意这些元素的类型并不是这些元素的类型并不是intint型,而是相当于型,而是相当于int int 33型。型。因此,我们称因此,我们称b0b0等为第等为第0 0行。行。其中其中b0b0行中有行中有b00 b02b00 b02三个元素,三个元素,注意这些元素的类型才是注意这些元素的类型才是intint型。型。则有以下表示方式:则有以下表示方式:b12 *(b1+2)(*(b+1)2 *(*(b+1)+2)b12 *(b1+2)(*(b+1)2 *(*(b+1)+2)b0b1b2b00b01b02b03b10b11b12b13b20b21b22b23b#include iostream.hvoid main()int a12,*p=a;for(int i=0;i12;i+)*p=i+1;/元素赋值元素赋值 if(i%4=0)coutendl;cout*pt;p=p+1;123456789101112a12pa0a1a2a9a10a11*pa0,指针下跳1,*pa1给一维数组赋值并按每给一维数组赋值并按每给一维数组赋值并按每给一维数组赋值并按每4 4 4 4个一行方式输出个一行方式输出个一行方式输出个一行方式输出121212345678910101112a23a00int a34;int*pa=a00;/指针指向数组首元素指针指向数组首元素for(int i=1;i=12;i+)*pa=i;/给元素赋值给元素赋值 cout*pat;/输出元素的值输出元素的值 pa=pa+1;/指针往下走一单元指针往下走一单元/如果是如果是4的倍数换行的倍数换行 if(i%4=0)coutendl;给二维数组赋值并按每给二维数组赋值并按每给二维数组赋值并按每给二维数组赋值并按每4 4 4 4个一行方式输出个一行方式输出个一行方式输出个一行方式输出1313行i组j列kabcd0uvwx0abcde0s6pchar s6=abcde;char*p=s;coutpors;p=p+1;coutp;1414 例例例例3.13.13.13.1#include void main()static int a5=5,4,3,2,1;int i,j;i=a0+a4;/下标表示 j=*(a+2)+*(a+4);/指针表示 coutitj;int*pa=a;pa=pa+1;/pa=?*pa=?pa+;/pa=?*pa=?a0、a1、a2=?101154321a0a(1001)100110051009100d1011a1a2a3a410096 4 1005 4 1009 3 5 4 31515 例例例例3.23.23.23.2#include#include void main()void main()static int b static int b 4=1,2,3,4,5,6;4=1,2,3,4,5,6;b02=7;b12=8;b02=7;b12=8;cout*bt*(b+1)cout*bt*(b+1)n;)n;cout*(*b+1)t*(*(b+1)+2)cout*(*b+1)t*(*(b+1)+2)n;n;coutb02+b12+b22;coutb02+b12+b22;b0b1b2b00b01b02b03b10b11b12b13b20b21b22b23b12304000560078输出结果为:输出结果为:1 4 2 815 1616#include iostream.hvoid main()static char s1=abcde,s25=m,n,p,q,0;char*ps=s1;couts1 or s2endl;coutpsn;couts21s22s13s14endl;cout*ps*(ps+2)*(ps+4)*ps+2;abcde or mnpqabcdenpdeace99abcde0mnpq0S1S2ps1717 int A4A0A1A2A3100010041008100C int B44B0B1B2B301231818用数组存放用数组存放26个字母并输出个字母并输出#include iostream.hvoid main()char s 26;for(int i=0;i26;i+)si=A+i;/si=65+i/给数组元素赋值 coutsi ;/输出数组 ABCDEFGHIJKLMNOPQ1919引用作为一种数据类型,通常被认为是另一种变引用作为一种数据类型,通常被认为是另一种变量的量的别名别名。其定义格式为:其定义格式为:&=;如:如:int a=3;int a=3;int&m=a;int&m=a;m=m+5;m=m+5;则则mm是对是对a a的一个引用,所有对的一个引用,所有对mm的操作都是对的操作都是对a a的的操作。操作。注意:注意:引用必须初始化,且一旦被初始化后不能引用必须初始化,且一旦被初始化后不能再被重新赋值。即不能改变引用目标。再被重新赋值。即不能改变引用目标。3.23.2引用引用ma3.82020 引用可以针对一个常量。引用可以针对一个常量。如:如:int&d=120;int&d=120;这时,引用的是一个系统为保存常量这时,引用的是一个系统为保存常量120120而自动建立的临时变量空间。而自动建立的临时变量空间。相当于:相当于:int t=120;int t=120;int&d=t;int&d=t;21213.3 3.3 运算符运算符算术运算符关系运算符逻辑运算符位操作运算符赋值运算符其他运算符运算符的优先级和结合性2222算术运算符算术运算符单目运算符(单目运算符(-(负)(负)双双目目运运算算符符(+(加加)、-(减减)、*(乘乘)、/(除)、(除)、%(模,求余)(模,求余)优先级为:优先级为:负号级别最高,其次为负号级别最高,其次为*/%/%,再就是,再就是+-。要求要求:操作数为数值型数据操作数为数值型数据其中其中%要求为整型要求为整型/与与%的第二操作数不为的第二操作数不为0 0特别注意特别注意“/”/”,当分子分母都是整数是做整除!,当分子分母都是整数是做整除!1 1 1 1、普通算术运算符、普通算术运算符、普通算术运算符、普通算术运算符23232 2 2 2、增、增、增、增1 1 1 1和减和减和减和减1 1 1 1运算符运算符运算符运算符增量操作表示加增量操作表示加1 1,减量操作表示减,减量操作表示减1 1。如:如:int a=4;int a=4;a+;a+;a+;a+;/等效于a=a+1;a=a+1;a=a+1;a=a+1;+a;+a;+a;+a;/等效于a=a+1;a=a+1;a=a+1;a=a+1;a-;a-;a-;a-;/等效于a=a-1;a=a-1;a=a-1;a=a-1;-a;-a;-a;-a;/等效于a=a-1;a=a-1;a=a-1;a=a-1;增量操作符有前增量与后增量之分。增量操作符有前增量与后增量之分。前前增增量量操操作作+a+a的的意意义义为为:先先修修改改操操作作数数的的值值再将增再将增1 1后的后的a a值作为表达式的值。值作为表达式的值。而而后后增增量量操操作作a+a+的的意意义义为为:先先将将a a的的值值作作为为表达式的值确定下来,再将表达式的值确定下来,再将a a增增1 1。2424如:如:int a=3;int b=+a;int c=a+;则:则:a a:5 5,b b:4 4,c c:4 4。相应的,有相应的,有-a-a和和a-a-。增增量量和和减减量量操操作作符符都都是是单目操作符单目操作符。近水楼台先得月4a值表达式值a值表达式值+a+a+a+aa+a+a+a+3454442525关系运算符关系运算符C+C+提供了提供了6 6种关系运算符:种关系运算符:(小于)、(大于)、(小于)、(大于)、=(小于等于)、(小于等于)、=(大于等于)、(大于等于)、=(等于)、!(等于)、!=(不等于)(不等于)关系运算符都是双目运算符。关系运算符都是双目运算符。优先级:优先级:、=、=四种比四种比=、!、!=两种要高两种要高要求:要求:两个操作数为同一类型两个操作数为同一类型其结果值为其结果值为1 1(代表逻辑真)或(代表逻辑真)或0 0(代表逻辑假)。(代表逻辑假)。2626逻辑运算符逻辑运算符三种逻辑运算符:三种逻辑运算符:&(逻辑与)、(逻辑与)、|(逻辑或)、(逻辑或)、!(逻辑非)。(逻辑非)。其其中中逻逻辑辑非非为为单单目目运运算算符符,逻逻辑辑与与和和逻逻辑辑或或为为双目运算符。双目运算符。优先级:优先级:!的优先级最高,而!的优先级最高,而&又比又比|要高。要高。逻逻辑辑表表达达式式中中的的操操作作数数是是作作为为逻逻辑辑量量,但但C+C+并并不不专专门门提提供供逻逻辑辑类类型型,只只用用1 1与与0 0来来代代表表逻逻辑辑结结果果真真与与假假。对对于于参参与与逻逻辑辑运运算算的的操操作作数数,其其值值为为0 0代表逻辑假,为非代表逻辑假,为非0 0时代表逻辑真时代表逻辑真。如:如:!(!(a=9a=9)2727位操作运算符位操作运算符位运算是指直接对位运算是指直接对intint型或型或charchar型数据的各位进行运算。型数据的各位进行运算。C+C+中的位运算符有两类:中的位运算符有两类:1 1 1 1、按位逻辑运算符、按位逻辑运算符、按位逻辑运算符、按位逻辑运算符共有四种:共有四种:(按位取反运算符)(按位取反运算符)、(按位与运算符)、(按位与运算符)&(按位异或运算符)(按位异或运算符)、(按位或运算符)、(按位或运算符)|如:如:a a:0110111001101110,则,则aa为为10010001(10010001(按位取反按位取反)如:如:a a:1010110110101101,b:11001011b:11001011则则:a&ba&b为为10001001 10001001 (都都为为1 1时时才才为为1 1)abab为为01100110 01100110 (同同号号为为0 0,异异号号为为1 1)a|ba|b为为11101111 11101111 (都都为为0 0时时才才为为0 0)优先级:优先级:高于高于&,&高于高于,高于高于|。28282 2 2 2、移位运算符、移位运算符、移位运算符、移位运算符()移移位位运运算算是是指指将将一一个个操操作作数数中中的的各各位位都都向向左左(用(用)移动若干位。)移动若干位。如:如:a a:1000110110001101则:则:a3a4 a4为为00001000000010002929赋值运算符赋值运算符如:如:I=j=k=5;I=j=k=5;则等效于:则等效于:k=5;j=k;I=j;k=5;j=k;I=j;当当赋赋值值号号两两边边的的数数据据类类型型不不一一致致时时,编编译译器器会会在在赋赋值值前前将将右右操操作作数数自自动动转转换换为为同同左左操操作作数数相相同的类型。同的类型。如:如:int a=3.14;/int a=3.14;/a:3a:3注意:注意:1 1、赋值运算符赋值运算符=与比较运算符与比较运算符=的混淆。的混淆。2 2、int x=1;int x=1;与与int x;x=1;int x;x=1;在概念上的区别。在概念上的区别。3030在在C+C+中中,将将算算术术运运算算符符、位位运运算算符符同同赋赋值值运运算算符符结合可形成复合赋值运算符。结合可形成复合赋值运算符。一共有十种:一共有十种:+=+=、-=-=、*=*=、/=/=、%=%=、=、&=&=、=、|=|=。如:如:a+=ba+=b 等效于等效于 a=a+ba=a+b注意:注意:运算时右边的表达式是被作为一个整体参与运算的。运算时右边的表达式是被作为一个整体参与运算的。如:如:a*=3+b a*=3+b 等效于等效于 a=a*(3+b)a=a*(3+b)而不是等效于而不是等效于 a=a*3+ba=a*3+b3131 x=015 00001101 y=0 x2b 00101011 x|y 00101111 47 xy 00100110 38 x&y 00001001 9 x 1 1 1 1 0 0 1 0 y 1 1 0 1 0 1 0 0 x+y 10 0 0 0 0 1 1 0 x=4 0000 00102例题:位运算已知:unsigned int x=015,y=0 x2b3232A:!a&b+B:a|b+4&a*bC:a=1,b=2,ab?+a:+bD:+b,a=10,a+5E:a+=b%=a+b b=b%(a+b),a=a+b;F:a!=b2=a+1;int a(5),b(3);int a(5),b(3);求表达式、求表达式、a a、b b的的值值910,5,31,5,33,1,315,10,48,8,31,5,3简称:短路3333A:d+-rd;B:*pd*rd;C:+*pd-rd;D:+rd-d;int d(5),*pd=&d,&rd=d,求表达式的值A:0B:25C:0D:0;3434其他运算符其他运算符1 1、条件运算符、条件运算符、条件运算符、条件运算符语法为:语法为:(条件表达式)?(条件为真时的表达式)(条件表达式)?(条件为真时的表达式):(条件为假时的表达式):(条件为假时的表达式)如:如:x=ab?x=ab?a a:b;b;/实现把a和b中较小的值赋给x条件运算符是条件运算符是C+C+中唯一的一个三目运算符。中唯一的一个三目运算符。TF35352 2 2 2、逗号运算符、逗号运算符、逗号运算符、逗号运算符语法为:语法为:表达式表达式1 1,表达式,表达式2 2,表达式表达式n n C+C+将将顺顺序序计计算算表表达达式式1 1,表表达达式式2 2,表表达达式式n n的值。而整个逗号表达式的值是的值。而整个逗号表达式的值是表达式表达式n n的值的值。如:如:int a,b,c,d;int a,b,c,d;d=(a=1,b=a+2,c=b+3);d=(a=1,b=a+2,c=b+3);则:则:a a、b b、c c、d d的值分别为的值分别为1 1、3 3、6 6、6 6最后一个表达式的值就是逗号表达式的值36363 3 3 3、强制类型转换运算符、强制类型转换运算符、强制类型转换运算符、强制类型转换运算符用来将指定的表达式的值强制为所指定的类型。用来将指定的表达式的值强制为所指定的类型。格式为:格式为:()或:或:()如:如:int a;int a;double b=3.8921;double b=3.8921;a=a=int(b)int(b)+(int)b;+(int)b;则:则:a a值为值为值为值为6 6注意:注意:是是对对所所求求表表达达式式的的值值指指定定类类型型,并并不不是是改改变变b b变变量的类型。量的类型。3737运算符的优先级和结合性运算符的优先级和结合性1 1、优先级、优先级、优先级、优先级共共1515种优先级。分别为:种优先级。分别为:元素元素/成员成员-单目单目-双目双目-三目三目-赋值赋值-逗号逗号常用的双目运算符的优先级又分为:常用的双目运算符的优先级又分为:算术算术-移位移位-关系关系-逻辑位逻辑位-逻辑逻辑 2 2 2 2、结合性、结合性、结合性、结合性大多数为从左至右,只有三类是从右至左。大多数为从左至右,只有三类是从右至左。分别为:分别为:单目、三目和赋值单目、三目和赋值 除最高的元素成员,最低的逗号外,其余的一二三赋值,对双目运算:算术关系逻辑,移位逻辑位放中间口诀:口诀:38383.5 3.5 表达式表达式表达式的种类表达式的种类表达式的种类表达式的种类表达式的值和类型表达式的值和类型表达式的值和类型表达式的值和类型表达式中的类型转换表达式中的类型转换表达式中的类型转换表达式中的类型转换3939表达式的种类表达式的种类表达式是由运算符和操作数组成的式子。表达式是由运算符和操作数组成的式子。常见的有如下常见的有如下6 6种:种:算术表达式。算术表达式。如:如:a+5.2/3.0a+5.2/3.0逻辑表达式。逻辑表达式。如:如:!a&8|7!a&8|7关系表达式。关系表达式。如:如:m=nm=n赋值表达式。赋值表达式。如:如:a=7a=7条件表达式。条件表达式。如:如:a4?+a:-aa4?+a:-a逗号表达式。逗号表达式。如:如:a+5,a=7,a+=4a+5,a=7,a+=44040表达式的值和类型表达式的值和类型任何一个表达式经过计算都应有一个确定的值和类型。任何一个表达式经过计算都应有一个确定的值和类型。计算一个表达式的值时要注意两点:计算一个表达式的值时要注意两点:先确定运算符的先确定运算符的功能功能。再确定计算顺序。要注意再确定计算顺序。要注意优先级和结合性优先级和结合性的影响。的影响。一个表达式的类型由运算符种类和操作数类型来决定。一个表达式的类型由运算符种类和操作数类型来决定。如:如:1 1、算术表达式、算术表达式、算术表达式、算术表达式 int a=7*2+-3%5-4/3;/a:10 float b=510+3.2e3-5.6/0.03 /b:3523.33 int m(3),n(4);a=m+-(-n);/a:0 m:4 n:34141如:如:2 2、关系表达式、关系表达式、关系表达式、关系表达式 char x(m),y(n);int n;n=x3)+(y-x=1);/n:3如:如:3 3、逻辑表达式、逻辑表达式、逻辑表达式、逻辑表达式 int a(3),b(0);!a&a+b&a+;/a:3 a|b|b+/b:0注意:注意:C+C+规定:在一个逻辑表达式中,当计算出规定:在一个逻辑表达式中,当计算出一个子表达式的值后便可确定整个逻辑表达式的值一个子表达式的值后便可确定整个逻辑表达式的值时,时,后面的子表达式就不再计算后面的子表达式就不再计算。简称:短路4242如:如:4 4、条件表达式、条件表达式、条件表达式、条件表达式 int a(3),b(4),c;c=ab?+a:+b;/c:5 c=a-b?a+b:a-3?b:a;/c:8 从右向左结合从右向左结合 c=a-b?a+b:(a-3?b:a);/相当于相当于如:如:5 5、赋值表达式、赋值表达式、赋值表达式、赋值表达式 int x(1),y(3),z(5);/从右向左结合 x+=y*=z-=2;/?(10,9,3)z=(x*=2)+(y+=4)+2;/?(2,7,11)如:如:6 6、逗号表达式、逗号表达式、逗号表达式、逗号表达式 int a,b,c;a=1,b=2,c=a+b+3;/c:6 c=(a+,a+=b,a+b);/c:6 4343表达式中的类型转换表达式中的类型转换1 1、隐含转换、隐含转换、隐含转换、隐含转换一般双目运算中的两个操作数的类型是要一致,一般双目运算中的两个操作数的类型是要一致,不一致则自动将低类型的数据向高类型转换,然不一致则自动将低类型的数据向高类型转换,然后再运算并得到高类型的表达式值。后再运算并得到高类型的表达式值。所谓的类型高低关系如下:所谓的类型高低关系如下:short,char-int-long-double,float-double如:如:如:如:3+4.0 a-4 2 2、强制转换、强制转换、强制转换、强制转换将将某某种种类类型型强强制制转转换换为为指指定定的的类类型型。并并分分为为显显式和隐式两种。式和隐式两种。如:如:如:如:b=a+int(3.14);/显式转换如:如:如:如:int a(5),b;b=a+3.14;/两次隐式转换4444类型定义类型定义即通过关键字即通过关键字typedeftypedef来为现有类型取别名。来为现有类型取别名。如:如:typedef double wages,bonus;typedef double wages,bonus;作用:作用:改善程序的可读性。(取一个有意义的类型别名)改善程序的可读性。(取一个有意义的类型别名)减少定义变量的过于繁琐。减少定义变量的过于繁琐。提高程序的可移植性。提高程序的可移植性。4545第1行一个第2行二个。第N行N个int i,j,n;coutn;for(int i=1;i=n;i+)for(j=1;j=i;j+)cout*;/打印若干个 coutendl;/换行for(j=1;j=n-i+1;j+)4646第1行:4个,接着1个,换行第2行:3个,接着3个,换行第3行:2个,接着5个,换行第4行:1个,接着7个,换行第5行:0个,接着9个,换行每行的个数:5-i每行的个数:2*i-1每次循环要做三件事:先打印(5-i)个 后,接着打印(2*i-1)个,再换行for(int i=1;i=5;i+)for(j=1;j=5-i;j+)cout;/打印若干个 for(k=1;k=2*i-1;k+)cout;/打印若干个 coutendl;/换行47471248483474949打印九九乘法口诀表#include iostream.h#include iomanip.h/manipulate,操作操作void main()int i,j;for(i=1;i=9;i+)for(j=1;j=9;j+)couti*j=setw(2)i*j;coutendl;设置后面内容宽度为2for(j=1;j=10-i;j+)for(j=1;j=i;j+)5050for(i=1;i=9;i+)for(k=1;k=9-i;k+)cout ;/7个空格 for(j=1;j=i;j+)couti*(9-i+j)=setw(2)i*(9-i+j);Coutendl;5151325252#include iostream.h#include iomanip.h/manipulate,操作void main()int i,j;for(i=1;i=10;i+)for(j=1;j=11-i;j+)cout ;/2个空格 for(j=1;j=i;j+)/限定为两个位置的长度 coutsetw(2)i ;coutendl;5353条件语句格式:if()else if()else if()else if()else条件语句条件语句5454000非0非0非05555格式如下:switch()case:case:case:default:/可无可无语义为:根据对整型表达式的计算得到的值,从第一个case常量开始从上到下逐个进行匹配,若相等,则以此为入口,顺序向下执行各条语句序列。开关语句开关语句5656格式如下:switch()case:;break;case:;break;case:;break;default:/可无可无通过加break强行跳转语句,在执行完第一个语句序列后,就强行跳出switch结构5757格式:for(e1;e2;e3)计算计算e2执行执行非非00退出退出循环循环计算计算e1e1计算计算d3e1;while(e2);e3;forfor循环语句循环语句5858格式:break;该语句在程序中可用于下列两种情况:1、在开关语句中,其功能是退出开关语句,执行其后的语句;2、在循环体中,其功能是用来退出该重循环breakbreak语句语句5959#define M 10void main()int num,sum(0);coutinput number:;for(int i=0;inum;if(num0)break;sum+=num;coutsum=sumendl;求求1010个数之和,遇负数终止个数之和,遇负数终止6060格式:格式:continue;continue;功能:只用在循环体中,用来功能:只用在循环体中,用来结束结束该次循环该次循环。在循环体中遇到在循环体中遇到continuecontinue语句时,语句时,本次循环结束,回到循环条件判断本次循环结束,回到循环条件判断是否执行下一次循环。是否执行下一次循环。continuecontinue语句语句6161#define M 10void main()int num,sum(0);coutinput number:;for(int i=0;inum;if(num0)continue;sum+=num;coutsum=sumendl;求求1010个中的正数之和个中的正数之和6262m m是素数的条件是不能被是素数的条件是不能被2 2,3 3,m-1m-1整除。整除。long m;long m;long m;long m;coutplease input a number:n;coutplease input a number:n;coutplease input a number:n;coutm;cinm;cinm;cinm;/输入输入 for(int I=2;Im;I+)for(int I=2;Im;I+)for(int I=2;Im;I+)for(int I=2;I=m)if(I=m)if(I=m)if(I=m)coutmis prime.n;coutmis prime.n;coutmis prime.n;coutmis prime.n;else else else else coutmisnt prime.n;coutmisnt prime.n;coutmisnt prime.n;coutmisnt prime.n;/输出输出 判断整数m其是否为素数6363快速算法:判断它能否被2到sqrt(m)sqrt(m)之间的数之间的数整除,若不能则是素数。long m;coutm;int sqrtm=sqrt(m);for(int I=2;I=sqrtm+1)coutmis prime.n;else coutmisnt prime.n;/输出 判断素数的快速算法6464分析程序运行结果。分析程序运行结果。int I(1),a(0);int I(1),a(0);for(;I=5;I+)for(;I=5;I+)dodo i+;i+;a+;a+;while(I3);while(I3);I+;I+;couta,couta,Iendl;Iendl;Ia1021i3成立32i3不成立45for(;I=5;I+)for(;I=5;I+)6378for(;I=5;I+)for(;I=5;I+)6565本讲作业本讲作业11、编程实现两个浮点数的四则运算;2、编程求出50至100之内的素数并输出;3、求两个数的最大公约数和最小公倍数;4、求一元二次方程ax2+bx+c=0的解;5、打印如下图形:1 2 2 3 3 3 4 4 4 4 5 5 5 5 5 6 6 6 6 6 6 10 10 10 10 10 10 10 10 1066661、打印以下图形:A ABC ABCDE ABCDEFGABCDEFG.S本讲作业本讲作业22、百钱买百鸡。公鸡每只7元,母鸡每只5元,小鸡1元3只,用100地元买100只鸡(每种鸡都要有),请问公鸡母鸡小鸡各有多少?3、编程求水仙花数。水仙花数是指一个三位数,如果其各位数的立方和刚好等于该数本身)。如1531353334、求1000以内的所有完数(指一个数恰好等于它的包括1在内的所有因子之和)。如61235、将100元兑换成10、5、1元,有哪些兑换方法?6767void main()double d1,d2;char op;double temp;coutd1opd2;switch(op)case+:temp=d1+d2;break;case-:temp=d1-d2;break;case*:temp=d1*d2;break;case/:temp=d1/d2;break;default:couterror!n;coutd1opd2=tempendl;6868#include#include#define MIN 51#define MAX 100void main()int i,j,k,n(0);for(i=MIN;i=MAX;i+=2)k=(int)sqrt(double(i);for(j=2;j=k+1)if(n%6=0)coutendl;n+;cout i;/if /forcoutendl;/结束结束编程求出编程求出5050至至100100之内的素数之内的素数6969求两个数的最大公约数求两个数的最大公约数int a,b,r;couta;coutb;if(ab)r=a,a=b,b=r;/交换两数 r=a%b;while(r)a=b;b=r;r=a%b;/辗转相除 cout最大公约数:bendl;7070求两个数的最小公倍数求两个数的最小公倍数int a,b,s;couta;coutb;s=a;while(1)if(s%b=0)break;s+=a;cout最小公倍数:sendl;7171int a,b;couta;coutb;while(a!=b)if(ab)a-=b;if(ab)b-=a;cout最大公约数:aendl;求两个数的最大公约数(求两个数的最大公约数(2)7272int a,b,k;couta;coutb;k=a*b;while(a!=b)if(ab)a-=b;if(ab)b-=a;cout最小公倍数:k/aendl;求两个数的最小公倍数(求两个数的最小公倍数(2)7373int a,b;couta;coutb;if(a=1;i-)if(a%i=0&b%i=0)cout最大公约数:iendl;break;求两个数的最大公约数(求两个数的最大公约数(3)7474int a,b,k;couta;coutb;if(ab)r=a,a=b,b=r;/交换两数 for(int i=a;i+)if(i%a=0&i%b=0)cout最小公约数:iendl;break;求两个数的最小公倍数(方法求两个数的最小公倍数(方法3)n36、自己的鞋子,自己知道紧在哪里。西班牙n37、我们唯一不会改正的缺点是软弱。拉罗什福科n38、我这个人走得很慢,但是我从不后退。亚伯拉罕林肯n39、勿问成功的秘诀为何,且尽全力做你应该做的事吧。美华纳n40、学而不思则罔,思而不学则殆。孔子xiexie!xiexie!谢谢!谢谢!
展开阅读全文
相关资源
相关搜索

最新文档


当前位置:首页 > 管理文书 > 施工组织


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

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


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