资源预览内容
第1页 / 共32页
第2页 / 共32页
第3页 / 共32页
第4页 / 共32页
第5页 / 共32页
第6页 / 共32页
第7页 / 共32页
第8页 / 共32页
第9页 / 共32页
第10页 / 共32页
亲,该文档总共32页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
2011年3月,哈尔滨工业大学计算机学院,guopinghit.edu.cn,C语言大学实用教程,格式化输入/输出和字符输入输出,教学目的:,熟练掌握字符输入/出函数熟练掌握格式输入/输出函数,第3章 格式化输入/输出和字符输入输出,主要内容,C的语句,字符输入函数getchar()和输出函数putchar(),格式输出函数printf()和输入函数scanf(),C中的语句,变量声明语句: int i; 赋值语句: i = i + 1; 函数调用语句: printf(“%dn”,i); 控制语句: if(i10) i+; 空语句: ; /*什么也不做*/ 复合语句: 由一条或多条括在花括号里的语句构成。t = x ; x = y; y = t; ,3.1 c的语句,复合语句,使用条件,条件语句和循环语句在语法上只允许带一条语句在分支或循环中又需要进行多项操作时,3.1 c的语句,#include main() int a, b;int term; scanf(%d %d, ,例3.1 从键盘输入任意两个数,将这两个数按从小到大顺序输出。,3.1 c的语句,文件名:3-1.c,字符输入输出函数,字符输出函数putchar ( ch )输出一个字符ch 字符输入函数getchar ( )无参数函数值为从输入设备接收的字符,3.2字符输入输出函数,#include main() char ch; printf(“Press a key and then press Enter:“); ch = getchar(); printf(“You pressed ”); putchar(ch); putchar(n); ,例3.2 阅读程序,给出程序的执行结果,Press a key and then press Enter:,A,You pressed,程序执行结果:,A,3.2字符输入输出函数,文件名:3-2.c,格式输出函数 printf(格式控制字符串); printf(格式控制字符串, 输出项列表); 输出若干个任意类型的数据 输出项列表可以是常量、变量或表达式 printf(“a=%d b=%f“, a, b);,格式输出函数printf(),普通字符,普通字符,格式转换说明符,格式转换说明符,3.3格式输入输出函数,输出项列表,d 以带符号十进制整数输出 o 以八进制无符号整数输出(无前导0) x 以十六进制无符号整数输出(无前导0x) u 以十进制无符号整数输出 c 以字符形式输出单个字符 s 输出一个字符串 f 以小数形式输出浮点数(6位小数) e 以标准指数形式输出(6位小数) g 选用%f,%e中输出宽度较小的一种格式 %,Printf 格式转换说明符,3.3格式输入输出函数,l 长整型整数,加在d、o、x、u前 L long double型数,加在f、e、g前 m 表示数据占用的最小宽度数据宽度大于m,按实际宽度输出数据宽度小于m时,补空格 n 对实数表示输出n位小数对字符串表示最多输出的字符个数 - 改变输出内容的对齐方式,左对齐缺省为右对齐,printf格式修饰符,3.3格式输入输出函数,#include main() long int m=12; int a=30,b=214; printf(“%ld%5d%5dn”, m, a, b); printf(%ld%-5d%-5d,m,a,b); ,12 30 214 1230 214,程序执行结果:,例3.3 阅读程序,给出程序的执行结果,3.3格式输入输出函数,文件名:3-3.c,#include main() float f1 = 100.15799, f2 = 12.55, f3 = 1.7;int n1 = 123, n2 = 45, n3 = 6; printf(“printf WITHOUT width or precision specifications:n“);printf(“%fn%fn%fn“, f1, f2, f3);printf(“%dn%dn%dn“, n1, n2, n3); ,printf WITHOUT width or precision specifications:,100.157990 12.550000 1.700000,123 45 6,3.3格式输入输出函数,例3.4 阅读程序,给出程序的执行结果,printf WITHOUT width or precision specifications:,100.1612.62,123456,#include main() float f1 = 100.15799, f2 = 12.55, f3 = 1.7;int n1 = 123, n2 = 45, n3 = 6; printf(“printf WITH width and precisionspecifications:n“);printf(“%5.2fn%6.1fn%3.0fn“, f1, f2, f3);printf(“%5dn%6dn%3dn“, n1, n2, n3); ,3.3格式输入输出函数,例3.5 阅读程序,给出程序的执行结果,格式输入函数 scanf(格式控制字符串, 输入参数地址表列); scanf(“%d %d”, ,格式输入函数scanf(),,,3.3格式输入输出函数,格式控制字符串中,若有非格式字符,输入数据时要原样输入,d 以带符号十进制形式输入整型数据 o 以八进制无符号形式输入(无前导0) x 以十六进制无符号形式输入(无前导0x) c 以字符形式输入单个字符 s 输入字符串,以非空字符开始,遇第一个空白字符结束 f 以小数形式输入浮点数 e 以标准指数形式输入,scanf格式字符,3.3格式输入输出函数,l 加在d、o、x、u前:输入长整型加在f、e 前:输入双精度型L 加在f、e 前:输入long double型h 加在d、o、x 前:输入短整型m 表示数据占用的宽度* 本输入项在读入后不赋给相应的变量,scanf格式修饰符,3.3格式输入输出函数,#include main() int a; float b,c; scanf (“%d %f”, ,12 14.5 ,可以按以下形式输入数据:,3.14 ,12 ,14.5 ,3.14 ,12 ,14.5 3.14 ,12 14.5 3.14 ,3.3格式输入输出函数,例3.6 阅读程序,给出程序的执行结果,常见错误 scanf(“%d,%fn”,格式输入函数,3.3格式输入输出函数,#include main() int a, b; printf(“Please input a and b:”); scanf(“%2d%*2d%2d”, ,Please input a and b:,a=12, b=56, a+b = 68,123456,程序执行结果:,例3.7 阅读程序,给出程序的执行结果,3.3格式输入输出函数,Please input a and b:,a=12, b=5, a+b = 17,12345a,程序执行结果:,例3.7 阅读程序,给出程序的执行结果,#include main() int a, b; printf(“Please input a and b:”); scanf(“%2d%*2d%2d”, ,3.3格式输入输出函数,输入数据的格式控制,#include main() int a, b;printf(“Please input a and b:“);scanf(“%d %d“, ,Please input a and b:,12 34,a =12,b=34,问题1:当要求程序输出结果为a = 12, b = 34 时,用户应该如何输入数据?,例3.8 阅读程序,给出程序的执行结果,3.3格式输入输出函数,问题2:当限定用户输入数据以逗号为分隔符,即输入数据格式为: 12,34 时,应修改程序中的哪条语句?怎样修改?,输入数据的格式控制例3.8,#include main() int a, b;printf(“Please input a and b:“);scanf(“%d %d“, ,scanf( %d , % d , ,3.3格式输入输出函数,#include main() int a, b;printf(“Please input a and b:“);scanf(“%d %d“, ,scanf ( a = %d, b = %d “, ,Please input a and b:,a=12,b=34,a =12,b=34,输入数据的格式控制例3.8,问题3:语句scanf(“%d %d”, 时,用户应该如何输入数据?,执行程序:,3.3格式输入输出函数,#include main() int a, b;printf(“Please input a and b:“);scanf(“%d %d“, ,问题4:限定用户输入数据为以下格式: 1234 同时要求程序输出结果为:a = 12, b = 34,scanf(“%2d%2d“, ,输入数据的格式控制例3.8,3.3格式输入输出函数,#include main() int a, b;printf(“Please input a and b:“);scanf(“%d %d“, ,问题5:限定用户输入数据为以下格式: 12 34 同时要求程序输出结果为a = “12“, b = “34“ 应如何修改scanf和printf?,scanf(“%d%d“, ,输入数据的格式控制例3.8,3.3格式输入输出函数,#include main() int a, b;printf(“Please input a and b:“);scanf(“%2d %2d“, ,问题6:设计程序使得用户可以以任意字符(回车、空格、制表符、逗号、其它)作为分隔符进行数据的输入?,scanf(“%d%*c%d“, ,输入数据的格式控制例3.8,3.3格式输入输出函数,例3.9-1 按下述格式,从键盘输入一个整数加法表达式:操作数1 + 操作数2 然后计算并输出表达式的计算结果,形式如下:操作数1 + 操作数2 = 计算结果,3.3格式输入输出函数,分析:操作数1和操作数2应是整型数据,分别用整型变量data1和data2来表示;运算符应是字符型数据,用字符变量op来表示。,例3.9-2,Please enter the expression data1 + data2,
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号