![C语言基本控制结构_第1页](http://file4.renrendoc.com/view/1e19d73be1e6e58c0bcfdcbbabc562bd/1e19d73be1e6e58c0bcfdcbbabc562bd1.gif)
![C语言基本控制结构_第2页](http://file4.renrendoc.com/view/1e19d73be1e6e58c0bcfdcbbabc562bd/1e19d73be1e6e58c0bcfdcbbabc562bd2.gif)
![C语言基本控制结构_第3页](http://file4.renrendoc.com/view/1e19d73be1e6e58c0bcfdcbbabc562bd/1e19d73be1e6e58c0bcfdcbbabc562bd3.gif)
![C语言基本控制结构_第4页](http://file4.renrendoc.com/view/1e19d73be1e6e58c0bcfdcbbabc562bd/1e19d73be1e6e58c0bcfdcbbabc562bd4.gif)
![C语言基本控制结构_第5页](http://file4.renrendoc.com/view/1e19d73be1e6e58c0bcfdcbbabc562bd/1e19d73be1e6e58c0bcfdcbbabc562bd5.gif)
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第2章 C语言的基本控制结构 2.3 循环结构 2.2 选择结构 2.1 顺序结构12.1 顺序结构顺序结构:按照语句的书写顺序依次执行每条语句。 语句:三. 表达式语句(操作语句)a=3 a=3;一. 流程控制语句二. 函数调用语句:如 printf( );i=i+1 i=i+1;i+;x+y;2四. 空语句 ;五. 复合语句 z=x+y; t=z/100; printf(“%f”,t); 此处没有分号3 赋值运算符与赋值表达式 赋值运算符:= 右结合 简单赋值运算: 变量=表达式过程:计算、转换、赋值 自反算术赋值运算(复合赋值运算)+= 自反加赋值-= 自反减赋值*= 自反乘赋值/= 自
2、反除赋值%= 自反模赋值4如: a+= 3 a=a+3x*=y+8 x=x*(y+8) 多重赋值运算a=(b=5)a=b=5a=5+(c=6)c的值为6,a的值为11,表达式的值为1152.2 选择结构 选择结构是指根据某些数据的取值或计算结果选取不同操作的处理方式。选择结构的描述由两个基本部分组成,一是对选择条件的描述;二是对处理分支的描述。 62.2.1 关系运算与逻辑运算运算符 功能 大于 = 大于等于 小于 c用关系运算符将两个表达式连接起来的式子优先级:算术 关系 赋值 高低 a=(bc)a=bc a=(b328如:a=3,b=2, c=1则:(ab)=cd=abd 的值为1f=ab
3、cab 的值为11c 的值为0f 的值为0值为19 逻辑运算符&、|双目运算符,如 a & b ,左结合 &、|的优先级低于关系运算符,!高于算术运算符&与,|或,!非如:(!a)|(ab)!a|ab(ab)&(xy) ab & xy!单目运算符,如 !a ,右结合10判断一个量是否为真时,非0为真,0为假 逻辑表达式逻辑表达式的值: 1 或 0如:a=4, !a值为0a=4,b=5, a&b值为1a|b值为1!a|b值为14&0|2 值为111注意:不是所有的运算符都被执行如: a & b & ca | b | c如已知:a=1, b=2, c=3, d=4, m=1, n=1则:( m=a
4、b ) & ( n=cd )m=0 , n=cd 不被执行,n=1例如: x = 0 & y+ 如果x小于0,将不计算y+。例如: x=0|y+如果x大于或等于0,将不计算y+12注意:数学上的 axb 不同于C 中的 a=x=b如:a=0, b=0.5, x=0.3正确表示:a=x & x=b 结果为1a=x=b 1=b 结果为0132.2.2 if语句 if ( ) 14if ( ) else if(3) printf(“OK”);if(a)printf(“%d”, a);说明:1. 表达式结果非0即为真2. 在每个分支语句后面有一分号3. if和else后面可以只含一个内嵌的操作语句,
5、也可以是一个复合语句 15例1:P37 分析整数绝对值的计算过程。 #include main( )int input, output;printf( “nEnter a integer:” );scanf( “%d”, &input );if ( input 0 )/* 判断input 是否小于 0*/output = - input;elseoutput = input;printf( “ABS(%d)=%dn”, input, output );16例: 输入3个整数,按由小到大顺序输出。#include void main( ) int a,b,c,t; scanf(“%d%d%d”,
6、&a,&b,&c); if(ab) t=a;a=b;b=t; if(ac) t=a;a=c;c=t; if(bc) t=b;b=c;c=t; printf(“%d,%d,%d”,a,b,c); 输入:3 7 1输出:1, 3, 7Y交换a、babNY交换a、cacNY交换b、cbcN17#include main( ) int x, y; printf( “nEnter 2 integers:” ); scanf( “%d%d”, &x, &y ); if ( x 0) if(y0)printf( “I quadrant n” ); else printf(“VI quadrantn”); e
7、lse if ( y 0 ) printf( “II quadrant n” ); else printf( “III quadrant n” ); P38例2:输入坐标点,判断该坐标点处于第几象限 。内层嵌套的if语句内层嵌套的if语句1.输入坐标点x,y2.如果x0 且y0第1象限 否则第4象限3.否则: 如果y0第2象限 否则第3象限18例:当输入不同字符时,通过多分支选择结构, 显示该字符所属的种类#include void main( ) char c; printf(“Enter a character:”); c=getchar( ); if(c=0&c=A&c=a&c=z) p
8、rintf(“The character is a lower lettern”); else printf(“is other charactern”); if(条件1)语句1else if(条件2)语句2else if(条件m)语句melse 语句n19格式:switch(表达式) case 常量1:语句序列 break; case 常量2:语句序列 break; case 常量n:语句序列 break; default:语句序列 break; break的作用:终止当前语句的执行, 跳出switch结构 首先计算表达式,将该值与每个case后的常量进行比较;如果等于某个常量,则执行该ca
9、se后的语句序列,直到switch结束;如果该值与每个case常量都不相同,则执行default后的语句序列。2.2.3 多路选择和switch语句每个case后面的常量不能相同。20例:读入17之间的某个数,输出表示一星期中相应某一天的单词。 #include main( ) int number; printf(“Enter int number:”); scanf(“%d”, &number); switch(number) case 1: printf(“Mondayn”); break; case 2: printf(“Tuesdayn”); break; case 3: print
10、f(“Wednesdayn”); break; case 4: printf(“Thursdayn”); break; case 5: printf(“Fridayn”); break; case 6: printf(“Saturdayn”); break; case 7: printf(“Sundayn”); break; default: printf(“Errorn”); 21#include main( ) char c; scanf(“%c”,&c); printf(“nIts a”);/*用输出撇号*/ switch(c) case 0: case 1: case 9: print
11、f(“digiter.n”); break; case : case n: case t: printf(“white.n”); break; default: printf(“char.n”); break 例:判断由键盘输入的字符是数字、字母,还是空格。 允许几种case执行相同的语句序列22#include main( ) double a, b, c; char op; printf( “n Enter a expression ” ); scanf( “%lf%c%lf”, &a, &op, &b ); switch( op ) case + : c = a + b; break;
12、case - : c = a b; break; case * : c = a * b; break; case / : c = a / b; break; default : printf( “Input Errorn” ); break; printf( “%lf%c%lf=%lfn”, a, op, b, c ); P41 例3:输入一个格式为 x+y 的二元算术运算表达式,输出这个表达式的计算结果。Enter a expression 4.3-2.04.300000-2.000000=2.30000023例4(自学):通过键盘读取两个复数和运算符,完成复数运算的操作,并输出计算的结果。
13、#include main( )double a, b, c, d, r, i, t;char op;/* 保存运算符 */printf( “nEnter the first complex number:” );scanf( “%lf%lf”, &a, &b );printf( “nEnter the second complex number:” );scanf( “%lf%lf”, &c, &d );getchar();printf( “nEnter a operator:” );scanf( “%c”, &op );/* 输入运算符 */switch( op ) /* 检查运算符 */
14、见下页 printf( “The result is %lf + %lfin”, r, i );24case + :r= a+c; i= b+d;break;case - :r= a c;i= b d;break;case * :r= a*c b*d; i= b*c + a*d;break;case / :t= c*c d*d; if( t = 0 ) printf( “The denominator is 0.n” );return0;r= ( a*c+b*d) / t; i= ( b*ca*d ) / t;break;default:printf( “Invalidation operat
15、or .n” );return0;252.3 循环结构 2.3.1 while 语句 格式:while ( ) 条件语句非0026例: 求#include void main( )int i,sum=0; i=1; while(i=100) sum=sum+i; i+; printf(“%d”,sum);循环体注意:循环体为多个语句时,必须用大括号括起来构成复合语句,否则循环范围只到while后面的第一个分号处。27P45例5:从键盘输入10个整数,计算它们的平均值 #include main( )int sum = 0, i = 1; int x; /* 保存当前输入的数据 */printf
16、( “nEnter 10 integers:” );while( i = 10 ) scanf( “%d”, &x ); /* 读入整数x */i+; /* 累加已输入的数据个数 */sum=sum + x; /* 累加输入的数据总和 */printf( “The average value is %lfn”, sum*1.0/(i-1); 282.3.2 for循环语句格式: for(初值表达式; 条件表达式; 增量表达式) 循环体语句12345真假初值表达式:给循环变量赋初值。条件表达式:循环的条件,决定循环是否继续。增量表达式:改变循环变量的值,给循环变量增加一个定量(步长)。29mai
17、n( ) int i, n, sum=0; scanf(“%d”, &n); for( i=1;i=n;i+) sum=sum+i; printf(“sum=%dn”,sum);用while实现:i=1;while(i=n) sum=sum+i; i+;例求30P47例6:从键盘读入5个字符,找出其中ASCII值最大的字符,并将该字符输出10次。#include main( )int i, x, max = 0;for( i=0; i max ) max= x;for( i=0; i10; i+ ) putchar( max ); 31#include #define N 10main( )i
18、nt score, i, max, min; max=0; min=100; float sum=0; for(i=1; imax) max=score; if(scoremin) min=score; printf(“Canceled max score:%dn”,max); printf(“ Canceled min score:%dn”,min); printf(“Average score:%fn”,(sum-max-min)/(N-2); 大奖赛评分程序:去掉一个最高分和一个最低分,计算平均分。32说明:1. for( ;条件表达式; ) 表达式 1、3 可省, 但分号不能省2. i
19、=1; for( ;i=n;i+)for(i=1;i=n;i+)3. 表达式 1、3 省略 i=1; for( ; i=n; ) sum=sum+i; i+; 332.3.3 do while 语句 格式:do 循环体语句 while ( 条件表达式 ) ; 34例求main( ) int i,sum=0; i=1; do sum=sum+i; i+; while(i=100); printf(“%d”,sum);35#include “stdio.h”main( ) char c; do c=getchar( ); putchar(c); while(c!=n);例:将输入的字符原样输出36
20、P48例7:从键盘输入一行字符,统计其中包含的数字字符个数,并输出。#include main( )int ch, num = 0;printf( “Enter a line text:” );do ch= getchar( ); if( 9 = ch & ch = 0 ) num+; while( ch != n );printf( “num = %dn”, num );37例:输入一串数字,要求以相反的顺序将它们输出#include “stdio.h”main( ) int number,right; printf(“Enter your number:n”); scanf(“%d”,&n
21、umber); do right=number%10; printf(“%d”,right); number=number/10; while(number!=0); printf(“n”);执行情况:Enter your number:1234554321第二次:Enter your number:0038P49例8:输入一个整数n,打印输出一个由n行字符星号*组成的等边三角形;例如,当输入4时,输出如下所示的三角形: * 行号 1 空格数:3 星号数: 1 *_* 行号 2 空格数:2 星号数: 2 *_*_* 行号 3 空格数:1 星号数: 3 *_*_*_* 行号 4 空格数:0 星号数: 4 行号 i 空格数:n-i 星号数: i39#include main( )int n, i, j;printf( “Enter the side of the triangle:” );scanf( “%d”, &n ); for( i=1; i=n; i+ ) /*循环n次,输出n行*/ for( j=1; j=n-i; j+ )/*循环n-
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 4000吨年无机碘化物生产项目可行性研究报告写作模板-申批备案
- 2025年全球及中国3-氨基苯磺酸行业头部企业市场占有率及排名调研报告
- 2025-2030全球噪声缓解系统行业调研及趋势分析报告
- 2025年全球及中国膀胱冲洗器行业头部企业市场占有率及排名调研报告
- 2025-2030全球多层双向穿梭车行业调研及趋势分析报告
- 2025-2030全球斗提机畚斗行业调研及趋势分析报告
- 2025-2030全球汽车双面胶带行业调研及趋势分析报告
- 2025-2030全球单立柱电动堆垛机行业调研及趋势分析报告
- 2025-2030全球柔印机网纹辊行业调研及趋势分析报告
- 2025-2030全球3-溴-4-氟苯甲酸行业调研及趋势分析报告
- Unit 7 第3课时 Section A (Grammar Focus -4c)(导学案)-【上好课】2022-2023学年八年级英语下册同步备课系列(人教新目标Go For It!)
- 2025年上半年长沙市公安局招考警务辅助人员(500名)易考易错模拟试题(共500题)试卷后附参考答案
- 2025河北邯郸世纪建设投资集团招聘专业技术人才30人高频重点提升(共500题)附带答案详解
- 慈溪高一期末数学试卷
- 《基于新课程标准的初中数学课堂教学评价研究》
- 贵州省黔东南州2024年七年级上学期数学期末考试试卷【附答案】
- 医院廉洁自律承诺书
- 胚胎移植术前术后护理
- 企业招聘技巧培训
- 学校校本课程《英文电影鉴赏》文本
- 华为HCSA-Presales-IT售前认证备考试题及答案
评论
0/150
提交评论