C语言程序入门.ppt

上传人:wuy****n92 文档编号:70735041 上传时间:2023-01-27 格式:PPT 页数:39 大小:303KB
返回 下载 相关 举报
C语言程序入门.ppt_第1页
第1页 / 共39页
C语言程序入门.ppt_第2页
第2页 / 共39页
点击查看更多>>
资源描述

《C语言程序入门.ppt》由会员分享,可在线阅读,更多相关《C语言程序入门.ppt(39页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、第一章第一章C语言程序入门语言程序入门第一章 C语言程序入门目录:目录:1.1程序程序1.2程序操作的对象程序操作的对象-数据数据1.3C程序的基本操作程序的基本操作1.4顺序结构的程序顺序结构的程序思考题C语言程序的构成?程序中2个重要部分、3个重要划分?回顾程序的表达方法?程序的结构?程序编写的思路?1.4.1程序结构程序结构1预编译命令预编译命令2函数函数1程序程序若干源程序若干源程序函数函数2函数名函数名.函数函数说明部分说明部分.执行部分执行部分n函数函数n(语句语句)1.4.2 C语句C语句语句:以以“;”作分隔符作分隔符,编译后产生机器编译后产生机器指令指令.C语句分类语句分类表

2、达式语句:表达式加分号构成。表达式语句:表达式加分号构成。空语句:空语句:;声明语句:定义变量,声明函数等。声明语句:定义变量,声明函数等。程序控制语句程序控制语句(9种):种):如如total=total+limit;a=3;func();printf(“Hello,world!n”);if()elseswitchfor()while()dowhile()continuebreakgotoreturn分支循环辅助控制C语句块复合语句:用复合语句:用括起来的一组语句括起来的一组语句一般形式:一般形式:数据说明部分;数据说明部分;执行语句部分;执行语句部分;说明:说明:“”后不加分号后不加分号语

3、法上和单一语句相同语法上和单一语句相同复合语句可嵌套复合语句可嵌套格式格式赋值表达式赋值表达式;即即变量变量表达式表达式;或或变量变量表达式表达式;操作操作计算表达式的值计算表达式的值,将该值赋予变量。将该值赋予变量。例例a=r*r*3.1415926;注注 赋值语句与赋值表达式的不同概念赋值语句与赋值表达式的不同概念例例if(a=b)0)t=a;其中其中a=b是表达式而不是语句是表达式而不是语句上句相当于上句相当于a=b;if(a0)t=a;可见使用了赋值语句能使程序得到简化。可见使用了赋值语句能使程序得到简化。赋值语句赋值语句1.4.3 算法的概念与程序结构利用计算机求解问题的一般过程(1

4、)问题分析阶段(2)数据结构设计阶段(3)算法设计阶段(4)编码与调试阶段 1、算法概念算法就是解决某一具体问题的方法和步骤。从广义上来说,算法早就融于人们的生活中,例如,上学走哪条路、坐哪趟车,如果堵车怎么办等,其中就包含有“算法”。在计算机中,算法是指为解决具体的问题而采取的确定的方法和步骤,设计好了算法,就可以将它用具体的语言进行描述,最终转化为解决问题的程序。2、算法特点1)、有穷性:操作步骤有限)、有穷性:操作步骤有限2)、确定性:每一步都应确定)、确定性:每一步都应确定3)、有零个或多个输入)、有零个或多个输入4)、有一个或多个输出)、有一个或多个输出5)、有效性:每一步都能有效执

5、行并得到确)、有效性:每一步都能有效执行并得到确定结果定结果3、算法描述1)、自然语言2)、传统流程图3)、结构化流程图(NS)4)、伪代码:用介于自然语言和计算机语言之间的文字和符号来描述算法。5)、用计算机语言表示算法4、结构化程序设计方法一个结构化算法由一些基本结构(顺序、分支、循环)顺序组成的;每个基本结构又可包含其他的基本结构;在基本结构之间不存在向前或向后的跳转,流程的转移只存在于一个基本结构之内;一个非结构化算法可以转化为一个结构化算法;一个结构化程序就是用高级语言表示的结构化算法采用以下方法可得到结构化程序:自顶向下、逐步细化、模块化设计、结构化编码。在计算机科学的发展过程中,

