【任务1】 从键盘输入2个整数,交换它们的值后输出。
①定义3个变量。
②从键盘输入2个整数存入2个变量中。
③利用第3个中间变量交换2个变量的值。
④输出2个变量交换后的结果。
C语言的输入和输出操作是通过C语言标准函数库中提供的输入输出函数来实现的。由于库函数的信息都在相关的头文件中,因此使用前应在程序的开头使用相应的编译预处理命令,即在使用前必须在程序的头部使用命令:#include<stdio.h>或#include"stdio.h"。
常用头文件有:
stdio.h 定义输入输出函数
string.h 定义字符串操作函数
math.h 定义sin、cos等数学函数
(1)格式化输出函数printf()
printf()的功能是按用户指定的格式,把指定的数据显示到显示器屏幕上。
printf()的一般格式:
printf("格式字符串"[,输出项表]);
1)常用的格式字符串
①格式指示符:说明输出数据的类型、宽度、精度等。
常用的格式指示符有:
%d 带符号十进制整数。
%f 带符号十进制小数形式(默认6位小数)。
%c 输出一个字符。
②转义字符:自动转换为相应操作命令。
如任务1中的printf()中的“\n”就是转义字符,输出时产生一个“换行”。具体转义字符功能见表1-1。
③普通字符:除格式指示符和转义字符之外的其他字符,原样输出。
如任务1中的printf("交换后两个整数的值为:%d,%d\n",x,y);中的“交换后两个整数的值为:”,是格式字符串中的普通字符,原样输出。
2)输出项表
要输出的数据,可以是变量或表达式,可以没有,有多个时以“,”分隔。例如:
注意: 格式指示符一定要和输出项的数据类型一致,否则会出错。例如,printf("%d,%f \n",3.756,8);是错误的。因为“%d”是整型格式,但3.756却是实数,同样“%f”是实数格式,但8却是整型。
【例2.1】 格式化输出。
程序运行结果如图2-5所示。
图2-5 例2.1程序运行结果
字符可以用“%c”输出字符,也可以用“%d”输出字符ASCII所对应的十进制整数。值在0~255的整数,也可以用“%c”形式输出为字符。
【例2.2】 字符数据的输出。
程序运行结果如图2-6所示。
图2-6 例2.2程序运行结果
格式字符串中的格式指示符除了上面常用的情况外,其他的格式说明见表2-2和表2-3。
表2-2 printf格式字符
续表
表2-3 printf的附加格式说明字符
【例2.3】 格式化输出。
程序运行结果如图2-7所示。第一句printf中%d按实际输出123;%4d实际数据位数3小于m的值4,在左边补1个空格输出123;%-4d,向左看齐,右边补1个空格输出123 ;%2d按实际输出123。第二句printf中%ld按实际输出135790;%8ld实际数据位数6小于m的值8,在左边补2个空格输出135790;%-8ld,向左看齐,右边补2个空格输出135790 ;%5ld按实际输出135790。第三句printf中%f按默认6位小数实际输出123.456000;%10f按默认6位小数后实际数据位数10(小数点算一位)不小于m的值10,实际输出123.456000;%10.2f保留n的值2位小数后,实际位数6小于m的值10,在左边补4个空格输出123.45;%-10.2f向左看齐,右边补4个空格输出123.45;%.2f保留n的值2为小数后按实际输出123.45。
图2-7 例2.3程序运行结果
(2)格式化输入函数scanf()
scanf()的功能是按指定格式从键盘读入数据,存入地址表指定的存储单元中,并按回车键结束。
1)格式字符串
格式字符串包括格式指示符和普通字符两部分。
格式指示符与printf()的格式指示符相似:%d表示带符号十进制整数。%f表示带符号十进制实数形式,%c表示一个字符。
普通字符在输入数据时,必须按原样一起输入。
2)输入项地址表列
输入项地址表列由若干个输入项地址组成,相邻2个输入项地址之间用逗号分开。输入项地址一般由取地址运算符&和变量名组成,即:&变量名。例如:
其功能是从键盘上输入两个整数分别存入变量x和y的存储单元中,即输入两个整数分别赋给变量x和y。若x=3,y=5,则程序运行时在键盘上输入数据为:3,5↙(回车键)。
注意: 3和5之间一定要有逗号隔开,因为格式字符串中的两个%d之间是用普通字符逗号隔开的,普通字符必须按原样输入。另外,地址符号不能掉,即不能写成scanf("%d,%d",a,b);。
如果格式指示符之间没有普通字符分隔,输入数据时可用空格、回车键或Tab作为分隔符。例如:
同样x=3,y=5,则程序运行时在键盘上输入数据可以是:3 5↙,也可以是3↙5↙,还可以是3(按Tab键)5↙。
【例2.4】 格式化输入输出。
程序运行结果如图2-8所示。
图2-8 例2.4程序运行结果
(3)字符输出函数putchar()
putchar()的功能:在显示器上输出单个字符。
调用格式:
函数参数c,可以是字符变量或整型变量或字符常量,也可以是一个转义字符。例如:
注意: putchar()一次只能输出一个字符。
(4)字符输入函数getchar()
getchar()的功能:从键盘上输入一个字符。只接收单个字符,输入数字也按字符处理。输入多于一个字符时,只接收第一个字符。输入单个字符后,必须按一次回车,计算机才接收输入的字符。
调用格式:
输入的字符可以赋给一个字符变量或整型变量,构成赋值语句,也可以不赋给任何变量,而作为表达式的一部分。
【例2.5】 字符输入输出函数。
程序运行结果如图2-9所示。
图2-9 例2.5程序运行结果