C课件第3章程序设计初步_第1页
C课件第3章程序设计初步_第2页
C课件第3章程序设计初步_第3页
C课件第3章程序设计初步_第4页
C课件第3章程序设计初步_第5页
已阅读5页,还剩31页未读 继续免费阅读

下载本文档

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

文档简介

1、2022-2-261 Program Design in C LanguagePage 算法简介 C语言程序的基本语句 数据的输入输出 第三章第三章 初步初步2022-2-262 Program Design in C LanguagePage所谓面向过程的程序设计,是指利用面向过程的语言工具所谓面向过程的程序设计,是指利用面向过程的语言工具(如(如BasicBasic、PascalPascal、FortranFortran和和C C语言等)语言等)进行程序开发的各项活动。进行程序开发的各项活动。3.1 结构化程序设计结构化程序设计1 面向过程的程序设计面向过程的程序设计优点:优点:编程简单、

2、结构性强、可读性好,程序执行时序特征明显;编程简单、结构性强、可读性好,程序执行时序特征明显;遵循这种结构的程序只有一个入口和一个出口。遵循这种结构的程序只有一个入口和一个出口。缺点:缺点:存在数据与程序模块的分离和程序的可重用性差等问题。存在数据与程序模块的分离和程序的可重用性差等问题。基本思想:基本思想:把一个需要求解的复杂问题把一个需要求解的复杂问题分为若干个模块来处理,每个模分为若干个模块来处理,每个模块处理一个子问题;设计时遵循块处理一个子问题;设计时遵循自顶向下、逐步细化、模块化设自顶向下、逐步细化、模块化设计和结构化编码的原则。计和结构化编码的原则。2022-2-263 Prog

3、ram Design in C LanguagePage3.1 结构化程序设计结构化程序设计2. 面向对象的程序设计面向对象的程序设计面向对象的程序设计是一种新的程序设计范型。它将一些新的理念和面向对象的程序设计是一种新的程序设计范型。它将一些新的理念和结构化程序设计中好的思想相融合,提供了一种全新的程序设计方法。结构化程序设计中好的思想相融合,提供了一种全新的程序设计方法。基本思想基本思想将一个需要求解的问题分解为一系将一个需要求解的问题分解为一系列实体(对象),然后围绕这些对象建立列实体(对象),然后围绕这些对象建立数据和函数;函数的功能决定了该对象的数据和函数;函数的功能决定了该对象的行

4、为。规定一个对象的函数可以访问另一行为。规定一个对象的函数可以访问另一对象的函数,但一个对象的数据不能应用对象的函数,但一个对象的数据不能应用于另一对象的函数中。于另一对象的函数中。(即只有属于该对(即只有属于该对象的成员函数才能访问自己的数据成员,从而象的成员函数才能访问自己的数据成员,从而达到了保护数据的目的。)达到了保护数据的目的。)几个基本概念:几个基本概念: 三类机制:三类机制:类、对象、属性、事件、方法类、对象、属性、事件、方法 封装、继承、多态封装、继承、多态2022-2-264 Program Design in C LanguagePage算法算法解决某一问题所采取的方法和步

5、骤。解决某一问题所采取的方法和步骤。 3.2 算法算法3.2.1 算法的概念算法的概念 有穷性有穷性 一个算法其操作步骤应当是有限的;一个算法其操作步骤应当是有限的; 确定性确定性 算法中的每一个步骤应当有确定的意义,不能有二义性;算法中的每一个步骤应当有确定的意义,不能有二义性; 有效性有效性 算法中的每一个步骤应当正确、可行,并且能有效地执行;算法中的每一个步骤应当正确、可行,并且能有效地执行; 有零个或多个输入有零个或多个输入 执行算法时需要从外界获取的信息;执行算法时需要从外界获取的信息; 有一个或多个输出有一个或多个输出 执行算法后应当得到正确的结果。执行算法后应当得到正确的结果。计

6、算机算法的特性计算机算法的特性2022-2-265 Program Design in C LanguagePage3.2 算法算法3.2.2 算法的基本结构算法的基本结构 顺序结构顺序结构 选择选择( (分支分支) )结构结构 循环结构循环结构2022-2-266 Program Design in C LanguagePage3.2 算法算法3.2.3 算法的表示算法的表示1. 1.用自然语言表示算法用自然语言表示算法 用人们日常使用的语言和语序来表示算法。用人们日常使用的语言和语序来表示算法。【例例1-1】:输入:输入n个整数,输出其中最大的数。个整数,输出其中最大的数。 自然语言自然语

