




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、教学内容: 5.1 顺序结构程序 5.2 字符输入输出函数 5.3 格式输入输出函数 5.4 顺序结构程序设计应用实例 教学要求: 1.掌握编写顺序结构程序的基本方法。 2.掌握字符输入输出函数的使用。 3.掌握scanf和printf函数的使用。,第5章 顺序结构程序设计,在顺序结构程序中,各语句是按照位置的先后次序,顺序执行的,且每个语句都会被执行到。 一、简单顺序结构程序组成 1程序头部分 (1)程序功能的注释。 (2)编译预处理命令,一般包括文件包含编译预处理命令,以及宏定义命令。 2顺序结构程序函数主体 函数体内主要包括以下一些成分。 (1)变量的说明部分。 (2)数据输入部分。 (
2、3)运算部分。 (4)运算结果输出部分。,5.1 顺 序 结 构 程 序,例5.1从键盘输入圆的半径,求圆的周长和面积。程序如下: /*求圆的周长和面积*/ #include # define PI 3.14159 main() int r; /*算法步骤*/ float s, area; /*算法步骤*/ scanf(%d, ,程序算法: 定义圆半径、圆周长、面积的变量; 从键盘输入圆半径数值; 按照计算公式计算求出圆的周长和面积; 输出圆的周长和面积的数值;,一、 单个字符的输入函数 1getchar()函数的格式:getchar(); 2getchar()函数的作用: 从系统隐含的输入设
3、备(如键盘)输入一个字符。 3说明: (1)getchar()函数只能用于单个字符的输入,一次输入一个字符。 (2)程序中要使用getchar()函数,必须在程序(或文件)的开头加上编译预处理命令: # include stdio.h,5.2 字 符 输 入 输 出 函 数,例5.2 getchar()函数的使用。 #include stdio.h/*文件包含*/ main() char ch; printf(Please input a character: ); ch=getchar();/*输入1个字符并赋给ch */ printf(%c, ch ); /*输出一个字符*/ printf
4、(n); 程序运行情况如下: Please input a characters: b b,二、单个字符的输出函数 1putchar()函数的格式: putchar(ch); 其中ch可以是一个字符变量或常量,也可以是一个转义字符。 2putchar()函数的作用:向终端输出一个字符。 3 说明: (1)putchar()函数只能用于单个字符的输出,且一次只能输出一个字符。 (2)在程序中使用putchar()函数,务必牢记:在程序(或文件)的开头加上编译预处理命令(也称文件包含命令):#include stdio.h 表示要使用的函数,包含在标准输入输出(stdio .h )头文件中。,例5
5、.3 putchar() 函数的格式和使用方法。 #include stdio.h/*文件包含命令*/ main() char ch1=N, ch2=E, ch3=W; putchar(ch1); putchar(ch2); putchar(ch3); putchar(n); putchar(ch1); putchar(n); putchar(E); putchar(n); putchar(ch3); putchar(n); 程序运行结果如下: NEW N E W,5.3 格 式 输 入 输 出 函 数,一、printf()函数 1printf() 函数的一般格式 printf(格式字符串 ,
6、输出项表); 2.函数的作用:输出一个或多个任意类型的数据。 3格式字符串 “格式字符串”也称“转换控制字符串”,可以包含三种字符:格式指示符、转义字符、普通字符 (1)格式指示符 一般形式如下: %标志符宽度.小数宽度类型修饰符,(2)转义字符 printf()函数中的n就是转义字符,输出时产生一个“换行”操作。 还有:t 、 r 、 b 等。 (3)普通字符 除格式指示符和转义字符之外的其它字符。 普通字符原样输出。 4输出项表 输出项表内容:常量,变量,表达式 。 输出项表是可选的。若输出的数据不止1个,相邻2个之间用逗号分开。,下面的printf()函数都是合法的: (1)printf
7、(I am a student.n); 普通字符 转义字符 (2)printf(%d,3+2); 格式指示符 表达式 (3)printf(a=%f b=%5dn, a, b+3); (4) printf(“%d,%cn”, 56,56);,2个输出项之间用逗号分开,此处逗号也是普通字符,5.格式指示符 %d 以十进制输出整数。 %md 以十进制输出整数,数据最小宽度占m位。 若数值长度m,输出原整数。 % _ md 以十进制输出整数,数据最小宽度占m位。 若数值长度m,输出原整数。 例如: printf(“%5d,%5dn”,456,567); 输出结果: 456,567 %ld 以十进制形式
8、输出长整型数据。,%o 以八进制无符号形式输出整数,不输出前导符0。 printf(%o n,128); 输出结果:200 %lo 以八进制无符号形式输出长整型数 不输出前导符0。 %x 以十六进制无符号形式输出整数, 不输出前导符0 x 。 %lx 以十六进制无符号形式输出长整型数, 不输出前导符 0 x 。 %u 以无符号十进制形式输出整数。 printf(“%un”,2); 输出结果:65534 %lu 以无符号十进制形式输出长整型数。,%c 用来输出1个字符。 %s 用来输出一个字符串。 %ms 按m宽度输出字符串。 若串长 m ,则照字符串原样输出; 若串长m ,则左边补空格。 %-
9、 ms 类似%ms, 若串长m ,则字符串向左靠,右边补空格。 %m.ns 靠右输出字符串左边的n个字符,左补空格。 (n m) %-m.ns 靠左输出字符串左边的n个字符,右补空格。 (n m),%f 以小数形式输出实数。 %m.nf 输出宽度为m,其中小数为n位。 若数值长度m,则 靠右输出,左边补空格。 %-m.nf 同类似,“ - ”表示靠左输出,右边补空格。 %e 以指数形式输出实数。 %m.ne 此处m、n、 同f格式。 %-m.ne 此处m、n、- 同f格式。 %g根据数值大小自动选择 f 格式或 e 格式中占用宽 度小的一种,6.使用说明 (1)格式控制中的格式说明符,必须按从
10、左到右的顺序,与输出项表中的每个数据一一对应,否则出错。 例如:下面使用格式是错误的。 printf(str=%s, f=%d, i=%fn, Internet, 1.0 / 2.0, 3 + 5, CHINA); (2)格式字符x、e、g可以用小写字母,也可以用大写字母。使用大写字母时,输出数据中包含的字母也大写。 除了x、e、g格式字符外,其它格式字符必须用小写字母。 例如,%f不能写成%F。,(3)格式字符紧跟在“%”后面就作为格式字符,否则将作为普通字符使用(原样输出)。 例如, printf(”c=%c, f=%fn“, c, f); 中的第一个 c 和 f,都是普通字符 (4)所谓
11、无符号形式是指,不论正数还是负数,系统一律当作无符号整数来输出。 unsigned int a=65535 printf(“a=%un”,a); printf(“a=%dn”,a); 输出结果:a= 65535 输出结果:a= -1,7. 格式字符使用实例 (1)d 以带符号的十进制整数形式输出。 main() int n1=123; long int n2=123456; printf(%d,%5d,%5d,%2dn,n1,n1,n1,n1); printf(%ld,%8ld,%5ldn,n2,n2,n2); printf(n1=%ldn,n1); 程序运行结果:123,123,123,12
12、3 123456,123456,123456 n1=16908411,(2)f 以小数形式、按系统默认的宽度, 输出单精度和双精度实数。 main( ) float f=123.456; double d1, d2; d1=1111111111111.111111111; d2=2222222222222.222222222; printf(%f,%12f,%12.2fn,f,f,f); printf(%-12.2f,%.2fn,f,f); printf(d1+d2=%fn,d1+d2); ,程序运行结果如下: 123.456001,123.456001,123.46 123.46,123.4
13、6 d1+d2=3333333333333.333010 本程序的输出结果中,超出了有效数字的范围的数据是无意义。例如: 数据123.456001中的001是无意义的 数据3333333333333.333010中的010是无意义, 因为它们超出了有效数字的范围。,(3) %e -以标准指数形式输出实数 指数形式尾数中的整数部分大于等于1、小于10, 小数点占一位,尾数中的小数部分占6位; 指数部分占5位(如e-003),其中e占一位,指数符号占一位,指数占3位, 标准指数形式共计13位。 (4) %g -让系统根据数值的大小,自动选择%f或%e格式、且不输出无意义的零。 例如: float
14、a=123.468; printf( “ %f,%e,%gn”,a,a,a ); 输出结果: 123.468000,1.234680e+002,123.468,(5) c 输出一个字符(只占一列宽度)。 main() char c=A; int i=65; printf(c=%c,%5c,%dn,c,c,c); printf(i=%d,%c,i,i); 程序运行结果如下: c=A,A,65 i=65,A C语言中,整数以字符形式输出时,系统首先求该数与256的余数,然后将余数作为ASCII码,转换成相应的字符输出。字符数据也可以整数形式输出。,(6)s 输出一个字符串。 main() prin
15、tf(%s,%5s,Internet,Internet); printf(%-10sn,Internet); printf(%10.5s,”,Internet); printf(%-10.5s,”,Internet); printf(“%4.5sn,Internet); 程序运行结果如下: Internet,Internet,Internet, Inter,Inter,Inter 说明: 系统输出字符和字符串时,不输出单引号和双引号。,例5.4 输出格式控制符的作用 #include main() int a =3102; long int b =74228; short int c =625
16、; printf(a1=%dn,a); printf(a2=%on,a); printf(a3=%xn,a); printf(b=%ldn,b); printf(c=%dn,c); 运行结果: a1=3102 a2=6036 a3=c1e b=74228 c=625,例5.5 输出格式控制符的作用 #include main() unsigned int d =65433; float f =2.34679865858988; double g =2.34679865858988; printf(d=%un,d); printf(“f1=%en,f); printf(f2=%fn,f); pr
17、intf(g=%fn,g); printf(n); getch(); 运行结果:d=65433 f1=2.34680e+00 f2=2.346799 g=2.346799,例5.6 已知圆柱体的底半径(radius) 1.5,高(high) 2.0,求其体积。 main() float r=1.5, h=2.0, vol; vol= 3.14159 * r * r * h; /*求体积*/ printf(“vol=%7.2fn”,vol); 在程序中给计算机提供数据,可以用赋值语句,也可以用输入函数。在C语言中,可使用 scanf() 函数,通过键盘输入,给计算机主机同时输入多个、任意的数据,
18、二、格式化输入函数,1. scanf()函数的一般格式 scanf(格式字符串, 输入项首地址表); (1)格式字符串 格式字符串可以包含2种类型的字符: 格式指示符、称普通字符。 格式指示符与 printf() 函数的相似, 称普通字符在输入有效数据时,必须原样一起输入。,(2)输入项首地址表 输入项首地址表由若干个输入项首地址组成,相邻2个输入项首地址之间,用逗号分开。 变量首地址的表示方法: ,输入项首地址表,2. 格式指示符 (1)格式指示符的形式为: % * 宽度 l 类型字符 类型字符有: d、 u、 o、 x、 c、 s、 f、 e、 g 以上类型字符代表的数据类型与printf
19、()中的相同。 例如,格式字符串 “ %f %f ”。 (2) 类型修饰符 类型修饰符: l 其含义与printf()中的一样, l 为长整型。,(3)宽度n 指定该项输入数据所占列数为 n,读取输入数据中相应的n位,但按需要的位数赋给相应的变量,多余部分被舍弃。 例如,scanf(%3c%3c, 输出结果为:ch1=a,ch2=d。,(4)赋值抑制字符* 赋值抑制字符*,表示本输入项对应的数据读入后,不赋给相应的变量(该变量由下一个格式指示符输入)。 例如, scanf(%2d%*2d%3d, 输出结果为:n1=12,n2=567,3. 数据输入操作 (1)如果相邻2个格式指示符之间,不指定
20、数据分隔符(如逗号、冒号等),则相应的2个输入数据之间,至少用一个空格分开,或者用Tab键分开,或者输入1个数据后,按回车,然后再输入下1个数据。 设给n1输入12,给n2输入36;则执行以下命令, scanf(%d%d,正确的输入操作为: 1236 12 Tab 36 12 36 注:使用“”符号表示按回车键操作,在输入数据操作中的作用是,通知系统输入操作结束。,(2)“格式字符串”中出现的普通字符(包括转义字符形式的字符),务必原样输入。 例如,scanf(%d,%d, 正确的输入操作为: n1=12,n2=36n,一般不使用转义字符,在设计输入操作时,为了改善人机交互性,使得输入操作简单
21、明了,可以在用scanf()函数进行数据输入时,一般先用printf()函数输出一个提示信息,再用scanf()函数进行数据输入。 例如, scanf(n1=%d,n2=%dn,(3)用scanf()函数进行数据输入时,输入数据遇到以下情况,系统认为该数据结束: 遇到空格,或者回车键,或者Tab键。 遇到输入域宽度结束。 例如: scanf(“%3d %3d”, 输入数值: 234a12 变量a的数值为 234,4使用格式说明符“%c”输入单个字符时,空格和转义字符均作为有效字符被输入。 例如,scanf(%c%c%c, 运行结果: AB,例5.7 从键盘输入两个整型数,输出其中的一个大数的程
22、序也可以写成如下程序: int max(int x, int y) return( xy ? x : y ); main( ) int a, b c ; printf(“Input the first integer number: ”); scanf( “%d”, ,表达式的应用,输出提示信息,运行窗口及程序运行情况:,第一次运行程序情况及结果,第二次运行程序,进入运行窗口,先显示第一个提示信息,光标停在提示信息后,等待用户从键盘输入一个整数,再显示第二个提示信息,输入一个整数,返回程序窗口。,运行上述程序,一次输入两个整型数,输出其中的一个大数; 若要进行几组两个整型数的比较,并输出其中的一个大数,那么就要多次运行上述程序。 若要在一个程序中完成几组两个整型数的比较,并输出其中的一个大数,就要编写一个循环程序。,例5.8 从键盘输入梯形的上下底和高的实数值,求梯形的面积。 算法: 定义
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年文化创意产业资金申请项目知识产权保护报告
- 《公差配合与技术测量》课件-第3章 第11部分(位置误差的检测)
- 药品原辅料供应链稳定性提升策略:2025年行业解决方案报告
- 工业互联网网络运维 课件 任务4.4-1 网络安全防护-用户安全管理
- 2025某新中式地产新产品发布会大气国风黑金活动方案
- 燃烧意志题目及答案
- 书刊排版面试题及答案
- 数学 周长题目 及答案
- 碳中和碳排放试题及答案
- 养殖泥鳅管理办法
- 神昏中医护理常规
- 现代家庭教育方法
- 肺炎患者的护理
- 站桩教学课件
- 外研版八年级英语下册期末复习之阅读还原【答案+解析】
- 2025年公务员考试时事政治模拟题附答案详解(模拟题)
- 2025年江苏省事业单位招聘考试教师招聘语文专业知识试卷(中学语文教师)
- 住院医师规范化培训教学病例讨论实施规范
- 2025-2030中国半导体产业链市场运行态势及前景展望与投资风险评估
- 化工工艺培训
- 2000-2015年考研英语一真题及详细解析
评论
0/150
提交评论