收藏 分销(赏)

C语言课件全套教学教程整套电子讲义幻灯片.ppt

上传人:天**** 文档编号:10251507 上传时间:2025-04-30 格式:PPT 页数:447 大小:9.36MB
下载 相关 举报
C语言课件全套教学教程整套电子讲义幻灯片.ppt_第1页
第1页 / 共447页
C语言课件全套教学教程整套电子讲义幻灯片.ppt_第2页
第2页 / 共447页
点击查看更多>>
资源描述
,*,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,单击此处编辑母版标题样式,C,语言程序设计,知识结构单元,1,基本语法,1.1,字符集、标识符和关键字,1.2,常量和变量,直接常量的表示方法,符号常量的定义方法,变量的定义方法,变量的存储空间大小及变量的值,变量的作用域与存储类型,1.3,基本数据类型,整型数据,实型数据,字符型数据,字符串常量,枚举型数据,字符型(,char,),整型(,short,int,long,unsigned,),单精度型(,float,),实型,双精度型(,double,),枚举类型(,enum,),数组类型(,),构造类型 结构体类型(,struct,),共用体类型(,union,),指针类型(,*,),空类型(,void,),基本类型,数据类型,1.4,运算符与表达式,算术运算符与算术表达式,关系运算符与关系表达式,逻辑运算符与逻辑表达式,赋值运算符与赋值表达式,逗号运算符与逗号表达式,条件运算符与条件表达式,求字节运算符,位运算符,1.5,运算符的优先级、结合性和表达式的求值,1.6,数据类型转换,自动转换,强制转换,1.7,基本输入输出函数,scanf(),与,printf(),getchar(),与,putchar(),gets(),与,puts(),1.8,编译预处理,宏定义,文件包含,条件编译,1.9,类型定义,typedef,2,控制结构,2.1,结构化程序的三种基本结构,2.2,语句种类,表达式语句,说明语句,函数调用语句,空语句,复合语句,控制语句,2.3,分支结构与分支语句,if,语句的形式和执行流程,嵌套的,if,语句的形式和执行流程,switchcase,语句的形式和执行流程,2.4,循环结构与循环语句,while,语句的形式和执行流程,dowhile,语句的形式和执行流程,for,语句的形式和执行流程,循环语句的嵌套,2.5,非结构化控制语句,break,语句,continue,语句,goto,语句,2.6,基本算法的实现,递推法,迭代法,穷举法,递归法,辗转相除法求最大公约数,求素数,(,质数,),求水仙花数,输出九九乘法表,输出特殊图形,(,如等腰三角形、平行四边形等,),3,函数,3.1,标准函数与用户自定义函数,3.2,函数的定义与调用,函数的定义形式,函数的调用形式,函数调用前的声明,实参、形参及参数传递,函数的返回值及其类型,3.3,函数的嵌套调用与递归调用,3.4,常用库函数的调用格式及其头文件,4,数组,4.1,数组的概念,数组及数组元素,(,下标变量,),数组的用途,数组元素的存储结构,(,便于寻址,),4.2,一维数组,一维数组的定义和初始化方法,一维数组的逻辑结构和存储结构,一维数组元素的引用,一维数组的输入与输出,4.3,二维数组,二维数组的定义和初始化方法,二维数组的逻辑结构和存储结构,二维数组元素的引用,二维数组的输入与输出,4.4,字符数组和字符串,一维字符数组的定义和初始化方法,一维字符数组的输入与输出,用字符数组实现字符串,字符串的输入输出方法,4.5,常用算法的实现,冒泡法排序、选择法排序,顺序查找、折半查找,删除法,插入法,在一组数中求最大值和最小值,将数组元素逆置,输出杨辉三角形,求转置矩阵,5,指针,5.1,指针的概念和指针的定义,变量的地址和变量的值,指针和指针变量,指针的定义形式,多级指针,指针运算符和地址运算符,5.2,指针的赋值和运算,指针的初始化和赋值,指针运算,5.3,指针和函数,指针作函数的参数及参数的传递形式,指针函数的定义形式,指向函数的指针,5.4,指针和数组,数组名是常量指针,一维数组元素的指针表示,二维数组元素的指针表示,指向数组元素的指针,指向一维数组的指针,指向含,M,个元素的一维数组的指针,5.5,指针数组,指针数组的定义,用字符型指针数组实现字符串数组,6,结构体和共用体,6.1,结构体类型与结构体变量,结构体类型的用途,结构体类型的定义,结构体变量的定义,结构体变量的引用,(,成员运算符,),6.2,结构体数组,结构体数组的定义,结构体数组的初始化和赋值,6.3,结构体类型数据的指针,结构体变量的指针,结构体数组的指针,6.4,结构体与函数,结构体指针和结构体变量作函数的参数,返回结构体类型数据的函数,6.5,结构体位段,6.6,共用体类型和共用体变量,共用体类型和共用体变量的定义,共用体变量的引用,6.7,枚举类型和枚举型变量,枚举类型的定义,枚举型变量与枚举元素,7,文件操作,7.1,文件的基本概念,文件、文件名、扩展名,流式文件,文件的分类,缓冲文件系统和非缓冲文件系统,FILE,结构和,FILE,指针变量,7.2,文件的打开与关闭,文件的打开与打开函数,fopen(),文件的关闭与关闭函数,fclose(),7.3,文件的读写操作,读写一个字符的函数,fgetc(),和,fputc(),读写一个字符串的函数,fgets(),和,fputs(),读写一个数据字块的函数,fread(),和,fwrite(),文件的格式化读写函数,fscanf(),和,fprintf(),7.4,文件定位与随机读写,文件位置指针随机定位函数,fseek(),检测当前位置指针的位置函数,ftell(),文件位置指针复位函数,rewind(),检测文件是否结束的函数,feof(),链表,引用自身的结构和链表的概念,结构中的某个成员项,为指向该结构类型自身的指针,则称为引用自身的结构。,struct node,int num;,struct node *next;,;,指向自身的结构。,链表的概念,链表是一种动态存储分配结构,通过指针相连,数据可以不连续存放。,如用数组存放数据时,必须事先定义固定的长度(即元素的个数)。如果事先难以确定元素的个数,则必须把数组定义的足够大,显然这会造成内存的浪费。链表则没有这种缺点,它根据需要开辟内存单元。,A,1249,head,1356,1249,B,1475,C,1021,D,NULL,1356,1475,1021,链表(单向链表),链表有一个,“,头指针,”,变量,它存放一个地址,该地址指向一个元素。链表中每个元素称为,“,结点,”,,每个结点都应包含两个部分:用户需要用的实际数据和下一个结点的地址。最后一个结点不指向其他元素,它称为,“,表尾,”,,它的地址部分放一个,“,NULL,”,,链表到此结束。,链表中各元素不是连续存放的。要找某一元素,必须要找到上一个元素,根据它所提供的下一元素的地址才能找到下一个元素。如果不提供头指针,则整个链表都无法访问。,这种链表的数据结构,必须利用指针变量才能实现,即一个结点中应包含一个指针变量,用它存放下一结点的地址。,2,、简单链表,例:建立一个简单的链表,由,3,个学生数据的结点组成。,#include /*a7.c*/,struct student int num;,float score;,struct student *next;,;,main(),struct student a,b,c,*head,*p;,a.num=101;a.score=89.5;,b.num=102;b.score=90;,c.num=103;c.score=56;,head=,p=head;,while(p!=NULL),printf(%d,%5.1fn,p-num,p-score);,p=p-next;,实例运行,上例是比较简单的,所有结点都是在程序中定义的,不是临时开辟的,也不能用完后释放,这种链表称为,“,静态链表,”,。,前面讲过,链表结构是动态生地分配存储的,即在需要时才开辟一个结点的存储单元 以便插入或追加节点,删除节点后需要释放节点占用的内存单元。,C,语言提供了相应的函数。,3.,处理动态链表所需的函数,void*malloc(unsigned int size),:,在内存的动态存储区中分配一个长度为,size,的连续空间。成功,则返回一个,void,型的空指针,否则,返回,NULL.,使用方法:,ptr=malloc(size);,分配内存的字节数。,返回空类型的指针。,成功:返回内存的地址。,失败:返回,NULL,。,ptr,void free(ptr),作用:释放,ptr,指向的内存空间。,(3)void*calloc(unsigned n,unsigned size),在内存的动态区存储中分配个长度为,size,的连续空间。函数返回分配域的起始地址;如果分配不成功,返回。,4.,建立动态链表,例:写一函数建立一个有多名学生数据的单向动态链表。(当学号输入为,0,时,表示链表建立结束),算法:,设,3,个指针变量:,head,p1,p2,都是指向结构体类型数据,head:,存放第,1,个结点的地址,即头指针,p1:,指向当前新开辟的结点,p2:,指向前一个结点(即已建成的链表中的最后一个结点),所谓建立动态链表是指在程序执行过程中从无到有地建立起一个链表,即一个一个地开辟结点和输入各结点数据,并建立起前后相链的关系。,结构体的定义:,#include,#define LEN sizeof(struct student),struct node,int num;,struct node*next;,;,建立链表的函数:,struct node*creat(),struct node*head,*last,*p;,int num;,head=last=NULL;,scanf(%d,while(num0),p=(struct node*)malloc(sizeof(struct node);,p-num=num;p-next=NULL;,if(head=NULL),head=p;,else last-next=p;,last=p;,scanf(%d,return head;,5.,输出链表,将链表中各结点的数据依次输出。首先要知道链表第一个结点的地址,也就是要知道,head,的值。然后设一个指针变量,p,,先指向第一个结点,输出,p,所指的结点,然后使,p,后移一个结点,再输出,直到链表的尾结点。,void output(struct node*head),struct node*p;,p=head;,while(p!=NULL),printf(%3d,p-num);,p=p-next;,main(),struct node*head;,head=creat();,output(head);,getch();,6.,对链表的删除操作,已有一个链表,希望删除其中某个结点。,A,B,C,D,E,A,B,C,D,E,原来链表,将,C,从链表中删除,例:写一函数以删除动态链表中指定的结点。,思路:,从,P,指向的第一个结点开始,检查该结点中的,num,的值是否等于要删除的那个学号。如果是,就将该结点删除,不是,就将指针,p,后移一个结点,直到遇到表尾为止。,设两个指针,p1,,,p2,,,p1,为当前结点,,p2,指向刚才检查过的结点。,找到要删除的结点,又有两种情况:,A.,要删除的是第一个结点,B.,要删除的不是第一个结点,head=p1-next,p2-next=p1-next,删除结点的函数:,struct student*del(struct student*head,int num),struct student*p1,*p2;,if(head=NULL)printf(nlist is nulln);,p1=head;,while(p1-num!=num&p1-next!=NULL),p2=p1;p1=p1-next;,if(p1-num=num),if(p1=head)head=p1-next;,else p2-next=p1-next;,printf(delete:%dn,num);,else,printf(%ld not been found!,num);,return(head);,7.,对链表的插入操作(,在尾部追加节点),步骤:,为新节点分配内存。,建立新节点的成员项。,建立链接关系。,在链表最后插入一个结点:,struct student*Add(struct node*head),struct student*p1,*p2,*p3;,p1=head;,if(head!=NULL),while(p1-next!=NULL),p1=p1-next;,p2=(struct node*)malloc(sizeof(struct node);,scanf(%d,if(head=NULL),head=p2;,else,p1-next=p2;,p2-next=NULL;,printf(Add Succee.n);,return(head);,C,语 言 程 序 设 计,主 讲:叶 斌,E-mail:yebin88,2025/4/30 周三,37,课程安排,总学时:,56,学时(理论,32,学时 实验,24,学时),教材:,C,语言程序设计,(,第一版,),.,叶斌,陈世强主编,北京,:,科学出版社,2012,年,6,月,参考教材:,C,语言程序设计,(C99,版,),.,陈良银,游洪跃,李旭伟主编,.,北京,:,清华大学出版社,2006,C,语言程序设计,(,第四版,),谭浩强著,.,北京,:,清华大学出版社,2010,C,语言程序设计教程(第,2,版),.,李丽娟主编,.,北京,:,人民邮电出版社,2009,2025/4/30 周三,38,第,1,章,C,语言及程序设计概述,【学习目标】,掌握程序、程序设计语言及程序设计方法等基本概念;了解计算机求解问题的基本过程;了解,C,语言的发展及特点;掌握,C,语言程序的基本结构以及,C,语言的基本语法单位;掌握,C,语言程序的开发过程与开发环境。,【重 难 点】,重点:程序设计语言与程序设计方法的基本概念,,C,语言基本语法单位以及,C,语言程序的基本结构。,难点:计算机求解问题的基本过程,,C,语言源程序生成可执行程序的过程。,【教学安排】,学时:,2,学时,2025/4/30 周三,39,1.1,程序与程序设计语言,1.1.1,程序的概念,什么是,计算机程序,?,计算机程序,是指可以被计算机或其他信息处理装置连续执行的一条条指令的集合。,程序,是一组有序的指令(是能够完成特定任务的指令序列)。,使用程序设计语言编写的用来使计算机完成一定任务的一系列命令的集合便构成,程序,。,编写程序的工作则称为,程序设计,。,2025/4/30 周三,40,1.1,程序设计语言与程序设计,什么是,程序设计语言,?,为人和计算机之间都能识别和交流而制定的一种特定语言,这种特定的语言就是,程序设计语言,。,可以从不同的角度对程序设计语言进行分类,:,通用语言,专用语言,结构化语言,模块化语言,面向对象语言,机器语言,汇编语言,高级语言,低级语言,高级语言,从应用范围分,从程序设计方法分,从与机器的联系程度分,2025/4/30 周三,41,只有用机器语言编写的程序才能在计算机上直接执行,用其他语言编写的源程序都需要翻译后才能被计算机所理解并执行。用于语言翻译的工具称为,语言处理程序,或,翻译程序,,用不同的程序设计语言编写出来的,源程序,,需要使用不同的语言处理程序来翻译。通过语言处理程序翻译后的目标代码称为,目标程序,。,1.1,程序设计语言与程序设计,2025/4/30 周三,42,高级语言源程序的翻译方式:,解释方式,解释程序,高级语言源程序,执行结果,解释程序,数据,编译方式,编译程序,高级语言源程序,目标程序,编译程序,数据,可执行程序,连接程序,执行结果,执行,1.1,程序设计语言与程序设计,2025/4/30 周三,43,1.1,程序与程序设计语言,1.1.2,程序设计语言的发展,人们常把编写程序的过程称为程序设计。在进行程序设计时离不开程序设计语言。程序设计语言的种类很多,从其发展历史以及功能情况来划分可以大致划分成五个阶段:,1,、机器语言:,计算机可以直接识别和执行的二进制语言。,如:加法指令,:1 0 0 0 0 0 0 0,减法指令,:1 0 0 1 0 0 0 0,特点:计算机可以直接识别和执行,效率高,节省内存;但难以阅读和记忆。,2025/4/30 周三,44,1.1,程序与程序设计语言,2,、汇编语言:,用“助记符”来表示机器指令。,如:,ADD A,B,SUB A,B,计算机不能直接识别和执行用汇编语言编写的源程序,它必须经过一个叫汇编程序的系统软件翻译成机器语言程序(即目标程序)后才能执行。,3,、算法语言:,即高级语言,不依赖于机器,降低了编程的难度。,如:,C,、,PASCAL,、,FORTRAN,等,用,+,和,-,来,表示加减运算。,计算机也不能直接执行算法语言描述的源程序,必须先经过编译程序或解释程序翻译成目标程序后,才能由计算机执行。,2025/4/30 周三,45,1.1,程序与程序设计语言,4,、,面向任务的程序设计语言:,是非过程化的语言,不需要知道问题是如何求解的。,例如:要从某学生表,SS,用数据库(,SQL,)查询语言获取表中记录的信息,采用,SELECT,语句,描述如下:,SELECT SSNO,SSNAME,SSAGE,SSSEX FROM SS,5,、面向对象的程序设计语言:,认为系统是由许多对象组成的,对象通过消息相互,联系和相互作用,从而完成系统的功能。如,C+,,,设计的程序更易懂,更适合更大规模的程序开发。,2025/4/30 周三,46,1.1,程序与程序设计语言,1,、,C,语言的发展概况,起源于,1968,年发表的,CPL,语言。,语言是美国电话电报公司(,AT&T,)贝尔实验室于,70,年代初研制出来的。发明者是,Dennis.M.Ritchie,。,1978,年,由,B.W.Kernighan,和,D.M.Ritchie,合著的,The C Programming Language,一书,称之为“,K&R”,标准。后来又被多次改进,并出现了多种版本。,1983,年开始,美国国家标准化协会(,ANSI,),根据语言问世以来各种版本对语言的发展和扩充,制定了,ANSI C,标准,于,1989,年颁布,称为,C89,标准。,1994,、,1995,年又两次做了修订,即,C89,的,95,修正案。,1999,年产生了,C99,新标准。,目前在微型计算机上使用的有,Microsoft C,,,Quick C,,,Turbo C,,,Borland C,等多种版本。,1.1.3 C,语言的发展及特点,47,C,语言的发明者,Dennis M.Ritchie,www.cs.bell-周三,50,1.1,程序与程序设计语言,2,、为什么要学,C,语言,51,C,语言是最受欢迎的程序设计语言,如下图所示,是,TIOBE,在,2014,年公布的程序设计语言受欢迎程度的趋势图。可以看出:,在历年的统计中,,C,语言始终处于最受欢迎的前两位。,在列举的当今最受欢迎的,10,种语言中,除,C,语言以外的其他,9,种里面,其中,6,种都直接使用、或者引用、或者部分借鉴了,C,语言的语法(如它们语句的结尾都要有一个分号,“,;,”,)。只有,Visual Basic,、,Python,和,Ruby,的语法里找不到,C,语言的影子。,1.1,程序与程序设计语言,TIOBE,世界编程语言排行榜,2025/4/30 周三,52,2025/4/30 周三,53,1.1,程序与程序设计语言,1,)语言简洁、紧凑,使用方便、灵活,2,)具有结构化的控制语句,以函数作为程序模块以实现程序的模块化。,3,)数据类型丰富,4,)允许直接对位、字节和地址进行操作,5,)可直接操纵硬件,6,)生成的目标代码质量高,程序执行效率高,7,)可移植性好,3,、,C,语言的特点,2025/4/30 周三,54,1.2,程序设计方法,程序设计,:使用某种程序设计语言编写一些代码来驱动计算机完成特定功能的过程。,算法,:用计算机解题的方法和步骤。,程序设计的基本过程,:分析所求解的问题,抽象数学模型,设计合适的算法,编写程序,(,编写代码,),,调试运行直至得到正确结果、编写程序文档等阶段。,2025/4/30 周三,55,1.2,程序设计方法,程序设计的基本过程,2025/4/30 周三,56,1.2,程序设计方法,1.2.1,结构化程序设计方法,1,.,结构化程序设计特征,结构化程序设计的特征主要有以下几点:,(,1,)以三种基本结构(顺序、分支、循环,详细内容参考第,3,章)的组合来描述程序;,(,2,)整个程序采用模块化结构;,(,3,)有限制地使用,goto,转移语句,在非用不可的情况下,也要十分谨慎,并且只限于在一个结构内部跳转,不允许从一个结构跳到另一个结构,这样可缩小程序的静态结构与动态执行过程之间的差异,使人们能正确理解程序的功能;,2025/4/30 周三,57,1.2,程序设计方法,(,4,),以控制结构为单位,每个结构只有一个入口,一个出口,各单位之间接口简单,逻辑清晰;,(,5,),采用结构化程序设计语言书写程序,并采用一定的书写格式使程序结构清晰,易于阅读;,(,6,),注意程序设计风格。,2.,自顶而下的设计方法,结构化程序设计的总体思想是采用模块化结构,自上而下,逐步求精。,2025/4/30 周三,58,1.2,程序设计方法,面向对象程序设计方法(,Orient Object Programming,,缩写为,OOP,)认为客观世界是由各种各样的实体组成的,这些实体就是面向对象方法中的对象。对象之间的交互通过发送消息来实现,从而驱动程序执行来完成系统的功能。面向对象程序设计把数据看作程序开发中的基本元素,并且不允许它们在系统中自由流动。它将数据和操作这些数据的函数紧密的连结在一起,并保护数据不会被外界的函数意外的改变。,1.2.2,面向对象程序设计方法,2025/4/30 周三,59,1.3 C,语言程序的基本结构,一个完整的语言程序,是由一个,main(),函数(又称主函数)和若干个其它函数结合而成的,或仅由一个,main(),函数构成,/*,功能:仅由,main(),函数构成的语言程序示例,*/,/*,源程序名:,CH0105.C*/,/*01*/,#include,/*02*/main(),/*03*/,/*04*/printf(,“,Hello World!n,”,);,/*05*/,程序运行时,在屏幕上显示一行英文:,Hello World!,。,说明:,(,1,),main,是主函数的函数名,表示这是一个主函数。,(,2,)函数调用语句,,printf,函数的功能是把要输出的内容送到显示器去显示。,(,3,),printf,函数是一个由系统定义的标准函数,可在程序中直接调用。,(,4,),#include,是编译预处理命令,其作用是将某个已经存在的文件包含到程序中。,2025/4/30 周三,60,1.3 C,语言程序的基本结构,1.3.1 C,程序的结构特点,()一个语言源程序可以由一个或多个源文件组成。,()每个源文件可由一个或多个函数组成,关于函数的内容将在以后第四章介绍。,()函数是语言程序的基本单位。一个源程序不论由多少个文件组成,都有一个且只能有一个,main,函数,即主函数。,main(),函数的作用,相当于其它高级语言中的主程序;其它函数的作用,相当于子程序。,(),C,语言程序总是从,main(),函数开始执行。一个语言程序,总是从,main(),函数开始执行,而不论其在程序中的位置。当主函数执行完毕时,亦即程序执行完毕。,2025/4/30 周三,61,1.3 C,语言程序的基本结构,1.3.1 C,程序的结构特点,()源程序中可以有预处理命令(,include,命令仅为其中的一种),预处理命令通常应放在源文件或源程序的最前面。,()每一个说明,每一个语句都必须以分号结尾。但预处理命令,函数头和花括号“,”,之后不能加分号。,()标识符,关键字之间必须至少加一个空格以示间隔。若已有明显的间隔符,也可不再加空格来间隔。,2025/4/30 周三,62,1.3 C,语言程序的基本结构,()所有语句都必须以分号“,;”,结束,函数的最后一个语句也不例外。,()程序行的书写格式自由,既允许一行内写几条语句,也允许一条语句分写在几行上。如果某条语句很长,一般需要将其分写在几行上。,()允许使用注释。,C,语言的注释格式为:,/*/,1.3.2,源程序书写格式,2025/4/30 周三,63,1.4 C,语言的基本语法单位,1.4.1,语言的字符集,1.4.2,关键字,1.4.3,标识符,1.4.4,分隔符,1.4.5,注释,2025/4/30 周三,64,1.4.1,语言的字符集,字符是组成语言的最基本的元素。语言字符集由字母,数字,空格,标点和特殊字符组成。在字符常量,字符串常量和注释中还可以使用汉字或其它可表示的图形符号。,()字母:小写字母,a,z,共,26,个,大写字母,A,Z,共,26,个;,()数字:,0,9,共,10,个;,()空白符:空格符、制表符、换行符等统称为空白符。空白符只在字符常量和字符串常量中起作用。在其它地方出现时,只起间隔作用,编译程序对它们忽略。因此在程序中使用空白符与否,对程序的编译不发生影响,但在程序中适当的地方使用空白符将增加程序的清晰性和可读性;,()标点和特殊字符。,2025/4/30 周三,65,1.4.2,关键字,关键字是由语言规定的具有特定意义的字符串,通常也称为保留字。用户定义的标识符不应与关键字相同。标准,C,定义的,32,个关键字如下表,:,2025/4/30 周三,66,1.4.3,标识符,在程序中使用的变量名、,函数,名、标号等统称为标识符。除库,函数,的,函数,名由系统定义外,其余都由用户自定义。,C,规定,标识符只能是字母(,A,Z,,,a,z,)、数字(,0,9,)、下划线(,_,)组成的字符串,并且其第一个字符必须是字母或下划线。,以下标识符是合法的:,ax_3xBOOK_1sum5,以下标识符是非法的:,3s,以数字开头,s*T,出现非法字符,*,-3x,以减号开头,bowy-1,出现非法字符减号,2025/4/30 周三,67,1.4.4,分隔符,语言中采用的分隔符包括逗号和空格。,(,1,)逗号主要用在类型说明和,函数,参数表中,分隔各个变量,逗号也可以做运算符,具体参照本教程第二章。,(,2,)空格多用于语句各单词之间,作间隔符。在关键字,标识符之间必须要有一个以上的空格符作间隔,否则将会出现语法错误。,例如,,int a;,不能写成,inta;,C,编译器会把,inta,当成一个标识符处理,其结果必然出错。,2025/4/30 周三,68,1.4.5,注释,C,语言的注释符是以,“,/*,”,开头并以,“,*/,”,结尾的串。程序编译时,不对注释作任何处理。,(,1,),“,/*,”,和,“,*/,”,必须成对使用,且,“,/,”,和,“,*,”,、以及,“,*,”,和,“,/,”,之间不能有空格,否则出错。为避免遗漏必须配对使用的符号,例如注释符号、函数体的起止标识符(花括号)、圆括号等等,在输入时,可连续输入这些起止标识符,然后再在其中进行插入来完成内容的编辑。在起止标识符嵌套时,以及相距较远时,这样做更有必要。,(,2,)注释的位置,可以单占,1,行,也可以跟在语句的后面。,(,3,)如果,1,行写不下,可另起,1,行继续写。,(,4,)注释中允许使用汉字。在非中文操作系统下,汉字将以乱码呈现,但不影响程序运行。,2025/4/30 周三,69,C,语言是一种编译型程序语言。,调试一个,C,程序需要经历,4,个基本步骤:编辑、编译、连接和执行。,1.5 C,语言程序的开发过程与环境,正确,正确,正确,有错误,有错误,编译 连接 运行,编辑,有错误,2025/4/30 周三,70,1.5.1,源程序的编辑、编译、连接与执行,1.,编辑(,Edit,),编程人员把程序代码输入计算机的过程或修改已经存在的代码的过程就是编辑。,2.,编译(,Compile/Make,),对源程序的语法和逻辑结构等进行检查以生成目标文件(,Object,)的过程就是编译。,3.,连接,(Link),连接的作用是使用系统提供的连接程序(或称连接器,Linker,)把目标文件、其他目标程序模块与系统提供的标准库函数有机结合起来,生成可以运行的可执行文件。,4.,运行,(Run),在,MS-DOS,下通过直接键入可执行文件主文件名后按回车键来运行,,Windows,下可通过双击可执行文件图标运行。,2025/4/30 周三,71,1.5.2 Visual C+6.0,集成开发环境,Microsoft Visual C+,(下简称,MSVC,,,VC,)是美国微软公司生产的基于其,Windows,系统的软件开发工具。,第,2,章 基本数据类型和表达式,第,2,章 基本数据类型和表达式,2.1,基本数据类型,2.2,常量与变量,2.3,运算符与表达式,2.4,数据类型转换,2.1,基本数据类型,什么是数据类型?,所谓数据类型就是一组性质相同的值的集合,以及定义于这个值集合上的一组操作的总称。,数据类型决定:数据占内存的字节数、数据的取值范围和其上可进行的操作。,数据类型是按被定义数据的性质、表示形式、占据存储空间的多少及构造特点来划分的。,数据类型总表,C,数,据,类,型,基本类型,构造类型,指针类型,空类型,void,字符类型,char,枚举类型,enum,整型,实型,单精度型,float,双精度型,double,数组,结构体,struct,共用体,union,短整型,short,长整型,long,基本整型,int,2.1,基本数据类型,2.1,基本数据类型,1,、整型数据的分类:,根据数据所占的二进制位数分为,:,(,1,),短整型:以,short,表示 占,2,字节,(,2,),基本型:以,int,表示 占,2,或,4,字节,(,3,)长整型:以,long,表示 占,4,字节,同样存储长度的数据又分,无符号型(,unsigned,)和有符号型(,signed,),故可组合出,六种,类型:,有符号短整型:,signed,short int,无符号短整型:,unsigned,short int,有符号基本类型:,signed,int,无符号基本类型:,unsigned,int,有符号长整型:,signed,long int,无符号长整型:,unsigned,long int,2.1.1,整型数据,2.1,基本数据类型,数据类型,类型说明关键字,所占,字节,取值范围,有符号短整型,signed short int,2,-3276832767,即,-2,15,(,2,15,-1,),无符号短整型,unsigned short int,2,065535,即,0,(,2,16,-1,),有符号基本整型,signed int,2,或,4,-3276832767,即,-2,15,(,2,15,-1,),无符号基本整型,unsigned int,2,或,4,065535,即,0,(,2,16,-1,),有符号长整型,signedlong int,4,-21474836482147483647,即,-2,31,(,2,31,-1,),无符号长整型,unsigned long int,4,04294967295,即,0,(,2,32,-1,),3,、整型数据的取值范围,2.1,基本数据类型,2,、整型数据的三种表达形式:,(1),十进制形式,:,与数学上的整数表示相同;,例如,:12,-100,0,(2),八进制形式,:,在数码前加数字,0,;,例如,:012=1*8,1,+2*8,0,=10(,十进制),(3),十六进制形式,:,在数码前加,0X,(,数字,0,和字母,X,)。,例如,:0 x12=1*16,1,+2*16,0,=18(,十进制),注意:,*,八进制的数码范围为,07,;,018,*,十六进制的,数码除了数字,0,9,外,还使用英文字母,a f(,或,A F),表示,1015,。如:,0 x1e,*,整型数据后加,L,或,l,,则认为是长整型。如,128L,*,整型数据后加,U,或,u,,则认为是无符号型。如,2998u,数据类型,类型说明,关键字,占用,字节,取值范围,精度,(,位,),单精度,浮点型,float,4,-3.4,10,-38,3.4,10,38,7,双精度,浮点型,double,8,-1.7,10,-308,1.7,10,308,15,2.1,基本数据类型,1,、实型数据的分类及取值范围,2.1.2,实型数据,(,浮点型数据,),2.1,基本数据类型,2,、实型数据的两种表示形式:,(1),十进制小数形式:,由数字和小数点组成;,例如,:3.4,4.,.3,。,(2),指数形式:,正负号,尾数,e(E,)阶码,例如,:12.5e-6,表示,12.5,10,-6,。,注意:,小数点不能单独出现;,0.,.0,.,e,或,E,的两边必须有数,且其后面阶码必须为整数;,如:,6E0.2,e5,规范化的指数形式,2.1,基本数据类型,2.1.3,字符型数据,1,、字符,(1),用单撇号括起来的一个字符;如:,A,、,1,、,?,等,。,(2),用单,撇号,括起来的由反斜杠,(,),引导的转义字符。,例如:字符,A,的,ASCII,码为:,65D,(十进制),=41H,(十六进制),=101Q,(八进制),字符,A,可以表示为,A,、,x41,、,101,。,字符型数据与整型数据可以进行算术运算,2,、字符型数据的分类:,char,和,unsigned char,;,3,、字符型数据的值域:,每个字符型数据在内存中占,一,个字节;包括,ASCII,字符表中的所有字符(可显示字符和非显示字符)。,4,、字符串:,是用一对双撇号括起来的字符序列。,如:,“,SHANGHAI,”,,,“,AbcdeFGHijk,”,,,“,How are you,”,。,2.1,基本数据类型,(,2,)直接常量,:,整型常量,请点击:,实型常量,请点击:,字符常量,请点击:,字符串常量,请点击:,如,#define PRICE 30,定义,:,程序运行时其值不能改变的量(即常数),分类,:,(,1,)符号常量,:,用标识符代表常量,定义格式:,#define,符号常量 常量,例 符号常量举例,#define PRICE 30,main(),int num,total;,num=10;,total=num*PRICE;,printf(total=%d,total);,运行结果:,total=300,2.2,常量与变量,2.2.1,常量,注意:,定义符号常量时,一般用大写字母,是宏定义预处理命令,不是,C,语句,三种形式:,十进制整数:,由数字,0,9,和正负号表示,.,如,123,-456,0,八进制整数:,由数字,0,开头,后跟数字,0,7,表示,.,如,0123,011,十六进制整数:,由,0 x,开头,后跟,0,9,a,f,A,F,表示,.,如,0 x123,0Xff,例,12,与,12L,例,30000,为,int,型,65536,为,long int,型,说明:,整型常量的类型是根据其值所在范围确定其数据类型,若在整常量后加字母,l,或,L,,认为它是,long int,型常量,问题:,0123 =(),10,0 x123=(),10,0Xff =(),10,83,291,255,问题:,0123 =(),10,0 x123=(),10,0Xff =(),10,1,、整型常量(整常数),2.2,常量与变量,表示形式:,十进制数形式:(必须有小数点)如,0.123,.123,123.0,0.0,123.,指数形式:(,e,或,E,之前必须有数字;阶码必须为
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传
相似文档                                   自信AI助手自信AI助手

当前位置:首页 > 教育专区 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服