在屏幕上显示HelloWorld.ppt

上传人:sccc 文档编号:5807990 上传时间:2023-08-22 格式:PPT 页数:41 大小:666.09KB
返回 下载 相关 举报
在屏幕上显示HelloWorld.ppt_第1页
第1页 / 共41页
在屏幕上显示HelloWorld.ppt_第2页
第2页 / 共41页
在屏幕上显示HelloWorld.ppt_第3页
第3页 / 共41页
在屏幕上显示HelloWorld.ppt_第4页
第4页 / 共41页
在屏幕上显示HelloWorld.ppt_第5页
第5页 / 共41页
点击查看更多>>
资源描述

《在屏幕上显示HelloWorld.ppt》由会员分享,可在线阅读,更多相关《在屏幕上显示HelloWorld.ppt(41页珍藏版)》请在三一办公上搜索。

1、1,2.1 在屏幕上显示Hello World,第2章 用C语言编写程序,用算例尽快进入编程,例2-1 在屏幕上显示一个短句:Hello World,/*显示“Hello World!”*/#include void main()printf(Hello World!n);,主函数,注释文本,调用输出函数,预编译,程序中涉及语法点:printf由库函数stdio.h解释 其参数:字符串,显示字符串 n 换行符 函数后的“;”表示函数语句要求在屏幕上显示文字:printf(要显示的文字);,学习方法:阅读、模仿、改写-编写,2,例2-2 在屏幕上显示:Programming is fun!And

2、 Programming in C is even more fun!,#include void main()printf(Programming is fun!n);printf(And Programming in C is even more fun!n);,根据要求在屏幕上显示文字:printf(要显示的文字);,注:换行符n的使用,源程序:,3,2.2 求华氏温度100F对应的摄氏温度,例2-3 求华氏温度100F 对应的摄氏温度计算公式 其中C为摄氏温度,F为华氏温度,2.2.1 程序解析,#include void main()int celsius,fahr;/*变量定义*/

3、fahr=100;/*常量赋值于变量*/celsius=5*(fahr-32)/9;/*表达式赋值于变量*/printf(fahr=%d,celsius=%dn,fahr,celsius);/*输出结果*/,输出:fahr=100,celsius=37,程序中涉及语法点:常量、变量和数据类型 运算符、表达式 输出变量的值,4,例2-3 程序中celsius=5*(fahr-32)/9;,2.2.2 常量、变量和数据类型,其中 5、32、9 为常量,1.常量,常量:在程序运行过程中,其值不会被改变,常量分数据类型,由书写格式确定,整型:不带小数点的数,即整数 例 100、-10、5、0,实型:带

4、小数点的数 例 123.45、-0.54321,5,2.变量,变量:在程序运行过程中,其值可以被改,例2-3 程序中int celsius,fahr;celsius=5*(fahr-32)/9;,其中 celsius、fahr为变量,变量定义的一般形式:类型名 变量名表;,使用变量必须要定义。,注:double型数据比float精度高(取值范围大,有效位数多),例如:int celsius,fahr;定义整型变量,存放整数float _x;定义单精度浮点型变量,存放实数double a1,b2;定义双精度浮点型变量,存放实数,6,变量取名,按标识符取名,一般用小写字母,见名知义,定义变量做了3

5、件事:变量取名、确定数据类型、分配内存,标识符:规定由字母、数字以及下划线组成,第一个字符必须是字母或下划线。,数据类型,由类型关键字确定,同时也确定数据的表示范围 int-32768 32767 或-2147483648 2147483648 float-10-381038 有效位数78 位 double-10-30810308 1516位,分配内存,对定义的每一个变量分配对应的存储单元,celsius,fahr,而 fahr=100;表示100存入fahr变量的存储单元,即 fahr,100,例如,celsius,fahr,_x,a1,b1是标识符;而c1,b-a,2b不是标识符,7,注:

