C程序设计语言课件_第1页
C程序设计语言课件_第2页
C程序设计语言课件_第3页
C程序设计语言课件_第4页
C程序设计语言课件_第5页
已阅读5页,还剩97页未读 继续免费阅读

下载本文档

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

文档简介

第一章C语言概述11/10/20221C程序设计第一章C语言概述11/9/20221C程序内容

计算机语言

C语言简介C语言发展历史C语言特点

计算机程序

C语言程序C语言程序的基本结构C语言的语句C语言的字符集和标识符

算法与算法的表示算法算法的表示

结构化程序设计方法11/10/2022C程序设计内容11/9/2022C程序设计计算机语言定义

为计算机用户设计的用于编制程序的语言工具称为计算机语言分类机器语言汇编语言高级语言11/10/2022C程序设计计算机语言11/9/2022C程序设计计算机语言:机器语言定义具有固定格式、能完成一系列操作的特定二进制编码。

特点

难于掌握、容易出错,冗长繁琐11/10/2022C程序设计计算机语言:机器语言11/9/2022C程序设计算机语言:汇编语言定义用助记符代替指令的操作码、用数字或符号代替指令中的操作数或操作数存放位置的程序设计语言。例如:用ADD代替加法指令的二进制代码;用SUB代替减法指令的二进制代码;特点

易于记忆、便于掌握;用汇编语言编写的程序需要通过计算机编译程序编译,才能被计算机执行,因而执行效率不如机器语言程序高。11/10/2022C程序设计计算机语言:汇编语言11/9/2022C程序设计算机语言:高级语言定义机器语言或汇编语言是面向机器的语言,用它们编写程序都离不开具体的计算机指令系统。高级语言则是面向过程的语言,它独立于机器。在高级语言里,操作码与地址都以符号代码或文字形式出现。特点

易于记忆、便于理解和掌握,编写效率高;用高级语言编写的程序需要通过编译或解释,才能被计算机执行,因而执行效率不如机器语言程序高。11/10/2022C程序设计计算机语言:高级语言11/9/2022C程序设计算机语言:高级语言种类BASIC,PASCAL,FORTRAN,COBOL,C,LISP,PROLOG高级语言程序的执行方式编译执行:将源程序先转换成机器语言的目标程序,再将各个目标程序连接成可执行程序。解释执行:用语言的解释程序对源程序进行解释,同时执行。执行过程中不保存解释后的机器代码,下次运行程序需要重新解释。

11/10/2022C程序设计计算机语言:高级语言11/9/2022C程序设C语言简介:C语言发展历史语言名称诞生年代

制定者

ALGOL601960PeterNaur等13人来自7个不同的国家CPL1963剑桥大学

BCPL1967M.RichardsB语言

1970-1971K.ThompsonC语言

1972-1973D.M.Ritchie可移植C语言

1977标准C语言

1978B.W.Kernighan,D.M.RitchieANSIC语言

1983AmericanNationalStandardInstitute87ANSIC1987AmericanNationalStandardInstituteISOC语言

1990InternationalStandardOrgannization11/10/2022C程序设计C语言简介:C语言发展历史语言名称诞生年代制定者ALGOC语言简介:C语言发展历史语言名称特点

ALGOL60面向问题,离硬件远,不适合编写系统软件

CPL比ALGOL60离硬件近,但规模大,难实现

BCPL对CPL的简化---BasicCombinedProgrammingLanguageB语言

更简化的BCPL,可编写系统软件(UNIX),但过于简单,功能有限C语言

保持了B和BCPL语言的特点,克服了不足,编写了UNIX第5,6版

可移植C语言

简化了移植C的工作,

标准C语言

以UNIX第七版的编译程序为基础,TheCProgrammingLanguage

ANSIC语言

考虑了C语言问世以来的发展情况,比标准C有很大发展

87ANSICK&G重新写了书TheCProgrammingLanguage,提出了新标准

ISOC语言

以87ANSIC为标准和基础,诞生了许多C语言系统:Microsoftc、TurboC、QuickC、BorlandC、VisualC、VisualC++11/10/2022C程序设计C语言简介:C语言发展历史语言名称特点ALGOL60面C语言简介:典型的C语言版本目前比较流行的C语言版本MicrosoftC、VisualC、VisualC++(Microsoft);TurboC、BorlandC、BorlandC++(Borland);这些C语言分DOS版本、WINDOWS版本;有面向过程的、也有面向对象的。本课程以TurboC3.0,Visualc++6.0为编程实践的上机环境。11/10/2022C程序设计C语言简介:典型的C语言版本11/9/2022C程序C语言简介:

