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

下载本文档

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

文档简介

1、第第2章章 用用C语言编写程序语言编写程序主要内容主要内容温度值转换温度值转换计算分段函数计算分段函数输出华氏输出华氏-摄氏温度转换表摄氏温度转换表生成乘方表与阶乘表生成乘方表与阶乘表教学目标、重点和难点教学目标、重点和难点n教学目标教学目标q掌握掌握 C 语言程序的一般结构及编写方法语言程序的一般结构及编写方法q掌握掌握C语言中常量、变量、数据类型、算术运算语言中常量、变量、数据类型、算术运算、赋值运算、关系运算符等,以及格式化输入、赋值运算、关系运算符等,以及格式化输入、输出函数的应用输出函数的应用q了解顺序、选择和循环三种基本的程序结构了解顺序、选择和循环三种基本的程序结构q理解函数的定

2、义和函数的调用理解函数的定义和函数的调用n教学重点教学重点qC语言程序的基本构成语言程序的基本构成q格式化输入、输出函数的使用格式化输入、输出函数的使用qC语言的基本语法、三种基本程序结构语言的基本语法、三种基本程序结构n教学难点教学难点q三种基本的程序结构以及自定义函数三种基本的程序结构以及自定义函数#include int main() 问题:求华氏温度问题:求华氏温度 100F 对应的摄氏温度对应的摄氏温度n算法:摄氏温度算法:摄氏温度 C=5*(F-32)/9。int ss, hs; /变量定义变量定义hs= 100; /变量赋值变量赋值ss = 5*(hs - 32) /9; pri

3、ntf(华氏华氏 = %d, 摄氏摄氏 = %dn, hs, ss);return 0;n程序能处理的数据包括:程序能处理的数据包括:字符字符、数值数值、声音声音、图像图像等,等,不同的数据有不同的编码规则和格式,从而形成不同不同的数据有不同的编码规则和格式,从而形成不同的的类型类型;n数据类型总表数据类型总表短整型短整型(short int)整型整型(int)长整型长整型(long int)字符型字符型(char)程序中的数据程序中的数据数数据据类类型型基本类型基本类型构造类型构造类型指针类型指针类型空类型空类型(void)整型整型实型实型单精度型单精度型(float)双精度型双精度型(do

4、uble)数组类型数组类型()结构体结构体(struct)共用体共用体(union)枚举枚举(emum)类型类型Dev Cchar1 Byte0255 0 (28-1)short int2 Byte-3276832767 -215(215-1)int4 Byte-2 147 483 648 -2 147 483 647 -231(231-1)long int4 Byte-2 147 483 648 -2 147 483 647 -231(231-1)float4 Byte约约(10-381038),6位有效数字位有效数字double8 Byte约约(10-30810308), 15位有效数字位

5、有效数字数据类型数据类型n数据类型决定数据类型决定q数据所占内存字节数数据所占内存字节数q数据的取值范围数据的取值范围q数据可参与的运算数据可参与的运算nDev C中基本类型数据在内存中所占的字节数中基本类型数据在内存中所占的字节数n定义:值在程序执行时允许改变的量。定义:值在程序执行时允许改变的量。qC语言程序中的变量必须语言程序中的变量必须“先定义先定义,后使用后使用”;q变量定义即确定变量定义即确定变量名变量名和和类型类型。n变量定义的一般格式变量定义的一般格式q数据类型数据类型 变量名变量名1,变量名变量名2,变量名变量名n;n变量初始化变量初始化q变量定义时赋初值变量定义时赋初值n说

6、明:说明:变量变量例如例如: int a,b,c;: int a,b,c; float data; float data; double r1,r2; double r1,r2;例如例如: int a=1,b=1,c=3;: int a=1,b=1,c=3; float data=1.2; float data=1.2; double r1=1.0,r2; double r1=1.0,r2;能否:能否:int a=b=1;int a=b=1;NO变量名命名遵循变量名命名遵循“标识符标识符”规则;规则;同一函数内同一函数内,每个变量都有每个变量都有唯一的名字唯一的名字,不能重复定义。,不能重复定

