C语言程序设计-高职计算机-98061-项目3章节

上传人:E**** 文档编号:91277181 上传时间:2019-06-27 格式:PPT 页数:27 大小:473.50KB
返回 下载 相关 举报
C语言程序设计-高职计算机-98061-项目3章节_第1页
第1页 / 共27页
C语言程序设计-高职计算机-98061-项目3章节_第2页
第2页 / 共27页
C语言程序设计-高职计算机-98061-项目3章节_第3页
第3页 / 共27页
C语言程序设计-高职计算机-98061-项目3章节_第4页
第4页 / 共27页
C语言程序设计-高职计算机-98061-项目3章节_第5页
第5页 / 共27页
点击查看更多>>
资源描述

《C语言程序设计-高职计算机-98061-项目3章节》由会员分享,可在线阅读,更多相关《C语言程序设计-高职计算机-98061-项目3章节(27页珍藏版)》请在金锄头文库上搜索。

1、,项目3 顺序结构程序设计,1,项目导读 项目目标 项目任务,在项目2中介绍了C程序中用到的一些基本要素,如常量、变量、运算符、表达式等。本项目将介绍编写简单的C程序所必需的一些内容。,项目导读,使用scanf函数从键盘为变量输入值。 使用printf函数输出数据。 能编写简单的C程序的源文件,并运行程序。,思考,项目目标,任务3.1 顺序程序设计举例,示例3.1 用温度计测量出用华氏法表示的温度(如69F),今要求把它转换为以摄氏法表示的温度(如20)。 解题思路:这个问题的算法很简单,关键在于找到二者之间的转换公式。根据物理学知识,知道以下转换公式: c=59(f-32) 其中f代表华氏温

2、度,c代表摄氏温度。据此可以用N-S图表示算法,见图3.1。,图3.1,算法由3个步骤组成,这是一个简单的顺序结构。 编写程序:有了N-S图,很容易用C语言表示,写出求此问题的C程序。,任务3.1 顺序程序设计举例,#includestdioh int main() float f,c; 定义f和c为单精度浮点型变量 f=63.0; 定义f的值 c=(59)*(f-32); 利用公式计算c的值 printf(“f=%nc=%n”,f,c);输出c的值 return 0; 运行结果: f=63.000000 c=16.777778,任务3.1 顺序程序设计举例,示例3.2 计算存款利息。有100

3、0元,想存一年。有三种方法可选:活期,年利率为r1;一年期定期,年利率为r2;存两次半年定期,年利率为r3。请分别计算出一年后按三种方法所得到的本息和。 解题思路:关键是确定计算本息和的公式。从数学知识可知,若存款额为p0,则: 活期存款一年后本息和为p1=p0(1+r1)。 一年期定期存款,一年后本息和为p2=p0(1+r2)。 两次半年定期存款,一年后本息和为p3=p0(1+r3/2)(1+r3/2)。 画出N-S流程图,见图3.2。,图3.2,任务3.1 顺序程序设计举例,#includestdio.h int main () float p0=1000,r1=0.0036,r2=0.0

4、225,r3=0.0198,p1,p2,p3; 定义变量 p1=p0*(1+r1); 计算活期本息和 p2=p0*(1+r2); 计算一年定期本息和 p3=p0*(1+r32)*(1+r32);计算存两次半年定期的本息和 printf(“p1=%fnp2=%fnp3=%fn”,p1,p2,p3);输出结果 return 0; 运行结果: P1=1002.599976 P2=1022.500000 P3=1018.898010,任务3.2 C语句概述,C程序的执行部分是由语句组成的。程序的功能也是由执行语句实现的,C程序主要包含表达式语句、函数调用语句、控制语句、复合语句和空语句,其中控制语句包

5、含多种情况,本任务将分别进行介绍。 C程序结构可以用图3.3表示。即一个C程序可以由若干个源程序文件(编译时以文件模块为单位)组成,一个源文件可以由若干个函数和预处理指令以及全局变量声明部分组成(关于“全局变量”见项目7)。一个函数由数据声明部分和执行语句组成。,图3.3,任务3.2 C语句概述,C语句分为以下5类 : (1) 控制语句。控制语句用于完成一定的控制功能。C语句只有9种控制语句,它们的形式是: if( )else (条件语句) for ( ) (循环语句) while( ) (循环语句) dowhile( ) (循环语句) continue (结束本次循环语句) break (中

6、断执行switch或循环语句) switch (多分支选择语句) return (从函数返回语句) goto (转向语句,在结构化程序中基本不用goto语句) 上面9种语句表示形式中的( )表示括号中是一个“判别条件”,“”表示内嵌的语句。例如上面的“if( )else”的具体语句可以写成: if(xy) z=x ; else z=y ;,任务3.2 C语句概述,(2) 函数调用语句。函数调用语句由一个函数调用加一个分号构成,例如: printf(“This is a c statement .”); 其中printf(“This is a c statement .”)是一个函数调用,加一个

7、分号成为一个语句。 表达式语句。表达式语句由一个表达式加一个分号构成,最典型的是,有赋值表达式构成一个赋值语句。例如: a=3 是一个赋值表达式,而 a=3; 是一个赋值语句。 空语句。下面是一个空语句: ; 此语句只有一个分号,它什么也不做。那么它有什么用呢?可以用来作为流程的转向点(流程从程序其他地方转到此语句处),也可以用来作为循环语句中的循环体(循环体是空语句,表示循环体什么也不做)。,任务3.2 C语句概述, 复合语句。可以用 把一些语句和声明括起来成为复合语句(又称语句块)。例如下面是一个复合语句: float pi=2.14159,r=2.5,area; 定义变量 area=pi