C语言特点1.语言简洁、紧凑、使用方便、灵活32个关键字,9种控制语句,书写自由,接近自然语言

2.运算符丰富有34种运算符,使用很灵活,可以构造多样表达式

3.数据类型齐全标准的和用户定义的数据类型能满足各种编程需要

4.结构化语言便于编写结构化的程序

11/10/2022C程序设计C语言简介:C语言特点11/9/2022C程序C语言简介:

C语言特点5.程序执行效率高,可移植性好

比汇编程序执行效率低10~20%,基本不需修改即可以移植到其他机器系统

6.比其他高级语言更接近机器语言

C语言是高级语言中的低级语言,能实现汇编语言的大部分功能,可以直接访问物理硬件

7.语法不太规范,自由度大,查错难度大从这个意义上讲,不是“很好”的教学语言11/10/2022C程序设计C语言简介:C语言特点11/9/2022C程序计算机程序程序种类源程序目标程序可执行程序解释程序编译程序程序执行过程

CPU从内存中读出一条指令,通过运算器和控制器执行相应的操作,再读下一条指令,执行相应的操作,重复该过程,直至程序的最后一条指令。11/10/2022C程序设计计算机程序11/9/2022C程序设计C语言程序源程序目标程序可执行程序编译程序11/10/2022C程序设计C语言程序11/9/2022C程序设计C语言程序的基本结构

C语言程序示例[例1]

仅由一个main()函数构成的C语言程序。#include<stdio.h>voidmain()

{printf(“Hi,itisme---asimpleCprogram!\n”);

}主函数语句:输出语句预处理命令11/10/2022C程序设计C语言程序的基本结构C语言程序示例主函数语句:输出语句预C语言程序的基本结构[例2]#include<stdio.h>floatmax(floatx,floaty);voidmain(){floata,b,c;

/*输入3个实数*/scanf(“%f%f%f”,&a,&b,&c);

/*打印最大者*/printf(“Thebiggestis%f”,max(max(a,b),c));}floatmax(floatx,floaty){if(x>y)return(x);elsereturn(y);}输入语句函数注释声明语句if语句11/10/2022C程序设计C语言程序的基本结构[例2]#include<stdio.hC语言程序的基本结构C语言程序是函数的组合体特殊的主函数——main()函数C语言程序必须有且只能有一个名称是main的函数,称为主函数。主函数是整个程序的组织者,它直接或间接协调组织其它函数按照一定的顺序工作,完成整体任务;C语言遵循“先定义后使用”的原则一般,要使用一个符号,应当在使用前定义它;若主函数在其它函数之前出现,要对后面的函数进行声明;C语言程序从main函数开始执行11/10/2022C程序设计C语言程序的基本结构11/9/2022C程序设C语言程序的基本结构从设计C语言源程序到可以执行的程序,通常要经过以下几步:编辑编译连接执行11/10/2022C程序设计C语言程序的基本结构编编连执11/9/2022C程序C语言的函数直观描述

函数好比一个加工处理器,可以接收需要处理的数据,也可以输出要求的处理结果,其形象图如下:输入:参数函数输出:函数类型11/10/2022C程序设计C语言的函数输入:参数函数输出:函数类型11/9/2022C语言的函数函数的一般格式

函数类型函数名称(函数参数){函数体:由声明、语句以及注释组成;}11/10/2022C程序设计C语言的函数函数类型函数名称(函数参数)11/9/C语言的函数函数的例子

voidmain()