7、义。n变量与内存的关系变量与内存的关系q程序程序编译编译、运行运行时,系统将自动根据时,系统将自动根据变量的类型变量的类型为变量在为变量在内存中分配由内存中分配由其类型确定的字节数其类型确定的字节数的的连续的内存单元连续的内存单元;变量变量例如:例如: short a=1;short a=1; 1a20002001内存单元内存单元内存地址内存地址变量的值变量的值a=a+2;a=a+2;变量名变量名3q从变量中取值从变量中取值,实际上就是通过实际上就是通过变量名找到相应的内存单变量名找到相应的内存单元元,并从该内存单元读取数据。并从该内存单元读取数据。q变量名变量名即代表其分配的即代表其分配的内

8、存单元内存单元,变量的值变量的值即内存单元中即内存单元中存放的数据存放的数据,内存单元是确定的,其中的数据是可变的,内存单元是确定的,其中的数据是可变的;n整型常量整型常量q十进制十进制:由数字:由数字09和正负号组成和正负号组成.如如123,-456,0q八进制八进制:由数字:由数字0开头开头,后跟数字后跟数字07组成组成.如如0123, 072q十六进制十六进制:由:由0 x开头开头,后跟后跟09,af,AF组成组成. 如如0 x123, 0XaFn实型常量实型常量q小数形式小数形式:必须有小数点。必须有小数点。如:如:0.12 .12 0.0 123.q指数形式指数形式:系数系数e(或或

9、E)指数。指数。如:如:0. 12e3 1E-2 1.2e4 ne e前前有数字有数字,e,e后为整数后为整数 例如:例如:e-5e-5、1.2E3.51.2E3.5数值常量数值常量例题:以下表示错误的整型常量有例题:以下表示错误的整型常量有+123、086、-3F、-0 x01af、0Xe1g算术运算与赋值运算算术运算与赋值运算n基本算术运算符基本算术运算符q+、 - 、*、 /、 %(求余)(求余)n说明说明q“-”为单目运算符时为单目运算符时,表示取负表示取负;q两整数相除,结果为整数两整数相除,结果为整数,舍去小数部分;舍去小数部分;q%要求两侧均为要求两侧均为整型整型数据数据;q一个

10、为一个为浮点数浮点数,则运算结果为则运算结果为double型型;例如例如:5%2 =:5%2 = 1%5 = 1%5 = 5%1 = 5%1 = 5.5%2 5.5%2例如例如:5/2 = :5/2 = -5/3 = -5/3 = 1/3 = 1/3 =2-1例如例如:b=1;:b=1; a=-b+1; a=-b+1; 110运算后运算后: :a=0,b=10算术运算与赋值运算算术运算与赋值运算n简单赋值运算符简单赋值运算符q符号:符号:=q格式:变量格式:变量=表达式表达式q作用:将表达式的作用:将表达式的运算结果运算结果赋给变量。赋给变量。n说明说明q左侧必须是变量,左侧必须是变量,不能不

11、能是常量或表达式。是常量或表达式。q赋值表达式的值赋值表达式的值等于等于变量的值变量的值 。q赋值运算允许嵌套,运算方向:赋值运算允许嵌套,运算方向:自右向左自右向左。例例如如:int a,b;:int a,b; a=65; a=65; b=(a b=(a* *2+10)/3; 2+10)/3; /b= ?b= ?46例例如如:int a,b,c;:int a,b,c; a=b=c=1; a=b=c=1;例如例如: int a,b,c;: int a,b,c; a=(b=4)+(c=6) a=(b=4)+(c=6) /a=10,b=4,c=6,a=10,b=4,c=6,表达式表达式的的值值为为