6、C语言中的变量与数学上的符号含义不同,例 x=x+1,数学上无意义,C语言表示把x变量存储单元的值取出加1,然后再保存到x变量存储单元中,变量必须先定义,后使用。定义位置在程序的开始,应该先赋值,后引用,#include void main()int celsius,fahr;fahr=100;celsius=5*(fahr-32)/9;printf(fahr=%d,celsius=%dn,fahr,celsius);,8,2.2.3 算术运算和赋值运算,例2-3 程序中fahr=100;celsius=5*(fahr-32)/9;,赋值运算,1.算术运算,+-加 减 双目运算 4级 从左到右

7、*/%乘 除 取余 双目运算 3级 从左到右,先算术运算,后赋值运算,计算通过表达式实现,表达式:用运算符将运算对象及括弧按语法规则连接起来的式子,例 数学式 C表达式,5*(fahr-32)/9,(-b+sqrt(b*b-4*a*c)/2/a,注:函数sqrt(x)计算,括弧改变计算顺序,9,注 整/整是取整 如-5/3=-1 1/3=0,取余%的两边运算对象必须是整型 如 565 10040 a%b 则 int a,b;,+、-又可作为正、负运算符+-正 负 单目运算 2级 从左到右 如-10+10,?5*(fahr-32)/9 和 5/9*(fahr-32)等价吗,10,2.赋值运算,格

8、式 变量=表达式,例 fahr=100;celsius=5*(fahr-32)/9;,操作 计算赋值运算符右侧表达式的值 将赋值运算符右侧表达式的值赋给左侧的变量,注:=是 赋值符,而不是等号 变量=表达式;称之赋值语句,赋值运算符:=14级 从右到左,赋值语句表达计算公式,x1=(-b+sqrt(b*b-4*a*c)/2/a;,11,2.2.4 格式化输出函数printf(),例2-3 程序中printf(fahr=%d,celsius=%dn,fahr,celsius);,格式 printf(格式控制,输出表列);,其中 格式控制是由双引号括起来的字符串,包括两种信息(1)普通字符 照原样

9、输出字符 或 转义符 如 fahr=celsius=例2-1 printf(Hello World!n);中 Hello World!n是普通字符,按指定的格式输出数据,格式控制字符与被输出的数据类型有关,int型:%dfloat、double型:%f 或%.nf%m.nf,(2)格式说明%格式控制符,保留小数位 6位 n位 整个数占m位,12,输出表列是输出的数据,可以是常数、变量和表达式,每个输出数据之间用逗号分隔。如 printf(“%f%f%f“,123.45,x,2*a+b);,printf(fahr=%d,celsius=%dn,fahr,celsius);,操作 将输出表列中的数

10、据按格式说明在显示屏输出,例2-3 程序中 fahr=100;celsius=5*(fahr-32)/9;printf(fahr=%d,celsius=%dn,fahr,celsius);,注:%格式控制符与输出数据的个数、类型、位置必须一一对应,输出表列,13,#include void main()int celsius,fahr;/*变量定义*/fahr=100;/*常量赋值于变量*/celsius=5*(fahr-32)/9;/*表达式赋值于变量*/printf(fahr=%d,celsius=%dn,fahr,celsius);/*输出结果*/,输出:fahr=100,celsius

11、=37,例2-3 求华氏温度对应的摄氏温度,程序缺陷:无通用性 只能求出fahr=100时的摄氏温度,14,#include void main()int celsius,fahr;scanf(%d,改变例2-3 求华氏温度对应的摄氏温度,运行程序:键入:100 输出:fahr=100,celsius=37键入:120 输出:fahr=120,celsius=48,15,2.2.5 格式化输入函数 scanf(),格式 scanf(格式控制,地址表列);,地址列表是输入数据存入内存的地址,可以是变量的地址,每个内存地址之间用逗号分隔。,格式控制是用双引号括起来的字符串,字符串由格式说明和普通字

12、符构成,怎么知道变量的地址?利用地址运算符求出变量的地址 格式&变量名,例 int a,b;则&a,&b 表示取a,b变量的地址,例 int a;float b;scanf(%d%f,格式说明由%和格式字符构成,与数据类型有关 int型%d float型%f double型%lf,16,普通字符,在输入数据时需要原样输入的字符 例 scanf(x=%f,输入数据时,x=2.5 x=必须照原样输入,操作 将键盘键入的数据按指定类型格式存入指定内存存储单元,#include void main()int a,b,c;scanf(%d%d%d,例,格式控制,地址表列,运行 输入 3 4 5 输出 3

13、,4,5,一般 普通字符作为输入数据之间的分隔符使用。如,空格 例 scanf(%d,%f,输入数据时 10,12.5,无普通字符时输入数据之间用空格分隔符 例 scanf(%d%f,输入数据时 10 12.5,17,在格式说明中无普通字符时,键入数据之间可用空格、或分隔,即多各空格分割,上例输入可改为,3 4 5 一个跳8个空格,或 3 4 5,在格式说明中用了普通字符,则普通字符作为数据之间的分隔符 如上例改用输入函数scanf()为 scanf(%d,%d,%d,输入则为 a=3,b=4,c=5,由此可见,为了减少不必要的输入,在scanf()函数的格式控制中尽量不要出现普通字符。,注%

14、格式控制符与输入数据的个数、类型、位置必须一一对应,例 scanf(%d%d%d,18,对一般简单程序编程算法,1.输入已知值2.按计算公式求值3.输出结果,例 求二元一次方程,ax2+bx+c=0的实根已知b*b-4ac0。,分析 已知b*b-4ac0 则实根为,算法1.输入已知值a,b,c2.代入公式求x1,x23.输出x1,x2,程序#include stdio.h#include math.hvoid main()float a,b,c,x1,x2;scanf(%f,%f,%f,喔!编程原来这么简单!,顺序结构,19,2.2.6 常用数学库函数,库函数C语言系统提供事先编好的函数,供用

15、户在编程时调用。如 scanf(),printf(),sqrt(),平方根函数 sqrt(x):指数函数 exp(x):ex 绝对值函数 fabs(x):|x|以e为底的对数函数 log(x):ln(x)幂函数 pow(x,n):xn 以10为底的对数函数 log10(x):log10(x),常用数学库函数,函数调用格式 函数名(参数),例 1.12 pow(1.1,2)e2.3 exp(2.3),注:参数的个数、类型一致,#include命令用户调用库函数时,将相应的头文件包含到源程序中。例 调用scanf(),printf(),需要#include 调用sqrt(),需要#include,

16、20,例2-5 输入存款金额 money、存期 year 和年利率 rate,根据公式计算存款到期时的本息合计sum(税前),输出时保留2位小数。sum=money(1+rate)year,使用xypow(x,y)函数 sum=money*pow(1+rate,year),#include#include void main()int money,year;double rate,sum;printf(input money,year and rate:n);scanf(%d%d%lf,input money,year and rate:1000 3 0.025sum=1076.89,21,2

17、.3 计算分段函数,例2-4 输入x,求分段函数 f(x)的值,保留2位小数。,2.3.1 程序解析,#include void main()double x,y;printf(input x(x0):n);scanf(%lf,运行input x(x0):9.5y=f(9.500000)=12.67input x(x0):21.3y=f(21.300000)=42.75,程序中新语法点:x=15 关系运算if(x=15)y=4*x/3;else y=2.5x-10.5;ifelse语句,22,2.3.2 关系运算,1.关系运算符,大于=大于或等于=等于!=不等于,6级,7级,从左到右 双目运算

18、,6种关系符,2.关系表达式格式,用关系运算符将2个表达式连接起来式子,操作 关系表达式将两边的表达式的值进行比较得到 逻辑值 1 为真 0 为假,例 x=1,当x=0.5,1,当x=2.4,0,23,关系表达式用途:描述简单的条件判断,例 判断 x 是否为负数 x0 判断 x 是否不为零 x!=0,2.3.3 ifelse语句,格式 if(表达式)语句1 else 语句2,表达式,语句1,语句2,1,0,操作 当表达式的值为1(真),执行语句1,否则执行语句2,表达式 可以是关系表达式,语句i 单个语句或复合语句 复合语句:语句1;语句2;,24,例 输入x,求分段函数f(x)的值,保留1位

19、小数。,输入x,x!=0,y=1/x,y=0,输出y,假,真,#include void main()float x,y;printf(input x:n);scanf(%f,input x:2.5f(2.50)=0.4,将if(x!=0)改为 if(x),运行结果相同,说明:if(表达式)中的表达式可以是任意表达式 表达式的值非0为真,0为假,25,注:当ifelse语句中语句2不存在允许else缺省,格式 if(表达式)语句1,表达式,语句1,1,0,#include void main()float x,y;printf(input x:n);scanf(%f,26,例 输入两个实数,按

20、小大次序输出,#include void main()float a,b,t;scanf(%f,%f,注 不能写成if(ab)t=a;a=b;b=t;,27,例2-6 输出一张华氏摄氏温度转换表,将华氏温度从3035F之间的每一度,分别转换成相应的摄氏温度并输出。,fahr celsius 30-1.1 31-0.6 32 0.0 33 0.6 34 1.1 35 1.7,2.4 输出华氏摄氏温度转换表,#include void main()float celsius,fahr;printf(fahr celsiusn);fahr=30;celsius=5*(fahr-32)/9;print

21、f(%3.0f%6.1fn,fahr,celsius);,运行得表的第一行数据,例2-3程序,2.4.1 循环概念,28,#include void main()float celsius,fahr;printf(fahr celsiusn);fahr=30;celsius=5*(fahr-32)/9;printf(%3.0f%6.1fn,fahr,celsius);fahr=31;celsius=5*(fahr-32)/9;printf(%3.0f%6.1fn,fahr,celsius);fahr=35;celsius=5*(fahr-32)/9;printf(%3.0f%6.1fn,fah

22、r,celsius);,fahr=_;celsius=5*(fahr-32)/9;printf(%3.0f%6.1fn,fahr,celsius);,重复,30、31、35,29,fahr=_;celsius=5*(fahr-32)/9;printf(%3.0f%6.1fn,fahr,celsius);,重复,30、31、45,第一次 fahr=30,第二次 fahr=31,改写 fahr=fahr+1,第三次 fahr=32,同理 fahr=fahr+1,第六次 fahr=35 同理 fahr=fahr+1,fahr=30,celsius=5*(fahr-32)/9;printf(%3.0f

23、%6.1fn,fahr,celsius);fahr=fahr+1;,fahr=35,真,假,goto,无条件转移 格式 goto 语句标号;其中,语句标号用标识符命名.,停,30,#include void main()float celsius,fahr;fahr=30;printf(fahr celsiusn);loop:if(fahr=35)celsius=5*(fahr-32)/9;printf(%3.0f%6.1fn,fahr,celsius);fahr=fahr+1;goto loop;else;/*可省略*/,注goto语句与if语句配合使用构成循环结构,goto破坏程序的结构,

24、可读性差,少用或不用。,构成循环的要素:循环体条件判断进入每次循环的准备,循环体,条件判断,循环前准备,下次循环前准备,循环结构 根据条件的判断对某一段程序重复执行,31,2.4.2 for语句,格式 for(表达式1;表达式2;表达式3)语句,其中 语句是一个语句或复合语句,循环体 表达式1进入循环之前求值,为进入循环作准备 表达式2 是条件,求值得真(非0)做循环,假(0)退出循环 表达式3 做一次循环后,求值,为进下一次入循环作准备,操作(1)做表达式1(2)求表达式2,若真(非0)做内嵌语句,然后做(3);若假(0)终止for循环。(3)做表达式3;转到(2),loop:表达式1;if

25、(表达式2)语句;表达式3;goto loop;,等价于,32,例2-6 输出一张华氏摄氏温度转换表,,#include void main()float celsius,fahr;printf(fahr celsiusn);for(fahr=30;fahr=35;fahr=fahr+1)celsius=5*(fahr-32)/9;printf(%3.0f%6.1fn,fahr,celsius);,fahr=30,celsius=5*(fahr-32)/9;printf(%3.0f%6.1fn,fahr,celsius);fahr=fahr+1;,fahr=35,真,假,停,表达式1,表达式2

26、,表达式3,循环体,for书写顺序和执行顺序不同 隐含循环,33,注:循环体是复合语句,for(fahr=30;fahr=35;fahr=fahr+1)celsius=5*(fahr-32)/9;printf(%3.0f%6.1fn,fahr,celsius);,for(fahr=30;fahr=35;fahr=fahr+1)celsius=5*(fahr-32)/9;printf(%3.0f%6.1fn,fahr,celsius);,循环体空语句,for(fahr=30;fahr=35;fahr=fahr+1);celsius=5*(fahr-32)/9;printf(%3.0f%6.1fn

27、,fahr,celsius);,?,?,34,即 求 1+2+3+4+.+100,可以直接使用赋值语句 s=1+2+3+4+.+100;但语句太长,改写为 s=0;s=s+1;s=s+2;.s=s+100;,同一计算步骤,s=s+ii=1,2,3,.,100计算前s=0,s=0,i=1,i100,s=s+i,i=i+1,输出s,流程图,根据i100条件,重复执行s=s+i;i=i+1程序段100次,但语句太多,非0,0,例2-7,表达式1,表达式2,表达式3,循环体,35,#include stdio.hvoid main()int i,s;s=0;for(i=1;i=100;i=i+1)s=

28、s+i;printf(s=%dn,s);,程序,s=0,i=1,i100,s=s+i,i=i+1,输出s,流程图,非0,0,表达式1,表达式2,表达式3,循环体,格式 for(表达式1;表达式2;表达式3)语句,运行 输出 s=5050,36,2.4.3 指定次数的循环程序设计,for(表达式1;表达式2;表达式3)语句,表达式2,语句,非0,0,表达式1,表达式3,要用循环次数控制循环,引入概念循环变量、初值、终值、增量,#include stdio.hvoid main()int i,s;s=0;for(i=1;i=100;i=i+1)s=s+i;printf(s=%dn,s);,例2-7

29、中,循环变量,初值,终值,增量,i=100,语句,非0,0,i=1,i=i+1,表达式1,表达式2,表达式3,当增量为1,循环变量作为循环次数控制循环,37,#include int main(void)int repeat,ri;int x,y;scanf(%d,实验题的测试循环输入一个整数 x,计算并输出下列分段函数 sign(x)的值。,38,例 求,分析,s=0;i=1,s=s+1 i=2,s=s+1/3;i=3,s=s+1/5.i=n,s=s+1/(2n-1);,s=s+1/(2*i-1)i=1,2,3,.,n循环前 s=0,i=n,s=s+1/(2*i-1),非0,0,i=1,i=

30、i+1,s=0,#include void main()int i,n;double s;scanf(%d,i增量为1循环次数控制循环,输入n,循环变量,初值,终值,增量,前n项之和,39,例 求,分析,s=s+1/ii=1,3,5,.,n循环前 s=0,i=n,s=s+1/i,非0,0,i=1,i=i+2,s=0,循环变量i、初值1、终值n、增量2,#include void main()int i,n;double s;scanf(%d,i增量为2循环变量的值控制循环,输入n,前n项之和,s=0;i=1,s=s+1 i=2,s=s+1/3;i=3,s=s+1/5.i=n,s=s+1/(2n

31、-1);,40,例2-8 求,前n项之和,多项式求和 s=s+item(通项),i=1,2,3,.,n,引入变量flag表示,s=sitem,i:1 2 3 4.flag:+1-1+1-1.item:1 1/3 1/5 1/7.,flag=1flag=-flagitem=flag*1/(2*i-1),#include void main()int i,n,flag;double item,s;scanf(%d,通项为1/(2*i-1),41,例2-9 求n!,即 1*2*3*4*n,改写为 s=1;s=s*2;.s=s*n;,同一计算步骤,s=s*ii=1,2,3,4,.,n循环前 s=1,#include void main()int i,n;double s;scanf(%d,多项式求积 s=s*item(通项),s=1;for(i=1;i=n;i=i+1)s=s*i;,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 建筑/施工/环境 > 农业报告


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号