chap02_用C语言编写程序_第1页
chap02_用C语言编写程序_第2页
chap02_用C语言编写程序_第3页
chap02_用C语言编写程序_第4页
chap02_用C语言编写程序_第5页
已阅读5页,还剩39页未读 继续免费阅读

下载本文档

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

文档简介

1、Chap 2 用C语言编写程序 2.1 在屏幕上显示 Hello World!2.2 求华氏温度 100F 对应的摄氏温度2.3 计算分段函数2.4 输出华氏摄氏温度转换表2.5 生成乘方表与阶乘表 本章要点 怎样编写程序,在屏幕上显示一些信息? 怎样编写程序,实现简单的数据处理,例如将华氏温度转换为摄氏温度? 怎样使用 if 语句计算分段函数? 怎样用 for 语句求 1+2+100? 如何定义和调用函数生成一张乘方表?2.1 在屏幕上显示Hello World! 例2-1 在屏幕上显示一个短句:Hello World!2.1 在屏幕上显示Hello World!/* 显示“Hello Wo

2、rld!” */ 注释文本 # include int main(void) 主函数 printf(“Hello World! n”); 语句结束 return 0; 输出函数 换行符1.任何程序都有主函数2.程序由若干语句组成3.语句由;结束2.1 在屏幕上显示一些信息例2-2 在屏幕上显示:Programming is fun!And Programming in C is even more fun!# include int main(void) printf(Programming is fun! n); printf(And Programming in C is even mor

3、e fun! n); return 0; 2.2 求华氏温度 100F 对应的摄氏温度 摄氏温度 C=(5/9)(F-32)2.2.1 程序解析2.2.2 常量、变量和数据类型2.2.3 算术运算和赋值运算2.2.4 格式化输出函数printf2.2.1 程序解析例2-3 求华氏温度 100F 对应的摄氏温度。 C=5*(F-32)/9 #include int main(void) /*定义两个整形变量celsius表示摄氏度,fahr表示华氏度*/ int celsius, fahr; fahr = 100; celsius = 5 * (fahr - 32) / 9; printf(fa

4、hr = %d, celsius = %dn, fahr, celsius);输出结果 return 0;输出: :fahr =100, celsius = 37变量使用2.2.2 常量、变量和数据类型int celsius, fahr; celsius = 5 * (fahr - 32) / 9;数据 常量:在程序运行过程中,其值不能被改变常量:在程序运行过程中,其值不能被改变 变量:在程序运行过程中,其值可以被改变变量:在程序运行过程中,其值可以被改变 数据类型 常量:常量:5 5 和和 9 9是整型常量(整数)是整型常量(整数) 变量:在定义时指定变量:在定义时指定变量的定义变量定义的一

5、般形式:类型名类型名 变量名表;变量名表;例如:intint celsius, fahr; celsius, fahr; 定义整型变量定义整型变量floatfloat x; x; 定义单精度浮定义单精度浮点型变量点型变量doubledouble area, length; area, length; 定义双精度浮点型变量定义双精度浮点型变量doubledouble型数据比型数据比floatfloat精度高,取值范围大精度高,取值范围大 变量名:小写字母;见名知义变量的定义 定义变量时要指定变量名和数据类型类型名类型名 变量名表;变量名表;intint celsius, fahr; celsiu

6、s, fahr; floatfloat x; x;doubledouble area, length; area, length; 变量名代表内存中的一个存储单元存放该变量的值存放该变量的值 该存储单元的大小由变量的数据类型决定改造例2-3,使其温度显示能显示小数部分变量的定义与使用变量必须先定义,后使用。#include int main(void) int celsius, fahr; fahr = 100; celsius = 5 * (fahr - 32) / 9; printf(fahr = %d, celsius = %dn, fahr, celsius); return 0;一个

