第二章数据类型与数据的输入输出
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
语 言 程 序 设 计
C (2)输出数据列表包括需要输出的一些数据。 各个数据之间用逗号分隔开。输出数据的 个数与输出控制中的格式转换说明的个数 相等,并且在顺序上要一一对应且类型匹 配。如果不匹配,这时系统并不报错,但 不能得到正确的结果。 输出数据列表中的数据可以是任意合法的 常量、变量或表达式。
C
语 言 程 序 设 计
C
printf 函数使用示例
#include <stdio.h> void main() { float r=1.5, high=2.0; float pi=3.14159, v; /* /*计算体积*/ */ v=pi*r*r*high; /*输出体积的值*/ printf("v=%7.2f\n",v); }
语 言 程 序 设 计
C 表2-3 %整数 整数 的输出格式 整数1.整数 整数 整数2f的输出格式
输出结果 1. 2500 1. 2500 1 输出语句 printf(“%4.4f”,1.25); printf(“%7.4f”,1.25); printf(“%2.0f”,1.25);
语 言 程 序 设 计
语 言 程 序 设 计
C
scanf举例
内存
num
int num; scanf在内存中分配一块 16 位存储空间 (" %d" , &num); •
• 存储空间使用名称“num”标识 提示用户输入一个值 • 输入的值存储在变量中(因为 scanf 提供此变量的 地址)
123
语 言 程 序 设 计
C 说明: 说明: (1)当从键盘中输入多个数值数据时,输入 数值数据之间用分隔符(包括空格符、制 表符和回车符,但是不包括逗号)隔开。 例如: int x,y,z; scanf(“%d%d%d”,&x,&y,&z); 如对x、y、z三个整型变量分别输入10、20、 30,则数据的输入格式如下: 10<间隔符>20<间隔符>30<回车>
语 言 程 序 设 计
C
(4)在输入控制中,格式说明的个数与输 入项的个数应该相同。如果格式说明的个 数少于输入项的个数,系统自动结束输入, 多余的数据没有被读入,但可以作为下一 个输入操作的输入数据;如果格式说明的 个数多余输入项的个数,系统同样自动结 束输入。例如:对于如下输入语句: int x,y,z; scanf(“%d%d”&x,&y,&z); 如采用如下的输入形式:10<间隔符>20< 间隔符>30<回车>,由于在输入控制中只有 两个格式说明%d,则只能对x和y变量分别 输入10和20,而30不能被读入,只能作为 以后其他输入的输入数据。
printf(“%d, %f”,4+3,7);
不要出现这样的形式:
printf(“%d, %f”,4.75,7);
语 言 程 序 设 计
C (3)在输出控制中,格式说明的个数应与输 出的个数相同。如果格式说明的个数少于 输出项的个数,多余的输出项不予输出; 如果格式说明的个数多余输出项的个数, 则多余的格式说明将输出不定值。 例 如 : 输 出 语 句 printf (“%d,%d”,1,2,3); 1,2 printf(“%d,%d,%d”,1,2); 不确定的值输出 1,2,3129
转义序列
C
语 言 程 序 设 计
C
printf 函数
•
语法格式:
printf ("control string ", argument list);
输出控制 格式说明 普通字符 参数列表
语 言 程 序 设 计
C
说明: 说明: (1)输出控制是由双引号括起来的格式转换 控制信息。分为两种信息:一种是用于说明 的信息,计算机会按照原样输出;另外一种 是带有%的格式转换说明,用于指定输出数 据的格式。 例如:printf(“a=%d, b=%d”,12,34); ” 其中双引号下的a=、b=是用于说明的信息, 而%d则是格式转换说明,用于指定输出数据 的格式为整型,第一个“%d”对应第一个数 字,第二个“%d”对应第二个数字,因此输 出在计算机屏幕上的结果为:a=12, b=34。
C (3)如果在输出的八进制前添加0,或在输 出的十六进制树前添加0x,可在%号和格式 字符0和x之间插入#号(注意:#号对其他 格式字符通常不起作用)(表2-4)。
输出的八进制、十六进制数前分别添加0、 表2-4 输出的八进制、十六进制数前分别添加 、0x
输出语句 printf(“%o”,254); printf(“%#o”,254); printf(“%#x”,254 );
C 表2-2未指定宽度和指定宽度时 的输出数据对比结果 输出语句 printf(“%d”,254); printf(“%2d”,254); printf(“%4d”,254); printf(“%f”,1.25); printf(“%10f”,1.25); 输出结果 254 254 254 1. 250000 1. 250000
语 言 程 序 设 计
C (2)当在%和格式字符f之间加入“整数1.整 数2”来控制输出数据的格式时,“整数1”用 于指定输出数据占的总宽度,“整数2”用于 指定输出小数部分的个数(表2-3)。当输 出数据的小数个数多余“整数2”指定的个数 时,截去多余的数据,并对截去的第一位 小数做四舍五入处理,当输出数据的小数 个数少于“整数2”指定的个数时,在小数的 右边添0补足。
语 言 程 序 设 计
printf 函数
int visitor_count = 150; " %d printf (" %d"" , visitor_count visitor_count);
将一些信息按照指定的格式送到标准输出(显示器) 将按指定的格式显示该变量的值
转换字符串 说明 将参数按整数形式转换输出,对应参数应是int 类型 将参数按长整数形式转换输出,对应参数应是long 类型 输出一个字符,对应参数应该是一个字符 输出无符号的十进制整数 输出八进制无符号形式整型数(不带前导0) 输出十六进制无符号形式整型数(不带前导0X或0x) 将参数按带小数点数形式输出,对应参数应是double 类 型,默认情况下精确到 6 位小数 用在格式字符o或x前,使输出八进制或十六进制数时输 出前导0或0X
输出结果 376 0376 0xfe
语 言 程 序 设 计
printf函数
特别说明: 特别说明:如果要输出“%”时,则应该在 格式控制中用两个连续的“%”,即“%”来 表示,也就是在格式控制中出现两个连续 的“%”,则此时“%”不再用来代表格式说 明。 "%\n"); printf( printf( printf("%%\n"); 例如: printf(“%%d”,254); 不会输出整数254,在 屏幕上看到的结果为“%d”。因为“%%”会 输出一个“%”,“d”会按原样输出,这时 因为没有格式说明,整数254无法输出到屏 幕上。
C
%d或%i 或 %ld %c %u %o %X或%x 或 %f %#
语 言 程 序 设 计
C
printf 函数
若有以下程序段(注意n所赋的是八进制 数) int m=32767,n=032767 printf(“%d,%o\n”,m,n); 执行后输出结果是 。 A)32767,32767 B)32767,032767 C)32767,77777 D)032767,77777
scanf函数
语 言 程 序 设 计
C (2)在输入控制中,格式说明的类型与输 入项的类型应该一一对应匹配。如果类型 不匹配,系统并不给出出错信息,但不能 得到正确的输入数据。当输入长整型数据 (long)时,必须使用%ld格式;输入 double数据时,必须使用%lf或%le,否则 不能得到正确数据。 (3)与printf相似,在scanf函数中的格式 字符前可以用一个整数指定输入数据所占 的宽度,但对实数不能指定小数的位数。
语 言 程 序 设 计
复合语句
由用花括号括起来的多个语句组成 一个复合语句。其形式如下: 一个复合语句。其形式如下: {语句 ;语句 ;…语句 ;} 语句1;语句2; 语句n; 语句 一个复合语句在语法上等同于一 个语句。因此, 个语句。因此,凡是单个语句能够出现 的地方复合语句都能够出现。 的地方复合语句都能够出现。
语 言 程 序 设 计
C
空语句
C程序中所有的语句都必须有一个 分号“ 作为语句的结束。 分号“;”,作为语句的结束。如果有 一个分号, 一个分号,如 ; 这个分号也是一个语句, 这个分号也是一个语句,称为 空语句” 空语句” “空语句”。“空语句”表示程序执行 时不产生任何动作。 时不产生任何动作。程序设计时常常需 要加上一个空语句来表示存在一个语句, 要加上一个空语句来表示存在一个语句, 但随意使用空语句会导致逻辑上出现错 需要慎用。 误,需要慎用。
语 言 程 序 设 计
C
第二章 顺序结构
语 言 程 序 设 计
C
主要内容
第一节 语句 第二节 数据输出 第三节 数据输入
语 言 程 序 设 计
C
本章学习目标
熟练掌握C 熟练掌握C语言基本语句的使用 学会简单顺序程序的设计 熟练掌握数据的输入输出函数
语 言 程 序
第一节 第一节 语句
语句
C
C语言的语句用来向计算机系统发出操作 设 指令。一个C语言程序是包含若干条语句。 计 C语句都是用来完成一定操作任务的。 声明部分的内容不应称为语句。如:int a; 不是一个c语句,而只是对变量的定义。 C语言规定,语句以分号“;”为结束标 志 C语言的语句主要有: 表达式语句 空语句 复合语句
语 言 程 序 设 计
C
表达式语句
表达式的后面加一个分号就构成了一 个表达式语句。 个表达式语句。 最常用的表达式语句是算术表达式语 句和赋值语句。 句和赋值语句。
在算术表达式a+b的后面加上一个分号 的后面加上一个分号 在算术表达式 就构成了一个算术表达式语句。 “;”,就构成了一个算术表达式语句。 在赋值表达式a=2的尾部加上一个分号 在赋值表达式 的尾部加上一个分号 就构成了一个赋值语句。 “;”,就构成了一个赋值语句。
输出: 内存
r 1.5
high 2.0 v 14.14
pi 3.14159
v= 14.14语 言 程序 设 计Cscanf 函数
•
格式: scanf("control string ", address list);
输入控制 地址列表
其中,“输入控制”的含义与printf函数 的“输出控制”相同,它的作用是指定输 入时的数据转换格式。 地址列表是一个或者多个合法的地址表达 式。
语 言 程 序 设 计
C
scanf 函数
scanf 函数从标准输入(键盘)读取信息,按照格式描述 把读入的信息转换为指定数据类型的数据,并把这些数 据赋给指定的程序变量。
scanf("%d",&num);
变量的名称 &符号(附在读取的每个变量上)用于指明变量 在内存中的位置 转换字符串 转换字符串 %d %ld %f %lf 参数变量的类型 int long float double 要求的实际输入 十进制数字序列 十进制数字序列 十进制数,可以有小数点及指数部分 十进制数,可以有小数点及指数部分
C
语 言 程 序 设 计
C
顺序结构
一个程序中的语句将按照它们在程序 中出现顺序逐条执行,由这样的语句 构成的程序结构称为顺序结构。 如: a=20; b=30; c=a+b;
语 言 程 序 设 计
第二节 数据的输出
程序在运行过程中产生的数据需要输出到 #include <stdio.h> 计算机的外部设备上,才能被用户所了解, void main() 例如将结果输送到显示器或者打印机打印。 { 在大部分情况下,计算机先将运行结果存 int num; 放到变量中,然后将这个变量的值输出。 printf("请输入一个数:"); 与“输出”对应的是“输入”,它是数据 scanf("%d",&num); 从计算机的外部设备上输送到计算机的内 printf(" \n%d 的平方为 %d \n",num,num*num); 转换字符串 } 部,例如从键盘输入数据。
语 言 程 序 设 计
C
printf函数
说明: 说明: 可以在%和格式字符之间加入一个整数来控 制输出数据所占的宽度,如果整数指定的 宽度大于实际输出数据的宽度,数据的输 出采用右对齐的方式,左边自动补空格; 反之,则以输出数据的实际宽度输出。表22举例说明了未指定宽度时的对比结果。
语 言 程 序 设 计