C语言程序入门.ppt

上传人:牧羊曲112 文档编号:5426372 上传时间:2023-07-05 格式:PPT 页数:39 大小:303KB
返回 下载 相关 举报
C语言程序入门.ppt_第1页
第1页 / 共39页
C语言程序入门.ppt_第2页
第2页 / 共39页
C语言程序入门.ppt_第3页
第3页 / 共39页
C语言程序入门.ppt_第4页
第4页 / 共39页
C语言程序入门.ppt_第5页
第5页 / 共39页
点击查看更多>>
资源描述

《C语言程序入门.ppt》由会员分享,可在线阅读,更多相关《C语言程序入门.ppt(39页珍藏版)》请在三一办公上搜索。

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

2、func();printf(“Hello,world!n”);,C语句块,复合语句:用 括起来的一组语句一般形式:数据说明部分;执行语句部分;说明:“”后不加分号语法上和单一语句相同复合语句可嵌套,格式 赋值表达式;即 变量 表达式;或 变量 表达式;操作 计算表达式的值,将该值赋予变量。,例 a=r*r*3.1415926;注 赋值语句与赋值表达式的不同概念 例 if(a=b)0)t=a;其中a=b是表达式而不是语句 上句相当于 a=b;if(a0)t=a;可见使用了赋值语句能使程序得到简化。,赋值语句,1.4.3 算法的概念与程序结构,利用计算机求解问题的一般过程(1)问题分析阶段(2)数

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

4、于自然语言和计算机语言之间的文字和符号来描述算法。5)、用计算机语言表示算法,4、结构化程序设计方法,一个结构化算法由一些基本结构(顺序、分支、循环)顺序组成的;每个基本结构又可包含其他的基本结构;在基本结构之间不存在向前或向后的跳转,流程的转移只存在于一个基本结构之内;一个非结构化算法可以转化为一个结构化算法;一个结构化程序就是用高级语言表示的结构化算法采用以下方法可得到结构化程序:自顶向下、逐步细化、模块化设计、结构化编码。,在计算机科学的发展过程中,人们已经提出了很多种类的算法描述方法。一种是自然语言的描述方法。鉴于自然语言本身过于灵活且又缺乏严谨性,所以容易产生理解上的歧义。还有一种算

5、法的图形描述方式流程图。它采用一些标准的图形符号描述算法的操作过程,从而避免了人们对非形式化语言的理解差异。,5、算法描述,起止框,I/O框,处理框,判断框,调用框,连接框,有向边,常用流程图符号,程序的三种基本结构结构化程序设计基本思想:任何程序都可以用三种基本结构表示,限制使用无条件转移语句(goto)结构化程序:由三种基本结构反复嵌套构成的程序叫优点:结构清晰,易读,提高程序设计质量和效率三种基本结构顺序结构,选择结构,二分支选择结构,多分支选择结构,循环结构,当型循环结构,直到型循环结构,注:A,B,A1.An可以是一个简单语句,也可以是一个基本结构,案例分析 从键盘输入大写字母,用小

6、写字母输出,/*ch3_13.c*/#include stdio.hmain()char c1,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,计算一元二次方程的实根;,1.4.4 输

7、入与输出,一般每个程序都要用到数据的输入输出。数据输入:通过外设将数据输入内存。数据输出:将内存的数据通过外设输出。,C语言的输入输出通过调用函数实现,这些输入输出函数一般存于stdio.h和io.h(TURBO C)库文件。使用输入输出函数要用编译预处理命令指出连接的库文件,程序编译连接时将其与用户程序相连。如:#include 或#include stdio.h,1.4.4.1 基本的输入输出函数 1、字符的非格式化输入 getchar()基本执行过程为:等待用户从标准输入设备键盘输入一个字符。如果输入成功,函数返回这个字符的ASCII编码。例如:char ch;ch=getchar();

8、2、字符的非格式化输出 putchar()putchar(ch),输出参数ch代表的字符。,案例1.8:通过键盘输入一个字符,分别在两行上显示这个字符,每行显示2次。,#include main()char ch;/*定义变量ch*/ch=getchar();/*通过键盘输入一个字符*/putchar(ch);/*在屏幕上显示2次输入的字符*/putchar(ch);putchar(n);/*在屏幕上显示一个回车换行符*/putchar(ch);/*继续在屏幕上显示2次输入的字符*/putchar(ch);,例题分析,例#include main()char a,b,c;a=B;b=O;c=Y

9、;putchar(a);putchar(b);putchar(c);,输出结果 BOY,例 putchar(n);输出换行 putchar(101);putchar(A);putchar(65);,输出 AAA,案例1.9:从键盘输入一个小写字母,输出该字母的大写。,#includestdio.h main()char c;printf(input a char:);c=getchar();c-=32;putchar(c);putchar(n);,3、格式输入函数,格式:scanf(“格式控制串”,地址表)功能:按指定格式从键盘读入数据,存入地址表指定的 存储单元中,并按回车键结束返值:正常,

