C3顺序结构程序设计_第1页
C3顺序结构程序设计_第2页
C3顺序结构程序设计_第3页
C3顺序结构程序设计_第4页
C3顺序结构程序设计_第5页
已阅读5页,还剩35页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、Copyright Henan Polytechnic University 语语言言第第 3 3 章章顺顺序序结结构构程程序序设设计计C C C C语言程序设计语言程序设计第第3 3章章 顺序结构程序设计顺序结构程序设计Copyright Henan Polytechnic University 语语言言第第 3 3 章章顺顺序序结结构构程程序序设设计计C C问题:一年有春夏秋冬四季,按序执行,做事亦有先后问题:一年有春夏秋冬四季,按序执行,做事亦有先后顺序,那么顺序,那么C C语言在编写程序时可以采用这样的顺序结语言在编写程序时可以采用这样的顺序结构吗?构吗? 按程序书写的前后顺序依次按序

2、执行按程序书写的前后顺序依次按序执行。 C C语言同样提供了这种最简单的程序设计语言同样提供了这种最简单的程序设计结构:顺序结构。结构:顺序结构。引子引子Copyright Henan Polytechnic University 语语言言第第 3 3 章章顺顺序序结结构构程程序序设设计计C Cl 本章重点本章重点第第3 3章章 顺序结构程序设计顺序结构程序设计l 本章难点本章难点n C C语言基本语句的分类语言基本语句的分类n 字符数据输入输出函数字符数据输入输出函数n 格式化输入输出函数格式化输入输出函数Copyright Henan Polytechnic University 语语言言

3、第第 3 3 章章顺顺序序结结构构程程序序设设计计C C3.13.23.33.4C语言语句概述语言语句概述字符数据的输入输出字符数据的输入输出格式化输入输出函数格式化输入输出函数顺序结构程序设计举例顺序结构程序设计举例本章主要内容本章主要内容Copyright Henan Polytechnic University 语语言言第第 3 3 章章顺顺序序结结构构程程序序设设计计C C说明语句说明语句变量定义或说明变量定义或说明数据类型定义数据类型定义函数声明等语句函数声明等语句可执行语句:用来向计算机发出操作指令。可执行语句:用来向计算机发出操作指令。简单语句简单语句表达式语句:表达式;例:表达

4、式语句:表达式;例: i+; i+; 函数调用语句函数调用语句控制语句控制语句空语句:只有分号空语句:只有分号“;”组成的语句,程序执行时组成的语句,程序执行时不产生任何动作。不产生任何动作。复合语句:把多个语句用括号复合语句:把多个语句用括号“”括起来组成的一个括起来组成的一个语句语句C C语言无语言无I/OI/O语句,语句,I/OI/O操作由函数实现操作由函数实现 #include #include 1 1)条件判断语句:)条件判断语句:ifif语句、语句、switchswitch语语句等;句等;2) 2) 循环执行语句:循环执行语句:do-whiledo-while语句、语句、while

5、while语句、语句、forfor语句;语句;3) 3) 转向语句:转向语句:breakbreak语句、语句、gotogoto语句、语句、continuecontinue语句、语句、returnreturn语句。语句。3.1 C3.1 C语言语句概述语言语句概述printf(C Program);/*调用库函数,调用库函数,输出字符串输出字符串*/ while(getchar()!=n) ; 语句语句1; 语句语句2; 语句语句n; 。 x=y+z; a=b+c; printf(%d%d,x,a); Copyright Henan Polytechnic University 语语言言第第 3