12、1010能否能否a=(b=c)=1;a=(b=c)=1;算术运算与赋值运算算术运算与赋值运算n例题:输入一个例题:输入一个3位整数,计算每位数字之和。位整数,计算每位数字之和。 #include int main ( ) int n,a,b,c,sum; printf(Input n: ); scanf (%d, &n ); a= ; b= ; c= ; sum=a+b+c; printf(n=%d,sum=%dn,n,sum); return 0; n/100n%100/10n%10格式化输出函数格式化输出函数 printf n格式格式1:printf (字符串字符串) ;q原样输出

13、字符串原样输出字符串q例如例如:n格式格式2:printf (格式符串格式符串 ,数据数据表表) ;q按格式要求输出数据表中对应的数据按格式要求输出数据表中对应的数据(表达式的计算结果表达式的计算结果)。q数据表中的数据个数数据表中的数据个数须与须与%格式符的个数格式符的个数保持一致。保持一致。q格式串中的格式串中的非格式符原样输出非格式符原样输出。#include void main( ) printf(tc语言学习无捷径语言学习无捷径,n多看多练是正道多看多练是正道!n);#include void main( ) int a=1; double b=2.0; printf(%d+%lf=

14、%lfn,a,b,a+b);第第2章章 用用C语言编写程序语言编写程序主要内容主要内容温度值转换温度值转换计算分段函数计算分段函数输出华氏输出华氏-摄氏温度转换表摄氏温度转换表生成乘方表与阶乘表生成乘方表与阶乘表问题:计算分段函数问题:计算分段函数n例题:输入用户的月用水量例题:输入用户的月用水量x,分段计算水费,输,分段计算水费,输出该用户应支付的水费出该用户应支付的水费y(保留(保留2位小数)。位小数)。 n计算函数:计算函数:415( )32.510.515xxyf xxx#include int main( ) 问题:计算分段函数问题:计算分段函数n程序:程序:double x, y;

15、 /*定义变量定义变量*/printf(x(x=0):); /*输入提示输入提示 */scanf(%lf, &x); /*调用调用scanf函数函数*/if( x = 15 ) /*if else语句语句 */ y = 4 * x / 3; else y = 2.5 * x - 10.5; printf(f(%lf) = %.2lf n, x, y); return 0;.n 表示保留表示保留n位小数位小数(n为整数为整数)n关系运算符及其优先次序关系运算符及其优先次序q (小于)(小于)q (大于)(大于)q= (大于或等于)(大于或等于)q= = (等于)(等于)q! = (不等于

16、)(不等于)n关系运算表达式关系运算表达式q用关系运算符将两个用关系运算符将两个表达式表达式连接起来的式子连接起来的式子.q关系表达式的计算结果为关系表达式的计算结果为1或或0(1:真真/0:假)假)优先级相同优先级相同优先级相同优先级相同算术运算符算术运算符赋值运算符赋值运算符高高低低关系运算关系运算例如例如:53 :53 结果为结果为真真(1)(1) 55 55 结果为结果为假假(0)(0) 例如:例如:3535、k%5=0k%5=0、a+b!=ca+b!=c* *d dn例如:例如:n课堂练习课堂练习int a,b,x=3;a=x0;b=xb=cf2=b+c!=af3=abc/f1=1/

17、f2=0/f3=0赋值表达式:赋值表达式:a=3输出输出3 3nif-else 语句形式语句形式n说明说明q条件表达式为条件表达式为非非0值值则表示则表示“真真”,0值值则表示则表示“假假”q条件为条件为真真,执行执行语句A (一条语句一条语句:简单语句或复合语句简单语句或复合语句) ; q否则否则执行执行语句B (一条语句一条语句:简单语句或复合语句简单语句或复合语句) 。q若条件不成立情况下不作处理,则若条件不成立情况下不作处理,则else子句可以缺省子句可以缺省。ifelse语句语句if (条件) 语句语句A;A;else 语句语句B;B;非非0 0条件条件语句语句A A0 0语句语句B