{printf(“asimpleCprogram!\n”);

}floatmax(floatx,floaty){if(x>y)return(x);elsereturn(y);}11/10/2022C程序设计C语言的函数voidmain()floatmax(flC语言的函数函数由语句构成每条语句须以分号“;”结束一行可以包含一条语句或多条语句;或多行一条语句(\)注释有两种形式

/**/:用于一段注释;可出现在引号外、空格可出现的任何位置;//:用于一行注释;注释不是程序的必要部分,其存在与否不影响程序的编译和执行。但注释可增强程序的可读性。C语言绝大部分功能通过函数实现C语言一般都提供了常见功能的函数;使用这些函数,要在main函数前面包含声明这些函数的头文件;比如#include<stdio.h>就是声明scanf、printf等函数的头文件。11/10/2022C程序设计C语言的函数11/9/2022C程序设计C语言的语句按形式分类控制语句(1)选择结构控制语句:if-else,switch(2)循环结构控制语句:do-while,for,while(3)其它控制语句:

goto,return,break,continue

表达式语句表达式语句由表达式后加一个分号构成;表达式语句的特例是函数调用语句.例如:scanf(“%f%f%f”,&a,&b,&c);printf(“%f”,max(max(a,b),c));11/10/2022C程序设计C语言的语句11/9/2022C程序设计C语言的语句按语句数目分类简单语句:单条语句;只由一个分号构成的语句称为空语句。复合语句:由大括号括起来的一组简单语句构成的语句组。

注意:(1)复合语句在地位上与单条语句相同,但复合语句最后没有分号;(2)复合语句可以嵌套,即复合语句中可出现复合语句;voidmain(){inta,b,c;

{a=1;b=3;c=3;}printf(“%d”,a+b+c);}11/10/2022C程序设计C语言的语句voidmain()11/9/2022C程C的字符集和标识符C语言的标识符和运算符是组成C语句的基本单位。C语言的字符集是构成标识符和运算符的基本单位。11/10/2022C程序设计C的字符集和标识符11/9/2022C程序设C的字符集

C语言的字符集C语言字符集是ASCII码字符集合的子集合,主要包括:(1)26个英文字母(区分大小写)(2)10个数字(0~9)(3)下划线以及专用符号(+-*/%~<等)。

关于ASCII码字符集基本知识:(1)26个英文大写字母连续排列;(2)26个英文小写字母连续排列;(3)10个数字(0~9)连续排列;(4)每个字符有唯一一个序号相对应;

11/10/2022C程序设计C的字符集11/9/2022C程序设计C的标识符

标识符由C语言字符组成

C语言标识符构建规则:

注意:(1)C语言的标识符区分大、小写字母;(2)标识符的长度依编译系统的不同而不同。由字母或下划线开头,字母、数字和下划线的组合11/10/2022C程序设计C的标识符由字母或下划线开头,11/9/2022C程C的标识符[例]标识符举例合法的标识符:

a,A,A10,A_2,store,price,Student_no,is_zero,_pdf不合法的标识符:

2,2a,a-2,a+2,*3a,“this”11/10/2022C程序设计C的标识符11/9/2022C程序设计C的标识符:关键字(保留字)

关键字(保留字)是C语言专用的标识符,用户不能赋予新的含义而用作自己的标识符(共有32个):Auto break case charconstcontinue default do doubleelseenum extern float for gotoif int long registerreturnShort signed sizeof staticstructswitch typedef union unsignedvoidvolatile while11/10/2022C程序设计C的标识符:关键字(保留字)11/9/2022C程C的标识符:预定义标识符

预定义标识符是赋予指定含义的标识符,这些含义通常符合习惯用法。例如:sin,tan,log等都与数学中的含义相同;fclose,fopen用于文件的关闭、打开。这些预定义标识符的数量随系统的不同而不同。预定义标识符与关键字不同,用户可以赋予新的含义,但不提倡这样做。11/10/2022C程序设计C的标识符:预定义标识符11/9/2022C程序C的标识符:用户定义标识符

用户安照自己的意愿和需要定义的标识符用户定义标识符的基本原则[例]判别下面的字符序列是否是合法的标识符:p2p,,,sin,Int,INT,sin,a[2],a*b(1)符合标识符号的组成规则;(2)绝对避免和关键字重名;(3)尽量避免和预定义标识符重名;11/10/2022C程序设计C的标识符:用户定义标识符(1)符合标识符号的组成规则;1C的标识符[例3]标识符sin,cos被重命名,程序正确;若把它们改为int,for,编译时会出错。#include<stdio.h>#include<math.h>doublesin(doublex){return2*x;}voidmain(){floatcos=2;printf("%.2f",sin(1));}11/10/2022C程序设计C的标识符[例3]标识符sin,cos被重命名,程序正确;若算法与算法的表示编写程序时,必须明确如下3个方面:1.已知的要处理的数据对象——数据结构2.要求得到的结果及形式3.从已知出发求得结果所采取的方法和步骤——算法数据结构和算法根据结果和形式确定,所得结果和形式是数据结构和算法的必然产物。计算机程序是数据结构之上的算法,即:程序=数据结构+算法计算机算法可以分为两大类:

数值算法和非数值算法。

11/10/2022C程序设计算法与算法的表示11/9/2022C程序设计算法的例子[例4]任意给定正整数n,求数列1,-1/2,1/3,-1/4,…前n项的和。分析:处理对象正负项交替出现,后一项的分母比前一项的分母大1的数列;求前n项的和。算法:令sum代表要求的和,且sum初始值为0;则sum是逐项求出数列的每一项后,加到sum上的结果。令item代表第k项,则当k为奇数时,item为正,否则为负。让k从1开始按1递增,当k变到n的时候,sum就是所求的结果。据此可以设计如下算法:11/10/2022C程序设计算法的例子[例4]任意给定正整数n,求数列1,-1/2算法的例子

(1)读入整数n(2)sum=0(3)k=1(4)若k为奇数,item=1/k;否则item=-1/k(5)sum=sum+item(6)k递增1:k=k+1(7)如果k不大于n,则继续(4)~(6);否则结束,输出结果

11/10/2022C程序设计算法的例子11/9/2022C程序设计算法的特点1.有穷性:算法应当在有限步之后结束2.确定性:算法的每一步都应当是清晰明确的3.有效性:算法应能有效运行并给出预期结果4.有输出:算法应当有一个或多个输出。

11/10/2022C程序设计算法的特点11/9/2022C程序设计算法的表示自然语言表示法

用自然语言把算法表达、叙述出来。此方法因自然语言含义的不准确而不准确,因此不能在计算机上实现。

计算机语言表示法

用语言严格按照其语法写出算法对应的程序,这是我们编程的目标。但一下子直接写出算法的计算机语言程序往往比较困难,需要有个过渡。下面的几种方法可以理解为从自然语言到计算机语言的过渡表示方法

11/10/2022C程序设计算法的表示11/9/2022C程序设计算法的表示流程图表示法流程图是一种用图形直观表示算法操作的算法表示方法。常用的图形是由美国国家标准化协会(ANSI)制定并得到公认的。主要有以下几种:

起止框输入输出框处理框判断框流程线11/10/2022C程序设计算法的表示起止框输入输出框处理框判断框流程线11/9/20算法的表示上面例子的流程图YNYN开始读入nsum=0k=1item=1/kk是奇数item=-1/ksum=sum+itemk=k+1k>n?结束11/10/2022C程序设计算法的表示YNYN开始读入nsum=0item=1/kk是算法的表示采用基本结构的改进流程图

在流程图表示方法中,流程线的使用没有任何限制,从而会导致流程走向的任意性,降低可读性。

1966年Bohra和Jacopini提出了以下5种改进的基本结构:(1)顺序结构

(2)双分支选择结构

(3)单分支选择结构

(4)当型循环结构

(5)直到型循环结构

11/10/2022C程序设计算法的表示11/9/2022C程序设计算法的表示5种改进的基本结构的结构图AB顺序结构ABp双分支选择结构pA单分支选择结构NYpA当型循环结构YNAp直到型循环结构11/10/2022C程序设计算法的表示AB顺序结构ABp双分支选择结构pA单分支选择结算法的表示5种基本结构的特点:(1)只有一个入口和一个出口(2)

结构内每个部分都能得到执行且没有死循环重要结论:(1)由5种基本结构顺序组成的算法结构,可以解决任何复杂的问题。(2)由5种基本结构顺序组成的算法称为结构化的算法

11/10/2022C程序设计算法的表示11/9/2022C程序设计算法的表示N-S流程图表示法

没有流程线的结构化流程图称为N-S流程图。上面5种基本结构对应的N-S基本结构图为:顺序结构选择结构当型循环结构直到型循环结构N-S流程图表示的算法显然是结构化算法

当P成立AB

直到P成立AAB

PNYAB11/10/2022C程序设计算法的表示N-S流程图表示法当P成立AB直算法的表示

k是奇数NYitem=-1/k

item=1/ksum=sum+itemk=k+1

读入nSum=0K=1直到k>n例4的N-S流程图为11/10/2022C程序设计算法的表示k是奇数NYite算法的表示[例5]判断素数的N-S流程图11/10/2022C程序设计算法的表示[例5]判断素数的N-S流程图11/9/2022C算法的表示伪代码表示法

流程图的优点是直观准确,但突出的缺点是难以绘画,且不便于修改。伪代码表示法克服了这些缺点。伪代码表示法是介于自然语言表示法和计算机语言表示法之间的一种表示方法。它的写法如同写文章,自上而下,方便自如。例4的伪代码表示法如下

11/10/2022C程序设计算法的表示11/9/2022C程序设计算法的表示开始读入整数n置sum的初值为0置k的初值为1执行下面的操作:

如果k为奇数,置item=1/k

如果k为偶数,置item=-1/ksum=sum+item直到k>n打印sum的值结束Begininputnsum=0k=1doifk为奇数,item=1/kelseitem=-1/ksum=sum+itemuntilk>nprintsumEnd11/10/2022C程序设计算法的表示开始Begin11/9/2022C程序算法的表示小结表示法小结(1)流程图表示和N-S流程图表示应当熟练掌握一种,后面我们会用到;(2)伪代码表示法也应当熟悉,因为使用起来很方便,而且在许多其他场合也用到;(3)精练的算法对应的算法表示也简单;而算法的好坏取决于所掌握的数学知识和基础,因此要注重数学知识的学习。11/10/2022C程序设计算法的表示小结11/9/2022C程序设计程序设计方法采用结构化算法写成的计算机程序是结构化程序。编写结构化程序,经常采用的是结构化程序设计方法,这种方法的基本思路是:这样一种程序设计方法就是结构化程序设计方法。结构化的编程思想的体现离不开另一种基本结构——函数,后面会介绍。

把给定的问题按层次(纵方向)、分阶段(横方向)分解为一系列易于编程解决的小问题,然后对应着这些分解的小问题,设计结构化的算法,最后采用语言将算法描述出来。11/10/2022C程序设计程序设计方法把给定的问题按层次(纵方向)、分阶段(横方向)程序设计小结

学习编写程序,就如同学习写文章。写文章,要先后学字、词组、句子、段落、语法等。编写程序要先后学字符集、标识符、语句、函数、语法,并循序渐进。下面是程序和文章的类比:

文章段落句子词字程序函数语句标识符字符集11/10/2022C程序设计程序设计小结文章段落句子词字程序函数语句标识符字符集习题1、C语言的特点。2、C语言程序的结构。3、C语言的标识符及组成方法。4、算法的常用表示方法。5、结构化程序设计方法。6、从设计算法到可执行程序,要经过哪几步工作。7、P36习题2.4.11/10/2022C程序设计习题11/9/2022C程序设计第一章C语言概述11/10/202252C程序设计第一章C语言概述11/9/20221C程序内容

计算机语言

C语言简介C语言发展历史C语言特点

计算机程序

C语言程序C语言程序的基本结构C语言的语句C语言的字符集和标识符

算法与算法的表示算法算法的表示

结构化程序设计方法11/10/2022C程序设计内容11/9/2022C程序设计计算机语言定义

为计算机用户设计的用于编制程序的语言工具称为计算机语言分类机器语言汇编语言高级语言11/10/2022C程序设计计算机语言11/9/2022C程序设计计算机语言:机器语言定义具有固定格式、能完成一系列操作的特定二进制编码。

特点

难于掌握、容易出错,冗长繁琐11/10/2022C程序设计计算机语言:机器语言11/9/2022C程序设计算机语言:汇编语言定义用助记符代替指令的操作码、用数字或符号代替指令中的操作数或操作数存放位置的程序设计语言。例如:用ADD代替加法指令的二进制代码;用SUB代替减法指令的二进制代码;特点

易于记忆、便于掌握;用汇编语言编写的程序需要通过计算机编译程序编译,才能被计算机执行,因而执行效率不如机器语言程序高。11/10/2022C程序设计计算机语言:汇编语言11/9/2022C程序设计算机语言:高级语言定义机器语言或汇编语言是面向机器的语言,用它们编写程序都离不开具体的计算机指令系统。高级语言则是面向过程的语言,它独立于机器。在高级语言里,操作码与地址都以符号代码或文字形式出现。特点

易于记忆、便于理解和掌握,编写效率高;用高级语言编写的程序需要通过编译或解释,才能被计算机执行,因而执行效率不如机器语言程序高。11/10/2022C程序设计计算机语言:高级语言11/9/2022C程序设计算机语言:高级语言种类BASIC,PASCAL,FORTRAN,COBOL,C,LISP,PROLOG高级语言程序的执行方式编译执行:将源程序先转换成机器语言的目标程序,再将各个目标程序连接成可执行程序。解释执行:用语言的解释程序对源程序进行解释,同时执行。执行过程中不保存解释后的机器代码,下次运行程序需要重新解释。

11/10/2022C程序设计计算机语言:高级语言11/9/2022C程序设C语言简介:C语言发展历史语言名称诞生年代

制定者

ALGOL601960PeterNaur等13人来自7个不同的国家CPL1963剑桥大学

BCPL1967M.RichardsB语言

1970-1971K.ThompsonC语言

1972-1973D.M.Ritchie可移植C语言

1977标准C语言

1978B.W.Kernighan,D.M.RitchieANSIC语言

1983AmericanNationalStandardInstitute87ANSIC1987AmericanNationalStandardInstituteISOC语言

1990InternationalStandardOrgannization11/10/2022C程序设计C语言简介:C语言发展历史语言名称诞生年代制定者ALGOC语言简介:C语言发展历史语言名称特点

ALGOL60面向问题,离硬件远,不适合编写系统软件

CPL比ALGOL60离硬件近,但规模大,难实现

BCPL对CPL的简化---BasicCombinedProgrammingLanguageB语言

更简化的BCPL,可编写系统软件(UNIX),但过于简单,功能有限C语言

保持了B和BCPL语言的特点,克服了不足,编写了UNIX第5,6版

可移植C语言

简化了移植C的工作,

标准C语言

以UNIX第七版的编译程序为基础,TheCProgrammingLanguage

ANSIC语言

考虑了C语言问世以来的发展情况,比标准C有很大发展

87ANSICK&G重新写了书TheCProgrammingLanguage,提出了新标准

ISOC语言

以87ANSIC为标准和基础,诞生了许多C语言系统:Microsoftc、TurboC、QuickC、BorlandC、VisualC、VisualC++11/10/2022C程序设计C语言简介:C语言发展历史语言名称特点ALGOL60面C语言简介:典型的C语言版本目前比较流行的C语言版本MicrosoftC、VisualC、VisualC++(Microsoft);TurboC、BorlandC、BorlandC++(Borland);这些C语言分DOS版本、WINDOWS版本;有面向过程的、也有面向对象的。本课程以TurboC3.0,Visualc++6.0为编程实践的上机环境。11/10/2022C程序设计C语言简介:典型的C语言版本11/9/2022C程序C语言简介:

C语言特点1.语言简洁、紧凑、使用方便、灵活32个关键字,9种控制语句,书写自由,接近自然语言

2.运算符丰富有34种运算符,使用很灵活,可以构造多样表达式

3.数据类型齐全标准的和用户定义的数据类型能满足各种编程需要

4.结构化语言便于编写结构化的程序

11/10/2022C程序设计C语言简介:C语言特点11/9/2022C程序C语言简介:

C语言特点5.程序执行效率高,可移植性好

比汇编程序执行效率低10~20%,基本不需修改即可以移植到其他机器系统

6.比其他高级语言更接近机器语言

C语言是高级语言中的低级语言,能实现汇编语言的大部分功能,可以直接访问物理硬件

7.语法不太规范,自由度大,查错难度大从这个意义上讲,不是“很好”的教学语言11/10/2022C程序设计C语言简介:C语言特点11/9/2022C程序计算机程序程序种类源程序目标程序可执行程序解释程序编译程序程序执行过程

CPU从内存中读出一条指令,通过运算器和控制器执行相应的操作,再读下一条指令,执行相应的操作,重复该过程,直至程序的最后一条指令。11/10/2022C程序设计计算机程序11/9/2022C程序设计C语言程序源程序目标程序可执行程序编译程序11/10/2022C程序设计C语言程序11/9/2022C程序设计C语言程序的基本结构

C语言程序示例[例1]

仅由一个main()函数构成的C语言程序。#include<stdio.h>voidmain()

{printf(“Hi,itisme---asimpleCprogram!\n”);

}主函数语句:输出语句预处理命令11/10/2022C程序设计C语言程序的基本结构C语言程序示例主函数语句:输出语句预C语言程序的基本结构[例2]#include<stdio.h>floatmax(floatx,floaty);voidmain(){floata,b,c;

/*输入3个实数*/scanf(“%f%f%f”,&a,&b,&c);

/*打印最大者*/printf(“Thebiggestis%f”,max(max(a,b),c));}floatmax(floatx,floaty){if(x>y)return(x);elsereturn(y);}输入语句函数注释声明语句if语句11/10/2022C程序设计C语言程序的基本结构[例2]#include<stdio.hC语言程序的基本结构C语言程序是函数的组合体特殊的主函数——main()函数C语言程序必须有且只能有一个名称是main的函数,称为主函数。主函数是整个程序的组织者,它直接或间接协调组织其它函数按照一定的顺序工作,完成整体任务;C语言遵循“先定义后使用”的原则一般,要使用一个符号,应当在使用前定义它;若主函数在其它函数之前出现,要对后面的函数进行声明;C语言程序从main函数开始执行11/10/2022C程序设计C语言程序的基本结构11/9/2022C程序设C语言程序的基本结构从设计C语言源程序到可以执行的程序,通常要经过以下几步:编辑编译连接执行11/10/2022C程序设计C语言程序的基本结构编编连执11/9/2022C程序C语言的函数直观描述