7、变量名只能定义一次变量一般都定义在程序的头上不能定义在程序的中间或后面应该先赋值,后引用2.2.3 算术运算和赋值运算fahr fahr = = 100; 100; celsius = 5 celsius = 5 * * (fahr (fahr - - 32) 32) / / 9; 9; 1、算术运算 双目算术运算符:双目算术运算符:+ - + - * * / % / % 算术表达式:用算术表达式:用算术运算符算术运算符将将运算对象运算对象连接起来的符连接起来的符合合C C语言语法规则的式子语言语法规则的式子 数学式:数学式:5 5(F-32) /9 (F-32) /9 C C表达式:表达式:

8、数学式:数学式:s(s-a)(s-b)(s-c)s(s-a)(s-b)(s-c)C C表达式:表达式:s s* *(s-a)(s-a)* *(s-b)(s-b)* *(s-c)(s-c)5 * (fahr - 32) / 9 算术运算 双目算术运算符:双目算术运算符:+ - + - * * / % / % 算术表达式:用算术表达式:用算术运算符算术运算符将将运算对象运算对象连接起来的符连接起来的符合合C C语言语法规则的式子语言语法规则的式子 注意 / 整数除整数,得整数如:如:1/2 1/2 0 0,9/4 9/4 2 2 ?5 5 * * ( (fahr - 32) / 9 fahr -

9、32) / 9 和和 5 / 9 5 / 9 * * (fahr - 32) (fahr - 32) 等等价吗价吗 % 针对整型数据如:如: 5 56 65 5,9 94 41 1,1001004 40 0 双目运算符两侧操作数的类型要相同赋值运算 赋值运算符 = 赋值表达式:用 = 将一个变量和一个表达式连接起来的式子 变量变量 表达式表达式例如:fahr = 100; fahr = 100; celsius = 5 celsius = 5 * * (fahr - 32) / 9; (fahr - 32) / 9; 计算赋值运算符右侧计算赋值运算符右侧表达式表达式的值的值1.1.将赋值运算符

10、右侧将赋值运算符右侧表达式表达式的值赋给左侧的的值赋给左侧的变量变量的左边必须是一个变量2.2.4 格式化输出函数printf数据输出:格式化输出函数 printf #include printf(Hello World! n);printf(Hello World! n);printf(fahr = %d, celsius = %dn, fahr, celsius);printf(fahr = %d, celsius = %dn, fahr, celsius);printf(格式控制字符串, 输出参数1, , 输出参数n);用双引号括起来,表示输出的格式要输出的数据printf格式控制字符串

11、printf(格式控制字符串, 输出参数1, , 输出参数n);格式控制字符串: 普通字符:原样输出普通字符:原样输出 格式控制说明格式控制说明: :按指定的格式输出数据按指定的格式输出数据, ,% %与数据类型有关 int型 :%d float double型:%fint x=6;printf(9/5=%d ,3.4is%f ,x+3=%d,9/5,3.4,x+3);2.2 求华氏温度 100F 对应的摄氏温度 摄氏温度 C=(5/9)(F-32)相关知识: 常量、变量和数据类型 算术运算和赋值运算 格式化输出函数printf2.3 计算分段函数 2.3.1 程序解析2.3.2 关系运算2.

12、3.3 if-else语句2.3.4 格式化输入函数scanf2.3.5 常用数学库函数2.3.1 程序解析例2-4 分段计算水费输入用户的月用水量x(吨),计算并输出该用户应支付的水费y(元)(保留2位小数) 要解决的问题: 输入输入 计算分段函数计算分段函数 输出,并保留输出,并保留2 2位小数位小数415( )32.510.515xxyf xxx2.3.1 程序解析求分段函数 #include int main(void) double x, y; printf(Enter x (x=0):n); /* 输入提示 */ scanf(%lf, &x); /* 调用scanf函数输入

13、数据 */ if(x =0):9.5f(9.500000)=12.67Enter x (x=0):15f(15.000000)=20.00Enter x (x=0):21.3f(21.300000)=42.752.3.2 关系运算x x = = 1515比较 x 和 15 的大小比较的结果:真 假 关系运算符x x y x y x = y x y x = y x y x !=!= y y 关系表达式:用关系运算符将2个表达式连接起来的式子。区分= 和=2.3.3 if - else语句ifif ( (表达式表达式) ) 语句语句1 1elseelse 语句语句2 2if(x = 15) y =

