[司法考试]c++第04章

上传人:tia****nde 文档编号:70523795 上传时间:2019-01-17 格式:PPT 页数:53 大小:448.81KB
返回 下载 相关 举报
[司法考试]c++第04章_第1页
第1页 / 共53页
[司法考试]c++第04章_第2页
第2页 / 共53页
[司法考试]c++第04章_第3页
第3页 / 共53页
[司法考试]c++第04章_第4页
第4页 / 共53页
[司法考试]c++第04章_第5页
第5页 / 共53页
点击查看更多>>
资源描述

《[司法考试]c++第04章》由会员分享,可在线阅读,更多相关《[司法考试]c++第04章(53页珍藏版)》请在金锄头文库上搜索。

1、C+程序设计 王挺,河北大学 数学与计算机学院,第4章 控制结构,程序语句 可执行语句 说明性语句 基本控制结构 顺序结构 选择结构 循环结构 结构化程序设计,程序的语句,语句是构成程序的基本单位 按功能分 可执行语句(每条单行语句以;结束) 说明性语句-注释语句 单行注释,以/开始 多行注释,/* . */ 预编译语句(以#开始) 按复杂程度分 表达式语句:单行,以;结束 复合语句:多行,用 括起来的语句序列,程序的基本控制结构,顺序结构:常用的语句有表达式语句和 复合语句。 选择结构:if语句、if-else语句、 switch语句。 循环结构:while语句、 do-while语句、 f

2、or语句。,表达式语句,表达式语句的形式如下: 表达式 ; 表达式语句示例: a = a + 3; / 赋值语句 x = y = z = 0; / 多重赋值语句 t = 2,t + x + a; / 逗号表达式语句 z = i j ? x : x + y ;/ 条件表达式语句 f1(); /函数调用语句且f1有返回值 x1 = exp(x); / 函数表达式语句,计算 ex x2 = pow(x, y); /函数表达式语句,计算xy,函数调用语句,函数调用语句的形式如下: 函数调用 ; 注:对有返回值的函数调用 所构成的语句 实际上也是表达式语句,空语句,空语句的形式如下: ; 表达式语句和空

3、语句示例: a = a + 3; / 赋值语句 ; / 空语句 a = a + 3; / 不会出错,复合语句,复合语句的语法定义如下: 复合语句示例: a = a + 3; x = y = z = 0; t = 2,t + x + a; z = i j ? x : x + y ;,【例4_1】 计算圆的周长和面积。 #include #include #define PI 3.14 int main() double radius, area; /说明语句 radius = 3.0 ; double perimeter; /说明语句 perimeter = PI * 2 * radius; c

4、out “The perimeter is : “ perimeter “n“ ; /复合语句 area = PI * pow(radius,2); cout “The area of the circle is : “ area “n“ ; return 0; ,if 语句,一般形式为: if ( ) 可以是任意表达式 (一般为逻辑表达式) if语句示例: if (grade=60) cout “passed n“;,语义:计算的值,若为真,则执行 ,然后按顺序继续执行if语句的下一条语句(有例外)。否则,跳过 ,直接执行if语句的下一条语句。,if (grade60) return; co

5、ut “passed n“;,if-else 语句,一般形式为: if ( ) else ,if-else 语句示例,if (grade = 60) cout “Passed !n“; else cout “Failed !n“;,if 或if-else的嵌套,在if 或if-else 中嵌套 if 或if-else if(grade=90) printf(“A”); else if (grade=80) printf(“B”); else if (grade=70) printf(“C”); else if (grade=60) printf(“D”); else printf(“F”);

6、注意else和if的匹配:在if语句后面若直接跟else, 则把if语句、else和其后的语句一起作为if-else语句,if 或if-else的嵌套,if(grade=60) if(grade=100)printf(“AAA”); else if (grade=0)printf(“FFF”); 不等价于 if(grade=60) if(grade=100)printf(“AAA”); else if (grade=0)printf(“FFF”); 注:else总是与上面最近可供匹配的if相匹配,复合语句应用示例,if ( grade = 60 ) printf(“Passed.n”); el

7、se printf(“Failed.n”); printf(“Do you take it again?y/n”); cinanswer; ,switch 语句一般形式 switch ( ) case : break; case : break; case : break; default: break; 多个case 分支和可选的 default 分支 的值为整数类型(int,char,) 每个的最后一个语句一般为break语句,每个也可以为空,switch 语句的语法,switch 的流程图,【例4_7】用switch语句实现成绩转换 #include int main() int sco

8、re, scorePhrase; cout score; if (score 100) cout “The score is illegal!“; return 0; / 计算分数段 scorePhrase = score / 10;,/ 判断并输出等级 switch ( scorePhrase ) case 10: case 9: cout“Grade is “A. endl; break; case 8: cout“Grade is “B. endl; break; case 7: cout“Grade is “C. endl; break; case 6: cout“Grade is “

9、D. endl; break;,/ 判断并输出等级 case 0: case 1: case 2: case 3: case 4: case 5: cout“Grade is “E. endl; break; default: cout“The score is illegal!“ endl; return 0; ,while 语句,一般形式 while( ) ,while 语句举例,int product = 2; while ( product = 1000 ) product = 2 * product;,/* 计算各级成绩的人数 */ #include int main() int g

10、rade; int aCount=bCount=cCount=dCount=fCount=0; printf(“Enter the letter grades.n“); printf(“Enter the EOF character to end input.n“); /ctrl+z while ( ( grade = getchar() ) != EOF ) switch ( grade ) case A: case a: +aCount; break; case B: case b: +bCount; break; case C: case c: +cCount; break;,while

11、 语句和switch 语句的应用,case D: case d: +dCount; break; case F: case f: +fCount; break; case n: case : break; default: printf(“Incorrect letter grade entered.“); printf(“Enter a new grade.n“); break; printf( “nTotals for each letter “ “ grade are:n“ ); printf( “A: dn“, aCount ); printf( “B: dn“, bCount );

12、printf( “C: dn“, cCount ); printf( “D: dn“, dCount ); printf( “F: dn“, fCount ); return 0; ,程序输出: Enter the letter grades. Enter the EOF character to end input. A B C C A D F C E Incorrect letter grade entered. Enter a new grade. D A B Totals for each letter grade are: A: 3 B: 2 C: 3 D: 2 F: 1,while

13、 语句典型应用1:计数控制循环,计数控制循环 循环反复执行,直到计数器达到特定的值,是定数循环:即循环次数是已知的。 示例:计算10个学生的平均成绩,1. 变量初始化 2. 执行循环 3. 输出结果,/* Class average program with counter-controlled repetition */ #include int main() int counter, grade, total, average; /* initialization phase */ total = 0; counter = 1; /* processing phase */ while (

14、 counter = 10 ) printf( “Enter grade: “ ); scanf( “%d“, ,程序运行结果: Enter grade: 98 Enter grade: 76 Enter grade: 71 Enter grade: 87 Enter grade: 83 Enter grade: 90 Enter grade: 57 Enter grade: 79 Enter grade: 82 Enter grade: 94 Class average is 81,while 语句典型应用2:条件控制循环,问题 能计算任意个数学生的平均成绩 学生人数未知,是不定数循环 程序

15、如何结束? 使用条件控制 当用户输入信号量时,循环结束 信号量不能和一般数据混淆:特殊数据,1. 变量初始化 2. 用户输入 3. 执行循环,/* Class average program with sentinel-controlled repetition */ #include int main() float average; /* new data type */ int counter, grade, total; /* initialization phase */ total = 0; counter = 0; /* processing phase */ printf(“Enter grade, -1 to end: “); scanf( “%d“, ,4. 计算平均成绩 5. 打印结果 程序输出,Enter grade, -1 to end: 75 Enter grade, -1 to end: 94 Enter grade, -1 to end: 97 Enter grade, -1 to end: 88 Enter grade, -1 to end: 70 Enter grade, -1 to end: 64 Enter grade, -1 to end: 83 Enter grade, -1 to end: 89 Enter

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号