《简单程序设计之一》PPT课件.ppt

上传人:sh****n 文档编号:14176806 上传时间:2020-07-09 格式:PPT 页数:58 大小:380KB
返回 下载 相关 举报
《简单程序设计之一》PPT课件.ppt_第1页
第1页 / 共58页
《简单程序设计之一》PPT课件.ppt_第2页
第2页 / 共58页
《简单程序设计之一》PPT课件.ppt_第3页
第3页 / 共58页
点击查看更多>>
资源描述
C 语言程序设计基础篇,第 2 章 简单程序设计之一,2020年7月9日,常量和变量 顺序结构程序设计 C语句概述 选择结构程序设计 简单循环结构程序设计,内容概述,2020年7月9日,教学目标,掌握常量与变量的定义和使用方法; 学会三种结构的简单程序设计; 从整体上把握和了解C程序的基本结构,对C语言程序开发设计有初步的感性认识。,2020年7月9日,2.1 常量与变量,常量:程序运行过程中不能被改变的量。 在程序中,数据显式写法均表示常量 如s=2*3.14*r中的2和3.14都是常量; 符号常量: #define PRICE 586 ;,1.常量,2020年7月9日,2.变量,变量:程序执行过程中可以改变它的值。变量包括变量名和变量值。 变量名:用标识符命名,对应一定数量的内存存贮单元,其单元数视变量类型而定。 在【例1.1】中 : c = a+b;/*计算和*/ a、b、c是三个变量,而且是整型变量。,2020年7月9日,在C语言中,变量须先定义,后使用。 如: int total ; /*变量定义*/ total =30 ; 是合法的。 若没有定义变量直接写成: total =30; 则编译时会指出未定义错误。 变量一旦被定义,其类型便确定即可在编译时为其分配相应数量的单元。,2020年7月9日,3 标识符,标识符:由字母、数字、下划线组成且由字母或下划线开头的字符串。 如:_sum, sum, stu_name, price等为合法的标识符。 7ax,x 例如,int a=10; 利用赋值语句为变量赋初值 ,格式为: =; 例如,a=10+3; 利用格式化输入函数为变量赋初值 ,格式为: scanf(“格式控制字符串”,变量地址表列); 例如, scanf(%d, ,定义后的变量其值是随机的、不确定的,只有通过赋值操作,其值才是确定的,才能被使用。,2020年7月9日,2.2 顺序结构程序设计,程序设计犹如“搭积木”和“写作”,将零件或素材按一定的顺序和结构组织起来,就完成了“搭积木”和“写作”。 顺序结构程序设计就是根据问题要求设计的程序,其执行过程是按程序书写的顺序,从上到下,逐条语句顺序地执行,没有跳转,一直到最后一条语句,程序才算执行完毕,退出程序。,2020年7月9日,问题分4个步骤来处理: (1)输入两个整数给变量a和b; (2)输出a和b的值; (3)交换a和b的值; (4)输出a和b的值。,【例2.2】由键盘输入两个整数给变量a和b,然后输出a和b。在交换a和b的值后,再输出a和b,验证两个变量中的数值是否正确地进行了交换。,2020年7月9日,#include void main() int a,b,t; printf(Enter a and b:n); scanf(%d %d, /* 输出a和b的值 */ ,程序运行情况如下: Enter a and b: 123 456 a=123,b=456 a=456,b=123,2020年7月9日,数据输入输出的概念及在C语言中的实现,所谓输入输出是以计算机为主体而言的。 数据输入是从标准输入设备输入,也就是键盘。 数据输出到标准输出设备,也就是显示器。DOS下整个屏幕是标准输出设备,Windows下当前窗口是标准输出设备。 在语言中,所有的数据输入输出都是由库函数完成的,因此都是函数语句。 在使用语言库函数时,需要用预编译命令include包含标准输入输出头文件stdio.h,即: #include ,2020年7月9日,格式输出函数printf()函数 函数功能: 按用户指定的格式,把指定的数据显示到显示器屏幕上。 一般形式: printf(“格式控制字符串”, 输出表列); 格式字符串是以%开头的字符串,在%后面跟有各种格式字符,以说明输出数据的类型、形式、长度、小数位数等。如:“%d”表示按十进制整型输出。 输出表列中给出了各个输出项,要求格式字符串和各输出项在数量和类型上应该一一对应,2020年7月9日,格式输入函数scanf ()函数 函数功能: 按用户指定的格式从键盘上把数据输入到指定的变量之中。 一般形式 scanf(“格式控制字符串”,地址表列); 其中,格式控制字符串的作用与printf函数相同,但不能显示非格式字符串。地址表列中给出各变量的地址。 地址是由地址运算符“ 赋值语句; y+z; 加法运算语句,但计算结果不能保留, 无实际意义;,2020年7月9日,2.函数调用语句,由函数名、实际参数加上分号 ;组成。 其一般形式为: 函数名(实际参数表); 执行函数语句就是调用函数体并把实际参数赋予函数定义中的形式参数,然后执行被调函数体中的语句,求取函数值 (在后面函数中再详细介绍) 。 例如: printf(”C Programn”); 调用库函数,输出字符串。,2020年7月9日,3.控制语句,控制语句用于控制程序的流程, 以实现程序的各种结构方式。它们由特定的语句定义符组成。语言有九种控制语句。可分成以下三类: 条件判断语句: if语句、switch语句; 循环执行语句: do while语句、while语句、for语句; 转向语句: break语句、continue语句、return语句。,2020年7月9日,4.复合语句,把多个语句用括号 括起来组成的一个语句称复合语句。 在程序中应把复合语句看成是单条语句,而不是多条语句。例如下面的一组语句是一条复合语句。 x=y+z; a=b+c; printf(”%d%dn”,x,a); 注意:复合语句内的各条语句都必须以分号“;”结尾,在括号“”外不能加分号。,2020年7月9日,5.空语句,只有分号“;”组成的语句称为空语句。空语句是什么也不执行的语句。在程序中空语句可用来作空循环体。 例如: while (getchar()!=n) ; 本语句的功能是,只要从键盘输入的字符不是回车则重新输入。这里的循环体为空语句。,2020年7月9日,2.3.2 赋值语句,赋值语句是由赋值表达式再加上分号构成的。 一般形式为: 变量=表达式; 变量1=变量2=表达式; 例如: int a=5; () int b,c; () b=c=3; () 但定义时连续赋值是错误的。 int a=b=c=5; ( x ),2020年7月9日,2.4 选择结构程序设计,用if语句可以构成分支结构。它根据给定的条件进行判断,以决定执行某个分支程序段。 if语句有三种基本形式: if if-else if-else-if,2020年7月9日,第一种形式为基本形式,形式为:,其语义是: 如果表达式的值为真,则执行其后的语句,否则不执行该语句。其过程可表示为右图。,if (表达式) 语句,2020年7月9日,【例2.3】由键盘输入两个不同的整数给变量a和b,然后输出a和b中较大的数。,#include int main() int a,b,max; printf(Input two numbers: ); scanf(%d%d, ,运行结果为:Input two numbers: 5 12 max=12,2020年7月9日,第二种形式为: if-else,if(表达式) 语句1; else 语句2;,其语义是: 如果表达式的值为真,则执行语句1,否则执行语句2 。 其执行过程可表示为下图。,2020年7月9日,【例】用if-else语句改写例2.3,#include int main() int a, b; printf(Input two numbers: ); scanf(%d%d, ,运行结果为:Input two numbers: 5 12 max=12,2020年7月9日,第三种形式为: if-else-if,前两种形式的if语句一般都用于两个分支的情况。当有多个分支选择时,可采用if-else-if语句。 其语义是:依次判断表达式的值,当出现某个值为真时,则执行其对应的语句。然后跳到整个if语句之外继续执行程序。 如果所有的表达式均为假,则执行语句n。然后继续执行后续程序。,if(表达式1) 语句1; else if(表达式2) 语句2; else if(表达式3) 语句3; else if(表达式m) 语句m; else 语句n;,一般形式为:,2020年7月9日,2020年7月9日,【例2.4】个人年收入低于1万元,可免个人所得税;年收入在1万2万元之间,超过1万元的部分交5%的个人所得税;年收入在2万元以上则交总收入的7%的个人所得税。请编写一个程序,根据个人年收入计算个人所得税(精确到元)。,个人年收入和个人所得税分别用整型变量x、y保存。根据题意,个人所得税与个人年收入的关系可用一个分段函数表示:,2020年7月9日,#includestdio.h void main() int x,y; printf(请输入个人年收入:); scanf(%d, ,程序运行情况如下: 请输入个人年收入:15 000 个人所得税=250元,2020年7月9日,#includestdio.h void main() int score, grade; printf(请输入成绩:); scanf(%d, ,程序运行情况如下: 请输入成绩:76 成绩76的对应积点是3,【例2.5】计算学习成绩积点,2020年7月9日,在使用if语句中还应注意以下问题,在三种形式的if语句中,在if关键字之后均为表达式。该表达式通常是逻辑表达式或关系表达式,但也可以是其它表达式,如赋值表达式等,甚至也可以是一个变量。,例如: if (a=5) 语句; if (b) 语句; 都是允许的。只要表达式的值为非0,即为“真”。,2020年7月9日,在if语句的三种形式中,所有的语句应为单个语句,如果要想在满足条件时执行一组(多个)语句,则必须把这一组语句用括起来组成一个复合语句。但要注意的是在之后不能再加分号。,if (xy) x = x+5; y = y+10; else x = 10; y = 5; ,例如:,在if语句中,条件判断表达式必须用括号括起来,在语句之后必须加分号。,例如:if (b) 语句;,2020年7月9日,当if语句中的执行语句又是if语句时,则构成了if 语句嵌套的情形。 其一般形式可表示如下: if(表达式) if语句; 或者为 if(表达式) if语句; else if语句; 在嵌套内的if语句可能又是if-else型的,这将会出现多个if和多个else重叠的情况,这时要特别注意if和else的配对问题。,2020年7月9日,例如: if(表达式1) if(表达式2) 语句1; else 语句2; 其中的else究竟是与哪一个if配对呢?,应该理解为: if(表达式1) if(表达式2) 语句1; else 语句2; 还是应理解为: if(表达式1) if(表达式2) 语句1; else 语句2;,为了避免这种二义性,语言规定,else 总是与它前面最近的if配对,因此对上述例子应按前一种情况理解。,2020年7月9日,2.5 简单循环结构程序设计,问题 计算1+2+100的值,即 int i, sum; i = 1; sum = 0; sum = sum+i; i=i+1; sum = sum+i; i=i+1; : sum = sum+i; i=i+1;,如何避免出现这种情况?,重复100次同样的语句,程序显得很笨拙。,2020年7月9日,前面的例子是一种循环执行的情况,也就是: 在给定条件(i100)成立时,反复执行某程序段(sum=sum+i; i=i+1),直到条件不成立为止。 给定的条件称为循环条件,反复执行的程序段称为循环体。 这种结构被称为循环结构,它是程序中一种很重要的结构。,2020年7月9日,语言提供了多种循环语句,可以组成各种不同形式的循环结构。 用goto语句和if语句构成循环;(不介绍,不推荐使用) 用while语句; 用do-while语句; 用for语句。,2020年7月9日,2.5.1 while语句,格式: while (表达式) 语句; 其中表达式是循环条件,语句为循环体。 功能: 当表达式的值为非0时,执行while语句中的循环体。结构流程图如图所示。 用while语句来实现“当型”循环结构。,2020年7月9日,【例2.6】用while语句求,用N-S图表示算法,如右图所示:,2020年7月9日,#include int main() int i, sum; i=1; sum=0; while (i=100) sum = sum+i; i+; printf(Sum=%dn, sum); return(0); ,运行结果为:sum=5050,2020年7月9日,使用while语句应注意以下几点:,while语句中的表达式一般是关系表达或逻辑表达式,只要表达式的值为真(非0)即可继续循环。 循环体如果包含一个以上语句,应该用花括弧括起来,以复合语句的形式出现,否则while语句范围只到while后面第一个分号处。,2020年7月9日,2.5.1 do-while语句,格式: do 语句 while(表达式); 功能:先执行语句,后判断表达式的值。它的执行过程是:先执行一次指定的语句,然后判断表达式的值,当表达式的值为非零(”真“)时,返回重新执行该语句,如此反复,直到表达式的值等于0为此止,此时循环结束。,do-while循环语句,用来实现“直到型”循环结构。,2020年7月9日,【例】用do-while语句改写例2.6的while循环部分,#include int main() int i, sum; i=1; sum=0; do sum = sum + i; i+; while (i = 100); printf(Sum=%dn, sum); return(0); ,2020年7月9日,【例2.7】while和do-while循环比较用while和do-while两种语句分别编程序求i+(i+1)+(i+2)+10,其中,i由键盘输入。,#include main() int sum=0,i; scanf(%d, ,#include int main() int sum=0,i; scanf(%d, ,试分析:当分别输入5和15时,两个程序段分别输出什么?,2020年7月9日,2.5.3 for语句,在C语言中,for语句使用最为灵活,它完全可以取代 while 语句。它的一般形式为: for (表达式1;表达式2;表达式3) 语句 它的执行过程如下: 先求解表达式1。 求解表达式2,若其值为真(非0),则执行for语句中指定的内嵌语句,然后执行下面第步;若其值为假(0),则结束循环。 求解表达式3。 再次计算表达式2 的值,开始再次循环,直到计算表达式2的值为0,中止循环,执行for语句下面的一个语句。,2020年7月9日,2020年7月9日,【例2.9】从键盘输入一个整数给变量n,求n以内的偶数和。,#include stdio.h void main() int a,n,m=0; printf(“请输入一个大于1的整数:); scanf(%d, ,请输入一个整数:10 10以内的偶数和=30,2020年7月9日,2.5.4 几种循环的比较,三种循环(while、do-while、for)可以互相替换。 循环条件:while、do-while在whie后面指定; for循环在“表达式2”中指定。 循环初始条件:while、do-while在循环前指定;for循环在“表达式1”中指定。 判断循环条件的时机:while、for循环先判循环条件,后执行;do-while循环先执行,后判断循环条件。,2020年7月9日,课堂练习1:编程求分段函数的值: x (x1) y= 2x-1 (1x10) 3x-11 (x10),2020年7月9日,#include main() int x, y ; printf(输入 x : ) ; scanf(%d, ,if(x1) /* x1 */ y=x; else if (x10) /* 1x10 */ y=2*x-1; else /* x10 */ y=3*x-11;,2020年7月9日,课堂练习2:,sn=135. 99 要求:(1)用scanf语句输入99. (2)输出sn=结果. (3)分别用 for, while, do-while语句编程.,2020年7月9日, for语句,#include main() double sn=1, i, n; printf(n=); scanf(%d, ,for(i=3;i=n;i=i+2) sn=sn*i;,2020年7月9日,while语句,#include main() double sn=1,i=3,n; printf(n=); scanf(%d, ,while(i=n) sn=sn*i; i=i+2; ,2020年7月9日, do-while语句,#include main() double sn=1,i=3,n; printf(“n=“); scanf(“%d”, ,do sn=sn*i; i=i+2; while(i=n);,2020年7月9日,课堂练习3:求s=1!+2!+10!,#include main() long s=0,t=1; int n; for (n=1;n=10;n+) t=t*n; /* 求n! */ s=s+t; /* 求各项累加*/ printf(1!+2!+10! =%ldn,s); ,2020年7月9日,课堂练习4:编程求数列sn=2/1+3/2+5/3+8/5+13/8+21/13前20项之和。,#include main() int i,t; float a=2,b=1,sn=0; for(i=1;i=20;i+) / / / /*求下一项分子的值*/ / /*求下一项分母的值*/ printf(sn=%fn,sn); ,sn=sn+a/b; t=a; a=a+b; b=t;,
展开阅读全文
相关资源
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!