6、人们已经提出了很多种类的算法描述方法。一种是自自然然语语言言的描述方法。鉴于自然语言本身过于灵活且又缺乏严谨性,所以容易产生理解上的歧义。还有一种算法的图形描述方式流程图流程图。它采用一些标准的图形符号描述算法的操作过程,从而避免了人们对非形式化语言的理解差异。5、算法描述、算法描述起止框I/O框处理框判断框调用框连接框有向边 常用流程图符号程序的三种基本结构程序的三种基本结构结构化程序设计结构化程序设计基本思想:任何程序都可以用三种基本结构表示,限制基本思想:任何程序都可以用三种基本结构表示,限制使用无条件转移语句(使用无条件转移语句(goto)结构化程序:由三种基本结构反复嵌套构成的程序叫

7、结构化程序:由三种基本结构反复嵌套构成的程序叫优点:结构清晰,易读,提高程序设计质量和效率优点:结构清晰,易读,提高程序设计质量和效率三种基本结构三种基本结构顺序结构顺序结构ABAB流程图流程图N-S图图PAB真真假假PBA真真假假v选择结构选择结构A1A2AiAnk=k2k=k1k=knk=ki.l二分支选择结构二分支选择结构l多分支选择结构多分支选择结构v循环结构循环结构l当型循环结构当型循环结构l直到型循环结构直到型循环结构PA假假真真当当P为真为真AAP真真假假A直到直到P为真为真注:注:A,B,A1.An可以是一个简单语句,也可以是一个基本结构可以是一个简单语句,也可以是一个基本结构

8、案例分析案例分析 从键盘输入大写字母,用小写字母输出/*ch3_13.c*/#includestdio.hmain()charc1,c2;c1=getchar();printf(%c,%dn,c1,c1);c2=c1+32;printf(%c,%dn,c2,c2);输入:A 输出:A,65 a,97算法步骤(文字描述):1、输入一个大写字母给变量;2、转换为小写字母;3、输出小写字母。流程图描述:程序描述:案例分析输入两个整数给变量a、b,交换后再输出;根据给定圆的半径,计算周长和面积;通过键盘输入一个字符,输出字符的ASCII码;逆序输出一个3位正整数的每位数字;给定a,b,c,计算一元二次

9、方程的实根;1.4.4 输入与输出一般每个程序都要用到数据的输入输出。一般每个程序都要用到数据的输入输出。数据输入:通过外设将数据输入内存。数据输入:通过外设将数据输入内存。数据输出:将内存的数据通过外设输出。数据输出:将内存的数据通过外设输出。C语言的输入输出通过语言的输入输出通过调用函数调用函数实现,这些输实现,这些输入输出函数一般存于入输出函数一般存于stdio.h和和io.h(TURBOC)库文库文件。使用输入输出函数要用编译预处理命令指出件。使用输入输出函数要用编译预处理命令指出连接的库文件,程序编译连接时将其与用户程序连接的库文件,程序编译连接时将其与用户程序相连。相连。如:如:#

10、include或或#includestdio.h1.4.4.1 1.4.4.1 基本的输入输出函数基本的输入输出函数 1、字符的非格式化输入 getchar()基本执行过程为:等待用户从标准输入设备键盘输入一个字符。如果输入成功,函数返回这个字符的ASCII编码。例如:charch;ch=getchar();2、字符的非格式化输出 putchar()putchar(ch),输出参数ch代表的字符。案例案例1.8:通过键盘输入一个字符,分别在通过键盘输入一个字符,分别在两行上显示这个字符,每行显示两行上显示这个字符,每行显示2 2次。次。#includemain()charch;/*定定义变义变

11、量量ch*/ch=getchar();/*通通过键盘输过键盘输入一个字符入一个字符*/putchar(ch);/*在屏幕上在屏幕上显显示示2次次输输入的字符入的字符*/putchar(ch);putchar(n);/*在屏幕上在屏幕上显显示一个回示一个回车换车换行符行符*/putchar(ch);/*继续继续在屏幕上在屏幕上显显示示2次次输输入的字符入的字符*/putchar(ch);例题分析例题分析例例#include#include main()main()char a,b,c;char a,b,c;a=a=B B;b=;b=O O;c=;c=Y Y;putchar(a);putchar(

12、b);putchar(c);putchar(a);putchar(b);putchar(c);输出结果输出结果BOY例例putchar(n);输出换行输出换行putchar(101);putchar(A);putchar(65);输出输出AAA案例案例1.9:从键盘输入一个小写字母,输出该字:从键盘输入一个小写字母,输出该字母的大写。母的大写。#includestdio.hmain()charc;printf(inputachar:);c=getchar();c-=32;putchar(c);putchar(n);3、格式输入函数格式输入函数格式格式:scanf(“:scanf(“格式控制串格