7、言 伪代码伪代码 流程图流程图设置变量:设置变量:n代表整数的个数,代表整数的个数, num代表参与取值比较的整数,代表参与取值比较的整数,i代表已参与取值比较的整数个数,代表已参与取值比较的整数个数,max代表代表n个整数中的最大数。个整数中的最大数。步骤步骤1:从键盘输入一个整数给从键盘输入一个整数给n(设(设n=5),将),将1=i ;步骤步骤2:从键盘输入一个整数给从键盘输入一个整数给num,再将,再将num=max;步骤步骤3:如果如果imax,将,将num=max,否则,否则max的值为原值;的值为原值;步骤步骤5:i+1=i,如果,如果in,重复步骤,重复步骤3和步骤和步骤4;否

8、则输出;否则输出max的的值,即输出值,即输出n个整数中的最大数。个整数中的最大数。用自然语言描述算法如下:用自然语言描述算法如下:2022-2-267 Program Design in C LanguagePage2.2.用伪代码表示算法用伪代码表示算法 一种接近于程序设计语言,一种接近于程序设计语言,但又不受语言语法约束的算法表但又不受语言语法约束的算法表示法。示法。 输入输入n个整数,输出其中个整数,输出其中最大的数。最大的数。input ninput nummax=numi=1while imax then max=numend ifi=i+1end doprint max3.2 算

9、法算法2022-2-268 Program Design in C LanguagePage3.3.用流程图表示算法用流程图表示算法 用一些图框和方向线表示算法的图形表示法。用一些图框和方向线表示算法的图形表示法。 常用流程图符号及含义如下:常用流程图符号及含义如下:开始开始max=num,计数器,计数器i=1imaxmax=numi=i+1输出输出max结束结束输入数给输入数给num假假假假真真真真3.2 算法算法2022-2-269 Program Design in C LanguagePage用用N-S流程图表示算法流程图表示算法用一些基本结构图框来表示算法的图形表示法。用一些基本结构

10、图框来表示算法的图形表示法。语句语句A语句语句B条件条件P P成立成立 不成立不成立语句语句A A 语句语句B B当条件当条件P成立时成立时语句语句语句语句直到条件直到条件P不成立不成立顺序结构顺序结构分支结构分支结构循环结构循环结构基本结构图框及含义如下:基本结构图框及含义如下:输入输入n的值,的值,i=1输入输入num的值,的值,max=num输入输入num nummax真真 假假max=numi=i+1当当 in输出输出max的值的值3.2 算法算法2022-2-2610 Program Design in C LanguagePage33 C语言程序的基本语句语言程序的基本语句3.1

11、C语言程序的基本语句语言程序的基本语句 C语言语句分为五类:声明语句、表达式语句、函数调用语言语句分为五类:声明语句、表达式语句、函数调用语句、控制语句、复合语句、空语句。语句、控制语句、复合语句、空语句。声明语句声明语句 类型说明符类型说明符 变量名变量名; 类型说明符类型说明符 函数名(参数列表)函数名(参数列表);int a;char c;int max(int a,int b);2022-2-2611 Program Design in C LanguagePage2表达式语句表达式语句由一个表达式组成一个语句。由一个表达式组成一个语句。 如:如: +p; /*自增运算表达式加分号构成

12、语句自增运算表达式加分号构成语句*/ N+=10; /*复合赋值表达式加分号构成语句复合赋值表达式加分号构成语句*/ a+b; /* a+b表达式加分号构成语句表达式加分号构成语句*/3函数调用语句函数调用语句由一次函数调用加上分号由一次函数调用加上分号“;”组成组成 。形式:形式:函数名函数名( (实参列表实参列表) ) ;如:如: printf(“Very Good!n”); /*输出输出Very Good!*/ max(x,y,z); /*调用自定义函数调用自定义函数max,求,求x,y,z中的最大数中的最大数*/2022-2-2612 Program Design in C Langu

