c3第三章顺序结构程序设计.ppt_第1页
c3第三章顺序结构程序设计.ppt_第2页
c3第三章顺序结构程序设计.ppt_第3页
c3第三章顺序结构程序设计.ppt_第4页
c3第三章顺序结构程序设计.ppt_第5页
已阅读5页,还剩34页未读 继续免费阅读

下载本文档

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

文档简介

1、第三章,顺序结构程序设计,How many classromm.C,3.1 基本语句,(1)空语句:即只有一个分号的语句。 ; (2)表达式语句:表达式后加一个分号。 如:m=0; x+y-10%2+2*x,10/2;无具体意义 (3)函数调用语句:函数调用加一个分号。 如:printf(“this is a example. n”) ; (4)控制语句: 是C语言中完成一定控制功能的语句, 如表3.1所示。,(5)复合语句。将一组语句用花括号 括起来就形成了复合语句,又称其为分程序。 如: m=10; printf(“m=%dn”,m); ,3.2 赋值语句,赋值表达式后加上一个分号 。 例

2、:利用赋值语句交换两变量的值。 设有定义:int a=12, b=5, t; 则可以用如下两种方式交换变量a和b的值: t=a; a=b; b=t; 第三者插足法 a=a+b; b=a-b; a=a-b;,3.3 数据的输入输出,C语言无I/O语句,I/O操作由函数实现 #include ,格式:printf(格式控制串,输出表) 功能:按指定格式向显示器输出数据 返值:正常,返回输出字符数;出错,返回EOF(-1),一、格式输出函数,输出表:要输出的数据(可以没有,多个时以“,”分隔) 格式控制串:包含两种信息 1. 格式说明:%修饰符格式字符 ,用于指定输出格式 2. 普通字符或转义序列:

3、原样输出格式字符,例 main() short x=65535; printf(x=%dn,x); getch(); 输出结果:x=-1,例 int a=3,b=4; printf(“%d %dn”,a,b); printf(“a=%d , b=%dn”,a,b); 输出结果: 3 4 a=3, b=4,int a=567;printf ( “%d”,a);,int a=255;printf(“%x”,a);,int a=65;printf(“%o”,a);,int a=567;printf(“%u”,a);,char a=65;printf(“%c”,a);,printf(“%s”,“ABC

4、”);,float a=567.789;printf(“%e”,a);,float a=567.789;printf(“%f”,a);,float a=567.789;printf(“%g”,a);,printf(“%”);,567,ff,101,567,A,ABC,5.677890e+02,567.789000,567.789,%,说明:格式字符要用小写 格式字符与输出项个数应相同,按先后顺序一一对应 输出转换:格式字符与输出项类型不一致,自动按指定格式输出,附加格式说明符(修饰符),100,2,(补充) 场宽m.n可以是变量,scanf()中的字符宽度可以由一个”*”号而不是整数来指定。”

5、*”号表示这个数取自输入列表。 例如下边这个例子,通过输入m,n来控制输出值的显示精度: #include main() float a=123.45678; int m,n; printf(m=); scanf(%d, ,例 int a=1234; float f=123.456; static char c=“Hello,world!”; printf(“%8d,%-8dn”,a,a); printf(“%10.2f,%-10.1fn”,f,f); printf(“%10.5s,%-10.3sn”,c,c);,运行结果:1234,1234 123.46,123.5 Hello,Hel,格式