6、 3 章章顺顺序序结结构构程程序序设设计计C C3.13.23.33.4C语言语句概述语言语句概述字符数据的输入输出字符数据的输入输出格式化输入输出函数格式化输入输出函数顺序结构程序设计举例顺序结构程序设计举例本章主要内容本章主要内容Copyright Henan Polytechnic University 语语言言第第 3 3 章章顺顺序序结结构构程程序序设设计计C C输出输出3.2 3.2 字符数据的输入输出字符数据的输入输出从从计算机计算机向向外部外部输出设备(如显示器、打印机输出设备(如显示器、打印机、磁盘等)输出数据、磁盘等)输出数据 输入输入从从输入设备输入设备(如键盘、磁盘、光

7、盘、扫描仪等(如键盘、磁盘、光盘、扫描仪等)向)向计算机计算机输入数据输入数据在VC中,调用输入/输出函数之前,必须使用下面预编译命令对头文件“stdio.h”(stdio是standard input/output的缩写)进行文件包含说明。 #include Copyright Henan Polytechnic University 语语言言第第 3 3 章章顺顺序序结结构构程程序序设设计计C C格式格式: putchar( ch ): putchar( ch )参数参数: : ch为字符常量或变量,为字符常量或变量,也可以是一个转义字符也可以是一个转义字符 功能:功能:在默认输出终端(一

