第1章 C语言程序设计基础.ppt
《第1章 C语言程序设计基础.ppt》由会员分享,可在线阅读,更多相关《第1章 C语言程序设计基础.ppt(60页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第三章第三章 程序设计基础程序设计基础3.1 算法与流程算法与流程3.2 程序结构和语句程序结构和语句3.3 数据的输入和输出数据的输入和输出3.4 顺序结构的程序设计顺序结构的程序设计3.5 分支结构的程序设计分支结构的程序设计3.6 循环结构的程序设计循环结构的程序设计在第二章学习了构成程序的基本成分常量、变量、运在第二章学习了构成程序的基本成分常量、变量、运算符和表达式等,本章介绍算符和表达式等,本章介绍c语言程序设计的三种基本结语言程序设计的三种基本结构。构。1/19/20231算法与流程算法与流程3.1.1 算法的概念算法的概念 计算机解决问题所依据的步骤称为计算机算法,简称算法。计
2、算机解决问题所依据的步骤称为计算机算法,简称算法。解决同一个问题有时可以采取不同的步骤,即存在不同的解决同一个问题有时可以采取不同的步骤,即存在不同的算法。(举例)算法。(举例)算法是程序设计的灵魂。计算机语言只是一种用来描述算算法是程序设计的灵魂。计算机语言只是一种用来描述算法的工具。法的工具。算法有优劣之分,一般应选择简单、运算步骤少、运算速算法有优劣之分,一般应选择简单、运算步骤少、运算速度快、内存消耗小的算法。度快、内存消耗小的算法。3.1.2 算法的属性算法的属性1 有穷性有穷性2 确定性确定性 3 有零个或多个输入有零个或多个输入 4 有一个或多个输出有一个或多个输出 5 有效性有
3、效性1/19/202323.1.3 算法的表示形式算法的表示形式表示算法有多种方法,常用的表示方法有:表示算法有多种方法,常用的表示方法有:自然语言、传统流程图、结构化流程图自然语言、传统流程图、结构化流程图(N-S盒图盒图)、伪代码、伪代码、计算机语言等。计算机语言等。传统流程图传统流程图起止框起止框处理框处理框输入输出框输入输出框流程线流程线判断框判断框连接点连接点1/19/20233AB顺序结构顺序结构 条件条件成立成立 不成立不成立 A B 选择结构选择结构当当条件成立时条件成立时A当型当型循环结构循环结构 直到条件不成立直到条件不成立A直到型循环结构直到型循环结构这这两种循环的区别:
4、两种循环的区别:当型循环,当型循环,A语句可能一次语句可能一次都不做,直到型循环,都不做,直到型循环,A语语句至少要执行一次。句至少要执行一次。N-S图去掉了流程线,全部算法写在一个矩形框内。图去掉了流程线,全部算法写在一个矩形框内。用用N-S盒图表示算法盒图表示算法1/19/202343.2 程序结构和语句程序结构和语句程序是使用语言给计算机的一组指令序列。程序是使用语言给计算机的一组指令序列。C C语言提供三种结构化语句来控制程序的执行语言提供三种结构化语句来控制程序的执行流程:流程:顺序结构、选择结构和循环结构。顺序结构、选择结构和循环结构。顺序结构:顺序结构:是指每个程序都是按照语句的
5、书写顺序是指每个程序都是按照语句的书写顺序依次执行的,它是最简单的依次执行的,它是最简单的 结构。结构。分支结构:分支结构:根据一定的条件有选择地执行或不执行根据一定的条件有选择地执行或不执行某些语句。某些语句。循环结构:循环结构:在一定条件下重复执行相同的语句。可在一定条件下重复执行相同的语句。可分为当型循环和直到型循环两种。分为当型循环和直到型循环两种。三种基本结构的三种基本结构的N-S图如前所示。图如前所示。1/19/202353.2.2 C语句概述语句概述程序包括数据描述和数据操作。数据描述主要定义数据结构,程序包括数据描述和数据操作。数据描述主要定义数据结构,数据操作是对数据进行加工
6、。数据操作是对数据进行加工。C程序对数据的处理和加工是通过程序对数据的处理和加工是通过“语句语句”的执行来实现的。的执行来实现的。语句的分类语句的分类1 简单语句简单语句在一个表达式或函数调用在一个表达式或函数调用 结尾处加分号就构成了一个语句。分号是语句不可结尾处加分号就构成了一个语句。分号是语句不可缺少的一部分。缺少的一部分。赋值表达式:赋值表达式:a=6赋值语句:赋值语句:a=6;printf是系统函数,是系统函数,printf(“I love C programming language”);是一个语句。是一个语句。2 特殊语句特殊语句 空语句:只有一个分号的语句。空语句:只有一个分号
7、的语句。复合语句:用括起来的语句,又称为分程序。复合语句:用括起来的语句,又称为分程序。3 流程控制语句流程控制语句C语言有语言有9种控制语句种控制语句1/19/202363.3 数据的输入与输出数据的输入与输出C C语言本身不提供输入输出语句,输入和输出操作是由函数语言本身不提供输入输出语句,输入和输出操作是由函数来实现的。在来实现的。在C C标准函数库中提供了一些输入输出函数,例标准函数库中提供了一些输入输出函数,例如,如,printfprintf函数和函数和scanfscanf函数。函数。3.3.1 格式输出函数格式输出函数printf()它的作用是输出若干个任意类型的数据。调用该函数,
8、在其后它的作用是输出若干个任意类型的数据。调用该函数,在其后加上分号加上分号;构成了格式输出语句。构成了格式输出语句。调用形式:调用形式:printf(“格式控制字符串格式控制字符串”,输出项表)或,输出项表)或printf(字符串)字符串)按照按照“格式控制字符串格式控制字符串”的要求,将输出项的值显示在屏幕上。的要求,将输出项的值显示在屏幕上。格式控制:格式控制:用双引号括起来的字符串,串中有两种字符。用双引号括起来的字符串,串中有两种字符。格式字符:格式字符:由、格式字符组成,将输出格式转换为指定由、格式字符组成,将输出格式转换为指定格式。格式。普通字符:普通字符:原样输出的字符。原样输
9、出的字符。1/19/20237格式字符:1 d格式符格式符 d 按整型数据的实际长度输出按整型数据的实际长度输出md m为指定的输出字段的宽度,如果输出数据的位数为指定的输出字段的宽度,如果输出数据的位数小于小于m,则左端补以空格,若大于则左端补以空格,若大于m,则按实际位数输出。则按实际位数输出。2 o格式符格式符以八进制数形式输出整数,由于是将内存单元的各位的值按以八进制数形式输出整数,由于是将内存单元的各位的值按八进制形式输出,因此输出的数值不带符号,符号位也一起八进制形式输出,因此输出的数值不带符号,符号位也一起作为八进制数的一部分输出。作为八进制数的一部分输出。3 x格式符格式符以十
10、六进制数形式输出整数,同样不会出现负的十六进制数。以十六进制数形式输出整数,同样不会出现负的十六进制数。4 u格式符格式符用来输出用来输出unsigned型数据,即无符号数,以十进制形式输出。型数据,即无符号数,以十进制形式输出。1/19/202385 C格式符格式符 c 用来输出一个字符。一个整数,只要它的值在用来输出一个字符。一个整数,只要它的值在0255范围范围内,也可以用字符形式输出,在输出前,系统会将该整数作为内,也可以用字符形式输出,在输出前,系统会将该整数作为ASCII码转换成相应的字符,反之,一个字符数据也可以用整码转换成相应的字符,反之,一个字符数据也可以用整数形式输出。数形
11、式输出。6 s格式符格式符 s 用来输出一个字符串。用来输出一个字符串。1%ms,输出的字符串占输出的字符串占m列,如字符串本身长度大于列,如字符串本身长度大于m,则全则全部输出,若串长小于部输出,若串长小于m,则左补空格。则左补空格。2-ms,如果串长小于如果串长小于m,则在则在m列范围内,字符串向左靠,列范围内,字符串向左靠,右补空格。右补空格。3 m.ns,输出占输出占m列列,只取字符串左端只取字符串左端n个字符个字符,这这n个字符输出个字符输出在在m列的右侧列的右侧,左补空格。左补空格。4-m.ns,m和和n含义同上含义同上,n个字符输出个字符输出在在m列范围的左侧,列范围的左侧,右补
12、空格,如果右补空格,如果nm,则,则m自动取自动取n值,保证值,保证n个字符正常个字符正常输出。输出。1/19/202397 f格式符格式符用来输出实数(包括单、双精度),以小数形式输出。用来输出实数(包括单、双精度),以小数形式输出。1 f,不指定字段宽度,由系统自动指定,使整数部分全部如不指定字段宽度,由系统自动指定,使整数部分全部如数输出,输出六位小数。输出的不一定全都是有效数字,数输出,输出六位小数。输出的不一定全都是有效数字,单精度实数的有效位数一般是单精度实数的有效位数一般是7位。位。2 m.nf,指定输出的数据共占指定输出的数据共占m列列,小数点占一位,其中有小数点占一位,其中有
13、n位位小数,如果数值长度小于小数,如果数值长度小于m,则左端补空格。如果数据长于则左端补空格。如果数据长于m,只取左边只取左边m位,小数部分进行四舍五入。位,小数部分进行四舍五入。3-m.nf,与上基本相同,输出的数值向左端靠,右端补空格。与上基本相同,输出的数值向左端靠,右端补空格。8 e格式符格式符以指数形式输出实数,可以采用以下方式:以指数形式输出实数,可以采用以下方式:1 e 不指定输出数据所占的宽度和数字部分的小数位数。数值不指定输出数据所占的宽度和数字部分的小数位数。数值 按规范化指数形式输出(指定给出按规范化指数形式输出(指定给出6位小数,指数部分占位小数,指数部分占4位,输出的
14、实数共占位,输出的实数共占13列宽度)(不同系统规定不同)列宽度)(不同系统规定不同)2 m.ne和和-m.ne 3 g格式符格式符 用来输出实数,它根据数值的大小,自动选用来输出实数,它根据数值的大小,自动选f格式或格式或e格式,(选择输出时占宽度较小的一种)且不输出无意义的零。格式,(选择输出时占宽度较小的一种)且不输出无意义的零。1/19/202310格式:格式:scanf(格式控制,地址表);格式控制,地址表);功能:用来输入任何类型数据,可同时输入多个类型或不同类型数据。功能:用来输入任何类型数据,可同时输入多个类型或不同类型数据。格式控制格式控制:是由双括号括起来字符串,主要是由是
15、由双括号括起来字符串,主要是由“%”和格式符组成和格式符组成表表 1Scanf函数格式字符函数格式字符格式字符格式字符功能功能d输入十进制整数输入十进制整数o输入八进制整数输入八进制整数x输入十六进制整数输入十六进制整数c输入单个字符输入单个字符s输入字符串输入字符串f,e输入浮点数(小数或指数形式)输入浮点数(小数或指数形式)ld,lo,lx输入长整型数据输入长整型数据lf,le输入长浮点型数据(双精度)输入长浮点型数据(双精度)3.3.2 格式输入函数格式输入函数scanf1/19/202311使用使用scanf函数时应注意的问题函数时应注意的问题1 scanf函数中的函数中的“格式控制格
16、式控制”后面应当是变量地址,而不应后面应当是变量地址,而不应是变量名。是变量名。2 如果在如果在“格式控制格式控制”字符串中除了格式说明以外还有其它字字符串中除了格式说明以外还有其它字符,则在输入数据时在对应位置输入与这些字符相同的符,则在输入数据时在对应位置输入与这些字符相同的字符。字符。3 在用在用c格式输入字符时,空格字符和格式输入字符时,空格字符和“转义字符转义字符”都作为都作为有效字符的输入。故输入字符型数据时,数据之间不用有效字符的输入。故输入字符型数据时,数据之间不用分隔符。分隔符。4 输入数据分隔输入数据分隔 1 采用隐含的分隔符采用隐含的分隔符:空格、回车键、:空格、回车键、
17、Tab键键 2 根据格式中指定的域宽分隔数据项。(不提倡)根据格式中指定的域宽分隔数据项。(不提倡)3 采用用户指定的分隔符。采用用户指定的分隔符。5 在在scanf函数中不能使用函数中不能使用u说明符,对说明符,对unsigned 型数据只能型数据只能以以%d或或%o、%x格式输入。格式输入。6 在用在用scanf函数输入数据时,不能规定精度。函数输入数据时,不能规定精度。1/19/2023123.3.3 字符输入输出函数字符输入输出函数字符输入函数字符输入函数getchar格式:格式:getchar()()功能:从键盘上接收输入的一个字符。功能:从键盘上接收输入的一个字符。例如:例如:ch
18、ar c;c=c=getchar()其中其中c是字符型或整型变量。是字符型或整型变量。例例1:从键盘输入一个字符,并将其存入字符型变量:从键盘输入一个字符,并将其存入字符型变量c 中。中。#include”stdio.h”Main()char c;c=getchar();1/19/202313字符输出函数字符输出函数putchar数据的输出一般是以终端显示器(屏幕)为处理对象。数据的输出一般是以终端显示器(屏幕)为处理对象。格式:向终端输出一个字符。格式:向终端输出一个字符。说明:变量说明:变量c可以是字符型,也可以是整型。可以是字符型,也可以是整型。从键盘输入一个字符,在屏幕上显示出来。从键
19、盘输入一个字符,在屏幕上显示出来。#include”stdio.h”main()char c;c=getchar();/*从键盘输入一个字符从键盘输入一个字符*/putchar(c);/*在屏幕上显示一个字符在屏幕上显示一个字符*/putchar函数也可以输出一些特殊字符(控制字符),如:函数也可以输出一些特殊字符(控制字符),如:putchar(n)作用是输出一个作用是输出一个“换行换行”字符。字符。1/19/202314注意:注意:getchar、getch、putchar都在名为都在名为“stdio.h”的头文件里。的头文件里。因因此若用到这些函数,必须在程序的开头用文件包含编译预处此若
20、用到这些函数,必须在程序的开头用文件包含编译预处理命令。即理命令。即 include“stdio.h”getchar()与与getch()功能都是接收自键盘上输入的一个字符,返回输入字符的功能都是接收自键盘上输入的一个字符,返回输入字符的ASCII码值。都是无参函数。码值。都是无参函数。getchar()当当程序执行到此函数时,将等待输入,只有当用户程序执行到此函数时,将等待输入,只有当用户输入字符并按输入字符并按Enter键后,才接收输入的第一个字符,并键后,才接收输入的第一个字符,并在屏幕上回显该字符。同时送到内存的缓冲区,准备赋给在屏幕上回显该字符。同时送到内存的缓冲区,准备赋给指定的变
21、量。空格符、制表符、和回车键都被当做有效字指定的变量。空格符、制表符、和回车键都被当做有效字符输入。符输入。getch()直接从键盘获取键值直接从键盘获取键值,不等待用户按回车不等待用户按回车,只要用户按只要用户按一个键一个键,getch就立刻返回就立刻返回,不把字符回显到屏幕上。不把字符回显到屏幕上。1/19/2023153.5分支结构程序设计分支结构程序设计在在很多情况下需要根据条件选择所要执行的语句,很多情况下需要根据条件选择所要执行的语句,C语言的分语言的分支语句有两类,支语句有两类,一类是一类是if语句,另一类是语句,另一类是switch语句语句。条件语句的作用是使程序按某种条件有选
22、择的执行一条或多条条件语句的作用是使程序按某种条件有选择的执行一条或多条语句。语句。选择结构中的语句是否执行,取决于某个选择结构中的语句是否执行,取决于某个“条件条件”是否成立。是否成立。选择结构的程序有三种形式:选择结构的程序有三种形式:单分支结构单分支结构、双分支双分支和和多分支多分支。分支与双分支结构:分支与双分支结构:单分支结构单分支结构程序程序:if(表达式)表达式)语句语句 1;双分支结构双分支结构程序:程序:if(表达式)表达式)语句语句1;else 语句语句2;多分支结构多分支结构程序:程序:switch语句与语句与if-else嵌套嵌套Switch语句:语句:Switch(表
23、达式)表达式)case 常量表达式常量表达式1:语句组:语句组 1;break;default:语句组语句组n+1;1/19/202316例:请输入两个整数例:请输入两个整数a,b,比较比较a+b和和a*b哪个大,输出判哪个大,输出判断结果。断结果。#include stdio.h main()int a,b,s1,s2;printf(“please input two numbers a,b:);scanf(%d,%d,&a,&b);s1=a+b;s2=a*b;if(s1s2)printf(a+b)(a*b)n);else printf(a+b)=(a*b)n);1/19/202317运行结
24、果为:运行结果为:please input two numbers a,b:2,3 (a+b)s2,则执行语句则执行语句A(跳过语句跳过语句B不执行不执行),否则,就跳过语句否则,就跳过语句A执行语句执行语句B。可见可见if语句在程序中起到了改变语句执行顺序的作用。语句在程序中起到了改变语句执行顺序的作用。1/19/202318例:求分段函数的值,如果例:求分段函数的值,如果x0,y=2x+1;否则;否则,y=0。#include stdio.hmain()int x,y;printf(“please input the value of x:);scanf(%d,&x);if(x=0)y=2
25、*x+1;else y=0;printf(“when x=%d,f(x)=%d,x,y);1/19/202319运行结果:运行结果:please input the value of x:3 when x=3,f(x)=7因为输入因为输入x=3,那么那么x=0为真,所以输出为真,所以输出2*3+1=7。C语言中有一种特有的条件运算符语言中有一种特有的条件运算符“?:?:”,我们在前面章节,我们在前面章节已已作介绍,它在某种程序上可以起到逻辑判断的作用。作介绍,它在某种程序上可以起到逻辑判断的作用。本例中的本例中的if语句也可用条件运算符表达式实现如下:语句也可用条件运算符表达式实现如下:y=x
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第1章 C语言程序设计基础 语言程序设计 基础
限制150内