18、 B;n程序程序试分析以下程序的输出试分析以下程序的输出#include stdio.hvoid main() int a=6,b=0,c=0; if( a%20 ) b = b + a; c = c + 1; a = a + 1; if( a%20 ) b = b + a; c = c + 1; a = a + 1; printf (%d,%d,%dn, a, b, c);复合语句复合语句else子句缺省子句缺省/求求100100以内能被以内能被3 3整除的数的个数及和。整除的数的个数及和。#include void main() int k=1, c=0,s=0; while(k=100)

19、 if( ) s=s+ k; c=c+1; k=k+1; printf(“c=%d,s=%dn”,c,s);复合语句复合语句n格式格式 语句语句1; 语句语句2; 语句语句n; n说明说明q从语法的角度看,相当于从语法的角度看,相当于一条语句一条语句;q复合语句复合语句可嵌套可嵌套;k%3=0k%3=0格式化输入函数格式化输入函数 scanfn格式:格式:scanf (格式符串格式符串 ,输,输入入项地址表项地址表 ) ;q依次按依次按格式要求格式要求输入数据并赋给对应的变量输入数据并赋给对应的变量.q格式符组成形式:格式符组成形式:q输入项地址表:输入项地址表: &变量变量1,&am

20、p;变量变量2, &变量变量3n说明说明q以以空格空格/回车回车/TAB/非法输入非法输入作为作为每项数据输入的结束。每项数据输入的结束。q格式串中的格式串中的非格式字符要求原样输入非格式字符要求原样输入。% 格式字符格式字符scanf(%d %d, )输入应为:输入应为: 3 4 若输入若输入3 4则则a、b数据错误!数据错误!scanf(%d %d,)输入应为:输入应为:3,4 若输入若输入3 4则则b错误!错误!第第2章章 用用C语言编写程序语言编写程序主要内容主要内容温度值转换温度值转换计算分段函数计算分段函数输出华氏输出华氏-摄氏温度转换表摄氏温度转换表生成乘方表与阶乘表生成

21、乘方表与阶乘表输出华氏输出华氏-摄氏温度转换表摄氏温度转换表n问题:输入华氏温度的取值范围问题:输入华氏温度的取值范围lower, upper,输出华氏摄氏,输出华氏摄氏温度转换表,每次增加温度转换表,每次增加1度。度。n程序程序#include void main() int hs,lower,upper; printf(输入华氏温度范围输入华氏温度范围a,b: ); scanf(%d,%d,&lower,&upper); printf(华氏温度华氏温度 - 摄氏温度摄氏温度n); for(hs=lower ; hs=upper ; hs+) printf(%8d - %8.

22、1fn,hs, );hs+ 等价于等价于 hs=hs+1表达式表达式2 2表达式表达式1 1循环体语句循环体语句表达式表达式3 3for循环语句循环语句n语句一般形式语句一般形式qfor(表达式表达式1 ; 表达式表达式2 ; 表达式表达式3) 循环体语句循环体语句n执行流程执行流程表达式表达式2 2表达式表达式1 1循环体语句循环体语句非非0 00表达式表达式3 3循环变量值修改循环变量值修改循环变量赋初值循环变量赋初值循环控制条件循环控制条件一条语句一条语句1234; /空语句空语句一条简单或复合语句一条简单或复合语句n程序程序#include void main() int hs,low

23、er,upper; printf(输入华氏温度范围输入华氏温度范围a,b: ); scanf(%d,%d ,&lower,&upper); printf(华氏温度华氏温度 - 摄氏温度摄氏温度n); for(hs=lower ; hs=upper ; hs+) printf(%8d - %8.1fn,hs, );5.0/9*(hs-32)输出华氏输出华氏-摄氏温度转换表摄氏温度转换表按照固定按照固定8位宽度显示位宽度显示hs=upperhs=lowerprintf()hs+n程序程序#include void main() int hs,lower,upper; printf(