6、说明符例子,例 int a=1234; float f=123.456; printf(“%08dn”,a); printf(“%010.2fn”,f); printf(“%0+8dn”,a); printf(“0+10.2fn”,f);,附加格式说明符 0 、+ 的例子,例 int a=123; printf(“%o,%#o,%X,%#Xn”,a,a,a,a);,例: #,例 long a=65536; printf(“%d,%8ldn”,a, a);,例,00001234,0000123.46,000+1234,000+123.56,173,0173,7B,0X7B,0, 65536,例

7、int a=1234; float f=123.456; char ch=a; printf(“%8d,%2dn”,a,a); printf(“%f,%8f,%8.1f,%.2f,%.2en”,f,f,f,f,f); printf(“%3cn”,ch);,运行 1234,1234 结果: 123.456000,123.456000, 123.5,123.46,1.23e+02 a,例 static char a=“Hello,world!” printf(“%sn%15sn%10.5sn%2.5sn%.2sn”,a,a,a,a,a);,运行结果:Hello,world! Hello,world

8、! Hello Hello He,附加格式说明符 m.n 的例子,printf()函数返回一个int值,表示被显示的字符数:,main() int x; x=printf(%dn,123); printf(x=%d,x); getch(); ,输出: 123 x=4_,实践中,可以用来检验输出结果。,二、格式输入函数,格式: scanf(“格式控制串”,地址表) 功能:按指定格式从键盘读入数据,存入地址表指定的 存储单元中,并按回车键结束 返值:正常,返回输入数据个数,地址表:变量的地址,常用取地址运算符 为例 printf(x=); scanf(%d, sccanf()中不要出现转义字符(例

9、如n)。,scanf()函数返回成功获得数据的个数,输入非法时其值当然为0,main() int x,y; printf(x=); y=scanf(%d, ,输入123时输出 x=123 y=1 表示输入了1个数字 输入a时输出 x=-858993460 y=0 表示输入了0个数字,实际应用中,常用对scanf()值的判断来确定用户输入的合法性,main() int x,y,z; printf(x y=); z=scanf(%d%d, ,输入12 23时输出 x=12 y=23 z=2 表示正确输入了2个数字 输入12 a时输出 x=12 y=-858993460 z=1 表示只正确输入了1个

10、数字,scanf()中的附加格式说明符(修饰符),例 scanf(“%4d%2d%2d”, 输入 19991015 则1999yy, 10 mm, 15 dd,例 scanf(“%3d%*4d%f”, 输入 12345678765.43 则123k, 8765.43f,例 scanf(“%2d%*3d%2d”, 输入 1234567 则12a, 67b,例 scanf(“%3c%2c”, 输入 abcde 则ac1, d c2,输入分隔符的指定 一般以空格、TAB或回车键作为分隔符 其它字符做分隔符:格式串中两个格式符间字符,例 scanf(“%d:%d:%d”, 输入 12:30:45 则1

11、2 h, 30 m, 45 s,例 scanf(“%d,%d”, char ch; scanf(“%d”, 执行:123 输出:x=123,ch=10 (换行符LF),例 int x; char ch; scanf(“%d”, 执行:123 输出:x=123,ch=10 (换行符LF),解决方法: (1)用格式串中的空格或“%*c”来“吃掉” (2)用getchar()清除 (3) 用函数fflush(stdin)清除全部剩余内容,例 int x; char ch; scanf(“%d”,(1)格式:getch() 功能:从键盘无回显读入一字符 (不需要回车确认) (2)格式:getchar(

12、) 功能:从键盘读入一字符(需要回车确认),三、字符输入输出函数 1. 字符输入函数,例,#include main() int c; printf(Enter a character:); c=getch(); printf(%c-hex%xn,c,c); getch(); 运行输入A ,运行结果: Enter a character:A A-hex41,格式: putchar(c) 参数: c为字符常量、变量或表达式,或0-255的整数。 功能:把字符c输出到显示器上 返值:正常,为显示的代码值;出错,为EOF(-1),#include main() int c; char a; c=65

13、; a=B; putchar(c); putchar(n); putchar(a); getch(): ,运行结果:A B,例,2. 字符输出函数,除了putchar(),putch()也实现把字符输出到显示器上。 根据TC的解释,putchar()是输出到STDOUT(标准输出设备),而putch()是输出到screen。 在一般应用中,这两者没有区别。,注:ANCI规定: 使用getchar()和putchar()须编译预处理 #include ,warning C4013: getch undefined; assuming extern returning int警告信息的解决,添加c

14、onio.h头文件:#include conio是Console Input/Output(控制台输入输出)的简写,其中定义了通过控制台进行数据输入和数据输出的函数,主要是一些用户通过按键盘产生的对应操作,比如getch()、putch()函数等等。,3.4 程序举例,#include main() float a,b,c,s,area; printf(Side a : ); scanf(%f, ,例 输入三角形边长,求面积,输入:3,4,6 输出:a= 3.00, b= 4.00, c= 6.00 s= 6.50 area= 5.33,例 从键盘输入大写字母,输出对应的小写字母和ASCII码

15、,#include main() char c1,c2; printf(char=); c1=getchar(); printf(%c,%dn,c1,c1); c2=c1+32; printf(%c,%dn,c2,c2); getch(); ,输入:A 输出:A,65 a,97,#include main() float a,b,c,disc,x1,x2,p,q; printf(a=); scanf(%f, getch(): ,提示:a= _ 输入:1 提示:b= _ 输入:3 提示:c= _ 输入:2 输出:x1=-1.00 x2=-2.00,Programming Style 编程风格,I

16、t is best just now if you simply adopt the styles presented by tutor, when you are a seasoned programmer, you can develop your own style.,Programming Style 编程风格,Programs can be highly readable and understandable or they can be intelligible(清晰易懂的). Good style 优雅的编程风格 Meaningful names.有意义的变量名 White sp

17、ace to separate parts of statements.语句间留白 Consistent habits regarding indentation.养成阶梯状编程格式的习惯 Indentation conveys controlling statements in control flow.,Some common coding errors常见的程序代码错误,Quoting problems: 引号不配对 unmatched quotes, mismatched quotes, incorrect quotes Unending comments 注释没收尾 Forgetti

18、ng semicolons (;) 行尾没分号 Unmatched or mismatched braces or parentheses 括号不配对 Control strings not matching the arguments in printf(), scanf(), and other similar functions I/O函数中的格式与I/O项不一致 Forgetting before identifier printf DEMO.C(3) : warning C4013: printf undefined; assuming extern returning int DEMO.C(3) : error C2001: newline in constant DEMO.C(3) : error C2065: d : undeclared identifier DEMO.C(3) : error C2296: % : illegal, left operand

温馨提示

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

评论

0/150

提交评论