C语言(基本控制结构).ppt_第1页
C语言(基本控制结构).ppt_第2页
C语言(基本控制结构).ppt_第3页
C语言(基本控制结构).ppt_第4页
C语言(基本控制结构).ppt_第5页
已阅读5页,还剩39页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第2章 C语言的基本控制结构 2.3 循环结构 2.2 选择结构 2.1 顺序结构 2.1 顺序结构 顺序结构:按照语句的书写顺序依次执行每条语句。 语句: 三. 表达式语句(操作语句) a=3 a=3; 一. 流程控制语句 二. 函数调用语句:如 printf( ); i=i+1 i=i+1; i+;x+y; 四. 空语句 ; 五. 复合语句 z=x+y; t=z/100; printf(“%f”,t); 此处没有分号 赋值运算符与赋值表达式 赋值运算符:= 右结合 简单赋值运算: 变量=表达式过程:计算、转换、赋值 自反算术赋值运算(复合赋值运算) += 自反加赋值 -= 自反减赋值 *= 自反乘赋值 /= 自反除赋值 %= 自反模赋值 如: a+= 3 a=a+3 x*=y+8 x=x*(y+8) 多重赋值运算 a=(b=5)a=b=5 a=5+(c=6) c的值为6,a的值为11,表达式的值为11 2.2 选择结构 选择结构是指根据某些数据的取值或计算结果 选取不同操作的处理方式。 选择结构的描述由两个基本部分组成,一是对 选择条件的描述;二是对处理分支的描述。 2.2.1 关系运算与逻辑运算 运算符 功能 大于 = 大于等于 c 用关系运算符将两个表达式连接起来的式子 优先级:算术 关系 赋值 高低 a=(bc) a=b32 如:a=3,b=2, c=1 则:(ab)=c d=abd 的值为1 f=abc ab 的值为1 1c 的值为0 f 的值为0 值为1 逻辑运算符 if(a)printf(“%d”, a); 说明: 1. 表达式结果非0即为真 2. 在每个分支语句后面有一分号 3. if和else后面可以只含一个内嵌的操作语句, 也可以是一个复合语句 例1:P37 分析整数绝对值的计算过程。 #include main( ) int input, output; printf( “nEnter a integer:” ); scanf( “%d”, if ( input void main( ) int a,b,c,t; scanf(“%d%d%d”, 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, 7 Y 交换a、b ab N Y 交换a、c ac N Y 交换b、c bc N #include main( ) int x, y; printf( “nEnter 2 integers:” ); scanf( “%d%d”, if ( x 0) if(y0) printf( “I quadrant n” ); else printf(“VI quadrantn”); else if ( y 0 ) printf( “II quadrant n” ); else printf( “III quadrant n” ); P38例2:输入坐标点,判断该坐标点处于第几象限 。 内层嵌套的if语句 内层嵌套的if语句 1.输入坐标点x,y 2.如果x0 且y0第1象限 否则第4象限 3.否则: 如果y0第2象限 否则第3象限 例:当输入不同字符时,通过多分支选择结构, 显示该字符所属的种类 #include void main( ) char c; printf(“Enter a character:”); c=getchar( ); if(c=0 printf(“Enter int number:”); scanf(“%d”, switch(number) case 1: printf(“Mondayn”); break; case 2: printf(“Tuesdayn”); break; case 3: printf(“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”); #include main( ) char c; scanf(“%c”, printf(“nIts a”);/*用输出撇号*/ switch(c) case 0: case 1: case 9: printf(“digiter.n”); break; case : case n: case t: printf(“white.n”); break; default: printf(“char.n”); break 例:判断由键盘输入的字符是数字、字母,还是空格。 允许几种 case执行相同 的语句序列 #include main( ) double a, b, c; char op; printf( “n Enter a expression ” ); scanf( “%lf%c%lf”, switch( op ) case + : c = a + b; break; 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.0 4.300000-2.000000=2.300000 例4(自学):通过键盘读取两个复数和运算符,完成复 数运算的操作,并输出计算的结果。 #include main( ) double a, b, c, d, r, i, t; char op;/* 保存运算符 */ printf( “nEnter the first complex number:” ); scanf( “%lf%lf”, printf( “nEnter the second complex number:” ); scanf( “%lf%lf”, getchar(); printf( “nEnter a operator:” ); scanf( “%c”, /* 输入运算符 */ switch( op ) /* 检查运算符 */ 见下页 printf( “The result is %lf + %lfin”, r, i ); case + : 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 operator .n” ); return0; 2.3 循环结构 2.3.1 while 语句 格式: while ( ) 条件 语句 非0 0 例: 求 #include void main( ) int i,sum=0; i=1; while(i main( ) int sum = 0, i = 1; int x; /* 保存当前输入的数据 */ printf( “nEnter 10 integers:” ); while( i main( ) int i, x, max = 0; for( i=0; i max ) max= x; for( i=0; i #define N 10 main( ) int score, i, max, min; max=0; min=100; float sum=0; for(i=1; imax) max=score; if(score main( ) int ch, num = 0; printf( “Enter a line text:” ); do ch= getchar( ); if( 9 = ch while( ch != n ); printf( “num = %dn”, num ); 例:输入一串数字,要求以相反的顺序将它们输出 #include “stdio.h” main( ) int number,right; printf(“Enter your number:n”); scanf(“%d”, do right=number%10; printf(“%d”,right); number=number/10; while(number!=0); printf(“n”); 执行情况: Enter your number: 12345 54321 第二次: Enter your number: 0 0 P49例8:输入一个整数n,打印输出一个由n行字符星 号*组成的等边三角形; 例如,当输入4时,输出如下所示的三角形: * 行号 1 空格数:3 星号数: 1 *_* 行号 2 空格数:2 星号数: 2 *_*_* 行号 3 空格数:1 星号数: 3 *_*_*_* 行号 4 空格数:0 星号数: 4 行号 i 空格数:n-i 星号数: i #include main( ) int n, i, j; printf( “Enter the side of the triangle:” ); scanf( “%d”, for( i=1; i=n; i+ ) /*循环n次,输出n行*/ for( j=1; j=n-i; j+ )/*循环n-i次,输出n-i个空格*/ putchar( ); for( j=1; j=i; j+ ) /*输出个i星号*/ putchar( * ); if( j != i ) /*如果不是最后一个星号则输出_*/ putchar( _ ); putchar( n ); * *_* *_*_* *_*_*_* 第i行: 空格数:n-i 星号数: i 语法小结语法小结分支结构分支结构 1.if-else语句 若:else分结构为空,else 分结构及else可省 变为: if(条件)语句 if(表达式)语句1 (if分结构) else 语句2 (else分结构) 2.switch结构 switch(表达式) case 常量表达式1:语句表列break; case 常量表达式2:语句表列break; case 常量表达式n:语句表列break; default:语句表列break; 语法小结语法小结 forfor循环语句的语法规则循环语句的语法规则 for (表达式1;表达式2;表达式3) 循环体 表达式1: 用于给定循环变量的初值 表达式2: 用于决定是否还继续循环执行 表达式3: 用于改变循环变量的值 表达式1 循环体 表达式2 表达式3 Y N 思考?循环体有可能一次都不执行吗? while循环的语法格式:

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论