在屏幕上显示Hell.ppt_第1页
在屏幕上显示Hell.ppt_第2页
在屏幕上显示Hell.ppt_第3页
在屏幕上显示Hell.ppt_第4页
在屏幕上显示Hell.ppt_第5页
已阅读5页,还剩36页未读 继续免费阅读

下载本文档

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

文档简介

2.1 在屏幕上显示Hello World 第2章 用C语言编写程序 用算例尽快进入编程 例2-1 在屏幕上显示一个短句: Hello World /* 显示“Hello World!” */ #include void main( ) printf(“Hello World! n“); 主函数 注释文本 调用输出函数 预编译 程序中涉及语法点: printf由库函数stdio.h解释 其参数:“字符串“,显示字符串 n 换行符 函数后的“;”表示函数语句 要求在屏幕上显示文字: printf(“要显示的文字“); 学习方法:阅读、模仿、改写-编写 1 例2-2 在屏幕上显示: Programming is fun! And 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的使用 源程序: 2 2.2 求华氏温度100F对应的摄氏温度 例2-3 求华氏温度100F 对应的摄氏温度计算公式 其中C为摄氏温度,F为华氏温度 2.2.1 程序解析 #include void main( ) int celsius, fahr; /*变量定义*/ fahr=100; /*常量赋值于变量*/ celsius=5*(fahr-32)/9; /*表达式赋值于变量*/ printf(“fahr=%d,celsius=%dn“,fahr,celsius); /*输出结果*/ 输出: fahr=100, celsius=37 程序中涉及语法点: 常量、变量和数据类型 运算符、表达式 输出变量的值 3 例2-3 程序中 celsius = 5*(fahr-32)/9; 2.2.2 常量、变量和数据类型 其中 5、32 、9 为常量 1.常量 常量:在程序运行过程中,其值不会被改变 常量分数据类型,由书写格式确定 整型:不带小数点的数,即整数 例 100、-10、5、0 实型:带小数点的数 例 123.45、-0.54321 4 2.变量 变量:在程序运行过程中,其值可以被改 例2-3 程序中 int celsius, fahr; celsius = 5 * (fahr - 32) / 9; 其中 celsius 、 fahr为变量 变量定义的一般形式: 类型名 变量名表; 使用变量必须要定义。 注:double型数据比float精度高(取值范围大 ,有效位数多) 例如: int celsius, fahr; 定义整型变量,存放整数 float _x; 定义单精度浮点型变量,存放实数 double a1, b2; 定义双精度浮点型变量,存放实数 5 变量取名,按标识符取名,一般用小写字母,见名知义 定义变量做了3件事:变量取名、确定数据类型、分配内存 标识符: 规定由字母、数字以及下划线组成, 第一个字符必须是字母或下划线。 数据类型,由类型关键字确定,同时也确定数据的表示范围 int -32768 32767 或 -2147483648 2147483648 float -10-381038 有效位数78 位 double -10-30810308 1516位 分配内存,对定义的每一个变量分配对应的存储单元 celsiusfahr 而 fahr=100; 表示100存入fahr变量的存储单元 即 fahr 100 例如, celsius, fahr,_x,a1,b1是标识符;而c1,b-a,2b不是标识符 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); 7 2.2.3 算术运算和赋值运算 例2-3 程序中 fahr=100; celsius=5*(fahr-32)/9; 赋值运算 1.算术运算 + - 加 减 双目运算 4级 从左到右 * / % 乘 除 取余 双目运算 3级 从左到右 先算术运算,后赋值运算 计算通过表达式实现 表达式:用运算符将运算对象及括弧按语法规则连接起来的式子 例 数学式 C表达式 5*(fahr-32)/9 (-b+sqrt(b*b-4*a*c)/2/a 注:函数sqrt(x)计算,括弧改变计算顺序 8 注 整/整是取整 如 -5/3=-1 1/3=0 取余%的两边运算对象必须是整型 如 565 10040 a%b 则 int a,b; +、- 又可作为正、负运算符 + - 正 负 单目运算 2级 从左到右 如 -10+10 ?5*(fahr-32)/9 和 5/9*(fahr-32) 等价吗 9 2.赋值运算 格式 变量 = 表达式 例 fahr=100; celsius=5*(fahr-32)/9; 操作 计算赋值运算符右侧表达式的值 将赋值运算符右侧表达式的值赋给左侧的变量 注: = 是 赋值符,而不是等号 变量 = 表达式;称之赋值语句 赋值运算符: = 14级 从右到左 赋值语句表达计算公式 x1=(-b+sqrt(b*b-4*a*c)/2/a; 10 2.2.4 格式化输出函数printf( ) 例2-3 程序中 printf(“fahr=%d, celsius=%dn“, fahr, celsius); 格式 printf(格式控制,输出表列); 其中 格式控制是由双引号括起来的字符串,包括两种信息 (1)普通字符 照原样输出字符 或 转义符 如 fahr= celsius= 例2-1 printf(“Hello World! n“); 中 Hello World! n 是普通字符 按指定的格式输出数据,格式控制字符与被输出的数据类型有关 int型: %d float、double型: %f 或 %.nf %m.nf (2)格式说明 %格式控制符 保留小数位 6位 n位 整个数占m位 11 输出表列是输出的数据 ,可以是常数、变量和表达式, 每个输 出数据之间用逗号分隔。 如 printf(“%f %f %f “,123.45,x,2*a+b); printf(“fahr = %d, celsius = %dn“, fahr, celsius); 操作 将输出表列中的数据按格式说明在显示屏输出 例2-3 程序中 fahr=100; celsius=5*(fahr-32)/9; printf(“fahr = %d, celsius = %dn“, fahr, celsius); 注:%格式控制符与输出数据的个数、类型、位置必须一一对应 输出表列 12 #include void main( ) int celsius, fahr; /*变量定义*/ fahr=100; /*常量赋值于变量*/ celsius=5*(fahr-32)/9; /*表达式赋值于变量*/ printf(“fahr = %d, celsius = %dn“, fahr, celsius); /*输出结果*/ 输出:fahr =100, celsius = 37 例2-3 求华氏温度对应的摄氏温度 程序缺陷:无通用性 只能求出fahr=100时的摄氏温度 13 #include void main( ) int celsius, fahr; scanf(“%d“, /*用键盘键入数据赋值于变量*/ celsius=5*(fahr-32)/9; printf(“fahr=%d,celsius=%dn“,fahr,celsius); 改变例2-3 求华氏温度对应的摄氏温度 运行程序: 键入: 100 输出: fahr=100,celsius=37 键入: 120 输出: fahr=120,celsius=48 14 2.2.5 格式化输入函数 scanf() 格式 scanf(格式控制,地址表列); 地址列表是输入数据存入内存的地址,可以是变量的地址,每 个内存地址之间用逗号分隔。 格式控制是用双引号括起来的字符串, 字符串由格式说明和普通字符构成 怎么知道变量的地址?利用地址运算符求出变量的地址 格式 则 float b; scanf(“%d%f“, 格式说明由%和格式字符构成,与数据类型有关 int型 %d float型 %f double型 %lf 15 普通字符,在输入数据时需要原样输入的字符 例 scanf(“x=%f“, 输入数据时, x=2.5 x=必须照原样输入 操作 将键盘键入的数据按指定类型格式存入指定内存存储单元 #include void main() int a,b,c; scanf(“%d%d%d“, printf(“%d,%d,%dn“,a,b,c); 例 格式控制 地址表列 运行 输入 3 4 5 输出 3,4,5 一般 普通字符作为输入数据之间的分隔符使用。如 , 空格 例 scanf(“%d,%f“, 输入数据时 10,12.5 无普通字符时输入数据之间用空格分隔符 例 scanf(“%d%f“, 输入数据时 10 12.5 16 在格式说明中无普通字符时,键入数据之间可用空格、或 分隔,即多各空格分割,上例输入可改为 3 4 5 一个跳8个空格 或 3 4 5 在格式说明中用了普通字符,则普通字符作为数据之间的分隔符 如上例改用输入函数scanf()为 scanf(“%d,%d,%d“, 输入则为 3,4,5 scanf(“a=%d, b=%d,c=%d“, 输入则为 a=3,b=4,c=5 由此可见,为了减少不必要的输入,在scanf()函数的格式控制中 尽量不要出现普通字符。 注 %格式控制符与输入数据的个数、类型、位置必须一一对应 例 scanf(“%d%d%d“, 17 对一般简单程序编程算法 1.输入已知值 2.按计算公式求值 3.输出结果 例 求二元一次方程 ax2+bx+c=0的实根 已知b*b-4ac0。 分析 已知b*b-4ac0 则实根为 算法 1.输入已知值a,b,c 2.代入公式求x1,x2 3.输出x1,x2 程序 #include “stdio.h“ #include “math.h“ void main() float a,b,c,x1,x2; scanf(“%f,%f,%f“, x1=-b/(2*a)+sqrt(b*b-4*a*c)/(2*a); x2 =-b/(2*a)-sqrt(b*b-4*a*c)/(2*a); printf(“x1=%f x2=%fn“,x1,x2); 喔!编程原来 这么简单! 顺序结构 18 2.2.6 常用数学库函数 库函数 C语言系统提供事先编好的函数,供用户在编程时调用。 如 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 19 例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“, sum = money * pow(1+rate, year); printf(“sum = %.2f“, sum); input money, year and rate: 1000 3 0.025 sum = 1076.89 20 2.3 计算分段函数 例2-4 输入x,求分段函数 f(x) 的值,保留2位小数。 2.3.1 程序解析 #include void main( ) double x,y; printf(“input x(x0): n“); scanf(“%lf“, if(x0): 9.5 y=f(9.500000)=12.67 input x(x0): 21.3 y=f(21.300000)=42.75 输入x x15 y=4/3*xy=2.5x-10.5 输出y 分支结构 假 真 程序中新语法点: x 大于 = 大于或等于 = 等于 != 不等于 6级 7级 从左到右 双目运算 6种关系符 2.关系表达式 格式 用关系运算符将2个表达式连接起来式子 操作 关系表达式将两边的表达式的值进行比较得到 逻辑值 1 为真 0 为假 例 x void main( ) float x, y; printf(“input x: n“); scanf(“%f“, if(x!=0) y=1/x; else y=0; printf(“f(%.2f)=%.1fn“, x, y); input x: 2.5 f(2.50)=0.4 将if(x!=0)改为 if(x),运行结果相同 说明:if(表达式)中的表达式可以是任意表达式 表达式的值非0为真,0为假 24 注:当ifelse语句中语句2不存在允许else缺省 格式 if(表达式) 语句1 表达式 语句1 1 0 #include void main( ) float x, y; printf(“input x: n“); scanf(“%f“, y=0; if(x!=0) y=1/x; printf(“f(%.2f)=%.1fn“, x, y); 输入x x!=0 y=1/x y=0 输出y 假 真 例,改写上例 25 例例 输入两个实数,按小大次序输出 ab 输入a,b 1 0 t=a a=b b=t 输出a,b #include void main() float a,b,t; scanf(“%f,%f“, if(ab) t=a;a=b;b=t; printf(“%7.2f,%7.2f“,a,b); 注 不能写成if(ab) t=a;a=b;b=t; 26 例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; printf(“%3.0f %6.1fn“,fahr,celsius); 运行得表的第一行数据 例2-3程序 2.4.1 循环概念 27 #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“,fahr,celsius); fahr=_; celsius=5*(fahr-32)/9; printf(“%3.0f %6.1fn“,fahr,celsius); 重复 30、31、 、35 28 fahr=_; celsius=5*(fahr-32)/9; printf(“%3.0f %6.1fn“,f

温馨提示

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

评论

0/150

提交评论