14、 4 * x / 3; else y = 2.5 * x - 10.5;语句1表达式语句2真假计算二分段函数 if (表达式) 语句1else 语句2if(x != 0) y = 1/x;else y = 0;10( )00 xf xxx软件测试的基本思想 软件测试精心设计一批精心设计一批测试用例测试用例 输入数据,预期输出结果输入数据,预期输出结果 ,然后分别,然后分别用这些测试用例运行程序,看程序的实际运行结果与预期输出用这些测试用例运行程序,看程序的实际运行结果与预期输出结果是否一致。结果是否一致。input x:2.5f(2.50)=0.4input x:0f(0.00)=0.0if(

15、x != 0) y = 1/x;else y = 0;if(x =0):9.5f(9.500000)=12.67Enter x (x=0):15f(15.000000)=20.00Enter x (x=0):21.3f(21.300000)=42.752.3.4 格式化输入函数scanf数据输入:格式化输入函数 scanf #include scanf(%lf, &x);scanf(%lf, &x);scanf(格式控制字符串, 输入参数1, , 输入参数n);用双引号括起来,表示输入的格式变量地址scanf格式控制字符串scanf(格式控制字符串, 输入参数1, , 输入参数

16、n); 格式控制字符串 按指定的格式输入数据, %与数据类型有关与数据类型有关 intint型型 :%d%d floatfloat型:型:%f%f doubledouble型:型:%lf%lf输入: : 9.5例如:例如:scanf(%lf, &x);例2-5 计算存款的本息输入存款金额输入存款金额 money money、存期、存期 year year 和年利率和年利率 rate rate,根,根据公式计算存款到期时的本息合计据公式计算存款到期时的本息合计sumsum(税前),输(税前),输出时保留出时保留2 2位小数。位小数。sum = money ( 1 + rate)sum =

17、 money ( 1 + rate)yearyearsum = money * pow(1 + rate), year)2.3.5 常用数学库函数 库函数 C C语言处理系统提供事先编好的函数,供用户在编程时语言处理系统提供事先编好的函数,供用户在编程时调用。调用。scanf(), printf(), exp()scanf(), printf(), exp() 在相应的系统文件(头文件)中定义一些必需的信息。在相应的系统文件(头文件)中定义一些必需的信息。 #include命令 用户调用库函数时,将相应的头文件包含到源程序中。用户调用库函数时,将相应的头文件包含到源程序中。例如 调用调用sca

18、nf, printfscanf, printf,需要,需要 #include #include 调用调用powpow,需要,需要 #include #include 常用数学库函数 平方根函数 sqrt(x) 绝对值函数 fabs(x)fabs(-3.56) fabs(-3.56) 的值为的值为3.563.56 幂函数 pow(x, n) :xnpow(1.1, 2) pow(1.1, 2) 的值为的值为1.211.21(即(即1.121.12) 例2-5 程序# include # include int main(void) int money, year; double rate, su

19、m; printf(“Enter money:); scanf(%d, &money); printf(“Enter year: ); scanf(%d, &year); printf(“Enter rate:); scanf(%lf, &rate); sum = money * pow(1 + rate), year); printf(sum = %.2f, sum); return 0;Enter money: 1000Enter year: 3Enter rate: 0.025sum = 1076.89scanf(%d%d%lf, &money, &

20、;year, &rate);调用scanf函数输入多个数据scanf(scanf(%d%d%d%d%lf%lf, , &money&money, &year, , &year, &rate&rate); ); 输入:输入:10001000 3 3 0.0250.025 程序运行时,输入的多个数据之间必须有间隔。 scanf需要多个输入参数和多个格式控制说明输入参数的类型、个数和位置要与格式控制说明一一对应输入参数的类型、个数和位置要与格式控制说明一一对应 scanf( scanf(%d%d%lf%lf%d , %d , &mone

21、y&money, &year, , &year, &rate&rate););改进例2-3的程序例2-3 求华氏温度 100F 对应的摄氏温度。摄氏温度摄氏温度 C=5C=5* *(F-32)/9 (F-32)/9 #include #include int main(void)int main(void) int int celsiuscelsius, fahr;, fahr; fahr = 100; fahr = 100; celsius = 5 celsius = 5 * * (fahr - 32) / 9; (fahr - 32) / 9; pr