13、agePage5.复合语句复合语句: 用用 括起来组成的一个语句括起来组成的一个语句 如如:if (ab) x=0;b=b+1;x=a;4.空语句:仅由一个分号构成的语句空语句:仅由一个分号构成的语句6.控制语句:控制程序的流程控制语句:控制程序的流程 如如:ifelse语句,while语句,return语句等。 如:如:while (getchar( ) != n ) ; /*空语句空语句*/3.1 C3.1 C语言程序的基本语句语言程序的基本语句 2022-2-2613 Program Design in C LanguagePage1、字符输出:字符输出:putchar( )函数函数格式

14、:格式: putchar (C );功能:向终端输出一个字符。功能:向终端输出一个字符。C为形式参数,它可以是字符型变量、整型变为形式参数,它可以是字符型变量、整型变量,字符型常量或转义字符。量,字符型常量或转义字符。3.5 3.5 数据输入输出数据输入输出2022-2-2614 Program Design in C LanguagePageint main(void) char a ; int b ; a=b; b = 111; putchar( a ); putchar( b ); putchar(y); putchar(n); return 0; 例:例:运用运用putchar( )函

15、数函数程序运行结果:程序运行结果:boy“o”的的ASCII码为码为1112022-2-2615 Program Design in C LanguagePage2 2、字符输入:、字符输入:getchar( )函数函数格式:格式: getchar ( );功能:从终端输入一个字符。功能:从终端输入一个字符。getchar()只能接收一个字符,该字符可赋给字只能接收一个字符,该字符可赋给字符变量、整型变量或作为表达式的一部分。符变量、整型变量或作为表达式的一部分。例:例: int main(void) char c ; c=gethar( ); putchar( c );return 0; 输

16、入一个字符,输入一个字符,再将该字符输出再将该字符输出2022-2-2616 Program Design in C LanguagePage功能:通过标准输出设备(如显示器)输出功能:通过标准输出设备(如显示器)输出 一组数据。一组数据。 输出形式由输出形式由“格式控制格式控制”字符串规定。字符串规定。一般形式:一般形式: printf(“(“格式控制字符串格式控制字符串”,输出表列,输出表列) );3.3.格式输出函数格式输出函数printf( )2022-2-2617 Program Design in C LanguagePage格式控制格式控制:由由双引号双引号括起来的字符串,用于指

17、定要输出括起来的字符串,用于指定要输出的数据的格式。的数据的格式。2)格式说明:用来指定需输出数据的输出格式的,)格式说明:用来指定需输出数据的输出格式的,其形式为:其形式为: % 格式字符格式字符 格式字符用以说明输出数据的类型,形式,长度,格式字符用以说明输出数据的类型,形式,长度,小数位数等。小数位数等。它包括:它包括: 1)普通字符:按原样输出的字符;)普通字符:按原样输出的字符; 输出表列输出表列:需要输出的数据列表,彼此间用需要输出的数据列表,彼此间用逗号逗号分隔。分隔。它可是任意合法的表达式。它可是任意合法的表达式。格式输出:格式输出:printf( )printf( )函数函数

18、2022-2-2618 Program Design in C LanguagePage用于输出的格式字符用于输出的格式字符格式符格式符功功 能能形形 式式d d输出十进制整数输出十进制整数%d 、%md 、%ld 、%mldo o以八进制形式输出整数以八进制形式输出整数%o 、%mo 、%lox x以十六进制形式输出整数以十六进制形式输出整数%x 、%mx 、%lxu u以十进制形式输出一个无符号的数以十进制形式输出一个无符号的数%uc c输出一个字符输出一个字符% cs s输出一个字符串输出一个字符串%s 、 %ms 、 % m.nsf f以小数的形式输出实数以小数的形式输出实数%f 、%

19、m.nf、%lfe e以标准指数的形式输出实数以标准指数的形式输出实数%e 、 %m.neg g根据实数的大小自动按根据实数的大小自动按f f或或e e的形式的形式选择输出格式选择输出格式% g格式输出:格式输出:printf( )printf( )函数函数2022-2-2619 Program Design in C LanguagePage用于输出的修饰符用于输出的修饰符格式输出:格式输出:printf( )printf( )函数函数2022-2-2620 Program Design in C LanguagePage例:格式输出:例:格式输出:printf()函数()函数 printf

