已阅读5页,还剩37页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2.10 顺序结构程序设计,结构化程序设计 语句与分程序 顺序结构程序设计,本次课的主要内容:,一、结构化程序设计,C语言是结构化程序设计语言,结构化程序设计的基本思想: 用顺序结构、选择结构、循环结构这3种基本结构来构造程序。,(1) 顺序结构 顺序结构就是一组逐条执行的可执行语句。按照书写顺序,自上而下的执行。,三种基本结构,常用的流程图符号:,(2) 选择结构(分支结构) 选择结构是一种先对给定条件进行判断,并根据判断的结果执行相应命令的结构。,(3) 循环结构 循环结构是指多次重复执行同一组 命令的结构。 具有循环结构的程序一般必须指定循 环的终止条件,以便对程序的循环进行有 效的控制,以免进入无限循环(或称死循 环)的状态。,C程序的执行部分由执行语句构成。 执行语句的种类: 赋值语句 函数调用语句 控制语句 复合语句(或称分程序) 空语句,二、C语言的语句与分程序,赋值语句是由赋值表达式加上一个分号构成的表达式。 其一般形式如下: 变量=赋值表达式; 例如: a+=b; a=10*b+c;均为正确的赋值语句。,1、赋值语句,在赋值符“=”右边的表达式也可以又是一个赋值表达式: 变量=(变量=表达式); 其展开之后的一般形式为: 变量=变量=表达式; 例如: a=b=c=d=e=5; 按照赋值运算符的右接合性,因此实际上等效于: e=5; d=e; c=d; b=c; a=b;,注意: 在变量说明中给变量的初始化和赋值语句的区别。,变量的初始化是变量定义的一部分,赋初值后的变量与其后的其它同类变量之间仍必须用逗号间隔,而赋值语句则必须用分号结尾。 例如: int a=5,b,c; /变量的初始化 int a; /变量的定义 a=5; /变量的赋值(语句),在变量说明中,不允许连续给多个变量赋初值: 如下述说明是错误的:int a=b=c=5; 必须写为: int a=5,b=5,c=5; 而赋值语句是允许连续赋值的。,c语言中 变量要:,main() int a,b,c; a=23;b=34; c=a+b; ,先定义,后使用,使用,定义中说明了变量的数据类型,不同数据类型的值所占用的内存单元数亦不同。,整型数占 2个字节,字符型数 占1个字节,单精度型 占4个字节,双精度型 占8个字节,程序中: int i; float k;,i,k,2、函数调用语句,执行函数语句就是调用函数体并把实际参数赋予函数定义中的形式参数,然后执行被调函数体中的语句,求取函数值.,由函数名、实际参数加上分号“;”组成。,其一般形式为: 函数名(实际参数);,有返回值的函数要作为表达式的一部分,如:Y=sin(1.7); 在表达式中调用函数,实际上是转去执行一段 预先设计好的程序,求出结果后返回调用点。 所以函数的值又叫函数的返回值。,无返回值的函数可作为语句调用。,printf(“%d”,a); 调用它不是为了得到返回值(函数值), 是为了完成某项任务。,函数调用举例:,Y = sin ( 1.12); Y1 = sin ( x ); Y2 = 3*sin (x+1.12 ) + sqr(x); Y3 = sin ( sqrt(x+1.12) );,3、控制语句,控制语句用于控制程序的流程,以实现程序的各种结构方式:,条件判断语句:if语句、switch语句; 循环执行语句:do while语句、while语句、 for 语句; 转向语句:break、goto、continue、return语句。,(1) 复合语句的一般形式 复合语句是由大括号括起的多个语句构成的, 其一般形式如下: 执行语句组; ,4、复合语句,在程序中应把复合语句看成是单条语句,即是一个整体而不是多条语句。, x=y+z; a=b+c; printf(“%d%d”,x,a); ,是一条复合语句。 复合语句内的各条语句都必须以分号“;”结尾,在括号“”外不能加分号。,(2) 复合语句的使用说明 a、 复合语句在语法上和一个单一语句相同。 因此, 在C语言程序中, 凡是单一语句可以存在的位置都可以使用复合语句。 b、 复合语句可以嵌套。 即: 在复合语句内部可以有其它复合语句。 c、 函数体本身也可以看作是一个复合语句。 ,在程序中,复合语句一般用来表示一种基本结构, 如选择结构的两个分支一般是两个复合语句;循环结构的循环体一般也是一个复合语句。, A=a+b; printf(“%d”,A); s=a-b; printf(“%d”,s); ,在C语言程序中只有一个分号的语句, 称为空语句, 其一般形式如下: ; 空语句在语法上占据一个语句的位置,但是它不具备任何操作功能。 空语句在程序中经常出现在循环体中,用以实现延时功能。,5、空语句,三、顺序结构程序设计,例1 已知鸡兔总头数为h,总脚数为f,求鸡兔各有多少只。 (1) 列出方程:设有x只鸡、y只兔,则,x+y=h 2x+4y=f,x=(4h-f)/2 y=(f-2h)/2,(2) 求解公式: 用消元法求得:,main() int h,f,x,y; h=16; f=40; x=(4*h-f)/2; y=(f-2*h)/2; printf(“head=%d feet=%dn“,h,f); printf(“cock=%d rabbit=%dn“,x,y); 程序的运行结果如下: head=16 feet=40 cock=12 rabbit=4,例 2 编写程序,计算圆锥体的体积。 设r为底面半径,h为锥高,v为圆锥体体积,则计算公式为 v=3.14rrh/3 main() float v,r,h; printf(“y,h=“); scantf(“%f%f“, ,2、 当b24ac0时,求ax2+bx+c=0的两个根。,1、输入一个大写字母,要求系统改为小写字母输出。,练习:,3、编写程序,输入一个圆的半径,计算这个圆的面积。,4、编写程序,输入一个double类型的数,保留这个数的小数点后两位,对小数点后第三位作四舍五入处理,输出处理后的结果。,/*程序功能:大写字母转换成相应的小写字母*/ #include “stdio.h“ main( ) char ch; printf(“Input a capital:“); ch=getchar( ); ch+=32;,printf(“The lowercase is %cn“, ch); 程序的运行情况: Input a capital:A The lowercase is a,编写程序,输入一个double类型的数,保留这个数的小数点后两位,对小数点后第三位作四舍五入处理,输出处理后的结果。 /*程序功能:实型数据四舍五入处理*/ #include “stdio.h“ main( ) double x;,printf(“Enter x:“); scanf(“%lf“, ,程序运行情况: Enter x:5.6789 Before transaction x=5.678900 After transaction x=5.680000,习题,一、选择题 1 请选出合法的C语言赋值语句( )。 A) a=b=58 B) i+ ; C) a=58 , b=58 D) k=int(a+b) ; 2 请选出以下语句的输出结果是( )。 printf(“%dn“ , strlen(“t“065xffn“) ; A) 5 B) 14 C) 8 D) 输出项不合法,无正常输出,3 阅读程序: #include “stdio.h“ main( ) int a ; float b , c; scanf(“%2d%3f%4f“ , ,若运行时从键盘上输入9876543210(0表示回车),则程序的输出结果是( )。 A) a=98 , b=765 , c=4321 B) a=98 , b=765.000000 , c=4321.000000 C) a=98 , b=765.0 , c=4321.0 D) a=98.0 , b=765.0 , c=4321.0,已知字母A的ASCII码为十进制的65,下面程序的输 出结果是( )。 #include “stdio.h“ main( ) char ch1 , ch2 ; ch1=A+5-3 ; ch2=A+6-3 ; printf(“%d , %cn“ , ch1 , ch2) ; A) 67 , D B) B , C C) C , D D) 不确定的值,5 设有如下定义: int x=10 , y=3 , z ; 则语句: printf(“%dn“ , z=(x%y , x/y) ; 的输出结果是( )。 A) 1 B) 0 C) 4 D) 3 6 在下列选项中,不正确的赋值语句是( )。 A) +t ; B) n1=(n2=(n3=0) ;C) k=i=j ; D) a=b+c=1 ;,7 若有以下定义和语句: char c1=b , c2=e ; printf(“%d,%cn“ , c2-c1 , c2-a+A) ; 则输出结果是( )。 A) 2 , M B) 3 , E C) 2 , E D) 输出结果不确定,8 则能给x赋整数1,给y赋整数2,给a赋字符A, 给b赋字符B,给c赋字符C的正确程序段是( ) A) scanf(“x=%d y+%d“ , ,9 下列可作为C语言赋值语句的是( )。 A) x=3 , y=5 B) a=b=6 C) i- ; D) y=int(x) ; 10 以下叙述中正确的是( )。 A) 输入项可以是一个实型常量,例如: scanf(“%f“ , 3.5) ; B) 只有格式控制,没有输入项,也能正确输入数据到内存,例如: scanf(“a=%d , b=%d“),C) 输入一个实型数据时,格式控制部分可以规定小数点后的位数,例如: scanf(“%4.2f“ , ,二、填空题 11 下面程序的输出结果是_。 #include main( ) int a=3 , b=2 , c=1 ; c-=+b ; b*=a+c ; printf(“%d , %d , %d ,“ , a , b , c) ; ,12 下面程序的输出结果是_。 #include “stdio.h“ main( ) unsigned a=32768 ; printf(“a=%dn“ , a) ; ,13 下面程序的输出结果是_。 #include “stdio.h“ main( ) int k=17 ; printf(“%d , %o , %x n“ , k , k , k) ; 14 下面程序的运行结果是_。 #include main( ) i
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论