22、intf(fahr = %d, celsius = %dn, fahr, celsius); printf(fahr = %d, celsius = %dn, fahr, celsius); return 0; return 0; 2.4 输出华氏摄氏温度转换表2.4.1 程序解析2.4.2 for语句2.4.3 指定次数的循环程序设计2.4.1 程序解析例2-6输入2个整数lower和 upper,输出一张华氏摄氏温度转换表,华氏温度的取值范围是lower, upper,每次增加1F。 fahr celsius 30 -1.1 31 -0.6 32 0.0 33 0.6 34 1.1 35

23、1.7例例2-3升级版升级版2.4.1 程序解析-温度转换表#include #include int main(void)int main(void) int fahr, lower, upper; int fahr, lower, upper; double celsius; double celsius; printf(Enter lower:); printf(Enter lower:); scanf(%d, &lower); scanf(%d, &lower); printf(Enter upper:); printf(Enter upper:); scanf(%d,

24、 &upper); scanf(%d, &upper); printf(fahr celsiusn); printf(fahr celsiusn);/ 温度重复转换:华氏温度从lower开始,到upper结束,每次增加1F for (fahr = lower; fahr = upper; fahr +)for (fahr = lower; fahr = upper; fahr +) celsius = (5.0 / 9.0) celsius = (5.0 / 9.0) * * (fahr - 32); (fahr - 32); printf(%4d %6.1fn, fahr,

25、celsius); printf(%4d %6.1fn, fahr, celsius); return 0; return 0; fahr = fahr+1Enter lower: 30Enter upper: 35fahr celsius 30 -1.1 31 -0.6 32 0.0 33 0.6 34 1.1 35 1.7例2-6中for语句的流程for (fahr = lower; fahr = upper; fahr +)for (fahr = lower; fahr = upper; fahr +) celsius = (5.0 / 9.0) celsius = (5.0 / 9.0

26、) * * (fahr - (fahr - 32); 32); printf(% printf(%4 4d %6.1fn, fahr, d %6.1fn, fahr, celsius); celsius); Enter lower: 30Enter upper: 35fahr celsius 30 -1.1 31 -0.6 32 0.0 33 0.6 34 1.1 35 1.7forfor( (表达式1 1;表达式2 2;表达式3 3) ) 循环体语句实现C语句的重复执行2.4.2 for语句循环语句3个表达式、循环体语句!书写顺序和执行顺序不同!表达式1只执行一次循环(控制)变量:for语句

27、中,通过改变或判断某个变量的值来控制循环的执行for (fahr = lower; fahr = upper; fahr +) celsius = (5.0 / 9.0) celsius = (5.0 / 9.0) * * (fahr - 32.0); (fahr - 32.0); printf(%printf(%4 4d %6.1fn, fahr, celsius); d %6.1fn, fahr, celsius); for语句中的循环变量赋初值判断其值改变其值for (fahr = lower; fahr = upper; fahr +) celsius = (5.0 / 9.0) ce

28、lsius = (5.0 / 9.0) * * (fahr - 32.0); (fahr - 32.0); printf(%d %6.1fn, fahr, celsius); printf(%d %6.1fn, fahr, celsius); 表达式1:给循环变量赋初值,指定循环的起点。fahr = lowerfahr = lower表达式2:给出循环的条件,判断循环是否达到终点?fahr = upperfahr = upper表达式3:设置循环的步长,改变循环变量的值,从而可改变表达式2的真假性。fahr+fahr+循环体语句:被反复执行的语句,一条语句。for语句的说明 celsius = (5.0 / 9.0) celsius = (5.0 / 9.0) * * (fahr - 32.0); (fahr - 32.0); printf(%d %6.1fn, fahr, celsius); printf(%d %6.1fn, fahr, celsius); for (fahr = lower ; fahr = upper; fahr = fahr + 1) celsius = (

温馨提示

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

评论

0/150

提交评论