20、( a+b = %5.2 f , c );附加附加格式符格式符格式符格式符输出表列输出表列普通字符普通字符格式说明符格式说明符格式控制格式控制格式输出:格式输出:printf( )printf( )函数函数2022-2-2621 Program Design in C LanguagePage(1) d格式字符格式字符d:按整型数据的实际长度输出:按整型数据的实际长度输出md:m为指定的输出长度。如果数据位小于为指定的输出长度。如果数据位小于m,则左端补以空格则左端补以空格;大于大于m,则按实际位输出。,则按实际位输出。例:例:printf(“%4d,%4d”,a,b); 若若a=12, b=

21、12345,则输出,则输出 12,12345ld:输出长整型数据。:输出长整型数据。d d的输出范围为的输出范围为32768327673276832767,输出超过该,输出超过该范围的整型数就会出错,此时用范围的整型数就会出错,此时用%ld%ld输出。输出。其输出格式和功能与其输出格式和功能与%d%d相同,如:相同,如:8ld8ld格式输出:格式输出:printf( )printf( )函数函数2022-2-2622 Program Design in C LanguagePage(2) o格式字符格式字符以八进制数形式输出整数,且不带符号。以八进制数形式输出整数,且不带符号。对于长整数可用对

22、于长整数可用“lo”输出。功能同十进制输出。输出。功能同十进制输出。(3) x格式字符格式字符以十六进制数形式输出整数,且不带符号。以十六进制数形式输出整数,且不带符号。对于长整数可用对于长整数可用“lx”输出。功能同十进制输出。输出。功能同十进制输出。(4) u格式字符格式字符用来输出用来输出unsigned型数据,即无符号数,输出十型数据,即无符号数,输出十进制数。进制数。用用o o,%x%x输出负数时会发生错误。输出负数时会发生错误。格式输出:格式输出:printf( )printf( )函数函数2022-2-2623 Program Design in C LanguagePage(5

23、) c格式字符格式字符 一个整数,如果在一个整数,如果在02550255之间,也可用字符形式输出,之间,也可用字符形式输出,系统会将该整数转换成相对应的系统会将该整数转换成相对应的ASCIIASCII码字符;同时,一码字符;同时,一字符也可以用整数形式输出。字符也可以用整数形式输出。例:例:char c=a; printf(“%c”,c);用来输出一个字符。用来输出一个字符。int a=65;printf (“%c”,a); int c=A;printf (“%d”,c); 输出输出A输出输出65如如: :printf(“%3c”,c),则输出则输出c格式字符也可以指定输出字数宽度格式字符也可

24、以指定输出字数宽度 A格式输出:格式输出:printf( )printf( )函数函数2022-2-2624 Program Design in C LanguagePage(6) s格式字符格式字符s:用来输出一个字符串:用来输出一个字符串例:例:printf(“%s”,“Hello!”); 输出输出Hello!,!,不包括不包括“ ”ms:输出的字符串占:输出的字符串占m列。如果字符串长度小于列。如果字符串长度小于m,则左端补以空格;长度大于则左端补以空格;长度大于m,则输出整个字符串。,则输出整个字符串。-ms:如果串长小于:如果串长小于m,则字符串向左靠,右补空格,则字符串向左靠,右补

25、空格,其余同上。其余同上。m.ns:输出的字符串占:输出的字符串占m列列,但只取字符串中左端但只取字符串中左端n个个字符,这字符,这n个字符输出在个字符输出在m列的右侧,左端补空格。列的右侧,左端补空格。-m.ns:其他意义同:其他意义同m.ns,右补空格。,右补空格。例:例:printf(“%3s”,“Hello!”); 输出输出Hello! printf(“%7s”,“Hello!”); 输出输出 Hello!格式输出:格式输出:printf( )printf( )函数函数2022-2-2625 Program Design in C LanguagePage(7) f格式字符格式字符f:

26、不指定字段宽度,整数部分全部输出,小数:不指定字段宽度,整数部分全部输出,小数部分输出部分输出6位。位。m.nf:指定输出数据占:指定输出数据占m列,其中有列,其中有n位小数。位小数。若数值长度小于若数值长度小于m,则左端补以空格。,则左端补以空格。-m.nf:功能同上,右端补以空格。:功能同上,右端补以空格。(8) e格式字符格式字符e:不指定字段宽度,系统自动给出:不指定字段宽度,系统自动给出6位小数,指位小数,指数部分占数部分占4位。其中位。其中“e”占占1位,指数符号占位,指数符号占1位,位,指数占指数占2位。位。格式输出:格式输出:printf( )printf( )函数函数2022