13、式控制串”,地址表),地址表)功能:按指定格式从键盘读入数据,存入地址表指定的功能:按指定格式从键盘读入数据,存入地址表指定的 存储单元中存储单元中,并按回车键结束并按回车键结束返值:正常,返回输入数据个数返值:正常,返回输入数据个数地址表:变量的地址,常用取地址运算符地址表:变量的地址,常用取地址运算符&格式字符格式字符:d,i,o,x,u,c,s,f,e例例scanf(“%d”,&a);输入:输入:10 则则a=10例例scanf(“%x”,&a);输入:输入:11 则则a=17d,i输入有符号的十进制数输入有符号的十进制数u输入无符号的十进制数输入无符号的十进制数o输入无符号的八进制数输

14、入无符号的八进制数x,X输入无符号的十六进制数输入无符号的十六进制数c输入单个字符,空格、回车、制表符等也作为输入单个字符,空格、回车、制表符等也作为有效字符输入有效字符输入s输入字符串,以非空白字符开始,遇到第一个输入字符串,以非空白字符开始,遇到第一个空白字符(包括空格、回车、制表符)时结束空白字符(包括空格、回车、制表符)时结束f输入实数,小数、指数形式均可输入实数,小数、指数形式均可E,e,g,G与与f作用相同作用相同附加格式说明符(修饰符)附加格式说明符(修饰符)l修饰符功 能hm*用于用于d,o,xd,o,x前,指定输入为前,指定输入为shortshort型整数型整数用于用于d,o

15、,xd,o,x前,指定输入为前,指定输入为longlong型整数型整数用于用于e,fe,f前,指定输入为前,指定输入为long doublelong double型实数型实数指定输入数据宽度,遇空格或不可转换字符则结束指定输入数据宽度,遇空格或不可转换字符则结束抑制符,指定输入项读入后不赋给变量抑制符,指定输入项读入后不赋给变量例例scanf(“%4d%2d%2d”,&yy,&mm,&dd);输入输入19991015 则则1999yy,10mm,15dd例 scanf(“%3d%*4d%f”,&k,&f);则123k,8765.43f例例scanf(“%2d%*3d%2d”,&a,&b);输入

16、输入12 345 67 则则12a,67b例例scanf(“%3c%2c”,&c1,&c2);输入输入abcde 则则ac1,dc2输入分隔符的指定输入分隔符的指定一般以空格、一般以空格、TAB或回车键作为分隔符或回车键作为分隔符其它字符做分隔符:格式串中两个格式符间字符其它字符做分隔符:格式串中两个格式符间字符例例scanf(“%d%o%x”,&a,&b,&c);printf(“a=%d,b=%d,c=%dn”,a,b,c);输入输入123123123 输出输出a=123,b=83,c=291例例scanf(“%d:%d:%d”,&h,&m,&s);输入输入12:30:45 则则12h,30

