1 / 26

2.12 数据的输出

第五次课:. 2.12 数据的输出. 输入输出是以计算机内存为文体的 , 数据由计算机传到外部输出设备称为输出 ; 数据由外部输入设备传到计算机称为输入。 C 语言本身不提供输入输出语句 , 是由函数来实现的。 C 提供的函数以库的形式存放在系统。. 标准输入输出库函数 putchar( 输出字符 ) getchar ( 输入字符 ) printf (格式输出) scanf (格式输入) puts (输出字符串) gets (输入字符串) 标准输入输出库函数 stdio.h

Télécharger la présentation

2.12 数据的输出

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 第五次课: 2.12 数据的输出 • 输入输出是以计算机内存为文体的,数据由计算机传到外部输出设备称为输出;数据由外部输入设备传到计算机称为输入。 • C语言本身不提供输入输出语句,是由函数来实现的。C提供的函数以库的形式存放在系统。

  2. 标准输入输出库函数 putchar(输出字符) getchar(输入字符) printf(格式输出)scanf(格式输入) puts(输出字符串) gets(输入字符串) 标准输入输出库函数 stdio.h #include <stdio.h> 或 #include “stdio.h”

  3. 在头文件中包含了与用到的函数有关的信息,# include <文件名>命令都是放在程序的开头,因此这类文件称为“头文件”。 • Stdio.h是standard input & output的缩写,它包含了与标准I/O库有关的变量定义和宏定义。 数学函数 “math.h” 字符函数 “ctype.h” 字符串函数 “string.h”

  4. 一、字符数据的输入输出 1、字符输出函数 格式: putchar(c) 其中c为字符型或整型的常量、变量及其表达式 功能: 每次向屏幕输出一个字符供显示。 该函数可以输出控制字符和转义字符. 如:putchar(‘\”’); 【例】求以下程序运行结果 #include <stdio.h> main() { char x='a'; putchar(x); putchar('b'); putchar(x+2); putchar('b'+2); } 结果:abcd

  5. 例 # include <stdio.h> main() { char ch1,ch2; ch1=‘A’; putchar(‘*’); putchar(‘\n’); putchar(ch1); ch2= putchar(ch1+2); putchar(ch2); } 字符常量的输出 控制字符的输出 字符变量的输出 表达式值的输出 返回值的输出 结果:* ACC

  6. 【例一】 #include <stdio.h> main() { char a,b; a=getchar();b=getchar(); printf(“a=%c,b=%c\n”,a,b); } 运行时,如果—— 输入:Student 输出结果为 a=S,b=t 2.字符输入函数 格式: getchar( ) 功能: 从键盘上读入一个字符, getchar( )包含在stdio.h中; 该函数没有参数; 该函数一次只应读取一个字符; 该函数得到的字符可以赋值给一个字符变量或整型变量,也可以不赋给任何变量,作为表达式的一部分 如:printf(“%c”,getchar()); putchar(getchar());

  7. 例 从终端输入一个字母以大写字母输出。 main() { char ch,c; ch=getchar(); c=ch>=‘a’&&ch<=‘z’?ch-32:ch; putchar(c); } 运行情况: 输入:a 输出结果: A

  8. 二、格式输出 • 格式输出函数 格式:printf(“格式控制字符串”,输出表列) 其中f为“格式(format)”的意思。 功能:按指定格式向显示器输出数据 • 输出表列:要输出的数据(可以没有,多个时以“,”分隔) • 格式控制字符串:包含两种信息 • 格式说明:%[格式字符],用于指定输出格式 • 普通字符或转义序列:原样输出 一般形式为: Printf(参数1,参数2,……参数n); • 格式字符

  9. 格式字符: 十进制整数 d,i 十六进制无符号整数 x,X 八进制无符号整数 o 不带符号十进制整数 u 单一字符 c 字符串 s 指数形式浮点小数 e,E 小数形式浮点小数 f e和f中较短一种 G,g 百分号本身 %% int a=567;printf ( “%d”,a); 567 int a=255;printf(“%x”,a); ff int a=65;printf(“%o”,a); 101 int a=567;printf(“%u”,a); 567 char a=65;printf(“%c”,a); A printf(“%s”,“ABC”); ABC float a=567.789;printf(“%e”,a); 5.677890e+002 float a=567.789;printf(“%f”,a); 567.789000 float a=567.789;printf(“%g”,a); 567.789 printf(“%%”); % • 说明 • 除x、e、g外,其它格式字符要用小写 • 格式字符与输出项个数应相同,按先后顺序一一对应 格式字符与输出项类型不一致,自动按指定格式输出

  10. 修饰符 功 能 m 输出数据域宽,数据长度<m,左补空格;否则按实际输出 对实数,指定小数点后位数(四舍五入) 对字符串,表示截取字符个数 .n 输出数据在域内左对齐(缺省右对齐) - 指定在有符号数的正数前显示正号(+) + 输出数值时指定左面不使用的空位置自动填0 0 # 在八进制和十六进制数前显示前导0,0x 在d,o,x,u前,指定输出精度为long型 在e,f,g前,指定输出精度为double型 l • 附加格式说明符(修饰符)

  11. 例题: 例 int a=1234; float f=123.456; printf(“%08d\n”,a); printf(“%010.2f\n”,f); printf(“%+08d\n”,a); printf(“+010.2f\n”,f); main() {printf(“\n*s1=%15s*”,”chinabeijing”); printf(“\n*s2=%-5s*”,”chi”); printf(“\n*s3=%15.3s*”,”chinabeijing”); printf(“\n*s4=%.4s*”,”chinabeijing”); printf(“\n*s5=%-15.3s*”,”chinabeijing”); } 例 int a=123; printf(“%o,%#o,%X,%#X\n”,a,a,a,a); main() {float a=123.444; printf(“%f\n”,a); printf(“%14.3f\n”,a); printf(“%6.4f\n”,a); printf(“%.4f\n”,a); } int x=-1; printf(“%x,%o,%d,%12x”,x,x,x,x); int x=1,y=3; printf(“x=%d y=%d *sum*=%d\n”,x,y,x+y); int x=7281; printf(“x=%3d,x=%6d”,x,x); long a=135790; printf(“%ld,%8ld”,a,a);

  12. 课后分析: • 对于格式输出函数printf()函数,不同的数据使用的格式符不同,规则比较多,课上要通过大量的练习让学生对比掌握。

  13. 第六次课: 目的要求: • 掌握格式输入函数scanf()函数的使用 • 学习顺序结构程序设计方法 重点难点: • 地址的含义及取地址符号&的用法 • 算法的概念及几个简单算法的表示

  14. 2.13 格式输入函数 • 格式输入函数 • 格式: scanf(“格式控制字符串”,地址表列) • 功能:按指定格式从键盘读入数据,存入地址表指定的存储单元中,并按回车键结束 • 地址表列:由若干个变量的地址组成,地址常用取地址运算符&和变量名组成& • 格式字符:d,i,o,x,u,c,s,f,e

  15. 修饰符 功 能 h 用于d,o,x前,指定输入为short型整数 用于d,o,x前,指定输入为long型整数 l 用于e,f前,指定输入为double型实数 m 指定输入数据宽度,遇空格或不可转换字符则结束 抑制符,指定输入项读入后不赋给变量 * • 附加格式说明符(修饰符)

  16. 输入分隔符的指定 • 一般以空格、TAB或回车键作为分隔符 • 其它字符做分隔符:格式串中两个格式符间字符,输入时应原样输入 • 例:“%d%d%d”格式控制 • 3_ _ 4 _ _ 5 • 3 4 _ 5 • 3(tab)_ _ 4 5 scanf(“%d,%d”,&a,&b); scanf(“%d:%d”,&a,&b); scanf(“%d_ _%d”,&a,&b); scanf(“a=%d,b=%d”,&a,&b);

  17. 可以指定输入数据的列数,系统自动按它截 取所需数据 scanf(“%3d%3d”,&a,&b); scanf(“%3c”,&ch); 123456 c • 若%后有一个“*”,表示跳过指定列数 scanf(“%2d_ %*3d_ %2d”,&a,&b); 12_345_67 • 输入时不能规定精度 scanf(“%7.2f ”,&a); • Scanf函数至少有一个输入项,输入项必须用地址表示

  18. 说明: • 用“%c”格式符时,空格和转义字符作为有效字符输入 scanf(“%c%c%c”,&c1,&c2,&c3); • 输入数据时,遇以下情况认为该数据结束: • 遇空格、TAB、或回车 • 遇宽度结束 • 遇非法输入 scanf(“%d%c%f”,&a,&b,&c);

  19. 目的要求: • 了解C的语句组成及分类 • 难点: • c程序的顺序结构

  20. 第三章 顺序程序设计 • 程序 数据描述:定义数据类型和数据初值 数据操作:对数据进行加工,由语句 实现

  21. if( )~else~ • switch • for( )~ • while( )~ • do~while( ) • continue • break • goto • return 分支 循环 辅助控制 • 3.1C语句概述 • C语句:以“;”作分隔符,编译后产生机器指令. • C语句分类 • 控制语句

  22. 表达式语句:表达式加分号构成。 赋值语句:可包含在其他表达式中, 如:if ((x=y)>0) z=x; 在if的条件中不能包含赋值语句 • 函数调用语句:函数调用语句由一次函数调用加一个分号(语句结束标志)构成. 如:printf(“This is a C program.\n”); • 空语句:仅由一个分号构成。显然,空语句什么操作也不执行。有时用来做被转向点,或用在循环体中

  23. 复合语句:用 {…}括起来的一组语句 • 一般形式: { [数据说明部分;] 执行语句部分; } • 说明: • “}”后不加分号 • 语法上和单一语句相同 • 复合语句可嵌套

  24. 文件包含预处理命令 变量定义 输入数据 输出数据 例 输入三角形边长,求面积 #include <math.h> #include <stdio.h> main() { float a,b,c,s,area; scanf("%f,%f,%f",&a,&b,&c); s=1.0/2*(a+b+c); area=sqrt(s*(s-a)*(s-b)*(s-c)); printf("a=%7.2f, b=%7.2f, c=%7.2f, s=%7.2f\n",a,b,c,s); printf("area=%7.2f\n",area);} 输入:3,4,6  输出:a= 3.00, b= 4.00, c= 6.00 s= 6.50 area= 5.33

  25. 例 从键盘输入大写字母,用小写字母输出 #include "stdio.h" main() { char c1,c2; c1=getchar(); printf("%c,%d\n",c1,c1); c2=c1+32; printf("%c,%d\n",c2,c2); } 输入:A  输出:A,65 a,97

  26. #include <stdio.h> #include <math.h> main() { float a,b,c,disc,x1,x2,p,q; scanf("a=%f,b=%f,c=%f",&a,&b,&c); disc=b*b-4*a*c; p=-b/(2*a); q=sqrt(disc)/(2*a); x1=p+q; x2=p-q; printf("\n\nx1=%5.2f\nx2=%5.2f\n",x1,x2); } 输入:a=1,b=3,c=2  输出:x1=-1.00 x2=-2.00

More Related