c语言输入输出函数高教课堂

上传人:仙*** 文档编号:151205143 上传时间:2022-09-12 格式:PPT 页数:36 大小:873KB
返回 下载 相关 举报
c语言输入输出函数高教课堂_第1页
第1页 / 共36页
c语言输入输出函数高教课堂_第2页
第2页 / 共36页
c语言输入输出函数高教课堂_第3页
第3页 / 共36页
点击查看更多>>
资源描述
安 庆 师 范 学 院 计 算 机 与 信 息 学 院 第第3 3章章 输入输出函数输入输出函数 3.1 求整数的各位数字和求整数的各位数字和3.2 温度转换温度转换3.3 字母大小写转换字母大小写转换3.4 综合应用实例综合应用实例 安 庆 师 范 学 院 计 算 机 与 信 息 学 院 3.1 求整数的各位数字和求整数的各位数字和 例例 3-1 3-1 给出一个三位数的整数,求出该整数的给出一个三位数的整数,求出该整数的3 3个数字之和。个数字之和。程序代码程序代码#include#include void main()void main()int x,a,b,c,s;int x,a,b,c,s;printf(printf(“请输入一个三位数:请输入一个三位数:”););scanf(scanf(“%3d%3d”,&x);,&x);a=x/100;b=x/10%10;c=x%10;a=x/100;b=x/10%10;c=x%10;s=a+b+c;s=a+b+c;printf(printf(“%d%d的各位数字之和是的各位数字之和是%dn%dn”,x,s);,x,s);安 庆 师 范 学 院 计 算 机 与 信 息 学 院 3.1 求整数的各位数字和求整数的各位数字和 printf()函数的功能是向系统显示器输出若干函数的功能是向系统显示器输出若干个任意类型的数据。个任意类型的数据。1.printf()函数调用形式函数调用形式 printf(格式控制字符串,输出列表格式控制字符串,输出列表)调用输入输出函数加头文件调用输入输出函数加头文件#include 注意:对于注意:对于printf()和和scanf(),在,在.C文件文件中可省略中可省略,在在.cpp文件文件中要加上。中要加上。3.1.2 格式化输出函数格式化输出函数 printf()安 庆 师 范 学 院 计 算 机 与 信 息 学 院 格式说明格式说明 一般字符一般字符按原样输出按原样输出转义字符转义字符作用:换行作用:换行输出列表输出列表printf(a=%d n,a);printf函数简例函数简例3.1 求整数的各位数字和求整数的各位数字和 安 庆 师 范 学 院 计 算 机 与 信 息 学 院 格式控制字符串和输出列表都是函数的参数,其中:格式控制字符串和输出列表都是函数的参数,其中:(1)格式控制字符串包括两个信息)格式控制字符串包括两个信息 格式说明符。由格式说明符。由“”开头,以格式字符结束的一开头,以格式字符结束的一串字符,如串字符,如%d,%c,%f等。作用是将要输出的数据转等。作用是将要输出的数据转化成指定的格式输出。化成指定的格式输出。原样输出字符,含一般字符和转义字符。一般起原样输出字符,含一般字符和转义字符。一般起提示、分隔数据和换行等作用。如例提示、分隔数据和换行等作用。如例3-1中中双引号内的双引号内的nn和和c=c=(printf(“nc=%dn”,c);)(2)输出列表是要输出的)输出列表是要输出的常量、变量、函数、表达式常量、变量、函数、表达式。3.1 求整数的各位数字和求整数的各位数字和 安 庆 师 范 学 院 计 算 机 与 信 息 学 院 格式说明符的一般形式:格式说明符的一般形式:%-+0#整数整数m.整数整数nl或或h 格式字符格式字符 .n修饰符m-+0#l/h对实数对实数,指定小数点后位数指定小数点后位数(四舍五入四舍五入)默认默认6 6位小数位小数对字符串对字符串,指定实际输出位数指定实际输出位数功功 能能 输出数据域宽输出数据域宽,数据长度数据长度m,m,左补空格左补空格;否则按实际输出否则按实际输出输出数据在域内左对齐(缺省右对齐输出数据在域内左对齐(缺省右对齐)指定在有符号数指定在有符号数的正数前显示正号的正数前显示正号(+)(+)输出数值时指定左面不使用的空位置自动填输出数值时指定左面不使用的空位置自动填0 0在八进制和十六进制数前显示前导在八进制和十六进制数前显示前导0 0,0 0 x x在在d,o,x,ud,o,x,u前,指定输出精度为前,指定输出精度为longlong型在型在e,f,ge,f,g前,指定输出精前,指定输出精度为度为doubledouble型型;h h指定输出短整型数据指定输出短整型数据 安 庆 师 范 学 院 计 算 机 与 信 息 学 院 格式字符表格式字符表格式字符格式字符格式字符含义格式字符含义d或或i表示以十进制形式输出一个带符号的整数表示以十进制形式输出一个带符号的整数o表示以八进制形式输出一个无符号的整数表示以八进制形式输出一个无符号的整数X,x表示以十六进制形式输出一个无符号的整数表示以十六进制形式输出一个无符号的整数u表示以十进制形式输出一个无符号的整数表示以十进制形式输出一个无符号的整数f表示以小数形式输出带符号的实数(包括单、双精度)表示以小数形式输出带符号的实数(包括单、双精度)E,e表示以指数形式输出带符号的实数表示以指数形式输出带符号的实数G,g表示选择表示选择%f或或%e格式输出实数(选择占宽度较小的一种格式输出)格式输出实数(选择占宽度较小的一种格式输出)c表示输出一个单字符表示输出一个单字符s表示输出一个字符串表示输出一个字符串注:注:大写字母表示输出中的字母为大写大写字母表示输出中的字母为大写 安 庆 师 范 学 院 计 算 机 与 信 息 学 院#include main()int a,b,c;a=1234;b=5678;c=a+b;printf(a+b=%d+%d=%dn,a,b,c);printf(“a+b=%hd+%hd=%hdn”,a,b,c);printf(a+b=%2d+%2d=%5dn,a,b,c);printf(a+b=%02d+%02d=%05dn,a,b,c);【例例3-2】分析下面程序运行结果分析下面程序运行结果 安 庆 师 范 学 院 计 算 机 与 信 息 学 院#include main()unsigned short a=65535;short int b=-2;printf(a=%hd,%ho,%hx,%hun,a,a,a,a);printf(b=%hd,%ho,%hx,%hun,b,b,b,b);【例例3-3】无符号数据的输出无符号数据的输出 安 庆 师 范 学 院 计 算 机 与 信 息 学 院#include main()double x,y,z;x=123.234;y=-0.000345;z=-98.567;printf(“x=%lf,x=%.4lf,x=%2lf,x=%+e n”,x,x,x,x);printf(y=%lf,y=%+lf,y=%len,y,y,y);printf(z=%fn,z);【例例3-4】分析下面程序运行结果分析下面程序运行结果 安 庆 师 范 学 院 计 算 机 与 信 息 学 院#include main()printf(n%c,a);/*输出单个字符输出单个字符*/printf(n%s,abc);/*输出一个字符串输出一个字符串*/【例例3-5】分析下面程序运行结果分析下面程序运行结果 安 庆 师 范 学 院 计 算 机 与 信 息 学 院 程序代码程序代码#include int main(void)float F,C;printf(“请输入一华氏温度:请输入一华氏温度:”););scanf(“%f”,&F);C=5.0/9*(F-32);printf(“对应的摄氏温度是对应的摄氏温度是%fn”,C);例例 3-6 3-6 输入一个华氏温度,要求输出转换后的摄氏温度。输入一个华氏温度,要求输出转换后的摄氏温度。3.2 求华氏温度对应的摄氏温度求华氏温度对应的摄氏温度 安 庆 师 范 学 院 计 算 机 与 信 息 学 院 3.2.2 格式化输入函数格式化输入函数scanfscanfscanf()scanf()函数是从键盘上将数据按用户指定的格式输入函数是从键盘上将数据按用户指定的格式输入并赋给指定变量。并赋给指定变量。1.1.函数调用形式函数调用形式 scanfscanf(格式控制字符串,地址列表);(格式控制字符串,地址列表);格式控制字符串的定义与使用方法和格式控制字符串的定义与使用方法和printfprintf函数相似,函数相似,但不能显示非格式字符串,即不能显示提示字符串。但不能显示非格式字符串,即不能显示提示字符串。地址列表是要赋值的各变量地址,地址是由地址运算符地址列表是要赋值的各变量地址,地址是由地址运算符“&”&”后跟变量名组成,如后跟变量名组成,如&x&x表示变量表示变量x x的地址。的地址。安 庆 师 范 学 院 计 算 机 与 信 息 学 院 格式说明符以格式说明符以%开始,后面跟一个格式符,中间可以有若干个附开始,后面跟一个格式符,中间可以有若干个附加字符,一般形式为:加字符,一般形式为:%输入数据宽度输入数据宽度m长度长度 类型类型:表示输入的数值不赋给相应的变量,即跳过该数据不读。:表示输入的数值不赋给相应的变量,即跳过该数据不读。输入数据宽度输入数据宽度m:表示按十进制正整数:表示按十进制正整数m的宽度输入数据。的宽度输入数据。长度长度:长度格式符为:长度格式符为l和和h,l表示输入长整型数据或双精度实型表示输入长整型数据或双精度实型数据;数据;h表示输入短整型数据。表示输入短整型数据。类型:是格式说明符中必须要有的,其格式符的意义与类型:是格式说明符中必须要有的,其格式符的意义与printf函函数基本相同,具体如表数基本相同,具体如表3-3所示。所示。2.格式说明符格式说明符 安 庆 师 范 学 院 计 算 机 与 信 息 学 院 scanf 函数常用类型格式符函数常用类型格式符格式字符格式字符格式字符含义格式字符含义d(i)d(i)表示以十进制形式输入一个整数表示以十进制形式输入一个整数o o表示以八进制形式输入一个整数表示以八进制形式输入一个整数x(X)x(X)表示以十六进制形式输入一个整数表示以十六进制形式输入一个整数u u表示以十进制形式输入一个无符号的整数表示以十进制形式输入一个无符号的整数f f或或e(E)e(E)表示输入一个实数,可以是小数形式或指表示输入一个实数,可以是小数形式或指数形式数形式g(G)g(G)与与f f或或e e的作用相同的作用相同c c表示输入一个字符表示输入一个字符s s表示输入一个字符串表示输入一个字符串 安 庆 师 范 学 院 计 算 机 与 信 息 学 院 例例3-7 按指定宽度输入整数按指定宽度输入整数#include main()int a,b,c;printf(“请输入请输入10位数:位数:”););/*按长度按长度m进行输入进行输入*/scanf(%3d%3d%4d,&a,&b,&c);printf(a=%d,b=%d,c=%dn,a,b,c);安 庆 师 范 学 院 计 算 机 与 信 息 学 院#include main()double a,b,c;printf(请输入两个双精度数:请输入两个双精度数:);scanf(%lf,%lf,&a,&b);/*按双精度进行按双精度进行输入输入*/c=a*b;printf(na*b=%lf*%lf=%len,a,b,c);例例3-8 double 型数据的输入输出型数据的输入输出 安 庆 师 范 学 院 计 算 机 与 信 息 学 院#include void main()char c1,c2;printf(“请输入两个字符数:请输入两个字符数:)scanf(%c%c,&c1,&c2);printf(“c1=%c,c2=%cn,c1,c2);例例3-9 字符型数据的输入输出字符型数据的输入输出 安 庆 师 范 学 院 计 算 机 与 信 息 学 院#include main()int x,y;scanf(%2d%*3d%4d,&x,&y);/*注意注意%*3d的作用的作用*/printf(nx=%d,y=%d n,x,y);例例3-10 格式符格式符*的作用的作用 安 庆 师 范 学 院 计 算 机 与 信 息 学 院 (1)scanf函数中的函数中的“格式控制字符串格式控制字符串”后面应该是后面应该是变量地址变量地址,而不应是变量名。如而不应是变量名。如scanf(“%d,%d”,a,b);是错误的,是错误的,&不能不能少少。(2)输入数据时)输入数据时不能规定数据的精度不能规定数据的精度。如。如scanf(%8.2f,&a);是不合法的。是不合法的。(3)在)在“格式控制字符串格式控制字符串”中除格式说明符外,若有其他字符,中除格式说明符外,若有其他字符,则在输入数据时在对应位置上应输入这些字符。则在输入数据时在对应位置上应输入这些字符。例如例如:scanf(a=%d,b=%d,&a,&b);则键盘输入:则键盘输入:a=12,b=-2 其他任何输入形式都不正确。其他任何输入形式都不正确。安 庆 师 范 学 院 计 算 机 与 信 息 学 院 (4)输入数据时,遇以下情况认为该数据输入结束:)输入数据时,遇以下情况认为该数据输入结束:按指定的宽度结束;按指定的宽度结束;遇空格,或遇空格,或“回车回车”键,或键,或“Tab”键;键;遇非法输入。遇非法输入。(5)在用)在用“%c%c”格式输入字符时,所有输入的字符格式输入字符时,所有输入的字符(包括空格字符和(包括空格字符和“转义字符转义字符”)都作为有效字符。)都作为有效字符。(6)当输入的数据与输出的类型不一样时,虽然编译)当输入的数据与输出的类型不一样时,虽然编译没有提示出错,但结果将不正确。没有提示出错,但结果将不正确。安 庆 师 范 学 院 计 算 机 与 信 息 学 院 /*输入输出类型不一致输入输出类型不一致*/#include main()int a;scanf(%hd,&a);printf(a=%dn,a);例例3-11 分析下面程序分析下面程序 安 庆 师 范 学 院 计 算 机 与 信 息 学 院 C C语言为字符定义了输入函数语言为字符定义了输入函数getchar()getchar()和输出函数和输出函数putchar()putchar()。在使用这两个函数时,程序的头部。在使用这两个函数时,程序的头部一定要一定要加上文件包含命令:加上文件包含命令:#include 1.字符输入函数字符输入函数getchar()getchar()的功能是从标准设备(键盘)上读入一个字的功能是从标准设备(键盘)上读入一个字符。其一般调用形式符。其一般调用形式 getchar();语句语句ch=getchar()ch=getchar()和和 scanf(scanf(“%c%c”,&ch);&ch);功能相同功能相同3.2 字母大小写转换字母大小写转换 安 庆 师 范 学 院 计 算 机 与 信 息 学 院 3.2 字母大小写转换字母大小写转换 例例 3-12 3-12 输入一个英文小写字母,输出该字母所对应的大写字母。输入一个英文小写字母,输出该字母所对应的大写字母。程序代码程序代码#include#include void main()void main()char c1;char c1;printf(printf(“请输入一小写字母:请输入一小写字母:”););c1=getchar();c1=getchar();/*与与scanf(scanf(“%c%c”,&c1);,&c1);等价等价*/c1=c1-32;c1=c1-32;/*将小写字母转换为大写字母将小写字母转换为大写字母*/printf(printf(“大写字母是大写字母是%cn%cn”,c1);,c1);安 庆 师 范 学 院 计 算 机 与 信 息 学 院 C C语言为字符定义了输入函数语言为字符定义了输入函数getchar()getchar()和输出函数和输出函数putchar()putchar()。在使用这两个函数时,程序的头部。在使用这两个函数时,程序的头部一定要一定要加上文件包含命令:加上文件包含命令:#include 1.字符输入函数字符输入函数getchar()getchar()的功能是从标准设备(键盘)上读入的功能是从标准设备(键盘)上读入一个一个字字符。其一般调用形式符。其一般调用形式 getchar();语句语句ch=getchar()ch=getchar()和和 scanf(scanf(“%c%c”,&ch);&ch);功能相同功能相同3.2 字母大小写转换字母大小写转换 安 庆 师 范 学 院 计 算 机 与 信 息 学 院#include main()char c1,c2;printf(“请输入两个字符:请输入两个字符:”);c1=getchar();c2=getchar();/*和和scanf(“%c”,&c2)等价等价*/printf(%c,%cn,c1,c2);【例例3-13】字符输入函数的使用字符输入函数的使用 安 庆 师 范 学 院 计 算 机 与 信 息 学 院 2.2.字符输出函数字符输出函数putchar()putchar()字符输出函数字符输出函数putchar()putchar()的功能是向标准输出设备的功能是向标准输出设备(显示器)输出(显示器)输出一个一个字符。调用形式:字符。调用形式:putchar(c);其中:其中:c c是参数,是参数,整型或字符型整型或字符型。当是整数时,输。当是整数时,输出以该数值作为出以该数值作为ASCIIASCII码所对应字符;当是字符时,直码所对应字符;当是字符时,直接输出字符常量。接输出字符常量。putchar(c)和和 printf(printf(“%c%c”,c)c)功能相同功能相同 安 庆 师 范 学 院 计 算 机 与 信 息 学 院#include main()char x,y,z;x=a;y=+;z=b;putchar(x);putchar(y);putchar(z);putchar(132);putchar(n);printf(“%c%c%c132n”,x,y,z);【例例3-14】字符输出函数的使用字符输出函数的使用 安 庆 师 范 学 院 计 算 机 与 信 息 学 院 【例例3-15】从键盘上输入两个整数放入变量从键盘上输入两个整数放入变量a,b中,中,编程将这两个变量中的数据交换。编程将这两个变量中的数据交换。【分析分析】两个数据交换,不能直接写成两个数据交换,不能直接写成a=b;b=a;a=b;b=a;,因为当执行,因为当执行a=b;a=b;后,变量后,变量a a中的原值就被中的原值就被“冲冲”掉了,而与变量掉了,而与变量b b中的值相中的值相等,因此不能实现交换。正确的做法是另定义一个变量(假设等,因此不能实现交换。正确的做法是另定义一个变量(假设是是c c)作为暂存单元,在执行)作为暂存单元,在执行a=b;a=b;之前,先将变量之前,先将变量a a的值放入的值放入c c中中保存起来,然后执行保存起来,然后执行a=b;a=b;,最后再执行,最后再执行b=c;b=c;,由于,由于c c中保存的是中保存的是a a的值,这样就将原来的值,这样就将原来a a的值赋给了的值赋给了b b,从而实现了两个变量中的,从而实现了两个变量中的数据交换。数据交换。3.4 综合应用实例综合应用实例 安 庆 师 范 学 院 计 算 机 与 信 息 学 院 程序程序#include main()int a,b,c;a=3;b=5;c=a;a=b;b=c;printf(a=%d,b=%dn,a,b);35a3cb 安 庆 师 范 学 院 计 算 机 与 信 息 学 院#include#include main()float a,b,c,s,area;scanf(%f%f%f,&a,&b,&c);s=(a+b+c)/2;area=sqrt(s*(s-a)*(s-b)*(s-c);printf(na=%.2f,b=%.2f,c=%.2fn,a,b,c);printf(narea=%.3fn,area);【例例3-16】输入三角形的三条边,编程求该三角形的面积输入三角形的三条边,编程求该三角形的面积 安 庆 师 范 学 院 计 算 机 与 信 息 学 院 【例例3-17】编程求方程的解编程求方程的解#include#include main()float a,b,c,d,x1,x2;a=3;b=-5;c=-7;d=b*b-4*a*c;x1=(-b+sqrt(d)/(2*a);x2=(-b-sqrt(d)/(2*a);printf(x1=%.4f,x2=%.4fn,x1,x2);安 庆 师 范 学 院 计 算 机 与 信 息 学 院 【例例3-18】分析下面程序的运行结果分析下面程序的运行结果#include main()int x=1,y=5;printf(x=%d,y=%d,x,y);【分析分析】本程序格式控制字符串中,有两个连续的本程序格式控制字符串中,有两个连续的%。前面。前面已经讲过,已经讲过,两个连续的两个连续的%表示输出一个表示输出一个%,因此变量,因此变量x,y没没有对应的输出格式,只能输出双引号中的字符。有对应的输出格式,只能输出双引号中的字符。安 庆 师 范 学 院 计 算 机 与 信 息 学 院 【例例3-19】分析下面程序的运行结果分析下面程序的运行结果#include main()int a,b;a=0 x41;/*65 */b=+a;/*66 */printf(%d,%dn,a-,-b);printf(%c,%cn,+a,b+);安 庆 师 范 学 院 计 算 机 与 信 息 学 院 【例例3-20】从键盘上输入一个英文小写字母,编程从键盘上输入一个英文小写字母,编程输出该字母所对应的输出该字母所对应的ASCIIASCII码和所对应的大写字母码和所对应的大写字母【分析分析】在在ASCIIASCII字符集中,大写字母字符集中,大写字母AZAZ是连续的是连续的(ASCIIASCII值从值从65906590),小写字母),小写字母azaz也是连续的也是连续的(ASCIIASCII值从值从9712297122)。)。每对字母的每对字母的ASCIIASCII码值差是相同的,都是码值差是相同的,都是3232,即,即a a-A A、b b-B B、c c-C C、z z-Z Z都是都是3232。所以将小写字母的所以将小写字母的ASCIIASCII码值减去码值减去3232,则得到的是所对,则得到的是所对应的大写字母应的大写字母ASCIIASCII码值。码值。同理,将大写字母的同理,将大写字母的ASCIIASCII码值加上码值加上3232,则得到的是,则得到的是所对应的小写字母所对应的小写字母ASCIIASCII码值。码值。安 庆 师 范 学 院 计 算 机 与 信 息 学 院#include main()char c1,c2;c1=getchar();/*从键盘获得一个小写字母从键盘获得一个小写字母*/c2=c1-32;/*将小写字母转化为大写字母将小写字母转化为大写字母*/printf(%d,%cn,c1,c1);putchar(c2);
展开阅读全文
相关资源
相关搜索

最新文档


当前位置:首页 > 管理文书 > 施工组织


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!