函数好比一个加工处理器,可以接收需要处理的数据,也可以输出要求的处理结果,其形象图如下:输入:参数函数输出:函数类型11/10/2022C程序设计C语言的函数输入:参数函数输出:函数类型11/9/2022C语言的函数函数的一般格式

函数类型函数名称(函数参数){函数体:由声明、语句以及注释组成;}11/10/2022C程序设计C语言的函数函数类型函数名称(函数参数)11/9/C语言的函数函数的例子

voidmain()

{printf(“asimpleCprogram!\n”);

}floatmax(floatx,floaty){if(x>y)return(x);elsereturn(y);}11/10/2022C程序设计C语言的函数voidmain()floatmax(flC语言的函数函数由语句构成每条语句须以分号“;”结束一行可以包含一条语句或多条语句;或多行一条语句(\)注释有两种形式

/**/:用于一段注释;可出现在引号外、空格可出现的任何位置;//:用于一行注释;注释不是程序的必要部分,其存在与否不影响程序的编译和执行。但注释可增强程序的可读性。C语言绝大部分功能通过函数实现C语言一般都提供了常见功能的函数;使用这些函数,要在main函数前面包含声明这些函数的头文件;比如#include<stdio.h>就是声明scanf、printf等函数的头文件。11/10/2022C程序设计C语言的函数11/9/2022C程序设计C语言的语句按形式分类控制语句(1)选择结构控制语句:if-else,switch(2)循环结构控制语句:do-while,for,while(3)其它控制语句:

goto,return,break,continue

表达式语句表达式语句由表达式后加一个分号构成;表达式语句的特例是函数调用语句.例如:scanf(“%f%f%f”,&a,&b,&c);printf(“%f”,max(max(a,b),c));11/10/2022C程序设计C语言的语句11/9/2022C程序设计C语言的语句按语句数目分类简单语句:单条语句;只由一个分号构成的语句称为空语句。复合语句:由大括号括起来的一组简单语句构成的语句组。

注意:(1)复合语句在地位上与单条语句相同,但复合语句最后没有分号;(2)复合语句可以嵌套,即复合语句中可出现复合语句;voidmain(){inta,b,c;

{a=1;b=3;c=3;}printf(“%d”,a+b+c);}11/10/2022C程序设计C语言的语句voidmain()11/9/2022C程C的字符集和标识符C语言的标识符和运算符是组成C语句的基本单位。C语言的字符集是构成标识符和运算符的基本单位。11/10/2022C程序设计C的字符集和标识符11/9/2022C程序设C的字符集

C语言的字符集C语言字符集是ASCII码字符集合的子集合,主要包括:(1)26个英文字母(区分大小写)(2)10个数字(0~9)(3)下划线以及专用符号(+-*/%~<等)。

关于ASCII码字符集基本知识:(1)26个英文大写字母连续排列;(2)26个英文小写字母连续排列;(3)10个数字(0~9)连续排列;(4)每个字符有唯一一个序号相对应;

11/10/2022C程序设计C的字符集11/9/2022C程序设计C的标识符

标识符由C语言字符组成

C语言标识符构建规则:

注意:(1)C语言的标识符区分大、小写字母;(2)标识符的长度依编译系统的不同而不同。由字母或下划线开头,字母、数字和下划线的组合11/10/2022C程序设计C的标识符由字母或下划线开头,11/9/2022C程C的标识符[例]标识符举例合法的标识符:

a,A,A10,A_2,store,price,Student_no,is_zero,_pdf不合法的标识符:

2,2a,a-2,a+2,*3a,“this”11/10/2022C程序设计C的标识符11/9/2022C程序设计C的标识符:关键字(保留字)

关键字(保留字)是C语言专用的标识符,用户不能赋予新的含义而用作自己的标识符(共有32个):Auto break case charconstcontinue default do doubleelseenum extern float for gotoif int long registerreturnShort signed sizeof staticstructswitch typedef union unsignedvoidvolatile while11/10/2022C程序设计C的标识符:关键字(保留字)11/9/2022C程C的标识符:预定义标识符

预定义标识符是赋予指定含义的标识符,这些含义通常符合习惯用法。例如:sin,tan,log等都与数学中的含义相同;fclose,fopen用于文件的关闭、打开。这些预定义标识符的数量随系统的不同而不同。预定义标识符与关键字不同,用户可以赋予新的含义,但不提倡这样做。11/10/2022C程序设计C的标识符:预定义标识符11/9/2022C程序C的标识符:用户定义标识符

用户安照自己的意愿和需要定义的标识符用户定义标识符的基本原则[例]判别下面的字符序列是否是合法的标识符:p2p,,,sin,Int,INT,sin,a[2],a*b(1)符合标识符号的组成规则;(2)绝对避免和关键字重名;(3)尽量避免和预定义标识符重名;11/10/2022C程序设计C的标识符:用户定义标识符(1)符合标识符号的组成规则;1C的标识符[例3]标识符sin,cos被重命名,程序正确;若把它们改为int,for,编译时会出错。#include<stdio.h>#include<math.h>doublesin(doublex){return2*x;}voidmain(){floatcos=2;printf("%.2f",sin(1));}11/10/2022C程序设计C的标识符[例3]标识符sin,cos被重命名,程序正确;若算法与算法的表示编写程序时,必须明确如下3个方面:1.已知的要处理的数据对象——数据结构2.要求得到的结果及形式3.从已知出发求得结果所采取的方法和步骤——算法数据结构和算法根据结果和形式确定,所得结果和形式是数据结构和算法的必然产物。计算机程序是数据结构之上的算法,即:程序=数据结构+算法计算机算法可以分为两大类:

数值算法和非数值算法。

11/10/2022C程序设计算法与算法的表示11/9/2022C程序设计算法的例子[例4]任意给定正整数n,求数列1,-1/2,1/3,-1/4,…前n项的和。分析:处理对象正负项交替出现,后一项的分母比前一项的分母大1的数列;求前n项的和。算法:令sum代表要求的和,且sum初始值为0;则sum是逐项求出数列的每一项后,加到sum上的结果。令item代表第k项,则当k为奇数时,item为正,否则为负。让k从1开始按1递增,当k变到n的时候,sum就是所求的结果。据此可以设计如下算法:11/10/2022C程序设计算法的例子[例4]任意给定正整数n,求数列1,-1/2算法的例子

(1)读入整数n(2)sum=0(3)k=1(4)若k为奇数,item=1/k;否则item=-1/k(5)sum=sum+item(6)k递增1:k=k+1(7)如果k不大于n,则继续(4)~(6);否则结束,输出结果

11/10/2022C程序设计算法的例子11/9/2022C程序设计算法的特点1.有穷性:算法应当在有限步之后结束2.确定性:算法的每一步都应当是清晰明确的3.有效性:算法应能有效运行并给出预期结果4.有输出:算法应当有一个或多个输出。

11/10/2022C程序设计算法的特点11/9/2022C程序设计算法的表示自然语言表示法

用自然语言把算法表达、叙述出来。此方法因自然语言含义的不准确而不准确,因此不能在计算机上实现。

计算机语言表示法

用语言严格按照其语法写出算法对应的程序,这是我们编程的目标。但一下子直接写出算法的计算机语言程序往往比较困难,需要有个过渡。下面的几种方法可以理解为从自然语言到计算机语言的过渡表示方法

11/10/2022C程序设计算法的表示11/9/2022C程序设计算法的表示流程图表示法流程图是一种用图形直观表示算法操作的算法表示方法。常用的图形是由美国国家标准化协会(ANSI)制定并得到公认的。主要有以下几种:

起止框输入输出框处理框判断框流程线11/10/2022C程序设计算法的表示起止框输入输出框处理框判断框流程线11/9/20算法的表示上面例子的流程图YNYN开始读入nsum=0k=1item=1/kk是奇数item=-1/ksum=sum+itemk=k+1k>n?结束11/10/2022C程序设计算法的表示YNYN开始读入nsum=0item=1/kk是算法的表示采用基本结构的改进流程图

在流程图表示方法中,流程线的使用没有任何限制,从而会导致流程走向的任意性,降低可读性。

1966年Bohra和Jacopini提出了以下5种改进的基本结构:(1)顺序结构

(2)双分支选择结构

(3)单分支选择结构

(4)当型循环结构

(5)

温馨提示

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

评论

0/150

提交评论