8、 * r * r ; printf(“area=%f”,area); 可以在复合语句中包含声明部分(如上面的第2行),C99允许将声明部分放在复合语句中的任何位置,但习惯上把它放在语句块开头位置。复合语句常用在if语句或循环中,此时程序需要连续执行一组数据。 注意:复合语句中最后一个语句中最后的分号不能忽略不写。 C语言允许一行写几个语句,也允许一个语句拆开写在几行上,书写格式无固定要求,任务3.3 数据的输入/输出,3.3.1 输入输出举例 案例3.3 求ax2+bx+c=0方程的根。a ,b ,c由键盘输入,设b24ac0。 解题思路:首先要知道求方程式的根的方法。由数学知识已知:如果b2

9、4ac0,则一元二次方程有两个实根: , 可以将上面的分式分为两项: , 则x1 =p+q, x2=pq 有了这些式子,只要知道a ,b ,c的值,就能顺利的求出方程的两个根。,任务3.3 数据的输入/输出,#include #include 程序重要调用求平方根函数sqrt int main ( ) double a ,b ,c ,disc ,x1,x2,p ,q; disc用来存放判别式(b*b4ac)的值 scanf(“%1f%1f%1f”, 运行结果: 1 3 2 X1=-1.00 X2=-2.00,任务3.3 数据的输入/输出,3.3.2 有关数据输入输出的概念 从前面的程序可以看到

10、:几乎每一个C程序都包含输入输出。因为要进行运算,就必须给出数据,而运算的结果当然需要输出,以便人们应用。没有输出的程序是没有意义的。输入输出是程序中最基本的操作之一。 在讨论程序的输入输出时首先要注意以下几点。 所谓输入输出是以计算机主机为主体而言的。 C语言本身不提供输入输出语句,输入和输出操作是由C标准函数库中的函数来实现的。 在使用系统库函数时,要在程序文件的开头用预处理指令#include把有关头文件放在本程序中 如:#include 注意:应养成这样的习惯:只要在本程序文件中使用标准输入输出库函数时,一律加上#include指令。,任务3.3 数据的输入/输出,3.3.3 用pri

11、ntf函数输出数据 在C程序中用来实现输出和输入的,主要是printf函数和scanf函数。这两个函数是格式输入输出函数。用到两个函数时,程序设计人员必须制定输入输出数据的格式,即根据数据的不同类型指定不同的格式。 1、printf函数的一般格式 printf函数的一般格式为 printf(格式控制,输出表列) 例如: printf(“%d,%cn”,i ,c) 2、格式字符 (1) d格式字符。用来输出一个有符号的十进制整数。 可以在格式声明中指定输出数据的域宽(所占的列数),如用“%5d”,指定输出数据占5列,输出的数据显示在此5列区域的右侧。如: printf(“%5dn%5dn”,12

12、,345); 输出结果为 12 (12前面有3个空格) 345 (345前面有1个空格),任务3.3 数据的输入/输出,(2)c格式符。用来输出一个字符。例如; char ch=a; printf(“%c”,ch); 运行时输出 a 一个整数,如果在0127范围中,也可以用“%c”使之按字符形式输出,在输出前,系统会将该整数作为ASCII码转换成相应的字符;如: short a=121; printf(“%c”,a); 输出字符y。 (3)s格式符。用来输出一个字符串。如: printf(“%s”,“CHINA”); 执行此函数时在显示屏上输出字符串“CHINA”(不包括双引号)。,任务3.3

13、 数据的输入/输出,(4) f格式符。用来输出实数(包括单、双精度、长双精度)。以小数形式输出,有几种用法: 基本型,用%f。 不指定输出数据的长度,由系统根据数据的实际情况决定数据所占的列数。系统处理的方法一般是:实数中的整数部分全部输出,小数部分输出6位。 示例 3.4 用%f输出实数,只能得到6位小数。 #include int main( ) double a=1.0; printf(“%fn”, a3); return 0; 运行结果: 0.333333 虽然a是双精度型,a3的结果也是双精度型,但是用%f格式声明只能输出6位小数。,任务3.3 数据的输入/输出, 指定数据宽度和小数

14、位数,用%m.nf。 如果想在示例3.4输出双精度变量a的15位小数,可以采用案例3.3所用的方法,用“%20.15fn”, a/3) 运行结果: 0.333333333333333 注意:在用%f输出时要注意数据本身能提供的有效数字,如float型数据的存储单元只能保证6位有效数字。double型数据能保证15位有效数字。不要以为计算机输出的所有数字都是绝对精确有效的。 输出的数据向左对齐,用%m.nf。 在m.n的前面加一个负号,其作用与%m.nf形式作用基本相同,但当数据长度不超过m时,数据向左靠,右端补空格。如: printf(“%24.15f,%24.15fn”,a ,a); 运行结

15、果: 3332.333333333333500 3332.333333333333500 第1次输出a时输出结果向左端靠,右端空5列。第2次输出a使输出结果向右端靠,左端空5列。,任务3.3 数据的输入/输出,(5) e格式符。用格式声明%e指定以指数形式输出实数。 例如: printf(“%e”,122.456); 输出如下: 1.234560 e+002 所输出的实数共占13列宽度(注:不同系统的规定略有不同)。 也可以用“%m.ne”形式的格式声明,如: printf(“%12.2e”,122.456); 输出为 1.23e+002 (数的前面有4个空格) 格式符e也可以写成大写E形式,因此输出的数据中的指数不是以小写字母e表示而以大写字母E表示,如1.23460E+002。,任务3.3 数据的输入/输出,表3.1 printf函数中用到的格式字符,任务3.3 数据的输入/输出,3.3

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号