17、m,45s例例scanf(“%d,%d”,&a,&b)输入输入3,4 则则3a,4b例例scanf(“a=%d,b=%d,c=%d”,&a,&b,&c);输入输入a=12,b=24,c=36 说明:说明:用用“%c”格式符时,空格和转义字符作为格式符时,空格和转义字符作为有有效效字符输入字符输入如如 scanf(“%c%c%c”,&c1,&c2,&c3);若输入若输入a a b b c c 则则ac1,c2,bc3输入数据时,遇以下情况认为该数据结束:输入数据时,遇以下情况认为该数据结束:遇空格、遇空格、TAB、或回车、或回车遇宽度结束遇宽度结束遇非法输入遇非法输入如如scanf(“%d%c%

18、f”,&a,&b,&c);若输入若输入1234a123o.26 则则1234a,ab,123c输入函数留下的“垃圾”:例 int x;char ch;scanf(“%d”,&x);ch=getchar();printf(“x=%d,ch=%dn”,x,ch);执行:123输出:x=123,ch=10例例intx;charch;scanf(“%d”,&x);scanf(“%c”,&ch);printf(“x=%d,ch=%dn”,x,ch);执行:执行:123 输出:输出:x=123,ch=10解决方法:解决方法:(1 1)用)用getchar()getchar()清除清除(2 2)用函数)用函

19、数fflush(stdin)fflush(stdin)清除全部剩余内容清除全部剩余内容(3)(3)用格式串中空格或用格式串中空格或“%*c”“%*c”来来“吃掉吃掉”(4)(4)用用%1s%1s代替代替%c%c,因为它完全忽略空格和回车符,因为它完全忽略空格和回车符例例intx;charch;scanf(“%d”,&x);scanf(“%c”,&ch);或或scanf(“%*c%c”,&ch);scanf(“%1s”,&ch);格式:格式:printf(“printf(“格式控制串格式控制串”,输出表,输出表)功能:按指定格式向显示器输出数据功能:按指定格式向显示器输出数据返值:正常,返回输出

20、字节数;出错,返回返值:正常,返回输出字节数;出错,返回EOF(-1)EOF(-1)4.格式输出函数格式输出函数输出表:要输出的数据(可以没有,多个时以输出表:要输出的数据(可以没有,多个时以“,”分分隔)隔)格式控制串:包含两种信息格式控制串:包含两种信息格式说明:格式说明:%修饰符修饰符格式字符格式字符,用于指定输出格式,用于指定输出格式普通字符或转义序列:原样输出普通字符或转义序列:原样输出格式字符格式字符例例inta=3,b=4;printf(“%d%dn”,a,b);printf(“a=%d,b=%dn”,a,b);输出结果输出结果:34a=3,b=4d,ix,Xoucse,Efg,

21、G%格式字符:格式字符:十六进制无符号整数十六进制无符号整数不带符号十进制整数不带符号十进制整数带符号带符号十进制整数十进制整数指数形式浮点小数指数形式浮点小数单一字符单一字符字符串字符串八进制无符号整数八进制无符号整数小数形式浮点小数小数形式浮点小数e和和f中较短一种中较短一种百分号本身百分号本身inta=567;printf(“%d”,a);inta=255;printf(“%x”,a);inta=65;printf(“%o”,a);inta=567;printf(“%u”,a);chara=65;printf(“%c”,a);printf(“%s”,“ABC”);floata=567.7

22、89;printf(“%e”,a);floata=567.789;printf(“%f”,a);floata=567.789;printf(“%g”,a);printf(“%”);567ff101567AABC5.67789e+02567.789000567.789%说明说明:除除X、E、G外,格式字符要用小写外,格式字符要用小写格式字符与输出项个数应相同,按先后顺序一一对应格式字符与输出项个数应相同,按先后顺序一一对应,否则否则,若若格式字符少格式字符少,按其个数自左向右输出值按其个数自左向右输出值,若格式字符多若格式字符多,多出的将多出的将输出不确定值输出不确定值.输出转换输出转换:格式字

23、符与输出项类型不一致格式字符与输出项类型不一致,自动按指定格式输出自动按指定格式输出,但但int与与float不能互用不能互用.例 main()unsigned int u=65535;printf(”u=%dn,u);输出结果:u=-1例例 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);例 int a=3,b=4;printf(“%d%dn”,a,b);printf(“a=%d,b=%dn”,a,b);输出结果:

