版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、计算机技术基础系列课程课件,第二章,C+简单程序设计,语句,表达式语句 表达式;例:x=a+b; x+; ab?a:b; 复合语句 语句序列,程序流程图,流程图是用来描述算法的工具,与自然语言相比它具有简洁、直观、准确的优点 流程图中使用的符号 开始和结束 处理框 数据输入/输出 判断框 预定义过程 流线,流程图应用举例,-1 (x0) 可以包含顺序结构、选择结构、循环结构程序设计方法,顺序结构程序设计,顺序结构流程图, :,例:输入半径,计算面积 分析 设计,顺序结构程序设计,调试-编辑、编译、连接、运行 测试,源程序 #include void main() float s,r; cons
2、t float pi=3.14159; coutr; s=pi*r*r; couts=sendl; ,例:编程将键盘输入的一个三位正整数逆转输出。,#include void main() int x,a,b,c; coutx; c=x/100; x=x%100; b=x/10; a=x%10; coutabcendl; ,分别计算出百位数、十位数和 个位数存入变量c 、b、 a中,选择结构程序设计,用 if 语句实现的选择结构 if 语句的语法形式: if (表达式) 语句1 else 语句2,注意: 上述格式中语句1和语句2不仅可以是一条语句,而且可以是大括号括起来的多条语句(称为复合语句
3、)。例: 语句2可以为空,此时,else可省略,成为如下形式: if (表达式) 语句 例:,例:从x和y中选择较大的一个输出,if (xy) coutxendl; else coutyendl;,例:输入一个年份,判断是否润年,设计:首先输入年份存放到变量year中满足上述分析的条件表达式为: (year%4= =0 bool isleapyear; coutyear; isleapyear=(year%4=0 ,源程序 #include void main() int year; coutyear; if(year%4=0 ,多重选择结构,嵌套的 if 语句 if else if 语句 s
4、witch 语句,嵌套的 if 语句,语法形式 if (表达式1) if(表达式2) 语句1 else 语句2 else if(表达式3) 语句1 else 语句2 ,注意:1、语句1、2、3、4均可以是复合语句 2、每层的 if 要与 else 配对,如果省略某个 else ,便要用 括起该层的 if 语句来确定层次关系。,例:比较两个数的大小,#include void main() int x,y; coutxy; if (x!=y) if (xy) coutyendl; else coutxyendl; else coutx=yendl; ,if else if 语句,语法形式 if(
5、表达式1) 语句1 else if (表达式2) 语句2 else if(表达式n) 语句n else 语句n+1,注意:1、语句1、2、3、均可为复合语句,编程统计全班学生某门课程考试成绩中“优”、“良”、“中”、“及格”、“不及格”五个分数段的人数,#include void main() int n=0,n1=0,n2=0,n3=0,n4=0,n5=0; float x; again: coutx; if (x=-1) goto exit1; if (x=0 ,例:,switch 语句,语法形式 Switch(表达式) case常量表达式1: 语句1 case常量表达式2: 语句2 ca
6、se常量表达式n: 语句n default: 语句n+1 ,注意: switch 语句的执行顺序:首先计算switch 语句中表达式的值,然后在case语句中寻找相等的常量表达式,并以此为入口标号,由此开始顺序执行,如果找不到相等的常量表达式,则从“default:”开始执行。 switch 语句后面的表达式可以是整型、字符型、枚举型。 各常量表达式的值不能相同,但次序不影响执行结果。 每个case分支可以有多条语句,但不必用 。 每个case语句只是一个入口标号,并不能确定执行的终点,因此,每个case分支的最后应该加break语句,用来结束整个switch 结构,否则,会从入口点开始一直执
7、行到switch结构的结束点。 若干分支需要执行相同操作时,可以使用多个case分支共用一组语句。,#include #include void main() int age; coutage; switch (age) case 2: case 3: coutPlease enter lower class.endl; break; case 4: case 5: coutPlease enter middle class.endl; break; case 6: coutPlease enter upper class.endl; break; default:coutNot enter!
8、endl; ,例:编程实现入托幼儿按年龄分班,其中23岁入小班,45岁入中班,6岁入大班。,例:输入一个06的整数,转换成星期输出,#include void main() int day; coutday; switch (day) case 0:coutSundayendl; break; case 1:coutMondayendl; break; case 2:coutTuesdayendl; break; case 3:coutWednesdayendl; break; case 4:coutThursdayendl; break; case 5:coutFridayendl; bre
9、ak; case 6:coutstaurdayendl; break; default:coutDay out of range Sunday.staurdayendl; break; ,循环结构程序设计,while 语句 dowhile 语句 for 语句 循环结构的嵌套,while 语句,语法形式: while (表达式) 语句块 ,注意: while 语句的执行顺序是:先判断表达式(循环控制条件)的值,若为true,则执行循环体(语句块) 一般来说,在循环体中,应该包含改变循环条件表达式值的语句,否则便会造成无限循环(死循环),例:求自然数1100之和,#include void mai
10、n() int i(1),sum(0); while (i=100) sum+=i; i+; coutsum=sumendl; ,dowhile 语句,语法形式: do 语句块 while(表达式),注意: dowhile语句的执行顺序是:先执行循环体语句,后判断循环条件表达式的值,其值为true时,继续执行循环体,否则结束循环。 在循环体中要包括改变循环条件表达式值的语句,例:输入一个整数将各位数字反转后输出,#include void main() int n,m; coutn; coutThe number in reverse order is ; do m=n%10; coutm;
11、n/=10; while (n!=0); coutendl; ,for 语句,语法形式: for(表达式1;表达式2;表达式3) 语句块 ,注意: For语句的执行顺序是:首先计算一次表达式1的值,再计算表达式2(循环控制条件)的值,当该值为true时,执行一次循环体,否则出循环,没执行一次循环体后,计算表达式3的值,然后返回计算表达式2,判断其值 表达式1、2、3都可以省略,若省略表达式2则成为死循环 表达式1一般用于给循环赋初值,也可以是与循环无关的其他内容 表达式3一般用于改变循环控制条件的值,若省略或为其他内容,则应在循环体内其他位置增加修改循环控制条件值,否则死循环。,输入一个整数求
12、出它的所有因子,#include void main() int n,i; coutn; coutnumber n Factors: endl; for (i=1;i=n;i+) if (n%i=0) couti ; coutendl; ,三种循环语句的比较(以求阶乘为例),#include void main() int n; coutn; int i=2,f=1; while(i=n) f*=i; i+; cout n ! =fendl; ,#include void main() int n; coutn; int i=2,f=1; do f*=i; i+; while (i=n); c
13、out n !=fendl; ,#include void main() int n,i,f; cinn; cout 请输入n=; for(i=2,f=1;i=n;i+) f*=i; coutn的阶乘为fendl; ,循环结构的嵌套,#include void main() int i,j; for(i=1;i=5;i+) for(j=1;j=i;j+) cout*; coutendl; ,例:编程输出如下图案,* * * * *,例:打印一张九九表,#include void main() int i,j,n; for(i=1;i=9;i+) for(j=1;j=9;j+) n=i*j; c
14、outn ; coutendl; ,循环结构与选择结构的嵌套,#include void main() int n; for (n=100;n=200;n+) if (n%3!=0) coutn ; coutendl; ,例:求100200之间不能被3整除的数,求100200之间不能被3整除的数,#include void main() int n; for (n=100;n=200;n+) if (n%3!=0) coutn ; coutendl; ,例:输入一系列整数,统计出正整数的个数和负整数的个数,输入0则结束,#include void main() int i=0,j=0,n; c
15、outn; while (n!=0) if (n0) i+; if (nn; cout正整数个数:i负整数个数:jendl; ,用以下公式计算y的值,精确到第n项绝对值10-4。,#include #include void main() float y,n,x,t; coutx; t=x; y=x; n=2; while (fabs(t)1e-4) t=t*(-x)/n; y=y+t; n+; couty=yendl; ,其他控制语句,Break语句 break语句出现在switch语句或循环语句的循环体中,使程序从循环体或switch语句内跳出。 continue语句。 该语句出现在循环体
16、中,其作用是结束本次循环,接着开始判断决定是否继续执行下一次循环。 goto语句。 语法形式: goto 语句标号; 其中: “语句标号”是用来表示语句的标识符,放在语句的最前面,用冒号与语句分开。 goto 语句的作用是使程序的执行流程跳转到语句标号所指定的语句。,编程计算任意由键盘输入的十个整数中包含多少个正整数,这些正整数的和是多少? #include void main() int a,b=0, sum=0; for(int i=1;ia; if(a=0) continue; /如果a为负数或0,直接进行下一次循环 b+; /正整数的个数加1 sum+=a; /正整数的和加a的值 co
17、ut输入的正整数的个数为:bn; cout这些正整数之和为:sumn; ,#include #include void main() int m,k,i,n=0; coutm; k=m-1; for (i=2;i=k;i+) if (m%i=0) break; if(ik+1) coutm不是素数endl; else coutm是素数endl; ,编程计算任意由键盘输入的正整数是否是素数,应用实例,1、累计和 2、求阶乘 3、累计阶乘,用以下公式计算的近似值,精确到第n项的绝对值小于10-7。,#include void main() float i,t,f,pi; pi=1; f=1; t=
18、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; coutpi=piendl; ,编程输出n行如下所示的图形 * * * #include void main() int x,n,i,j,k; coutn; for(x=1;x=n;x+) for(j=1;j=n-x;j+) cout ; for(k=1;k=2*x-1;k+) cout*; coutendl; ,求3-100之间的全部素数 #include #
19、include void main() int m,k,i,n=0; for (m=3;m=k+1) coutm ; n=n+1; coutendl; ,自定义数据类型,类型定义语句-typedef 枚举类型-enum 结构体 联合体,类型定义语句-typedef,一般格式: typedef 已有类型名 新类型名表; 其中,新类型名表中可以有多个标识符,它们之间以逗号分隔。 功能: 可以为一个已有的数据类型声明多个别名。 例: typedef int zhengxing; typedef float danjingfudian; zhengxing i,j;,枚举类型-enum,一般格式: e
20、num 枚举类型名 变量值列表 ; 注意: 枚举元素按常量处理 枚举元素具有默认值,依次为:0,1,。该值也可以另行指定。 例: enum weekday sun,mon,tue,wed,thu,fri,sat; weekday s; s=sun; coutsendl;,结构体,结构体-由不同数据类型的数据组成的集合体。 一般格式: 声明结构体: 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; coutstu1.age stu1.numstu1.scoreendl;,例: struct student int num; char sex; int age; float sco
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年员工核心能力测试题及答案
- 2026年煤矿维修电工测试题及答案
- 2026年保安能力测试题及答案
- 林业工作考核试题及答案梳理
- 安全月知识竞赛试题库及答案详解
- 2026年善瑞中学模拟试题卷子及答案详解
- 2026年中国砷化镓单晶基板行业发展态势及未来前景预测报告
- 2026年山西会计从业模拟试题及答案详解
- 2026年中国水晶玻璃行业深度调研与发展前景报告
- 2026年食品感官检验安全模拟试题及答案详解
- 建房移交协议书
- 恒康养老护理员培训课件:特殊需求老人照护策略
- 汽修厂环保试题及答案
- 2025年《医疗机构环境表面清洁与消毒管理规范》试题(附答案)
- 老年牙病防治课件
- 病虫害自动识别与预警-洞察阐释
- 2024年江苏省普通高中学业水平合格性语文试卷(1月份)
- 《学生常见病多病共防技术指南》详细解读
- 智慧农业的智能农机与装备
- 互联网+护理服务介绍课件
- GB/T 10858-2023铝及铝合金焊丝
评论
0/150
提交评论