24、输入华氏温度范围输入华氏温度范围a,b: ); scanf(%d,%d,&lower,&upper); printf(华氏温度华氏温度 - 摄氏温度摄氏温度n); for(hs=lower ; hs=upper ; hs+) printf(%8d - %8.1fn,hs, ); 输出华氏输出华氏-摄氏温度转换表摄氏温度转换表double ss;ss = 5.0/9*(hs-32);ss 例题:计算例题:计算1-1/3+1/5-1/7前前n项的和。项的和。n分析分析q求前求前n项和,每次累加项和,每次累加1项,则需要项,则需要循环循环n次次;q设设循环变量循环变量 i, i 表示

25、循环的次数,表示循环的次数,s表示累加和,则循环用表示累加和,则循环用for语句可表示为:语句可表示为: for(i=1;i=n;i+) s=s+第第i项项;q设第设第i项为项为item,将累加项的,将累加项的符号单独考虑符号单独考虑,设为,设为flag,则:,则:item=flag*1.0/deno;q因每项的符号正负交替变化,第因每项的符号正负交替变化,第1项为正,则项为正,则flag=1;每次每次循环执行循环执行flag=-1*flag使之反号,使之反号,deno表示每一项的分母,表示每一项的分母,第第1项为项为1,每次循环递增,每次循环递增2,即:,即:deno=deno+2;q也可以

26、通过也可以通过deno与与i之间的关系来确定之间的关系来确定deno的变化规律,的变化规律,表示成表达式即为:表示成表达式即为:deno = 2*i 1;例题:计算例题:计算1-1/3+1/5-1/7前前n项的和。项的和。n算法流程图算法流程图定义定义s=0,n,i,flag,deno输入输入ni=1, flag=1, deno=1;i = ns=s+flag*(1.0/deno)flag = -1* flagi = i+1输出输出sdeno = deno + 2n程序程序#include void main() int n, i, flag , deno;double s=0.0;scanf

27、(%d,&n);flag=1 , deno=1 ;printf(s=%lfn, s);for( i=1 ; i=n ; i+ ) s=s+flag*1.0 / deno; flag= -1* flag; deno = deno +2; (2*i-1);n程序程序#include void main() 例题:计算例题:计算1-1/3+1/5-1/7前前n项的和。项的和。int n,i,flag;double s=0.0;printf(输入输入n:);scanf(%d,&n);flag=1;printf(s=%lfn, s);for( i=1 ; i=2*n-1 ; ) s=s+

28、flag * ( ); flag= -flag; n算法流程图算法流程图定义定义s=0,n,i,flag输入输入ni=1,flag=1;i = 2*n-1i =i+2输出输出ss=s+flag* 1.0 / iflag = - flag1.0 / ii=i+2课堂练习:课堂练习:2-15(P38)n程序程序#include int main() int n, i, flag = 1; double s=0.0; printf(输入输入n:); scanf(%d,&n); for( i=1 ; i=n; i+ ) s=s+flag*(1.0/(3*i-2); flag= -flag; p

29、rintf(s=%lfn, s); return 0;#include void main() int n, i, flag=1, item = 1; double s=0.0; printf(输入输入n:); scanf(%d,&n); for( i=1 ; i=n; i+ ) s=s+flag*(1.0/item); flag= -flag; item=item+3; printf(s=%lfn, s);第第2章章 用用C语言编写程序语言编写程序主要内容主要内容温度值转换温度值转换计算分段函数计算分段函数输出华氏输出华氏-摄氏温度转换表摄氏温度转换表生成乘方表与阶乘表生成乘方表与阶乘表生成乘方表与阶乘表生成乘方表与阶乘表n问题问题1:输入正整数:输入正整数n,调用,调用pow()函数生成函数生成2的乘方表的乘方表n程序程序#include void main() int i,n; double power; printf(输入输入n: ); scanf(%d,&n); for(i=0 ; i=n ; i+) power=pow(2,i); printf(pow(2,%d)=%.0fn, i, power ); /pow(x,y) : 求求xy的库函数的库函数#include /数学函数库头文件数学函数库头文件常用数学库函数常用数学库

温馨提示

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

评论

0/150

提交评论