2.2分段函数

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

第二章用c语言程序编写程序2.1常量与变量2.2计算分段函数2.3for语句编程:【例3-1】输出a=3,b=9中大的数。#includestdio.hmain(){inta=3,b=9,max;/*使用if-else分支结构*/if(ab)max=a;elsemax=b;printf(max=%d\n,max);}2.2计算分段函数程序说明(1)程序中,用ab比较a和b的值大小,是一种关系运算关系运算:—运算符:,,=,=,==(等于),!=(不等于)—双目运算符注意:与=的区别例如:x=15—优先级(a),,=,=同一级别,(b)==,!=同一级别(c),,=,=的优先级高于==,!=(d)关系运算符优先级高于赋值运算符=,低于算数运算符例如:528—结合性:从左至右例:a+bb+c等价于(a+b)(b+c)a=bc等价于a=(bc)2+a==b-a等价于(2+a)==(b-a)—关系表达式:用关系运算符将运算量链接起来—关系表达式的值:真(1)和假(0)计算这几个表达式的值:(1)529(2)‘a’‘c’(3)已知a=1,b=2,c=3求a+bb+c010(2)程序中用到了if-else语句一般形式:if(表达式)语句1;else语句2;程序其他语句;功能:检测表达式,如果值为非0(真),则执行语句1,然后执行程序其他语句;如果值为0(假),执行语句2,再执行程序其他语句双分支的if-else语句语句1表达式语句2真假注意事项:if(表达式)语句1;else语句2;程序其他语句;关于表达式:(1)表达式必须用圆括号括起来(2)表达式通常使用关系表达式:例:if(x10)(3)表达式可以是一个常量或一个变量:例:if(1)/*表达式为真*/if(0)/*表达式为假*/if(x)/*只要x的值不是0,表达式就为真*/关于语句:语句可以有一条,可以有多条,若有多条,必须用{}括起来,构成复合语句例:if(x0){a=c/2;d=a+b;}elseprintf(good);c语言的基本语句1.表达式语句:由表达式加分号构成如:x=12加;x=12;(赋值表达式语句)2.函数调用语句:由一个函数调用加一个分号构成如:printf(verygood!);3.空语句:由一个分号构成,它什么也不做;4.复合语句:用{}括起来的语句序列如{inttemp;temp=x;x=y;y=temp;}注意:1.复合语句是一个整体,相当于一条语句2.一个复合语句中可以包含其他的复合语句3.在复合语句的花括号后不要再加分号练习下面不正确的语句是:x=y;x+y;a=12;不能看作一条语句的是:{;}a=0;{a=0;b=0;}m=1;n=2;阅读以下程序并思考所提出的问题:main(){inta=6;if(a%2==0);printf(yes);elseprintf(no);}(1)程序能正确运行吗?(2)此程序可实现什么功能?;也是一条语句,称为空语句,什么也不做改正(1)去掉分号;(2)将分号和printf(“yes”);加上{}(2)scanf使用初步调用格式如下:scanf(“格式控制字符串”,地址表列);作用:按格式控制串的格式从终端为一个或多个不同类型的变量赋值。系统提供的库函数,在系统文件stdio.h中声明,所以在源程序开始时要使用预编译处理命令#includestdio.h例:intx,y;scanf(“x=%d,y=%d”,&x,&y);&——叫取地址符输入:x=4,y=51.格式控制:用“”括起来的字符串,包括两个部分(1)普通字符:需要原样输入的字符(可有可无)(2)格式说明:由%和格式说明符组成,表示要输入数据的数据类型格式说明符只能用小写字母:如%d不能写成%Dint型数据用%d,float型数据用%f,double型数据要用%lf例:intx,y;scanf(x=%d,y=%d,&x,&y);切记!2.地址表列:由若干个变量地址组成(如&a,不能写成a),并与%开头的格式控制符一一对应.两个以上时用逗号做间隔,个数,类型与格式说明保持一致例:intx,y;scanf(x=%d,y=%d,&x,&y);3.当格式控制字符之间不包括其它字符,且输入的是数值型数据(整形或实型)时,数据之间可以用空格,Tab键或回车键(CR)分隔;例:inta,b;scanf(%d%d,&a,&b);输入:(1)1234(中间加了空格)(2)1234(中间加了Tab)(3)12(加了回车)34输入输出格式说明的总结printf()int——%dfloat——%fdouble——%f或%lfchar——%cscanf()int——%dfloat——%fdouble——%lfchar——%c如何用printf()和scanf()函数printf(输出一串字符);例:printf(这是hello);printf(格式说明,变量名列表);例:printf(a=%d,b=%d,a,b);scanf(格式说明,变量地址列表);例:scanf(%d,%d,&a,&b);注意:在输入和输出语句中,变量和格式说明的类型及个数必须要一致(1)要在程序中包含相应的头文件例如:#includestdio.h或#include“stdio.h”#include是编译预处理命令它的作用是将某个已经存在的头文件包含到程序中(因为事先编好的函数被放在一个文件中,用的时候要把这个文件包含到程序里面来,才能调用要用的函数)(2)常用的头文件stdio.h:包含这个头文件,才能调用标准的输入输出函数math.h:包含这个头文件,才能调用数学函数(3)在TC编译环境中,调用scanf(),printf()时,#includestdio.h可省,但是在VC++编译环境不可以关于库函数的调用期末考试时不用考虑,因为不用自己去写,系统自带了平方根函数sqrt(x)绝对值函数fabs(x)|-2|幂函数pow(x,n)1.12指数函数exp(x)e2.2以e为底的对数函数log(x)ln(123.45)4sqrt(4)fabs(-2)pow(1.1,2)exp(2.2)log(123.45)math.h里包含的常用数学库函数及调用方式:举一反三【3-1】任意输入一个整数,如果能被3整除,输出此数.否则,输出“不是3的倍数”。#includestdio.hmain(){intx;scanf(%d,&x);if(x%3==0)printf(%d,x);elseprintf(不是3的倍数);}错误总结scanf(“%d\n”,&a);不能加\n,否则,输入时也要输入\nmain(){printf(“x”);inty;}floatx;scanf(“%f,%f”,&x,&y);==和=的区别inta;if(a=3)不能实现比较a==5;不能实现赋值编程:【例3-2】计算分段函数y=x3x3+1(x≥0)(x0)调用pow()和sqrt()函数源程序:#includestdio.h#includemath.hmain(){doublex,y;printf(Enterx:);scanf(%lf,&x);if(x=0)y=sqrt(x);elsey=3*pow(x,3)+1;printf(\nx=%.2lf,y=%f\n,x,y);}%.2lf保留2位小数输出,%f保留6位小数输出提示:需要调用求实型数绝对值函数fabs和指数函数exp。举一反三【3-2】编写程序,输入x,利用分段函数,计算并输出y值。|x|(x≤0)ex(x0)y=源程序:#includestdio.h#includemath.hmain(){doublex,y;printf(Enterx:);scanf(%lf,&x);if(x=0)y=fabs(x);elsey=exp(x);printf(\nx=%f,y=%f\n,x,y);}#includestdio.hmain(){intx;printf(Enterx:);scanf(%d,&x);/********found********/ifx%2!=0printf(奇数);elseprintf(偶数);}程序改错1:任意输入一个数,如果是奇数输出“奇数”,否则,输出“偶数”。if(x%2!=0)0,00,1)(xxxxf程序改错2:输入x,计算并输出下列分段函数y的值(保留一位小数)#includestdio.hmain(){intx;doubley;printf(Enterx:);scanf(%d,&x);/********found********/if(x!=0);/********found********/y=1/x;elsey=0;printf(y=%.1f\n,y);}可见,if-else语句常用于计算二分段函数y=1.0/x;;去掉改错:求球的体积#includestdio.hmain(){doubler,v;printf(Enterr:);scanf(%d,r);v=4/3*3.14*pow(r,3);printf(“v=%.1f\n,v);}#includemath.hscanf(%lf,&r);v=4.0/3*3.14*pow(r,3);或v=4*3.14*pow(r,3)/3;思考题else可以省略吗?例:判断一个是不是偶数,如果是,则输出这个数if-else语句用于编写什么程序段?双分支的选择结构

1 / 28
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功