4.5 格式化输入输出(课件)-《 C语言程序设计》同步教学(电子工业出版社)

2024-08-11
| 24页
| 70人阅读
| 7人下载
普通

内容正文:

第4章 C语言基本语法 2024年8月11日 内容概述 C语言基本数据类型 整型、实型、字符型的常量形式及变量定义 整型、实型、字符型变量的格式化输入输出 C语言的类型转换 运算符及表达式 2024年8月11日 教学目标 掌握数据类型的概念,了解C语言能够处理的数据类型。 掌握各种类型常量的特点及表示形式。 掌握各种类型变量的定义及使用 掌握数据的输入输出的基本方法。 掌握C语言的运算符、表达式及运用方法。 2024年8月11日 4.5 格式化输入输出 C语言不提供输入/输出语句,数据的输入/输出是通过函数调用语句来实现的。在C标准函数库中提供了一些输入/输出函数,它是以标准的输入/输出设备(键盘、显示器等)为输入/输出对象的。常用的输出函数有printf()函数和putchar()函数。输入函数有scanf()和getchar()。 2024年8月11日 使用标准输入输出库函数时要用到 “stdio.h”文件,因此源文件开头应有以下预编译命令: #include <stdio.h> 或 #include "stdio.h" 二者的区别:使用尖括号表示在包含文件目录中去查找(包含目录是由用户在设置环境时设置的),而不在源文件目录去查找;使用双引号则表示首先在当前的源文件目录中查找,若未找到才到包含目录中去查找。用户编程时可根据自己文件所在的目录来选择某一种命令形式。 5 2024年8月11日 功能:按用户指定的格式,把指定的数据显示到显示器屏幕上。 一般形式: printf(“格式控制字符串”,输出表列); 其中 格式控制字符串用于指定输出格式; 输出表列中给出了各个输出项; 要求格式字符串和各输出项在数量和类型上应该一一对应。 4.5.1 printf函数(格式输出函数) 2024年8月11日 类型:类型字符用以表示输出数据的类型; 标志:-、+分别表示输出数据左、右对齐; 输出最小宽度:用十进制整数来表示输出的最少位数。 精度:精度格式符以“.”开头,后跟十进制整数。本项的意义是:如果输出数字,则表示小数的位数;如果输出的是字符,则表示输出字符的个数;若实际位数大于所定义的精度数,则截去超过的部分。 长度:长度格式符为h,l两种,h表示按短整型量输出,l表示按长整型量输出。 在C中格式字符串的一般形式为: [标志][输出最小宽度][.精度][长度]类型 2024年8月11日 格式字符 意 义 d 以十进制形式输出带符号整数(正数不输出符号) o 以八进制形式输出无符号整数(不输出前缀0) x,X 以十六进制形式输出无符号整数(不输出前缀Ox) u 以十进制形式输出无符号整数 f 以小数形式输出单、双精度实数 e,E 以指数形式输出单、双精度实数 g,G 以%f或%e中较短的输出宽度输出单、双精度实数 c 输出单个字符 s 输出字符串 2024年8月11日 【例4.7】运行并分析程序的执行结果。 #include "stdio.h" void main() { int a=15; float b=138.3576278; double c=35648256.3645687; char d='p'; printf("a=%d,%5d,%o,%x ",a,a,a,a); printf("b=%f,%lf,%5.4lf,%e ",b,b,b,b); printf("c=%lf,%f,%8.4lf ",c,c,c); printf("d=%c,%8c ",d,d); } 2024年8月11日 功能:按用户指定的格式从键盘上把数据输入到指定的变量之中。 一般形式 scanf(“格式控制字符串”,地址表列); 其中,格式控制字符串的作用与printf函数相同,但不能显示非格式字符串。地址表列中给出各变量的地址。 例如: scanf(“%d,%d”,&a, &b); 4.5.2 scanf函数(格式输入函数) 2024年8月11日 变量的地址和变量值的关系如下: 在赋值表达式中给变量赋值,如: a=3 则a为变量名,567是变量的值,&a是变量a的地址。 2024年8月11日 使用scanf()函数还必须注意以下几点 (1)scanf()函数中没有精度控制。 例如, scanf("%5.2f",&a); × 不能企图用此语句输入小数为2位的实数。 (2)scanf()中要求给出变量地址,如给出变量名则会出错。 例如,scanf ("%d",a); × 应改为scanf("%d",&a); √ 2024年8月11日 (3)在输入多个数值数据时,若格式控制串中没有非格式字符作为输入数据之间的间隔则可用空格,Tab或回车作为间隔。 (4)在输入字符数据时,若格式控制串中无非格式字符,则认为所有输入的字符均为有效字符。 例如,“scanf("%c%c%c",&a,&b,&c);”,输入为“d□e□f”时,则把'd'赋予a,'□'赋予b,'e'赋予c。只有当输入为def时,才能把'd'赋于a,'e'赋予b,'f'赋予c。如果在格式控制中加入空格作为间隔,如“scanf("%c□%c□%c",&a,&b,&c);”,则输入时各数据之间可加空格。 2024年8月11日 说明: (1)C语言的格式化输入/输出比较繁琐,在以GUI为主流的应用程序的输入输出中较少使用(scanf()函数则用不到),但它的另一种形式sprintf()函数中的格式化数据处理则经常会用到。 (2)如何获得有关sprintf()函数的用法知识?请使用微软开发者网络—Microsoft Developer Network(MSDN)。它是一个有关计算机软件设计知识的海洋,是微软平台的软件开发和应用人员的最好的获取知识的工具。 (3)读者从现在开始,应该逐步学会如何获取书本上没有的知识,从MSDN、Internet……。请查阅字符串输出函数puts()的用法。 2024年8月11日 4.6 数据类型转换 在编写程序的过程中,经常会将一种数据类型的值赋给另一种不同数据类型的变量的情况。由于数据类型有差异,在赋值时就要进行数据类型的转换。 数据类型转换 自动类型转换(隐式转换) 强制类型转换(显示转换) 2024年8月11日 4.6.1 自动类型转换 整型、实型、字符型数据间可以混合运算。 系统在运算时的转换规则是:将存储长度较短的运算对象转换成存储长度较长的类型,然后再进行处理。这种转换是系统自动进行的 1.各类数据类型间混合运算时的类型转换规则 2024年8月11日 高 double ←float ↑ unsigned long ← long ↑ unsigned ← unsigned short ↑ 低 int ← char,short 2024年8月11日 (1)水平方向的转换:如float型数据必先转换为double型数据,char型或short型数据必先转换为int型数据,然后进行运算。 (2)垂直方向的转换:如int型数据与unsigned型数据进行运算,int型转换为unsigned型;int型数据与double型数据进行运算,int型直接转换为double型后进行运算。 2024年8月11日 2.赋值时的类型转换 实型赋予整型,舍去小数部分。 整型赋予实型,数值不变,但将以浮点形式存放,即增加小数部分(小数部分的值为0)。 字符型赋予整型,由于字符型为1个字节,而整型为2个字节,故将字符的ASCII码值放到整型量的低8位中,高8位为0。 整型赋予字符型,只把低8位赋予字符量。 非unsigned与unsigned数据类型相互赋值时,直接传送数值。 当赋值运算符两侧的类型不同时,需进行类型转换,这种转换也是系统自动进行的。 2024年8月11日 在赋值运算时,最好是赋值号右侧的数据类型级别等于或低于赋值号左边的变量的类型级别,否则,会导致运算精度降低,甚至出现意想不到的结果。 2024年8月11日 【例4.8】运行以下程序并分析程序运行结果。 #include "stdio.h" void main() { int a,b=321,c; float x,y=1.23; char c1='a',c2; c=y; x= b; a=c1; c2=b; printf("%d,%f,%d,%c ",c,x,a,c2); } 2024年8月11日 4.6.2 强制类型转换 强制类型转换的一般形式为 (类型说明符)(表达式) 例如: 若有定义“int a,x,y; 则 (float) a 把a转换为单精度实型 (double)(x+y) 把x+y的结果转换为双精度实型 2024年8月11日 需要说明的是,强制类型转换是为了本次运算的需要,对数据类型进行的临时转换,并没有改变数据原来的类型。 例如 (double)(x+y)的类型是double,但变量x和y的类型还是int。 2024年8月11日 强制转换运算符优先级比算术运算符高。 例如, 已知有变量定义:int b=7; float a=2.5,c=4.7; 求算术表达式a+(int)(b/3*(int)(a+c)/2.0)%4的值 根据运算符结合性规则,上述表达式要自左之右执行,b/3为2,2*int(a+c)为14,14/2.0为7.0,强制类型转换后为7,7%4为3;a的值2.5与3相加,最终结果为5.5。 $$

资源预览图

4.5 格式化输入输出(课件)-《 C语言程序设计》同步教学(电子工业出版社)
1
4.5 格式化输入输出(课件)-《 C语言程序设计》同步教学(电子工业出版社)
2
4.5 格式化输入输出(课件)-《 C语言程序设计》同步教学(电子工业出版社)
3
4.5 格式化输入输出(课件)-《 C语言程序设计》同步教学(电子工业出版社)
4
4.5 格式化输入输出(课件)-《 C语言程序设计》同步教学(电子工业出版社)
5
4.5 格式化输入输出(课件)-《 C语言程序设计》同步教学(电子工业出版社)
6
由于学科网是一个信息分享及获取的平台,不确保部分用户上传资料的 来源及知识产权归属。如您发现相关资料侵犯您的合法权益,请联系学科网,我们核实后将及时进行处理。