24、3 4 a=3,b=411 11 11 11 11 11 11 1165535int a=-1printf(“%d,%x,%o,%u”,a,a,a,a);结果:-1,ffff,177777,65535char c=aint i=97;printf(“%c,%d”,c,c);printf(“%c,%d”,i,i);e:数值按规范化指数输出,有的编译系统自动指定为数值按规范化指数输出,有的编译系统自动指定为6位小位小数,指数部分占数,指数部分占5位(如位(如VC+)f:整数部分全部输出,并输出整数部分全部输出,并输出6位小数,可四舍五入。位小数,可四舍五入。g:自动选择自动选择e或或f,不输出无意

25、义的,不输出无意义的0。附加格式说明符(修饰符)附加格式说明符(修饰符).n对实数对实数,指定小数点后位数指定小数点后位数(四舍五入四舍五入)对字符串对字符串,指定实际输出位数指定实际输出位数(从左截取从左截取)修饰符修饰符功功能能m输出数据域宽输出数据域宽,数据长度数据长度m,左补空格左补空格;否则按实际输出否则按实际输出输出数据在域内左对齐(缺省右对齐输出数据在域内左对齐(缺省右对齐)-指定在有符号数指定在有符号数的正数前显示正号的正数前显示正号(+)(+)+输出数值时指定左面不使用的空位置自动填输出数值时指定左面不使用的空位置自动填0 00在八进制和十六进制数前显示前导在八进制和十六进制

26、数前显示前导0 0,0 x0 x#在在d,i,o,x,ud,i,o,x,u前,指定输出精度为前,指定输出精度为longlong在在e,f,ge,f,g前,指定输出精度为前,指定输出精度为long doublelong doublel例例inta=1234;floatf=123.456;charch=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+02a

27、例例staticchara=“Hello,world!”printf(“%sn%15sn%10.5sn%2.5sn%.3sn”,a,a,a,a,a);运行结果:运行结果:Hello,world!Hello,world!HelloHelloHel例例m.n例例inta=1234;floatf=123.456;staticcharc=“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,H

28、el例例-例例inta=1234;floatf=123.456;printf(“%08dn”,a);printf(“%010.2fn”,f);printf(“%0+8dn”,a);printf(“0+10.2fn”,f);例例0、+例例inta=123;printf(“%o,%#o,%X,%#Xn”,a,a,a,a);例例#例例longa=65536;printf(“%d,%8ldn”,a,a);例例l0000000000000001 0000000000000000/00001234/0000123.46/000+1234/000+123.56/173,0173,7B,0X7B/0,6553

29、6案例案例1.10:将输入的角度转换成弧度。将输入的角度转换成弧度。#includemain()intdegree;floatradian;printf(Enterdegree:);scanf(%d,°ree);radian=3.14159*degree/180;printf(%ddegreesequalto%fradians.,degree,radian);案例案例1.11:输入两个字符,输出用这两个字符输入两个字符,输出用这两个字符绘制的三角形。绘制的三角形。#includemain()charch1,ch2;printf(Enter2characters:);scanf(%c%c,

30、&ch1,&ch2);printf(n%c,ch1);printf(n%c%c%c,ch1,ch2,ch1);printf(n%c%c%c%c%c,ch1,ch2,ch2,ch2,ch1);printf(n%c%c%c%c%c%c%c,ch1,ch1,ch1,ch1,ch1,ch1,ch1);例例1.12:逆序输出一个三位正整数的每一位逆序输出一个三位正整数的每一位数字。数字。#includemain()intd1,d2,d3,value;printf(nEnter3integers:);scanf(%d,&value);/*输输入一个三位正整数入一个三位正整数*/d1=value/100;/

31、*计计算百位数字算百位数字*/d2=value%100/10;/*计计算十位数字算十位数字*/d3=value%10;/*计计算个位数字算个位数字*/printf(n%d-%d%d%d,value,d3,d2,d1);/*输输出出结结果果*/例例1.13:将连续输入的将连续输入的4 4个数字字符拼成一个个数字字符拼成一个intint类型的数值。类型的数值。#includemain()chard1,d2,d3,d4;intvalue;printf(Enter4characters:);d1=getchar();d2=getchar();d3=getchar();d4=getchar();value=(d1-0)*1000+(d2-0)*100+(d3-0)*10+(d4-0)*1;printf(Thevalueis%d,value);/*输输出出结结果果*/思考小结写出你理解的顺序结构程序设计方法;写出编程的基本思路、步骤;写出编程注意的地方。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 大学资料

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

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