8、般为显示器)上在默认输出终端(一般为显示器)上输出单个字符输出单个字符 字符输出函数(字符输出函数(putcharputchar)3.2 3.2 字符数据的输入输出字符数据的输入输出Copyright Henan Polytechnic University 语语言言第第 3 3 章章顺顺序序结结构构程程序序设设计计C C#include #include main()main() char ch=B; char ch=B; putchar(ch); / putchar(ch); /* *输出变量的值字符输出变量的值字符B B* */ / putchar(n); / putchar(n); /

9、* *输出一个换行符输出一个换行符* */ / putchar(B); / putchar(B); /* *直接输出字符直接输出字符B B* */ / putchar(n); / putchar(n); /* *输出一个换行符输出一个换行符* */ / putchar(0 x42); / putchar(0 x42); /* *使用使用ASCIIASCII值输出字符值输出字符B B* */ / putchar(n); / putchar(n); /* *输出一个换行符输出一个换行符* */ / 运行结果:运行结果:B B B B B B例:输出单个字符例:输出单个字符Copyright Hen

10、an Polytechnic University 语语言言第第 3 3 章章顺顺序序结结构构程程序序设设计计C C格式格式:getchar( ):getchar( )功能:功能:从系统默认的输入终端(一般为从系统默认的输入终端(一般为键盘)输入一个字符,可以是字母键盘)输入一个字符,可以是字母字符、数字字符和其他字符等字符、数字字符和其他字符等例例3.2 输入单个字符,并输出。输入单个字符,并输出。#include main() char c; c=getchar(); putchar(c); 运行结果:运行结果:字符输入函数(字符输入函数(getchargetchar)getchar函数等

11、待输入直到按回函数等待输入直到按回车才结束,回车前所输入的全车才结束,回车前所输入的全部字符都会在在屏幕上显示,部字符都会在在屏幕上显示,但只有第一个字符作为函数的但只有第一个字符作为函数的返回值。返回值。例例3.2 输入单个字符,并输出。输入单个字符,并输出。#include main() putchar(getchar(); Copyright Henan Polytechnic University 语语言言第第 3 3 章章顺顺序序结结构构程程序序设设计计C C3.13.23.33.4C语言语句概述语言语句概述字符数据的输入输出字符数据的输入输出格式化输入输出函数格式化输入输出函数顺序

12、结构程序设计举例顺序结构程序设计举例本章主要内容本章主要内容Copyright Henan Polytechnic University 语语言言第第 3 3 章章顺顺序序结结构构程程序序设设计计C C格式:格式:printf(printf(格式控制字符串格式控制字符串 ,输出表列,输出表列););功能:功能:将数据在终端设备(或系统默认的输出设将数据在终端设备(或系统默认的输出设备上)按指定格式输出备上)按指定格式输出 说明:说明:输出表列是以逗号隔开的表达式;输出表列是以逗号隔开的表达式; 格式控制字符串规定输出格式 格式控制串作用:格式控制串作用:为各输出项提供输出格式为各输出项提供输出

13、格式% % 修饰符修饰符 格式字符格式字符:将要:将要输出的数据转换为指定的格式输出,输出的数据转换为指定的格式输出,由由“%”%”符号开始,符号开始,紧跟其后的是格式描述符,说明输出数据的类型、形式、紧跟其后的是格式描述符,说明输出数据的类型、形式、长度、小数位数等。长度、小数位数等。 原样输出普通字符:在程序运行过程中起提示作用原样输出普通字符:在程序运行过程中起提示作用格式输出函数(格式输出函数(printfprintf)3.3 3.3 格式化输入输出函数格式化输入输出函数Copyright Henan Polytechnic University 语语言言第第 3 3 章章顺顺序序结结

14、构构程程序序设设计计C C例例3.3 输出函数输出函数printf程序示例。程序示例。#include main() int i=3314; float a=2.1454; printf(i=%d,a=%f,a*10=%en,i,a,a*10);运行结果:运行结果:i=3314,a=2.145400,a*10=2.145400e+001Copyright Henan Polytechnic University 语语言言第第 3 3 章章顺顺序序结结构构程程序序设设计计C Cprintfprintf函数中常用的输出格式函数中常用的输出格式printf函数的输出格式的一般形式为:函数的输出格式的

15、一般形式为: %标志标志宽度指示符宽度指示符.精度指示符精度指示符长度修饰符长度修饰符格式字符格式字符格式字符格式字符格 式 字 符说 明d或或iox,Xufe,E以十进制形式输出带符号整数(正数不输出符号)以十进制形式输出带符号整数(正数不输出符号)以八进制形式输出无符号整数(不输出前缀以八进制形式输出无符号整数(不输出前缀0)以十六进制形式输出无符号整数(不输出前缀以十六进制形式输出无符号整数(不输出前缀0 x),),对于对于x用用abcdef输出;对于输出;对于X用用ABCDEF输出输出以十进制形式输出无符号整数以十进制形式输出无符号整数以小数形式输出单、双精度实数,隐含输出以小数形式输

16、出单、双精度实数,隐含输出6位小数位小数以指数形式输出单、双精度实数,数字部分小数位数为以指数形式输出单、双精度实数,数字部分小数位数为6位位,指数部分占,指数部分占5位,用位,用“E”时,指数以大写表示时,指数以大写表示Copyright Henan Polytechnic University 语语言言第第 3 3 章章顺顺序序结结构构程程序序设设计计C C格式字符格式字符格 式 字 符说 明g,Gcsp以以%f或或%e中较短的输出宽度输出单、双精中较短的输出宽度输出单、双精度实数,不输出无意义的度实数,不输出无意义的0,用,用“G”时,则时,则指数以大写表示指数以大写表示 输出单个字符输

17、出单个字符 输出字符串输出字符串 输出变量的内存地址输出变量的内存地址 Copyright Henan Polytechnic University 语语言言第第 3 3 章章顺顺序序结结构构程程序序设设计计C C宽度(域宽)指示符。宽度(域宽)指示符。作用:作用:用来指定输出数据项的最小字段宽度,通常用十进用来指定输出数据项的最小字段宽度,通常用十进制表示。制表示。 省略宽度指示符时省略宽度指示符时,按实际位数输出;,按实际位数输出;若实际位数大于定义的宽度,若实际位数大于定义的宽度,也按实际位数输出;也按实际位数输出;若实际位数小于定义的宽度,若实际位数小于定义的宽度,数据右对齐,左边补数

18、据右对齐,左边补以空格。以空格。Copyright Henan Polytechnic University 语语言言第第 3 3 章章顺顺序序结结构构程程序序设设计计C C未指定宽度和指定输出宽度时的输出结果未指定宽度和指定输出宽度时的输出结果输 出 语 句输 出 结 果printf(%3dn,4321);printf(%fn,123.54);printf(%12fn,123.54);4321123.540000123.540000printf(%en,123.54);1.235400e + 002printf(%14en,123.54);1.235400e + 002printf(%gn,

19、123.5);123.5printf(%8gn,123.5);123.5Copyright Henan Polytechnic University 语语言言第第 3 3 章章顺顺序序结结构构程程序序设设计计C C精度指示符精度指示符以以“.”“.”开头,后跟十进制整数开头,后跟十进制整数精度指示符通常与宽度指示符结合使用,格式为:精度指示符通常与宽度指示符结合使用,格式为:“m.n”“m.n”,“m”“m”表示输出数据所占总的宽度,表示输出数据所占总的宽度,“n”n”表示输出数据的精度表示输出数据的精度浮点数浮点数n n表示输出数据的小数的位数,表示输出数据的小数的位数,输出数据的小数位数大

20、于输出数据的小数位数大于“n”n”时,截去右边多余的时,截去右边多余的小数,并对截去的第一位小数做四舍五入;小数,并对截去的第一位小数做四舍五入;输出数据的小数位数小于输出数据的小数位数小于“n”n”时,在小数的最右边时,在小数的最右边添添0 0。Copyright Henan Polytechnic University 语语言言第第 3 3 章章顺顺序序结结构构程程序序设设计计C C省略省略“m.n”“m.n”中的中的m m用用“.n”.n”表示小数的位数,并对截去的第一位小数表示小数的位数,并对截去的第一位小数进行四舍五入,这时输出数据的宽度由系统决定。进行四舍五入,这时输出数据的宽度由

21、系统决定。若指定若指定“%.0f”%.0f”,则不输出小数部分,但要对第一,则不输出小数部分,但要对第一位小数进行四舍五入。位小数进行四舍五入。对于对于g g或或G G“.n”“.n”表示输出的有效数字,并对截去的第一位进表示输出的有效数字,并对截去的第一位进行四舍五入,整数部分并不丢失,隐含的输出有效行四舍五入,整数部分并不丢失,隐含的输出有效数字为数字为6 6位有效数字。位有效数字。对于字符串对于字符串“.n”“.n”则表示要输出字符的个数;则表示要输出字符的个数;如果实际位数大于所定义的精度时,则截去超过的如果实际位数大于所定义的精度时,则截去超过的部分。部分。Copyright Hen

22、an Polytechnic University 语语言言第第 3 3 章章顺顺序序结结构构程程序序设设计计C C输 出 语 句输 出 结 果指定精度时的输出结果指定精度时的输出结果printf(%8.3fn,123.55); 123.550 printf(%8.1fn,123.55); 123.6 printf(%8.0fn,123.55); printf(%gn,123.56789);printf(%.7gn,123.56789); printf(%.5sn,“abcdefg”); 124 123.568 123.5679 abcde 注意:输出数据的实际精度不完全取决于格式控制串中的宽

23、度和精度,而是取决于数据的存储精度。如果在格式控制串中指定的宽度和精度超过了相应类型数据的有效数字,输出的多余数字是没有意义的,只是系统用来填充数据宽度而已。Copyright Henan Polytechnic University 语语言言第第 3 3 章章顺顺序序结结构构程程序序设设计计C C标志标志标志及其意义标志及其意义 标 志意 义 输出结果左对齐,右边填空格;缺省则输出输出结果左对齐,右边填空格;缺省则输出结果右对齐,左边填空格结果右对齐,左边填空格 +输出符号(正号或负号)输出符号(正号或负号) 空格空格输出值为正时冠以空格,为负时冠以负号输出值为正时冠以空格,为负时冠以负号

24、#对对c,s,d,u类无影响;对类无影响;对o类,在输出时加前缀类,在输出时加前缀0;对;对x类,在输出时加前缀类,在输出时加前缀0 x Copyright Henan Polytechnic University 语语言言第第 3 3 章章顺顺序序结结构构程程序序设设计计C C标志标志标志的用法标志的用法输 出 语 句输 出 结 果111 printf(%6dn,111); printf(% 6dn,111);111 printf(% + dn,111); +111 printf(%dn,111); 111 printf(%dn,111); 111 printf(%#on,10); 012

25、printf(%#xn,16);0 x10 Copyright Henan Polytechnic University 语语言言第第 3 3 章章顺顺序序结结构构程程序序设设计计C C长度修饰符长度修饰符长度修饰符为长度修饰符为h h、l l两种两种h h表示按短整型(表示按短整型(shortshort)输出,可加在格式符)输出,可加在格式符d d、o o、x x、u u前面,如前面,如%hd%hd;l l表示按长整型(表示按长整型(longlong)输出,如)输出,如%ld%ld、%lx%lx等。等。l l也也可加在格式符可加在格式符f f前面,但没有什么意义。前面,但没有什么意义。例例3

26、.4 输出函数输出函数printf程序示例。程序示例。#include main() int a=15; float b=123.1234567; double c=12345678.1234567; char d=p; printf(a=%d,%5d,%o,%xn,a,a,a,a); printf(b=%f,%lf,%5.4lf,%en,b,b,b,b); printf(c=%lf,%f,%8.4lfn,c,c,c); printf(d=%c,%8cn,d,d); 运行结果如下:运行结果如下:a=15,15,17,fb=123.123459,123.123459,123.1235,1.231

27、235e+002c=12345678.123457,12345678.123457,12345678.1235d=p,pCopyright Henan Polytechnic University 语语言言第第 3 3 章章顺顺序序结结构构程程序序设设计计C C调用调用printfprintf函数时的注意事项函数时的注意事项 如果格式控制字符串中的格式描述符少于输出项的个数,多余的输出项不予输出;如果格式控制字符串中的格式描述符多于输出项的个数,则对于多余的格式将输出不定值(或0值)。(1)输出表列中的各输出项要用逗号隔开,输出项可以是合法的常量、变量或表达式。格式控制字符串中的格式描述符与输

28、出列表的输出项在数量和类型上应该一一对应。例例 int a=3,b=4;int a=3,b=4; printf(“%d %dn”,a,b); printf(“%d %dn”,a,b); printf(“a=%d , b=%dn”,a,b); printf(“a=%d , b=%dn”,a,b);输出结果输出结果: 3 4: 3 4 a=3, b=4 a=3, b=4例例 int a=3,b=4; printf(%d %dn,a,b); printf(“a=%d , b=%dn”,a,b); 例例 int a=3,b=4; printf(%d %dn,a,b); printf(a=%d , b=

29、%dn,a); Copyright Henan Polytechnic University 语语言言第第 3 3 章章顺顺序序结结构构程程序序设设计计C C调用调用printfprintf函数时的注意事项函数时的注意事项 (2)如果格式控制字符串中的格式描述符与对应的输出项类型不匹配,将导致数据不能正确输出,这时系统并不报错例如:在输出长整型数据时,应使用%ld格式说明,在VC 6.0中也可使用%d(因为int型和long型数据所占字节数相同),但如果使用%hd,将输出错误的数据。例3.5 输出函数printf程序示例。#include main() long a=80000; printf

30、(x=%hdn,a);运行结果:x=14464Copyright Henan Polytechnic University 语语言言第第 3 3 章章顺顺序序结结构构程程序序设设计计C C调用调用printfprintf函数时的注意事项函数时的注意事项 (3)在格式控制字符串中,除了合法的格式说明外,可以包含任意的合法字符(包括转义字符),这些字符在输出时将原样输出。(4)如果需要输出百分号%,则应该在格式控制字符串中用连续的百分号“%”来表示。(5)printf函数的返回值通常是本次调用中输出项的个数。(6)尽量不要在输出函数中改变输出变量的值,因为在输出时,先对输出表列的各项求值,然后再输

31、出。输出顺序是从左到右,而求值顺序,有的编译系统是从左到右,有的是从右到左,VC 6.0是按从右到左进行的。例例3.6 输出函数输出函数printf程序示例。程序示例。#include main() int i=8; printf(%dt%dn,i,+i);输出结果为:9 9Copyright Henan Polytechnic University 语语言言第第 3 3 章章顺顺序序结结构构程程序序设设计计C C格式输入函数(格式输入函数(scanf)格式格式: scanf(“: scanf(“格式控制串格式控制串”,地址表),地址表)功能:从终端设备(或系统默认的输入设备)功能:从终端设备

32、(或系统默认的输入设备)上输入数据。上输入数据。格式控制字符串的作用是指定输入数据的格式,由格式控制字符串的作用是指定输入数据的格式,由“%”“%”符号开始,其后是格式描述符。符号开始,其后是格式描述符。各输入项只能是合法的地址表达式各输入项只能是合法的地址表达式例例 scanf(“%d”,&a);scanf(“%d”,&a); 输入:输入:10 10 则则 a=10 a=10例例 scanf(“%x”,&a);scanf(“%x”,&a); 输入:输入:11 11 则则 a=17 a=17例例 scanf(%d%d,&a,&b);Copyrig

33、ht Henan Polytechnic University 语语言言第第 3 3 章章顺顺序序结结构构程程序序设设计计C Cscanf函数中常用的格式说明函数中常用的格式说明scnaf格式字符格式字符 格 式 字 符说 明输入有符号的十进制整数输入有符号的十进制整数 d,i o 输入无符号的八进制整数输入无符号的八进制整数 x,X 输入无符号的十六进制整数输入无符号的十六进制整数 u 输入无符号的十进制整数输入无符号的十进制整数 f,e 输入实型数(用小数形式或指数形式)输入实型数(用小数形式或指数形式)c输入单个字符输入单个字符s 输入字符串,结果存入字符数组中,输入输入字符串,结果存入

34、字符数组中,输入时以第一个非空白字符开始,以第一个空时以第一个非空白字符开始,以第一个空白字符结束,白字符结束, 系统自动加上系统自动加上0作为字符串作为字符串结束标志结束标志%*输入数据宽度长度修饰符格式字符Copyright Henan Polytechnic University 语语言言第第 3 3 章章顺顺序序结结构构程程序序设设计计C Cscanf函数中常用的格式说明函数中常用的格式说明“* *”符符表示读入该输入项后不赋予相应的变量,即跳过该表示读入该输入项后不赋予相应的变量,即跳过该输入值。输入值。数据宽度数据宽度用十进制整数指定输入的宽度,即读取输入数据中用十进制整数指定输入

35、的宽度,即读取输入数据中相应位数赋给相应的变量,舍弃多余部分。相应位数赋给相应的变量,舍弃多余部分。长度修饰符长度修饰符长度格式符为长度格式符为h h和和l l。在。在VCVC环境下,输入环境下,输入shortshort型整数,型整数,格式控制要求用格式控制要求用%hd%hd;输入;输入doubledouble型数据,必须用型数据,必须用%lf%lf或或%le%le。否则,数据可能不能正确输入。但在。否则,数据可能不能正确输入。但在VCVC中,中,%ld%ld与与%d%d一样。一样。10a, 30b12345a12a, 67bscanf(“%d%*d%d”,&a,&b); 输入

36、输入 10 25 30 scanf(“%5d”,&a); 输入输入12345678 scanf(“%2d %*3d %2d”,&a,&b); 输入输入12 345 67 1234a, 5678bscanf(%4d%4d,&a,&b); 输入输入12345678 scanf(“%4d%2d%2d”,&yy,&mm,&dd); 输入输入19991015 1999yy, 10 mm, 15 ddCopyright Henan Polytechnic University 语语言言第第 3 3 章章顺顺序序结结构构程程序序设设计计C C调

37、用调用scanfscanf函数时的注意事项函数时的注意事项scanfscanf函数中的格式字符前可以用一个整数指定函数中的格式字符前可以用一个整数指定输入数据所占宽度,但不可以对实型数指定小输入数据所占宽度,但不可以对实型数指定小数位的宽度。数位的宽度。scanf(%5.2f,&a); 非法的 scanfscanf中要求给出变量地址,如给出变量名则会中要求给出变量地址,如给出变量名则会出错。出错。scanf(%d,a);非法的 在输入多个数值数据时,若格式控制字符串中在输入多个数值数据时,若格式控制字符串中没有非格式字符作为输入数据之间的间隔,则没有非格式字符作为输入数据之间的间隔,则

38、可用可用空格空格、TabTab或或回车回车作为间隔。作为间隔。程序在运行时碰到空格、程序在运行时碰到空格、Tab键、回车或非法键、回车或非法数据时即认为该数据结束。数据时即认为该数据结束。 对对%d输入输入“12A”时,时,A即为非法数即为非法数据据Copyright Henan Polytechnic University 语语言言第第 3 3 章章顺顺序序结结构构程程序序设设计计C C输入分隔符的指定输入分隔符的指定一般以空格、一般以空格、TABTAB或回车键作为分隔符或回车键作为分隔符其它字符做分隔符:格式串中两个格式符间字符其它字符做分隔符:格式串中两个格式符间字符例例 scanf(“

39、%d%o%x”,&a,&b,&c); scanf(“%d%o%x”,&a,&b,&c); printf(“a=%d,b=%d,c=%dn”,a,b,c);printf(“a=%d,b=%d,c=%dn”,a,b,c); 输入输入 123 123 123 123 123 123 输出输出 a=123,b=83,c=291 a=123,b=83,c=291例例 scanf(“%d:%d:%d”,&h,&m,&s); scanf(“%d:%d:%d”,&h,&m,&s); 输入输入 12:30:45 12

40、:30:45 则则12 12 h, 30 h, 30 m, 45 m, 45 s s例例 scanf(“%d,%d”,&a,&b)scanf(“%d,%d”,&a,&b) 输入输入 3,4 3,4 则则3 3a, 4 a, 4 b b例例 scanf(“a=%d,b=%d,c=%d”,&a,&b,&c)scanf(“a=%d,b=%d,c=%d”,&a,&b,&c); ; 输入输入 a=12,b=24,c=36 a=12,b=24,c=36 Copyright Henan Polytechnic Universit

41、y 语语言言第第 3 3 章章顺顺序序结结构构程程序序设设计计C C说明:说明:用用“%c”“%c”格式符时,空格和转义字符作为有效字符格式符时,空格和转义字符作为有效字符输入输入如如 scanf(“%c%c%c”,&c1,&c2,&cscanf(“%c%c%c”,&c1,&c2,&c3);3); 若输入若输入a a b b c c 则则a ac1, c1, c2, b c2, b c3c3输入数据时,遇以下情况认为该数据结束:输入数据时,遇以下情况认为该数据结束:遇空格、遇空格、TABTAB、或回车、或回车遇宽度结束遇宽度结束遇非法输入遇非法输

42、入如如 scanf(“%d%c%f”,&a,&b,&c); scanf(“%d%c%f”,&a,&b,&c); 若输入若输入1234a123o.26 1234a123o.26 则则 1234 1234 a, a a, a b, 123 b, 123 c c输入函数留下的输入函数留下的“垃圾垃圾”:例例 int x;int x; char ch; char ch; scanf(“%d”,&x); scanf(“%d”,&x); ch=getchar(); ch=getchar(); printf(“x=%d,ch=%dn”,x,ch

43、); printf(“x=%d,ch=%dn”,x,ch);执行:执行:123123 输出:输出:x=123,ch=10 x=123,ch=10例例 int x;int x; char ch; char ch; scanf(“%d”,&x); scanf(“%d”,&x); scanf(“%c”,&ch); scanf(“%c”,&ch); printf(“x=%d,ch=%dn”,x,ch); printf(“x=%d,ch=%dn”,x,ch);执行:执行:123123 输出:输出:x=123,ch=10 x=123,ch=10解决方法:解决方法:(1 1)

44、用)用getchar()getchar()清除清除(2 2)用函数)用函数fflush(stdin)fflush(stdin)清除全部剩余内容清除全部剩余内容(3 3) 用格式串中空格或用格式串中空格或“%“%* *c”c”来来“吃掉吃掉”例例 int x;int x; char ch; char ch; scanf(“%d”,&x); scanf(“%d”,&x); scanf(“ %c”,&ch); scanf(“ %c”,&ch);或或 scanf(“%scanf(“%* *c%c”,&ch);c%c”,&ch); Copyright He

45、nan Polytechnic University 语语言言第第 3 3 章章顺顺序序结结构构程程序序设设计计C C例例 scanf(“%3c%2c”,&c1,&c2);scanf(“%3c%2c”,&c1,&c2); 输入输入 abcde abcde 在输入字符数据时,若格式控制字符串中没有在输入字符数据时,若格式控制字符串中没有非格式字符,则认为所有输入的字符均为有效非格式字符,则认为所有输入的字符均为有效字符。字符。调用调用scanfscanf函数时的注意事项函数时的注意事项scanf(%c%c%c,&a,&b,&c); 输入输入

46、def “d” a , “”b, “e” cscanf(%c%c%c,&a,&b,&c); 输入输入def “d” a , “e”b, “f” c例例 scanf(“%3d% scanf(“%3d%* *4d%f”,&k,&f);4d%f”,&k,&f); 输入输入 12345678765.43 12345678765.43 123k, 8765.43f ac1, d c2调用调用scanfscanf函数时,应当注意变量类型与格式字函数时,应当注意变量类型与格式字符保持一致,否则虽然编译能够通过,但结果符保持一致,否则虽然编译能够通过,但

47、结果将不正确。将不正确。例例3.7 输入函数输入函数scanf程序示例。程序示例。#include main() long i; double f; scanf(%hd%f,&i,&f); printf(%dt%gn,i,f);运行情况如下:1111111111 123-859032121 -9.25596e+061Copyright Henan Polytechnic University 语语言言第第 3 3 章章顺顺序序结结构构程程序序设设计计C Cscanfscanf函数也有一个返回值,这个返回值就是成函数也有一个返回值,这个返回值就是成功输入的项数。功输入的项数。调用

48、调用scanfscanf函数时的注意事项函数时的注意事项调用调用scanfscanf函数时,应当注意变量类型与格式字函数时,应当注意变量类型与格式字符保持一致,否则虽然编译能够通过,但结果符保持一致,否则虽然编译能够通过,但结果将不正确。将不正确。例例3.8 输入函数输入函数scanf的返回值。的返回值。#include main() int x,y; printf(%dn,scanf(%d%d,&x,&y);运行结果运行结果:4554 2例例3.9 输入函数输入函数scanf程序示例。程序示例。#include main() int a,b,c,d; scanf(%d%d,&

49、amp;a,&b); printf(a=%d,b=%dn, a,b); scanf(%d%d,&c,&d); printf(c=%d,d=%d,c,d);运行结果运行结果:45542389 a=45,b=54c=23,d=89Copyright Henan Polytechnic University 语语言言第第 3 3 章章顺顺序序结结构构程程序序设设计计C C3.13.23.33.4C语言语句概述语言语句概述字符数据的输入输出字符数据的输入输出格式化输入输出函数格式化输入输出函数顺序结构程序设计举例顺序结构程序设计举例本章主要内容本章主要内容Copyright Henan Polytechnic University 语语言言第第 3 3 章章顺顺序序结结构构程程序序设设计计C C例例 输入圆半径,输出圆周长和面积。输入圆半径,输出圆周长和面积。运行情况如下:运行情况如下:5 l=31.4159 s=78.539722rsrl文件包含预处理命令变量定义输入数据输出数据3.4 3.4 顺序结构程序设计举例顺序结构程序设计举例

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论