最简单的C程序设计--顺序程序设计.ppt_第1页
最简单的C程序设计--顺序程序设计.ppt_第2页
最简单的C程序设计--顺序程序设计.ppt_第3页
最简单的C程序设计--顺序程序设计.ppt_第4页
最简单的C程序设计--顺序程序设计.ppt_第5页
已阅读5页,还剩39页未读 继续免费阅读

下载本文档

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

文档简介

C程序设计 第3章顺序程序设计 第3章 最简单的C程序设计-顺序程序设计 教学目标: 通过本章的学习要求学生了解C顺序程序设计的基本方 法;掌握C语言的基本数据类型;掌握常量和变量;掌握C语 言的常用运算符和常用的表达式的应用方法;掌握函数输入 输出语句的基本用法。 教学内容: 3.1 顺序程序设计 3.2 数的表现形式及其运算 3.3 C语句 3.4 数据的输入输出 Date1 C程序设计 第3章顺序程序设计 3.1 顺序程序设计举例 【例题3.1】有人用温度计测量出用华氏法表示的温度(如 690F)现要求将其转换为以摄氏法表示的温度(如200C)。 解题思路: 华氏温度 摄氏温度 有何关系 根据物理学知识知 : 摄氏温度C= 5 9 (华氏温度f-32) 因此: 通过键盘输入一个华氏温度值 根据转换关系进行运算(解决问题的方法即算法) 在显示器上输出摄氏温度值 Date2 C程序设计 第3章顺序程序设计 算法 算法是解决“做什么”和“怎么做”的问题,不要认为 只有“计算”的问题才有算法,广义地说为解决某一问题而 采用的方法和步骤。 算法的特性 有穷性:一个算法应有限的操作步骤而不能是无限的。 确定性:算法中的每一个步骤都应当是确定的。 有零个或多个输入:执行算法需要从外界取得必要信息 。 有一个或多个输出:将算法的结果打印在屏幕上。 有效性:每一个步骤应当有效地执行。 Date3 C程序设计 第3章顺序程序设计 算法表示 用自然语言表示算法 用流程图表示算法 用N-S图表示算法 用伪代码表示算法 用计算机语言表示算法 开始结束框 输入输出框 判断框 处理框 流程线 连接点 注释框 Date4 C程序设计 第3章顺序程序设计 例题3.1流程图及源程序 #include int main() float f,c; f=64.0; c=(5.0/9)*(f-32); printf(“f=%fnc=%fn”,f,c); return 0; Date5 C程序设计 第3章顺序程序设计 【例题3.2】计算存款利息。有1000元,想存一年。有三种 方法可选: 活期,年利率为r1;一年期定期,年利率 为r2;存两次半年定期,年利率r3。请分别计算出一年后 按3种方法所得到的本息和。 解题思路: 关键是本息和的计算公式。本息和=本金*(1+利率) 一年活期本息和=1000*(1+r1) 一年定期本息和=1000*(1+r2) 一年两次本息和=1000*(1+r3/2)*(1+r3/2) 具体的1000元一般P0元 抽象为 Date6 C程序设计 第3章顺序程序设计 因此: 通过键盘输入本金值 根据本息和公式计算(解决问题的方法即算法) 在显示器上输出3种方法的本息和 算法N-S图 : 依据N-S图编写源程序: Date7 C程序设计 第3章顺序程序设计 3.2 数据的表现形式及其运算 3.2.1 常量和变量 在程序运行过程中,其值不能被改变的量称为常量。 常量 整型常量:程序中用到1000。 实型常量:程序中用到利率。有十进制和指数两种 。 字符常量:普通字符用单撇括起来的单个字符;以 开头的字符序列。如:a;n。 字符串常量:用双撇括起来的字符序列如123。 符号常量:用#define命令来定义的符号所代表的一 个常量。如:#define pi 3.1415926。 Date8 C程序设计 第3章顺序程序设计 【例3.3】符号常量的使用。依据某商品的价格计算顾客购 买商品的件数应付的金额。 # define PRICE 30 #include int main() int num,total; num=20; total=num*PRICE; printf(“total=%dn”,total); return 0; /*定义价格为符号常量*/ /*输入输出包含的头文件*/ /*程序的主函数并从此处执行*/ /*定义两个变量*/ /*给变量num赋初值20*/ /*计算总金额*/ /*打印输出*/ Date9 C程序设计 第3章顺序程序设计 2 变量 变量 在程序中其值可改变的量,其属性是用一个或几个 存储单元来存储数据,变量名代表存储单元地址。 变量类型变量使用 整型变量 用int关键字来定义 实型变量 用float和double关键字来定义 字符型变量 用char关键字来定义 先定义,后使用;先赋值,后引用,变量 定义只能定义一次一般在程序的开头 变量名用C语言规定的标识符来表示 对变量赋值方式有:在定义时赋值即初始 化;用赋值语句赋值;用输入函数赋值 Date10 C程序设计 第3章顺序程序设计 3.标识符 在计算机高级语言中,用来对变量、符号常量名、函数、数 组及类型等命名的有效字符序列统称为标识符。 标识符命名规则: 只能由字母、数字和下划线3种字符组成,且第一个字 符必须是字母或下划线。 判断下列标识符是否合法: ¥123;price;_define;int;array;M.D.Jonh Date11 C程序设计 第3章顺序程序设计 3.2.2 数据类型 数学研究的数与计算机中的数的区别: 数学研究的数是抽象的,数值运算是绝对准确的。 计算机研究的数是具体的,受存储单元字节的限制。 如:1/3 对数学而言是循环小数;对计算机而言只能 是0.333333即近似值。 数据类型: 是对数据分配单元的安排,包括存储单元的长度及数据 存储形式。不同的类型分配不同的长度和存储形式。 Date12 C程序设计 第3章顺序程序设计 C语言允许的数据类型 C语言的数据类型 基本类型 枚举类型 空类型 enum void 派生类型 整型类型 浮点类型 基本类型 int 长整型long int 短整型 short int 字符型 char 单精度浮点型 float 双精度浮点型 double 复数浮点型 指针类型 * 数组类型 结构体 struct 共用体 union 函数类型 特点之一是数据类型丰富 Date13 C程序设计 第3章顺序程序设计 3.2.3 整型数据 整型数据 整型常量 整型变量 十进制整数:如:123、-456、6 八进制整数:以0开头如:0123、-011 十六进制整数:以0x开头如:0x123、0x47 数据在内存中均以二进制数补码形式存放。 基本整型,以int表示 短整型,以short int表示 长整型,以long int表示 双长整型,以long long int表示 有符号signed和无符号unsigned 在内存中所占字节数,TC为2B,VC为4B。且以补码表示 Date14 C程序设计 第3章顺序程序设计 数在计算机中的存放形式 整型数据在计算机中的存放是指在存储单元中的存储 形式用补码形式存放。 正数的补码同其原码相同。 负数的补码是求其正数的原码,然后按位取反,末位加1 。 如:+5和-5在计算机内存单元的存储形式如下: 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 符号位0:正;1:负 Date15 C程序设计 第3章顺序程序设计 【例3.4】十进制整数123的二进制数、八进制数、十六进制 数分别是多少? 123=1111011B 二进制数 =173 O 八进制数 =7B X 十六进制数 在程序中定义以下三个变量 int i=0173; int j=0x7b; int k=123; 在计算机的内存中的存放形式如何? 0 0 0 0 0 0 0 0 0 1 1 1 1 0 1 1 0173、0x7b和123表示的是同一个数,只是用的数制不同。 Date16 C程序设计 第3章顺序程序设计 【例3.5】分析下列程序的输出结果 # include int main( ) printf(“%d,%o,%xn”,10,10,10); printf(“%d,%d,%dn”,10,010,0x10); printf(“%d,%xn”,012,012); return 0; 10,12,a 10,8,16 10,a 对于%是输出格式控制符。且其后跟的d、o和x分别代表的 是十进制数、八进制数和十六进制数。即: %d:以十进制形式输入输出。 %o:以八进制形式输入输出。 %x:以十六进制形式输入输出。 Date17 C程序设计 第3章顺序程序设计 【例3.6】分析下列程序的输出结果 # include int main( ) int a,b; scanf(“%o%d”, printf(“%d%5dn”,a,b); printf(“%x,%dn”,a,b); return 0; 通过键盘输入 17 17 15 17 f,17 输入的两个17中前一个17计算机认定为八进制数,与在 输入时前是否加0无关。后一个17是十进制数。原因是由格 式控制符决定的。思考%5d的含义? 空5字符 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 Date18 C程序设计 第3章顺序程序设计 3.2.4 字符型数据 字符型数据 C语言中的字符常量是用单撇括起来的一个字符,字符 型变量是用来存放字符常量且只能存放一个字符常量。 字符常量 如A,a且它们是不同的两个字符 字符串常量是用一对双撇括起来的字符序列且以0 作结束标志。如“How do you do”的存放如下: 常量变量 用关键字char来定义 如:char c1; 占用内存空间为1B以字符的ASCII进行存储 如A字符 用格式符%c来输入输出 在ASCII范围内与整型数据互换 如c1=65; c1=A; 01000001 A的ASCII值是65 Howdo youdo 0 Date19 C程序设计 第3章顺序程序设计 #include void main( ) char c1,c2; c1=97; c2=a; printf(“%c %cn”,c1,c2); printf(“%d %dn”,c1,c2); 【例3.7】分析下列程序的输出结果 /*定义两个字符型变量c1,c2*/ /*对c1赋以整型数据97*/ /*对c2赋以字符常量a的ASCII值*/ %c指按字符 型格式输出 a a 97 97 在0-255范围内的整型数据可以和字符型相互转换。 %C:按字符型数据格式输出;%d:按整型数据格式输出 Date20 C程序设计 第3章顺序程序设计 3.2.5 浮点型数据 浮点型数据 C语言中的浮点数就是平时所说的实数。如:123.456 浮点型常量浮点型变量 十进制小数形式表示。必须有小数点。如:123.00 规范化指数形式表示。以e或E为底且前必有数字。 如:123.00表示为0.123E3。 在内存占用空间:TC中4B,VC中占更大且按指数形式存储。 数符 小数 指数 + .314159 1 单精度型float 有效数字6-7位。 双精度型double 有效数字15-16位 长双精度型long double 有效数字18-19位 种 类 定义 用关键字float double来定义 定义多个变量时用逗号分隔不得用分号Date21 C程序设计 第3章顺序程序设计 【例3.8】分析下列程序的执行结果 #include int main( ) float f=123.45; double d=3.1415926; printf(“%f,%en”,f,f); printf(“%f,%en”,d,d) ; printf(“%5.3f,%5.2f”,d,d) ; return 0; /*定义单精度型变量f并赋初值123.45*/ /*定义双精度型变量d并赋初值3.141592*/ /*f为单精度 e为指数形式输出*/ 123.450000,1.234500e+002 3.141593 ,3.14159e+000 3.142, 3.14 单精度输出 且6个有效位 以指数形式输出且小数点 后6个有效位并四舍五入 输出的整数前空5个字符 小数点保留3位有效数字 Date22 C程序设计 第3章顺序程序设计 3.2.7 运算符和表达式 C的运算符种类 算术运算符:+ - * / % 关系运算符: = | i=3; j=+i; k=i+; 其优先级高于算术运算符优先级,按从右至左结合方向。 如:-i+相当于-(i+) 2.自增与自减运算符 /*先计算表达式+i的值赋给j即j=4*/ /*变量i的值赋给k即k=3后再执行表达式i+*/ Date25 C程序设计 第3章顺序程序设计 (double)a 则是将a的类型转换为double类型。 (int)(x+y)则是将x+y的值转换为int类型。 (float)(5%3)则是将5%3的值转换为float类型。 【例3.9】分析下列程序运行的结果 #include int main( ) float x; int i; x=3.6 ; i= (int)x; printf(“x=%f,i=%dn”,x,i); return 0; /*定义一个单精度型变量x*/ /*定义一个整型变量i*/ /*对x赋一实型数据3.6 */ /*将实型数据x的类型转换为int即整型*/ x=3.6 00000,i=3 x= ,i=是普通字符原样输出 %f %d是格式符位置上输出 后对应项x,i的值 3.强制类型转换 Date26 C程序设计 第3章顺序程序设计 #include int main( ) int i,j; i=2; j=-i+; printf(“j=%d,i=%dn”,j,i); return 0; 【例3.10】分析下列程序运行的结果 j=-i+的执行过程: 将-i的值赋给变量j j的值为-2 自增运算,i+1后赋给i即其值为3 j=-2,i=3 i=2; j=-i; i=i+1; 将其修改为如下 Date27 C程序设计 第3章顺序程序设计 3.3 C语句 条件语句:if语句,if-else语句 循环语句:while语句,for语句 break语句 continue语句 return语句 C语言数据操作语句 1、函数调用语句 printf();、scanf(); 2、表达式语句 a=a+b; 3、空语句 ; 4、复合语句 用 括起来的语句。 5流程控制语句 结构化语句 非结构化语句 非限定转向语句 goto语句 Date28 C程序设计 第3章顺序程序设计 3.3.2 最基本的语句 -赋值语句 【例题3.11】给出三角形的三条边,求三角形面积。 解题思路 : 三角形的三条边要符合构成三角形的条件 有三条边如何求三角形面积(数学计算公式 ) C语言调用数学公式要用到数学头文件 程序中用到的量:a b c s area 数据类型 三条边的值如何获取是赋值还是键盘输入 s(s-a)(s-b)(s- c) area= s=(a+b+c)/2 Date29 C程序设计 第3章顺序程序设计 #include #include int main() float a,b,c,s,area; printf(“input Triangular three sides:n“); scanf(“%f%f%f“, s=(a+b+c)/2; area=sqrt(s*(s-a)*(s-b)*(s-c); printf(“a=%ftb=%ftc=%ftn“,a,b,c); printf(“area=%fn“,area); return 0; 参考程序: Date30 C程序设计 第3章顺序程序设计 赋值语句:是由赋值表达式加上一个分号构成。其应用十分 普遍。 C语言中的赋值号是等号“=”且是一个运算符,若在其 构成的表达式后面加上分号“;”即构成赋值语句。 C语言中的赋值表达与赋值语句是两个不同的概念。 如:x=8 x=8; 分析if(a=b)0) t=a;的含义 x=8是赋值表达式 x=8;是赋值语句 赋值表达式 赋值语句 if括号内是条件 先进行赋值运算 再判断赋值表达式的 值是否大于0若是则执行 赋值语句后t的值是a Date31 C程序设计 第3章顺序程序设计 复合的赋值运算符 复合的赋值运算符是指在赋值符=之前加上其它的运算符。 例如:a+=3 等价于 a=a+3 x*=y+8 等价于 x=x*(y+8) x%=3 等价于 x=x%3 赋值过程中的类型转换 系统转换规则 浮点型数据赋给整型变量舍弃小数部分。 整型数据赋给浮点型变量数值不变转为实型以指数存放 双精度赋给单精度只取6-7有效位并按4字节存放 字符型数据赋给整型变量是其ASCII值 占字节多的赋给占字节少整型变量是取其低字节内容 Date32 C程序设计 第3章顺序程序设计 变量赋初值 在定义变量的同时初始化变量 int a=56; float b=32.56; double x,y=45.6789; char c=a; 先定义变量后再对变量赋值 int a,b; char c; a=48; b=a+56; c=b; 使用scanf函数对变量赋值 int a,b; scanf(“%d%d”, 说明:初始化不是在编译 阶段完成的,而是程序运 行时执行本函数时赋初值 的。 注意:同时对几个变量 赋同一个值不能写成以 下形式: int a=b=c=12; 用scanf()输入函数要注意 格式符的分隔符如%d%d表 明在输入时用空格分隔。 Date33 C程序设计 第3章顺序程序设计 3.4 数据输入输出 数据格式输入输出 格式输入输出由C标准库函数提供的printf()和scanf() 且在使用库函数时要用预命令“#include”将相关的“ 头文件”包括到用户的源程序中。在用格式输入输出时 要用到“stdio.h” 输出函数 输入函数 格式:printf(格式控制,参数1,参数2,) 格式控制:是双撇号括起来的字符串分格式说明和普通字符 格式说明:由%和格式符d,o,x,f,e,c等构成。如:%d。 普通字符:原样输出的字符。如双撇中逗号、等号、空格。 格式:scanf(格式控制,地址1,地址2,) 格式控制:同printf()函数。各个格式说明之间可用逗号分 号空格等分隔符隔开,但要求在输入数据时与之对应。 地址表示:由 int sum ; scanf(“%d%d%d”, sum=a+b+c; printf(“sum=%dn”,sum); 格式说明%d是由所定义的变量 类型而定且中间没有分隔符默 认是空格或回车即输入时输入 一个数空格后再输入一个数。 若修改为%f,%f,%f的格式程序 应如何修改及输入数据时怎样 输入? 是转义字符表示输出后换 行。 Date35 C程序设计 第3章顺序程序设计 3.4. 字符数据的输入输出 功能:向终端输出一个字符。 格式:putchar(c),c变量值可字符型或整型。 如:char a=d,b=O; putchar(a);putchar(b);putchar(n); 在屏幕上输出 do后换行 字符输入输出 字符输出 putchar() 字符输出 getchar() 功能:从输入设备输入一个字符。 格式:getchar(),无参数其值是输入的字符。 如:char c; c=getchar();putchar(c); 输出的是从键盘上输入的字符 输入一个字符后按回车健字符才送入内存 注:也可用格式输出来实现字符的输出即printf(“%cn”,getchar(); Date36 C程序设计 第3章顺序程序设计 3.6 顺序结构程序设计 【例题4.13】求12345的乘积。 算法分析: 定义一变量t并赋初值1即t=1 运用赋值表达t=t2即t=12的积 运用赋值表达t=t3即t=123的积 运用赋值表达t=t4即t=1234的积 运用赋值表达t=t5即t=12345的积 输出t的值 开始 t=1 t=t*2 t=t*3 t=t*4 t=t*5 输出t end #include int main() int t; t=1; t=t*2; t=t*3; t=t*4; t=t*5; printf(“t=%dn”,t); return 0; Date37 C程序设计 第3章顺序程序设计 【例题4.14】输入三角形的边长a,b,c且能构成三角形,求其 面积 算法分析: 输入a,b,c说明是动态不是静态 实现输入采用C提供的scnaf() 不考虑输入a,b,c能否构三角形 定义三个实型变量a,b,c 用给三边求三角形公式计算面积 输出三角形面积 开始 输入a,b,c 用公式计算面积 输出面积 结束 已知三角形的三边a,b,c求面积,可由数学知识知面积公式为 面积=s(s-a)(s-b)(s-c)其中:s=(a+b+c)/2 因此数学表达式在C语言中的如何表示? Date38 C程序设计 第3章顺序程序设计 开始 输入a,b,c 用公式计算面积 输出面积 结束 程序中用到数学平方 根函数而其包含在头文 件math.h中 #include #include void main() float a,b,c; double s,area; printf(“input three number a,b,cn“); scanf(“%f%f%f“, s=1.0/2*(a+b+c); area=sqrt(s*(s-a)*(s-b)*(s-c); printf(“a=%f,b=%f,c=%fn“,a,b,c); printf(“area=%fn“,area); 提示输入 精度转换 数学平方根函数 Date39 C程序设计 第3章顺序程序设计 【例题4.15】假设由键盘输入的一元二次方程系数a,b,c,且 在实数范围内有解,试编写求ax2+bx+c=0方程的根的程序。 算法分析 输入a,b,c说明是动态不是静态 实现输入采用C提供的scnaf() 不考虑输入a,b,c能否使方程有解 定义三个实型变量a,b,c 由数学计算方程公式进行求解 输出方程的两个根 开始 输入a,b,c 用求根公式计算 输出方程根 结束 求根公式如下 如何将数学表达式写成C语言表达式? p q x1=p+q x2=p-q Date40 C程序设计 第3章顺序程序设计 #include #include void main() float a,b,c; double disc,x1,x2,p,q; printf(“input a,b,c:n“); scanf(“a=%f,b=%f,

温馨提示

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

评论

0/150

提交评论