收藏 分销(赏)

第2章_基本语句.ppt

上传人:xrp****65 文档编号:13221533 上传时间:2026-02-05 格式:PPT 页数:63 大小:573.50KB 下载积分:10 金币
下载 相关 举报
第2章_基本语句.ppt_第1页
第1页 / 共63页
第2章_基本语句.ppt_第2页
第2页 / 共63页


点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,计算机技术基础系列课程课件,第二章,C+,简单程序设计,计算机技术基础系列课程课件,语句,表达式语句,表达式;例:,x=a+b;x+;ab?a:b;,复合语句,语句序列,程序流程图,流程图是用来描述算法的工具,与自然语言相比它具有简洁、直观、准确的优点,流程图中使用的符号,开始和结束,处理框,数据输入,/,输出,判断框,预定义过程,流线,流程图应用举例,-1 (x0),可以包含顺序结构、选择结构、循环结构程序设计方法,顺序结构程序设计,开始,语句,1,语句,2,语句,n,结束,顺序结构流程图,:,例:输入半径,计算面积,分析,设计,顺序结构程序设计,开始,声明变量,s,、,r,声明符号常量,pi,接收键盘输入的半径值并存入变量,r,中,输出计算结果,结束,计算面积并将结果存入变量,s,中,调试,-,编辑、编译、连接、运行,测试,源程序,#include,void main(),float,s,r,;,const,float pi=3.14159;,cout,r;,s=pi*r*r,;,cout,s=s,endl,;,例:编程将键盘输入的一个三位正整数逆转输出。,#include,void main(),int,x,a,b,c;,cout,x;,c=x/100;,x=x%100;,b=x/10;,a=x%10;,cout,abcy),cout,x,endl,;,else,cout,yy,输出,x,输出,y,true,false,例:输入一个年份,判断是否润年,设计:首先输入年份存放到变量,year,中满足上述分析的条件表达式为:,(year%4=0&year%100!=0)|(year%400=0),该表达式的值为,true,时为润年,否则不是润年,分析:润年的条件:可以被,4,整除,但不能被,100,整除,能被,400,整除,开始,声明变量,x,输入一个年份并存入变量,x,中,是闰年码?,输出,x,年是闰年,输出,x,年不是闰年,true,false,结束,源程序,#include,void main(),int,year;,bool,isleapyear,;,cout,year;,isleapyear=,(,year%4=0&year%100!=0)|(year%400=0,);,if(,isleapyear,),cout,year is a,leapyear,.,endl,;,else,cout,year is not a,leapyear,.,endl,;,源程序,#include,void main(),int,year;,cout,year;,if(,year%4=0&year%100!=0)|(year%400=0,),cout,year is a,leapyear,.,endl,;,else,cout,year is not a,leapyear,.,endl,;,多重选择结构,嵌套的,if,语句,if else if,语句,switch,语句,嵌套的,if,语句,语法形式,if(,表达式,1),if,(,表达式,2,),语句,1,else,语句,2,else,if,(,表达式,3,),语句,1,else,语句,2,图,2-4,嵌套的,if,语句执行流程图,表达式,1,true,或非,0,语 句,1,后续操作,表达式,2,true,或非,0,语 句,2,false,或,0,false,或,0,语 句,3,表达式,3,true,或非,0,语 句,4,false,或,0,注意:,1,、语句,1,、,2,、,3,、,4,均可以是复合语句,2,、每层的,if,要与,else,配对,如果省略某个,else,,,便要用,括起该层的,if,语句来确定层次关系。,例:比较两个数的大小,#include,void main(),int,x,y;,cout,xy;,if(x!=y),if(xy),cout,y,endl,;,else,cout,xy,endl,;,else,cout,x=y,endl,;,输出,x=y,输出,xy?,输出,xy,true,false,if else if,语句,语法形式,if,(,表达式,1,),语句,1,else if(,表达式,2,),语句,2,else if,(,表达式,n,),语句,n,else,语句,n+1,表达式,1,true,或 非,0,false,或,0,后续操作,语 句,1,语 句,2,表达式,2,false,或,0,true,或 非,0,表达式,n,语句,n+1,true,或 非,0,语 句,n,注意:,1,、语句,1,、,2,、,3,、,、均可为复合语句,编程统计全班学生某门课程考试成绩中“优”、“良”、“中”、“及格”、“不及格”五个分数段的人数,#include,void main(),int,n=0,n1=0,n2=0,n3=0,n4=0,n5=0;,float x;,again:,cout,请输入,n+1x;,if(x=-1),goto,exit1;,if(x=0&x=90)n1+;,else if(x=80)n2+;,else if(x=70)n3+;,else if(x=60)n4+;,else n5+;,goto,again;,else,cout,输入数据无效,请重新输入。,endl,;,goto,again;,exit1:,cout,总人数:,n,endl,;,cout,优秀人数:,n1,endl,;,cout,良好数:,n2,endl,;,cout,中等数:,n3,endl,;,cout,及格数:,n4,endl,;,cout,不及格数:,n5,endl,;,例:,switch,语句,语法形式,Switch,(,表达式),case,常量表达式,1,:,语句,1,case,常量表达式,2,:,语句,2,case,常量表达式,n,:,语句,n,default:,语句,n+1,表达式,=,常量,1,true,或 非,0,图,2-8 switch,语句执行流程图,false,或,0,后续操作,语 句,1,break,语 句,2,break,表达式,=,常量,2,false,或,0,true,或 非,0,表达式,=,常量,n,语 句,n+1,true,或 非,0,false,或,0,语 句,n,break,注意:,switch,语句的执行顺序:首先计算,switch,语句中表达式的值,然后在,case,语句中寻找相等的常量表达式,并以此为入口标号,由此开始顺序执行,如果找不到相等的常量表达式,则从“,default,:”,开始执行。,switch,语句后面的表达式可以是整型、字符型、枚举型。,各常量表达式的值不能相同,但次序不影响执行结果。,每个,case,分支可以有多条语句,但不必用,。,每个,case,语句只是一个入口标号,并不能确定执行的终点,因此,每个,case,分支的最后应该加,break,语句,用来结束整个,switch,结构,否则,会从入口点开始一直执行到,switch,结构的结束点。,若干分支需要执行相同操作时,可以使用多个,case,分支共用一组语句。,#include,#include,void main(),int,age;,cout,age;,switch(age),case 2:,case 3:,cout,Please enter lower class.,endl,;,break;,case 4:,case 5:,cout,Please enter middle class.,endl,;,break;,case 6:,cout,Please enter upper class.,endl,;,break;,default:cout,Not enter!,endl,;,例:编程实现入托幼儿按年龄分班,其中,23,岁入小班,,45,岁入中班,,6,岁入大班。,例:输入一个,06,的整数,转换成星期输出,#include,void main(),int,day;,cout,day;,switch(day),case 0:coutSunday,endl,;,break;,case 1:coutMonday,endl,;,break;,case 2:coutTuesday,endl,;,break;,case 3:coutWednesday,endl,;,break;,case 4:coutThursday,endl,;,break;,case 5:coutFriday,endl,;,break;,case 6:cout,staurday,endl,;,break;,default:cout,Day out of range Sunday.,staurday,endl,;,break;,循环结构程序设计,while,语句,dowhile,语句,for,语句,循环结构的嵌套,while,语句,语法形式:,while,(,表达式),语句块,表达式?,语句块,false,true,注意:,while,语句的执行顺序是:先判断表达式(循环控制条件)的值,若为,true,,,则执行循环体(语句块),一般来说,在循环体中,应该包含改变循环条件表达式值的语句,否则便会造成无限循环(死循环),例:求自然数,1100,之和,#include,void main(),int,i(1),sum(0);,while(i=100),sum+=i;,i+;,cout,sum=sum,endl,;,计数小于,100,?,累和、计数,false,true,累加器清零,计算器置,1,开始,输出累计和,结束,dowhile,语句,语法形式:,do,语句块,while,(,表达式),表达式,语句块,false,true,注意:,dowhile,语句的执行顺序是:先执行循环体语句,后判断循环条件表达式的值,其值为,true,时,继续执行循环体,否则结束循环。,在循环体中要包括改变循环条件表达式值的语句,例:输入一个整数将各位数字反转后输出,#include,void main(),int,n,m;,cout,n;,cout,The number in reverse order is;,do,m=n%10;,cout,m;,n/=10;,while(n!=0);,cout,endl,;,n,0?,将去掉个位数后的数值重新存入变量,n,中,false,true,输出这个个位数,取出数值,n,的个位数,语句块,语句块,开始,结束,for,语句,语法形式:,for,(,表达式,1,;表达式,2,;表达式,3,),语句块,求解表达式,1,语句块,求解表达式,3,表达式,2,注意:,For,语句的执行顺序是:首先计算一次表达式,1,的值,再计算表达式,2,(循环控制条件)的值,当该值为,true,时,执行一次循环体,否则出循环,没执行一次循环体后,计算表达式,3,的值,然后返回计算表达式,2,,判断其值,表达式,1,、,2,、,3,都可以省略,若省略表达式,2,则成为死循环,表达式,1,一般用于给循环赋初值,也可以是与循环无关的其他内容,表达式,3,一般用于改变循环控制条件的值,若省略或为其他内容,则应在循环体内其他位置增加修改循环控制条件值,否则死循环。,输入一个整数求出它的所有因子,#include,void main(),int,n,i;,cout,n;,cout,number n Factors:,endl,;,for(i=1;i=n;i+),if(n%i=0),cout,i ;,cout,endl,;,三种循环语句的比较(以求阶乘为例),#include,void main(),int,n;,cout,n;,int,i=2,f=1;,while(i=n),f*=i;,i+;,cout,n!=f,endl,;,#include,void main(),int,n;,cout,n;,int,i=2,f=1;,do,f*=i;,i+;,while(i=n);,cout,n,!,=f,endl,;,#include,void main(),int,n,i,f;,cin,n;,cout,请输入,n=;,for(i=2,f=1;i=n;i+),f*=i;,cout,n,的阶乘为,f,endl,;,循环结构的嵌套,表达式,2,?,语句块,2,false,true,语句块,3,false,语句块,1,表达式,1,?,true,#include,void main(),int,i,j;,for(i=1;i=5;i+),for(j=1;j=i;j+),cout,*;,cout,endl,;,例:编程输出如下图案,*,*,*,*,*,j=i,?,显示一个*;,j=j+1,false,true,显示换行;,i=i+1,false,j=1,i=5,?,true,i=1,例:打印一张九九表,#include,void main(),int,i,j,n;,for(i=1;i=9;i+),for(j=1;j=9;j+),n=i*j;,cout,n ;,cout,endl,;,循环结构与选择结构的嵌套,#include,void main(),int,n;,for(n=100;n=200;n+),if(n%3!=0),cout,n ;,cout,endl,;,例:求,100200,之间不能被,3,整除的数,求,100200,之间不能被,3,整除的数,#include,void main(),int,n;,for(n=100;n=200;n+),if(n%3!=0),cout,n ;,cout,endl,;,例:输入一系列整数,统计出正整数的个数和负整数的个数,输入,0,则结束,#include,void main(),int,i=0,j=0,n;,cout,n;,while(n!=0),if(n0),i+;,if(nn;,cout,正整数个数:,i,负整数个数,:j,endl,;,用以下公式计算,y,的值,精确到第,n,项绝对值,10,-4,。,#include,#include,void main(),float,y,n,x,t,;,cout,x;,t=x,;,y=x,;,n=2;,while(,fabs,(t)1e-4),t=t*,(-x)/n;,y=y+t,;,n+;,cout,y=y,endl,;,其他控制语句,Break,语句,break,语句出现在,switch,语句或循环语句的循环体中,使程序从循环体或,switch,语句内跳出。,continue,语句。,该语句出现在循环体中,其作用是结束本次循环,接着开始判断决定是否继续执行下一次循环。,goto,语句。,语法形式:,goto,语句标号;,其中:,“语句标号”是用来表示语句的标识符,放在语句的最前面,用冒号与语句分开。,goto,语句的作用是使程序的执行流程跳转到语句标号所指定的语句。,图,2-12 while,及,continue,语句执行流程图,表达式,1,语句,1,false,或,0,(循环结束),true,或非,0,后 续 操 作,表达式,2,语句,2,continue;,false,或,0,true,或非,0,结束本次循环,图,2-13 while,及,break,语句执行流程图,表达式,1,语句,1,false,或,0,(循环结束),true,或非,0,后 续 操 作,表达式,2,语句,2,break;,false,或,0,true,或非,0,循环结束,编程计算任意由键盘输入的十个整数中包含多少个正整数,这些正整数的和是多少?,#include,void main(),int,a,b=0,sum=0;,for(,int,i=1;i=10;i+),cout,请输入第,ia;,if(a=0)continue;/,如果,a,为负数或,0,,直接进行下一次循环,b+;/,正整数的个数加,1,sum+=a;/,正整数的和加,a,的值,cout,输入的正整数的个数为:,bn;,cout,这些正整数之和为:,sumn;,#include,#include,void main(),int,m,k,i,n=0;,cout,m;,k=m-1;,for(i=2;i=k;i+),if(m%i=0),break;,if(ik+1),cout,m,不是素数,endl,;,else,cout,m,是素数,endl,;,编程计算任意由键盘输入的正整数是否是素数,im?,i=2,false,或,0,(循环结束),true,或非,0,后 续 操 作,i=i+1,false,或,0,true,或非,0,循环结束,m,能被,i,整除吗?,break;,输入一个数,m,应用实例,1,、累计和,2,、求阶乘,3,、累计阶乘,用以下公式计算,的近似值,精确到第,n,项的绝对值小于,10,-7,。,#include,void main(),float,i,t,f,pi,;,pi=1;,f=1;,t=1;,i=2;,for(;t=1e-7;i+),f=f*,(-1);,/,计算第,i,项的符号,t=1/(2*i-1);,/,计算(,2 i-1,)的倒数存入变量,t,pi=pi+f*t,;,/,累计第,i,项的值到变量,pi,pi=4*pi;,cout,pi=,pi,endl,;,编程输出,n,行如下所示的图形,*,*,*,#include,void main(),int,x,n,i,j,k;,cout,请输入,n,的值,(nn;,for(x=1;x=n;x+),for(j=1;j=n-x;j+),cout,;,for(k=1;k=2*x-1;k+),cout,*;,cout,endl,;,求,3-100,之间的全部素数,#include,#include,void main(),int,m,k,i,n=0;,for(m=3;m=100;m=m+2),k=sqrt,(m);,for(i=2;i=k+1),cout,m ;,n=n+1;,cout,endl,;,自定义数据类型,类型定义语句,-,typedef,枚举类型,-,enum,结构体,联合体,类型定义语句,-,typedef,一般格式,:,typedef,已有类型名 新类型名表;,其中,新类型名表中可以有多个标识符,它们之间以逗号分隔。,功能:,可以为一个已有的数据类型声明多个别名。,例:,typedef,int,zhengxing,;,typedef,float,danjingfudian,;,zhengxing,i,j;,枚举类型,-,enum,一般格式:,enum,枚举类型名,变量值列表,;,注意:,枚举元素按常量处理,枚举元素具有默认值,依次为:,0,,,1,。该值也可以另行指定。,例:,enum,weekday,sun,mon,tue,wed,thu,fri,sat,;,weekday s;,s=sun;,cout,s,endl,;,结构体,结构体,-,由不同数据类型的数据组成的集合体。,一般格式:,声明结构体:,struct,结构名,数据类型说明符,1,成员名,1,;,数据类型说明符,2,成员名,2,;,数据类型说明符,n,成员名,n,;,;,声明变量:,结构名 结构变量名;,结构体变量的使用:,结构体变量名,.,成员名,例:,struct,student,int,num;,char sex;,int,age;,float score;,;,student stu1;,stu1.num=1050101;,stu1.sex=f;,stu1.age=20;,stu1.score=86;,cout,stu1.age stu1.num,stu1.score,endl,;,例:,struct,student,int,num;,char sex;,int,age;,float score;,stu1=1050101,f,20;,student stu1;,stu1.score=86;,cout,stu1.age stu1.num,stu1.score,endl,;,联合体,联合体,-,可以使几个不同类型的变量共用同一组内存单元。,一般格式:,声明联合体:,union,联合名,数据类型说明符,1,成员名,1,;,数据类型说明符,2,成员名,2,;,数据类型说明符,n,成员名,n,;,;,声明变量:,联合名 联合变量名;,联合体变量的使用:,联合体变量名,.,成员名,习题,1,、求一个数,x,的绝对值,2,、输入三个数,实现按由大到小的顺序排列输出,3,、求一元二次方程的解,4,、编程实现入托幼儿按年龄分班,其中,23,岁入小班,,45,岁入中班,,6,岁入大班。,5,、,求,10,!,6,、求从第,n,个自然数到,100,(,100-n,),+1,个自然数的累计和,7,、从,1,开始做自然数的累加,当其累加和超过,10000,时,共计累计了多少数?当时的累加和是多少?,8,、将,1100,之内的能被,7,整除的数输出。,9,、判断某年是否为润年。,10,、编写一个处理四则运算的程序(,+-*/,),11,、打印用数字组成的菱形图形,12,、求,3100,之间的全部素数,13,、从键盘上输入三个实数,a,、,b,、,c,,,输出其绝对值最大者,14,、编程实现从键盘上输入字符,A,、,B,、,C,、,D,、,E,,,转换成相应数字,1,、,2,、,3,、,4,、,5,输出。当输入其他字符时,输出数字零。,15,、变成显示,2,的各次幂的值,直到各次幂的值大于给定的一个整数时为止,16,、打印一张九九表,17,、编程统计全班学生某门课程考试成绩中“优”、“良”、“中”、“及格”、“不及格”五个分数段的人数,18,、猜数游戏,
展开阅读全文

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


开通VIP      成为共赢上传

当前位置:首页 > 百科休闲 > 其他

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

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

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

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

gongan.png浙公网安备33021202000488号   

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

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

客服