讲解视频:
P2-5【C语言基本数据类型、运算符和表达式】第五节-知识要点:格式输出函数printf()
知识要点:格式输出函数printf()。
一、任务分析
已知三角形三边a,b,c的值,求三角形的面积。要求输出a,b,c及面积(area)的值,输出结果保留两位小数。
二、必备知识与理论
我们知道人与人之间是通过语言在外界空气介质的传输下进行交流的。同样,人、外设和计算机之间也有一定的交流方式,这种交流方式是靠输入和输出来完成的。
1.数据输入输出的概念
所谓输入输出,是指用计算机的输入设备(键盘、磁盘、光盘和扫描仪等)向计算机输入数据称为“输入”;从计算机向外部输出设备(显示器、磁盘、打印机等)输出数据称为“输出”。
在程序的运行过程中,往往需要输入一些数据(语言内容),而程序运算所得到的计算结果(数据)又需要输出给用户。因此,输入输出操作是程序设计语言中的重要内容之一。
在C语言中,不提供专门的输入输出语句,所有的输入输出操作都是通过对标准库函数的调用来实现的 (如printf函数和scanf函数) 。在使用库函数时,不要将它们误认为是C语言提供的输入和输出语句,特别是printf和scanf并不是C语言的关键字,它们只是函数的名字。C语言提供的函数以库的形式存放在系统中,它们不是C 语言文本中的组成部分。因此在使用C语言库函数时,需要使用预编译命令#include将相关的头文件(".h")包含到用户源文件中。
使用形式:#include <头文件> 或 #include “头文件”
说明:①用尖括号表示先在系统目录查找所包含的文件,一般在要包含系统头文件时使用;用双引号表示先在当前程序所在的目录查找所包含的文件,如果没有再在对应系统目录中查找对应的文件。一般在要包含自己写的文件时使用。
②标准输入/输出头文件是:stdio. h,它是standard input & output的缩写,“ h” 是head的缩写),它包含了与标准I/O库有关的变量定义和宏定义。由于printf()和scanf() 函数使用比较频繁,因此有些系统允许在使用这两个函数时不需要头包含文件(即可以不加#include)。
2.格式输出函数printf()
printf()函数称为格式输出函数。其功能是按用户指定的格式,把指定的数据输出到显示器屏幕上。在前面的例题中我们已多次使用过这个函数。
(1)printf()函数的一般格式:
printf(“格式控制字符串”,输出项列表);
例如:printf("r=%d\tarea=%f\n",r,area);
“格式控制字符串”是用双引号括起来的字符串,也称“转换控制字符串”。它包括三类字符:
①普通字符:是一些说明字符,这些字符按原样显示在屏幕上,主要起提示作用。 如上面printf函数中的双引号里面的“r=”和“area=”。
②转义字符:是不可打印的字符,它们其实是一些控制字符,控制产生特殊的输出效果。上例中的“\t”,为水平制表符,作用是跳到下一个水平制表位,“\n”为回车换行符,显示自动换到新的一行。
③格式字符:由“%”引导的格式字符串,用于指定输出格式。上例中的“%d”、“%f”,它们的作用是把输出的数据转换为指定的格式输出。格式指示符是由“%”字符起始的。
printf()函数语句的输出项列表是需要输出的一些数据,可以是常量、变量、表达式, 其类型、个数必须与格式控制说明中格式字符的类型、个数一致。当有多个输出项时,各项之间用逗号分隔。
(2)格式字符串
格式字符串的一般格式为:
[标志] [输出最小宽度] [.精度] [长度] 类型
其中方括号[ ] 中的项为可选项。
【例2.10】printf( )函数示例二。程序代码如下:
#include <stdio.h>
main()
{ int a=15;
float b=123.1234567;
double d=12345678.1234567;
char c=‘p’;
printf("a=%d,%6d,%+6d,%-6d,%o,%x\n",a,a,a,a,a,a);
printf("b=%f,%lf,%5.4f,%-10.4f,%e\n",b,b,b,b,b);
printf("d=%f, %8.4lf,%e,%g\n",d,d,d,d);
printf("c=%c,%8c\n",c,c);
printf("%s,%-6.2s,%6.2s\n","china","china","china");
}
运行结果为:
a=15, 15, +15,15 ,17,f
b=123.123459,123.123459,123.1235,123.1235 ,1.231235e+002
d=12345678.123457,12345678.1235,1.234568+007,1.23457e+007
c=p, p
china,ch , ch
3. 字符输出函数putchar()
putchar()函数的功能是将一个字符输出到显示器上显示。putchar()函数也是一个标准的输入输出库函数,它的原型也在<stdio.h>头文件中被定义。因此使用时也需要使用预编译处理命令#include。
putchar()函数的一般格式:
putchar(c)
即把变量c的值输出到显示器上。这里c可以是字符型常量或变量,也可以是一个转义字符。
putchar()函数只能用于单个字符的输出,且一次只能输出一个字符。
三、任务实施
现在我们来计算三角形的面积。已知三角形三边a,b,c的值,要求输出a,b,c及面积(area)的值,输出结果保留两位小数。
任务分析:
(1)已知三角形三边求三角形面积利用海伦公式实现。
area=sqrt(s*(s-a)*(s-b)*(s-c))。
(3)sqrt()为标准数学函数,包含在头文件“math.h”中。
程序代码如下:
#include <stdio.h>
#include <math.h>
main()
{ float a,b,c,s,area;
a=3;b=4;c=5;
s=(a+b+c)/2;
area=sqrt(s*(s-a)*(s-b)*(s-c));
printf("a=%5.2f,b=%5.2f,c=%5.2f\narea=%5.2f\n",a,b,c,area);
}
运行结果为:
a=3.00,b=4.00,c=5.00
area=6.00
四、深入训练
1.写出下列程序运行后的结果。
(1) main()
{ int x=97,y=98,z=99;
printf("x=%d\ny=%d\nz=%d\n",x,y,z);
printf("x=%c\ty=%c\tz=%d\n",x,y,z);
}
(2) main()
{ double d;
float f;
long l;
int i;
l=f=i=d=80/7;
printf("%d,%d,%d,%d\n",i,l,f,d);
printf("%f,%f,%f,%f\n",i,l,f,d);
printf("%d,%ld,%f,%f\n",i,l,f,d);
}
2. 已知正方形的边长为3.6,编程计算它的面积和体积。(结果保留两位小数)