《第4讲C语言程序入门2.ppt》由会员分享,可在线阅读,更多相关《第4讲C语言程序入门2.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语句语句:以以“;”作分隔符作分隔符,编译后产生机器指
2、编译后产生机器指令令.C语句分类语句分类 表达式语句:表达式加分号构成。表达式语句:表达式加分号构成。空语句:空语句:;声明语句:定义变量,声明函数等。声明语句:定义变量,声明函数等。程序控制语句程序控制语句(9种):种):如如 total=total+limit;a=3;func();printf(“Hello,world!n”);if()else switchfor()while()dowhile()continuebreakgotoreturn分支循环辅助控制C语句块 复合语句:用复合语句:用 括起来的一组语句括起来的一组语句 一般形式:一般形式:数据说明部分;数据说明部分;执行语句部分
3、;执行语句部分;说明:说明:“”后不加分号后不加分号 语法上和单一语句相同语法上和单一语句相同 复合语句可嵌套复合语句可嵌套格式格式 赋值表达式赋值表达式;即即 变量变量 表达式表达式;或或 变量变量 表达式表达式;操作操作 计算表达式的值计算表达式的值,将该值赋予变量。将该值赋予变量。例例 a=r*r*3.1415926;注注 赋值语句与赋值表达式的不同概念赋值语句与赋值表达式的不同概念 例例 if(a=b)0)t=a;其中其中a=b是表达式而不是语句是表达式而不是语句 上句相当于上句相当于 a=b;if(a0)t=a;可见使用了赋值语句能使程序得到简化。可见使用了赋值语句能使程序得到简化。
4、1.4.3 算法的概念与程序结构 利用计算机求解问题的一般过程(1)问题分析阶段(2)数据结构设计阶段(3)算法设计阶段(4)编码与调试阶段 1、算法概念 算法就是解决某一具体问题的方法和步骤。从广义上来说,算法早就融于人们的生活中,例如,上学走哪条路、坐哪趟车,如果堵车怎么办等,其中就包含有“算法”。在计算机中,算法是指为解决具体的问题而采取的确定的方法和步骤,设计好了算法,就可以将它用具体的语言进行描述,最终转化为解决问题的程序。2、算法特点1)、有穷性:操作步骤有限)、有穷性:操作步骤有限2)、确定性:每一步都应确定)、确定性:每一步都应确定3)、有零个或多个输入)、有零个或多个输入4)
5、、有一个或多个输出)、有一个或多个输出5)、有效性:每一步都能有效执行并得到确)、有效性:每一步都能有效执行并得到确定结果定结果3、算法描述1)、自然语言2)、传统流程图3)、结构化流程图(NS)4)、伪代码:用介于自然语言和计算机语言之间的文字和符号来描述算法。5)、用计算机语言表示算法4、结构化程序设计方法一个结构化算法由一些基本结构(顺序、分支、循环)顺序组成的;每个基本结构又可包含其他的基本结构;在基本结构之间不存在向前或向后的跳转,流程的转移只存在于一个基本结构之内;一个非结构化算法可以转化为一个结构化算法;一个结构化程序就是用高级语言表示的结构化算法采用以下方法可得到结构化程序:自
6、顶向下、逐步细化、模块化设计、结构化编码。在计算机科学的发展过程中,人们已经提出了很多种类的算法描述方法。一种是自然语言自然语言的描述方法。鉴于自然语言本身过于灵活且又缺乏严谨性,所以容易产生理解上的歧义。还有一种算法的图形描述方式流程图流程图。它采用一些标准的图形符号描述算法的操作过程,从而避免了人们对非形式化语言的理解差异。5、算法描述、算法描述起止框I/O框处理框判断框调用框连接框有向边 常用流程图符号 程序的三种基本结构程序的三种基本结构 结构化程序设计结构化程序设计 基本思想:任何程序都可以用三种基本结构表示,限制基本思想:任何程序都可以用三种基本结构表示,限制使用无条件转移语句(使
7、用无条件转移语句(goto)结构化程序:由三种基本结构反复嵌套构成的程序叫结构化程序:由三种基本结构反复嵌套构成的程序叫 优点:结构清晰,易读,提高程序设计质量和效率优点:结构清晰,易读,提高程序设计质量和效率 三种基本结构三种基本结构 顺序结构顺序结构ABAB流程图流程图N-S图图PAB真真假假PBA真真假假v选择结构选择结构kA1A2AiAnk=k2k=k1k=knk=ki.l二分支选择结构二分支选择结构l多分支选择结构多分支选择结构v循环结构循环结构l当型循环结构当型循环结构l直到型循环结构直到型循环结构PA假假真真当当P为真为真AAP真真假假A直到直到P为真为真注:注:A,B,A1.A
8、n可以是一个简单语句,也可以是一个基本结构可以是一个简单语句,也可以是一个基本结构案例分析案例分析 从键盘输入大写字母,用小写字母输出/*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,交换后再输出;根据给定圆的半径,计算周长和面积;通过键盘输入一个字符
9、,输出字符的ASCII码;逆序输出一个3位正整数的每位数字;给定a,b,c,计算一元二次方程的实根;1.4.4 输入与输出一般每个程序都要用到数据的输入输出。一般每个程序都要用到数据的输入输出。数据输入:通过外设将数据输入内存。数据输入:通过外设将数据输入内存。数据输出:将内存的数据通过外设输出。数据输出:将内存的数据通过外设输出。C语言的输入输出通过语言的输入输出通过调用函数调用函数实现,这些输实现,这些输入输出函数一般存于入输出函数一般存于stdio.h和和io.h(TURBO C)库文库文件。使用输入输出函数要用编译预处理命令指出件。使用输入输出函数要用编译预处理命令指出连接的库文件,程
10、序编译连接时将其与用户程序连接的库文件,程序编译连接时将其与用户程序相连。相连。如:如:#include 或或#include stdio.h1.4.4.1 1.4.4.1 基本的输入输出函数基本的输入输出函数 1、字符的非格式化输入 getchar()基本执行过程为:等待用户从标准输入设备键盘输入一个字符。如果输入成功,函数返回这个字符的ASCII编码。例如:char ch;ch=getchar();2、字符的非格式化输出 putchar()putchar(ch),输出参数ch代表的字符。案例案例1.8:通过键盘输入一个字符,分别通过键盘输入一个字符,分别在在两行上显示这个字符,每行显示两行
11、上显示这个字符,每行显示2 2次。次。#include main()char ch;/*定义变量定义变量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
12、,b,c;a=a=B B;b=;b=O O;c=;c=Y Y;putchar(a);putchar(b);putchar(cputchar(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;putc
13、har(c);putchar(n);3、格式输入函数格式输入函数格式格式:scanf:scanf(“(“格式控制串格式控制串”,地址表),地址表)功能:按指定格式从键盘读入数据,存入地址表指定的功能:按指定格式从键盘读入数据,存入地址表指定的 存储单元中存储单元中,并按回车键结束并按回车键结束返值:正常,返回输入数据个数返值:正常,返回输入数据个数 地址表:变量的地址,常用取地址运算符地址表:变量的地址,常用取地址运算符&格式字符格式字符:d,i,o,x,u,c,s,f,e例例 scanf(“%d”,&a);输入:输入:10 则则 a=10例例 scanf(“%x”,&a);输入:输入:11
14、则则 a=17d,i输入有符号的十进制数输入有符号的十进制数u输入无符号的十进制数输入无符号的十进制数o输入无符号的八进制数输入无符号的八进制数x,X输入无符号的十六进制数输入无符号的十六进制数c输入单个字符,空格、回车、制表符等也作为输入单个字符,空格、回车、制表符等也作为有效字符输入有效字符输入s输入字符串,以非空白字符开始,遇到第一个输入字符串,以非空白字符开始,遇到第一个空白字符(包括空格、回车、制表符)时结束空白字符(包括空格、回车、制表符)时结束f输入实数,小数、指数形式均可输入实数,小数、指数形式均可E,e,g,G与与f作用相同作用相同 附加格式说明符(修饰符)附加格式说明符(修
15、饰符)l修饰符功 能hm*用于用于d,o,xd,o,x前,指定输入为前,指定输入为shortshort型整数型整数用于用于d,o,xd,o,x前,指定输入为前,指定输入为longlong型整数型整数用于用于e,fe,f前,指定输入为前,指定输入为long doublelong double型实数型实数指定输入数据宽度,遇空格或不可转换字符则结束指定输入数据宽度,遇空格或不可转换字符则结束抑制符,指定输入项读入后不赋给变量抑制符,指定输入项读入后不赋给变量例例 scanf(“%4d%2d%2d”,&yy,&mm,&dd);输入输入 19991015 则则1999yy,10 mm,15 dd例 s
16、canf(“%3d%*4d%f”,&k,&f);输入 12345678765.43 则123k,8765.43f例例 scanf(“%2d%*3d%2d”,&a,&b);输入输入 12 345 67 则则12a,67b例例 scanf(“%3c%2c”,&c1,&c2);输入输入 abcde 则则ac1,d c2 输入分隔符的指定输入分隔符的指定一般以空格、一般以空格、TAB或回车键作为分隔符或回车键作为分隔符其它字符做分隔符:格式串中两个格式符间字符其它字符做分隔符:格式串中两个格式符间字符例例 scanf(“%d%o%x”,&a,&b,&c);printf(“a=%d,b=%d,c=%dn”,a,b,c);输入输入 123 123 123 输出输出 a=123,b=83,c=291例例 scanf(“%d:%d:%d”,&h,&m,&s);输入输入 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,&b,&c);输入输入 a=12,b=24,c=