27、-2-2626 Program Design in C LanguagePage例:例:printf(“%e”,123.456);输出:1.234560e+026 6位小数部分位小数部分4 4位指数部分位指数部分m.ne, -m.ne, me :中:中m,-的意义和前相同,的意义和前相同,n是指数据的小数部分输出的位数。是指数据的小数部分输出的位数。(9) g格式字符格式字符 用来输出实数,根据数值大小,自动选用来输出实数,根据数值大小,自动选f或或e格式,且不输出无意义的零。格式,且不输出无意义的零。格式输出:格式输出:printf( )printf( )函数函数2022-2-2627 Pr

28、ogram Design in C LanguagePage#include void main() int a=1234; float f1=12.34567,f2=678.9; printf(1)%d,%6d,%-6d,%2d;n,a,a,a,a); printf(2)%f,%10.4f,%3.2f;n,f1,f1,f1); printf(3)%e,%e;n,f1,f2); printf(4)%8e,%14e;n,f1,f1); printf(5)%10.7e,%10.3e;n,f1,f1); 实例:实例:程序运行结果:程序运行结果:1)1234, 1234,1234 ,1234;2)12

29、.345670, 12.3457,12.35;3)1.23457e+01,6.78900e+02;4)1.23457e+01, 1.23457e+01;5)1.234567e+01, 1.23e+01;2022-2-2628 Program Design in C LanguagePage功能:从终端输入任何类型的多个数据功能:从终端输入任何类型的多个数据 格式:格式:scanf( (格式控制格式控制 ,地址表列,地址表列) );格式控制格式控制:由双引号括起来的字符串,用于指定要输入由双引号括起来的字符串,用于指定要输入的数据的格式。的数据的格式。1)普通字符:按原样输入的字符;)普通字符:

30、按原样输入的字符; 2)格式说明:用来指定需输入数据的输入格式的,)格式说明:用来指定需输入数据的输入格式的,其形式为:其形式为: % 格式字符格式字符4.4.格式输入:格式输入:scanf( )函数函数地址表列地址表列:由若干个变量地址组成的表列。由若干个变量地址组成的表列。 地址是由地址是由”运算得到的。运算得到的。“”是取址运算符,单目运算符,右结合性。是取址运算符,单目运算符,右结合性。2022-2-2629 Program Design in C LanguagePage用于输入的修饰符用于输入的修饰符修饰符功 能l用于长整型、双精度型数据可加在格式符 d、o、x、f、e 前h用于短

31、整型数据可加在格式符 d、o、x 前m(域宽) 指定输入数据所占的宽度(列数)*表示本输入项在读入后不赋给相应的变量4.4.格式输入:格式输入:scanf( )函数函数2022-2-2630 Program Design in C LanguagePage用于输入的格式字符格式符功 能形式d输入十进制整数%d、%ld、%hd% md、%mldo输入八进制整数%o、%mo、%lox输入十六进制整数%x、%mx、%lxc输入一个字符%cs输入一个字符串%s、%msf%f、%mf、%lfe%e、%me、%le以小数或指数的形式输入实数两者功能相同,可互换4.4.格式输入:格式输入:scanf( )函

32、数函数2022-2-2631 Program Design in C LanguagePage格式输入的使用与注意:格式输入的使用与注意:输入数据时采用的分隔符应与格式控制中的分隔符一致。输入数据时采用的分隔符应与格式控制中的分隔符一致。例例1: 1: scanf(%d%f%d, &a, &b, &c); 格式符中无普通字符时,可用空格、格式符中无普通字符时,可用空格、TabTab键、回车键作分隔符。键、回车键作分隔符。如:如:12 3.45 678 或或 12(Tab)3.45(Tab)678例例2:2: scanf(%d,%f,%d, &a, &b,

33、 &c); 必须采用格式:必须采用格式:1212,3.,3.4545,678,678例例3:3: scanf(a=%d, b=%d, &a, &b); 必须采用格式:必须采用格式: a=12a=12, , b=345b=3454.4.格式输入:格式输入:scanf( )函数函数2022-2-2632 Program Design in C LanguagePage无符号数可用无符号数可用 %d、%o、%x 格式输入。格式输入。输入格式符带有输入格式符带有 * :表示该数据不赋值。:表示该数据不赋值。 例:例:scanf(%d%*d%d, &a, &c);

温馨提示

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

最新文档

评论

0/150

提交评论