10、返回输入数据个数,地址表:变量的地址,常用取地址运算符&格式字符:d,i,o,x,u,c,s,f,e,例 scanf(“%d”,输入:10 则 a=10,例 scanf(“%x”,输入:11 则 a=17,附加格式说明符(修饰符),例 scanf(“%4d%2d%2d”,输入 19991015 则1999yy,10 mm,15 dd,例 scanf(“%3d%*4d%f”,则123k,8765.43f,例 scanf(“%2d%*3d%2d”,输入 1234567 则12a,67b,例 scanf(“%3c%2c”,输入 abcde 则ac1,d c2,输入分隔符的指定一般以空格、TAB或回车

11、键作为分隔符其它字符做分隔符:格式串中两个格式符间字符,例 scanf(“%d%o%x”,输入 123 123 123 输出 a=123,b=83,c=291,例 scanf(“%d:%d:%d”,输入 12:30:45 则12 h,30 m,45 s,例 scanf(“%d,%d”,&a,&b)输入 3,4 则3a,4 b,例 scanf(“a=%d,b=%d,c=%d”,输入 a=12,b=24,c=36,说明:用“%c”格式符时,空格和转义字符作为有效字符输入,如 scanf(“%c%c%c”,若输入abc 则ac1,c2,b c3,输入数据时,遇以下情况认为该数据结束:遇空格、TAB、

12、或回车遇宽度结束遇非法输入,如 scanf(“%d%c%f”,若输入1234a123o.26 则 1234 a,a b,123 c,输入函数留下的“垃圾”:,例 int x;char ch;scanf(“%d”,执行:123输出:x=123,ch=10,例 int x;char ch;scanf(“%d”,执行:123输出:x=123,ch=10,解决方法:(1)用getchar()清除(2)用函数fflush(stdin)清除全部剩余内容(3)用格式串中空格或“%*c”来“吃掉”(4)用%1s代替%c,因为它完全忽略空格和回车符,例 int x;char ch;scanf(“%d”,格式:p

13、rintf(“格式控制串”,输出表)功能:按指定格式向显示器输出数据返值:正常,返回输出字节数;出错,返回EOF(-1),4.格式输出函数,输出表:要输出的数据(可以没有,多个时以“,”分隔)格式控制串:包含两种信息格式说明:%修饰符格式字符,用于指定输出格式普通字符或转义序列:原样输出格式字符,例 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)

14、;,int a=567;printf(“%u”,a);,char a=65;printf(“%c”,a);,printf(“%s”,“ABC”);,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.67789e+02,567.789000,567.789,%,说明:除X、E、G外,格式字符要用小写格式字符与输出项个数应相同,按先后顺序一一对应,否则,若格式字符少,按其个数自左向右输出

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

16、,ffff,177777,65535,char c=aint i=97;printf(“%c,%d”,c,c);printf(“%c,%d”,i,i);,e:数值按规范化指数输出,有的编译系统自动指定为6位小数,指数部分占5位(如VC+)f:整数部分全部输出,并输出6位小数,可四舍五入。g:自动选择e或f,不输出无意义的0。,附加格式说明符(修饰符),例 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)

17、;,运行 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%.3sn”,a,a,a,a,a);,运行结果:Hello,world!Hello,world!Hello Hello Hel,例 m.n,例 int a=1234;float f=123.456;static char c=“Hello,world!”;printf(“%8d,%-8dn”,a,a);printf(“%10.2f,%-10.1fn”,f

18、,f);printf(“%10.5s,%-10.3sn”,c,c);,运行结果:1234,1234 123.46,123.5 Hello,Hel,例-,例 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);,例 l,/00001234,/000012

19、3.46,/000+1234,/000+123.56,/173,0173,7B,0X7B,/0,65536,案例1.10:将输入的角度转换成弧度。,#include main()int degree;float radian;printf(Enter degree:);scanf(%d,案例1.11:输入两个字符,输出用这两个字符绘制的三角形。,#include main()char ch1,ch2;printf(Enter 2 characters:);scanf(%c%c,例1.12:逆序输出一个三位正整数的每一位数字。,#include main()int d1,d2,d3,value;

20、printf(nEnter 3 integers:);scanf(%d,/*输出结果*/,例1.13:将连续输入的4个数字字符拼成一个int类型的数值。,#include main()char d1,d2,d3,d4;int value;printf(Enter 4 characters:);d1=getchar();d2=getchar();d3=getchar();d4=getchar();value=(d1-0)*1000+(d2-0)*100+(d3-0)*10+(d4-0)*1;printf(The value is%d,value);/*输出结果*/,思考小结,写出你理解的顺序结构程序设计方法;写出编程的基本思路、步骤;写出编程注意的地方。,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号