1、本章主要学习内容,字符输出函数 putchar() 字符输入函数 getchar() 格式输出函数 printf() 格式输入函数 scanf(),第三章 简单的C程序设计,顺序结构程序的基本操作,输入数据 从标准输入设备上输入数据到计算机内存 输出数据 将计算机内存中的数据送到标准输出设备 通过调用标准库函数来实现#include 在由TC指定的文件目录中找该文件,字符输入输出函数,字符输出函数 putchar(ch) 输出一个字符ch 字符输入函数 getchar() 无参数 函数值为从输入设备接收的字符,#include main() char ch;printf(“Press a ke
2、y and then press Enter:“); ch = getchar(); printf(“You pressed “);putchar(ch); putchar(n); ,运行程序,Press a key and then press Enter:,A,You pressed,A,例3.1,格式输出函数,格式 printf(格式控制字符串, 输出项表列); printf(“a=%d b=%f“, a, b);可以输出若干任意类型的数据,函数名,可选输 出表列,普通字符,%c character以字符形式输出单个字符 %s string 输出一个字符串 %d decimal 以带符号
3、十进制整数输出 %f float 以小数形式输出浮点数(6位小数) %e exponent 以标准指数形式输出(6位小数) %g 选用%f,%e中输出宽度较小的一种格式 %o octal 以八进制无符号整数输出(无前导0) %x hex 以十六进制无符号整数输出(无前导0x) %u unsigned 以十进制无符号整数输出,printf格式字符,printf Function - Character,Format for character: %c,Example: printf(“%c %c %c”, U, K, M);,U K M_,printf Function - Character,
4、Example: printf(“%c%c%c”, U, K, M);,UKM_,printf Function - Character,Example: char1 = U; char2 = K; char3 = M; printf(“%c %c %c”, char1, char2, char3);,U K M_,Example:printf( “Name: %snStudent No: %s”, “Ali Bakar”, “A92333”);,Name: Ali Bakar Student No: A92333_,printf Function - String,Format for ch
5、aracter: %s,printf Function - String,Example:printf( “Name: %snStudent No: %s”, “Ali Bakar”, “A92333”);,Name: Ali Bakar Student No: A92333_,printf Function - Float,Format for float: %f General format:% . f,Example: printf(“Value is:%10.4f”, 32.6784728);,Value is: 32.6785,printf Function - Float,Exam
6、ple: printf(“Value is:%10f”, 32.6784728);,Value is: 32.678473,printf Function - Float,Example: printf(“Value is:%10.5f”, 32.6784);,Value is: 32.67840,Example: printf(“Value is:%5f”, 32.6784728);,Value is:32.678473,printf Function - Float,Example: printf(“Value is:%.3f”, 32.6784728);,Value is:32.678,
7、printf Function - Float,printf Function - Float,#include main( ) int age;float height;age = 21;height = 1.73;printf(“Ali is %d years old and his height is %.5f metersn”, age, height); ,Ali is 21 years old and his height is 1.73000 meters _,21,1.73,Example:,m 表示数据占用的最小宽度数据宽度大于m,按实际宽度输出数据宽度小于m时,补空格 n
8、对实数表示输出n位小数对字符串表示最多输出的字符个数 l 长整型整数,加在d、o、x、u前 L long double型数,加在f、e、g前 - 改变输出内容的对齐方式缺省为右对齐,printf附加格式说明符,格式输入函数,格式 scanf(格式控制字符串, 地址表列);scanf(“%d,%f”, ,c 以字符形式输入单个字符 s 输入字符串,以非空字符开始,遇第一个空白字符结束 d 以带符号十进制形式输入整型数据 f 以小数形式输入浮点数 e 以标准指数形式输入 o 以八进制无符号形式输入(无前导0) x 以十六进制无符号形式输入(无前导0x),scanf格式字符,scanf Functi
9、on,Example: printf(“Key-in a character and a number: “); scanf(“%c%d”, ,m,Key-in a character and a number: m103,103,Key-in a character and a number: m103 Character: m _,Key-in a character and a number: m103 Character: m Number: 103 _,#include main( ) int day, month, year;scanf(“%d %d %d”, ,23 03 201
10、0,23,03,2010,23 03 2010 Day: 23, Month: 03, Year: 2010_,scanf Function,m 表示数据占用的宽度 l 加在d、o、x、u前:输入长整型加在f、e 前:输入双精度型 L 加在f、e 前:输入long double型 h 加在d、o、x 前:输入短整型 * 本输入项在读入后不赋给相应的变量,scanf附加格式说明符,#include main() int a, b;printf(“Please input a and b:“);scanf(“%2d%*2d%2d“, ,Please input a and b:,a=12, b=5
11、6, a+b = 68,123456,例3.2,跳过一个输入项,#include main() int a, b;scanf(“%d %d“, ,问题1:当要求程序输出结果为a = 12, b = 34 时,用户应该如何输入数据?,12 34,输入数据的格式控制,#include main() int a, b;scanf(“%d %d“, ,问题2:当限定用户输入数据以逗号为分隔符,即输入数据格式为: 12,34 时,应修改程序中的哪条语句?怎样修改?,输入数据的格式控制,#include main() int a, b;scanf(“%d %d“, ,问题3:语句scanf(“%d %d“
12、, 时,用户应该如何输入数据?,a = 12, b = 34,输入数据的格式控制,#include main() int a, b;scanf(“%d %d“, ,问题4:限定用户输入数据为以下格式为 1234 同时要求程序输出结果为a = 12, b = 34,%2d%2d,输入数据的格式控制,#include main() int a, b;scanf(“%d %d“, ,问题5:限定用户输入数据为以下格式为 12 34同时要求程序输出结果为a = “12“ ,b = “34“,“%d“ ,b = “%d“,输入数据的格式控制,#include main() int a, b;scanf(
13、“%d %d“, ,问题6:设计程序使得用户可以以任意字符(回车、空格、制表符、逗号、其它)作为分隔符进行数据的输入,输入数据的格式控制,#include main() int data1, data2, sum;char op;printf(“Please enter the expression data1 + data2n“);scanf(“%d%c%d“, ,Please enter the expression data1 + data2,第1次测试,12 + 3,12 4199288 = 4199300,C格式符的问题及解决,#include main() int data1, d
14、ata2, sum;char op;printf(“Please enter the expression data1 + data2n“);scanf(“%d%c%d“, ,Please enter the expression data1 + data2,第2次测试,12 3,12 3 = 15,C格式符的问题及解决,#include main() int data1, data2, sum;char op;printf(“Please enter the expression data1 + data2n“);scanf(“%d%c%d“, ,Please enter the expre
15、ssion data1 + data2,第3次测试,12+3,12+3 = 15,C格式符的问题及解决,#include main() int a;char b;float c;printf(“Please input an integer:“); scanf(“%d“, ,Please input an integer:,希望得到的运行结果,12,Please input an character :,a,Please input a float number:,3.5,integer:12,character :a,float number:3.500000,C格式符的问题及解决,#inc
16、lude main() int a;char b;float c;printf(“Please input an integer:“); scanf(“%d“, ,Please input an integer:,结果好像很奇怪呀!,12,Please input an character :,a,Please input a float number:,3.5,integer:12,float number:3.500000,C格式符的问题及解决,#include main() int a;char b;float c;printf(“Please input an integer:“);
17、scanf(“%d“, ,Please input an integer:,程序修改后得到的运行结果,12,Please input an character :,a,Please input a float number:,3.5,integer:12,character :a,float number:3.500000,C格式符的问题及解决,#include main() int a;char b;float c;printf(“Please input an integer:“); scanf(“%d“, ,C格式符的问题及解决,本章知识点,字符输入函数getchar() 字符输出函数putchar() 格式输入函数scanf() 格式输出函数printf() 难点格式控制问题,格式输入函数常见错误,scanf(“%d,%fn”, 几点忠告 不要拘泥于细节 不要死记硬背 在使用中慢慢掌握,课堂编程练习:设计一个顺序结构程序,输入任意三个整数, 求三个整数的和及平均值(保留位小数)。 作业:完成习题三 预习:第4章 选择结构程序设计,