C语言程序设计PPT(第7版)高职完整全套教学课件_第1页
C语言程序设计PPT(第7版)高职完整全套教学课件_第2页
C语言程序设计PPT(第7版)高职完整全套教学课件_第3页
C语言程序设计PPT(第7版)高职完整全套教学课件_第4页
C语言程序设计PPT(第7版)高职完整全套教学课件_第5页
已阅读5页,还剩392页未读 继续免费阅读

下载本文档

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

文档简介

C语言程序设计V71C语言概述2数据类型、表达式及其运算3顺序结构程序设计4选择结构程序设计5循环结构程序设计目录6数组和指向数组的指针7函数与指针8结构体与共用体9文件10C语言屏幕操作操作函数及应用C语言概述第1章本章要点C语言的发展与特点C语言的基本符号和关键字C语言程序结构及特点C语言程序编辑、编译与运行1.1C语言的发展与特点第1章

1.概述

C语言是目前世界上最为流行的计算机高级程序设计语言之一。它设计精巧,功能齐全,既适合于编写应用软件,又特别适合于编写系统软件。

C语言不仅有易学易用的优点,而且具有面向过程、结构化、通用性强、可移植性强及集成开发环境先进等特点。而且,C语言具有很强的绘图能力,数据处理能力,同样适合于二维、三维图形和动画的开发。1.1.1C语言的发展1.1C语言的发展与特点第1章2.C语言的发展早期的计算机,都是用机器语言和汇编语言来编写程序代码。到了第二代计算机才有了高级语言。

1960年开发的ALGOL-60,对其后的高级语言的发展,起到了很好的推进作用。但是,它是一种面向问题的语言,过于抽象,难以描述系统。因此,没有得到真正的推广。

1972年~1973年间,贝尔实验室的D.M.Ritchie,在BCPL语言的基础上设计出了C语言。

1973年K.Thompson和D.M.Ritchie两人合作,把原来由两人用汇编语言编写的UNIX操作系统中90%以上的代码,用C语言来重写,即UNIX5。后来,C语言虽作了多次改进,但主要还是用在贝尔实验室内部。直到1975年,用C语言写的UNIX6公布后,才引起业内人士的广泛关注。1.1.1C语言的发展1.1C语言的发展与特点第1章2.C语言的发展

1978年BrianW.Kernighan和DennisM.Ritchie(合称K&R)合著了影响深远的著作《TheCProgrammingLanguage》一书。该书中介绍的C语言被称为标准C。

1983年,美国国际标准化协会(ANSl),在参考C语言的各种版本基础上,制定了新的标准,称为ANSIC。

1988年,K&R按照ANSIC标准重写了《TheCProgrammingLanguage》。1990年,国际标准化组织ISO(InternationalStandardOrganization),接受了以87ANSIC为ISOC的标准。目前流行的C编译系统,都是以它为基础的。高级语言发展至今,面向对象的程序设计方法越来越受到人们的青睐。1.1.1C语言的发展1.1C语言的发展与特点第1章1.1.2C语言的特点(1)语言简洁、灵活。(2)数据类型丰富,涉及面广。(3)运算符多样,表达能力强。(4)函数是程序的主体。(5)C语言允许直接访问物理地址。(6)生成的目标代码质量高。(7)可移植性好。1.2C语言的基本符号与关键字第1章

字符集是构成C语言的基本元素。用C语言编写程序时,所写的语句是由字符集中的字符构成。C语言的字符集由下列字符构成:1.2.1基本符号集(1)英文字母:A~Z,a~z。(2)数字字符:0~9。(3)特殊符号:空格!%*&∧_(下划线)+=-~<>/\′″;.,()[]{}1.2C语言的基本符号与关键字第1章

关键字是具有特定含义的、专门用来说明C语言的特定成分的一类单词、单词缩写或单词组合。C语言的关键字都是用小写字母来书写。以下列出C语言的关键字:1.2.2关键字

autobreakcasecharconstcontinuedefaultdodoubleelseenumexternfloatforgotoifintlongregisterreturnshortsignedsizeofstaticstructswitchtypedefunsignedunionvoidvolatilewhile1.2C语言的基本符号与关键字第1章

C语言中标识符(名字)是用来标识变量名、符号常量名、函数名、数组名、类型名等程序对象的有效字符序列。C语言对标识符有如下规定:1.2.3标识符

(1)标识符只能由英文字母(A~Z,a~z)、数字(0~9)和下划线三种字符组成,且第一个字符必须为字母或下划线。

例如:正确的标识符:abc,a1,prog_to,file_2,ab2c3。不正确的标识符:2from,yesno/。1.2C语言的基本符号与关键字第1章

C语言中标识符(名字)是用来标识变量名、符号常量名、函数名、数组名、类型名等程序对象的有效字符序列。C语言对标识符有如下规定:1.2.3标识符

(2)大小写字符代表不同的标识符。例如:标识符abc与标识符ABC是两个不同的标识符。一般对变量命名用小写,符号常量命名用大写。

(3)每个标识符由1-8个字符组成。如果标识符超过8个长度,只有前8个标识符为有效标识符。

例如:employee1和employee2,就会被认为是相同的标识符employee。1.2C语言的基本符号与关键字第1章

计算机中,所有的信息都用二进制代码表示。二进制编码的方式较多,应用最为广泛的是ASCII码。我们使用的字符在计算机中就是以ASCII码方式存储的。ASCII码是美国标准信息交换码(AmericanStandardCodeforInformationInterchange,缩写为ASCII)。它被国际标准化组织(ISO)认定为国际标准,详见附录Ⅰ。1.2.4ASCII字符集1.3C语言程序第1章

(1)程序所谓“程序”,即从事某一件事情的具体步骤。现实生活中,我们每个人其实都在无意识的情况下,编写着不同的“程序”。例如:我们去银行取钱,就会有以下的操作步骤:1.3.1程序与C语言程序结构第一步第二步第三步拿卡或存折去某一个银行第四步第五步在银行排队等候;

排队轮到后,把卡或存折交由银行工作人员进行取钱操作处理完后,银行工作人员将卡或存折以及现金返回给我们将卡或存折以及现金收放好后离开银行。

1.3C语言程序第1章

(2)C语言程序结构通过以下几个例题,让我们对C语言的程序结构及执行过程有个全面的了解。程序语句不要求完全能理解,只是先对C程序的全貌有一个感性认识,为以后的学习打下基础。1.3.1程序与C语言程序结构【例1.1】在计算机屏幕上输出信息。/*程序名称:simple.c*/#include<stdio.h>/*文件包含*/main()/*程序从函数main开始执行*/{printf(″IamaCprogrammer,IlikeC!″);/*在屏幕上输出引号内的信息*/}/*函数main结束*/1.3C语言程序第1章1.3.1程序与C语言程序结构【例1.2】求两数之和。#include<stdio.h>/*包含文件*/main()/*定义主函数*/{inta,b,sum;/*定义局部变量a,b,sum*/scanf(”%d,%d”,&a,&b);/*输入2个整数,存入变量a和b中*/sum=a+b;/*将a,b的和送入sum*/printf(“sum=%d\n”,sum);/*%d表示数据按十进制整型数输出结果*/}

程序运行:输入10,20↙(回车键)

结果:Sum=301.3C语言程序第1章

(2)C语言程序结构(1)一个C程序可以有多个函数,但只能有一个名为main的主函数。(2)主函数或子函数的函数体,必须用一对花括号“{}”扩起来。(3)每条语句的最后必须有一个分号“;”。(4)大小写表示不同的含义,程序语句一般用小写字母书写,大写一般用作符号常量。(5)注释语句“/**/”是非执行语句,可以放在程序的任意位置。(6)C语言中使用的所有变量都必须先定义为某种数据类型,然后才能使用。(7)#include命令是编译预处理命令。其作用是将由双引号或尖括号括起来的文件中的内容,读入到该语句位置处。1.3.2C语言程序结构的特点1.4C语言程序开发工具介绍第1章

1.TurboC集成编程环境开发一个C语言程序的基本步骤,可用图1-1描述。C源程序经过编辑、编译、链接生成EXE文件,然后在计算机上执行。无论哪个阶段有错误,都要回到编辑状态修改源程序。修改后再编译、链接、运行。1.4.1TurboC2.0集成环境与程序的上机操作1.4C语言程序开发工具介绍第1章

(1)TurboC的界面操作1.4.1TurboC2.0集成环境与程序的上机操作1.4C语言程序开发工具介绍第1章

(2)源程序编辑按【ALT十E】进入编辑状态,首行提示正在进行编辑操作的信息:

LineColInsertIndentTabFillUnindent显示当前文件的盘符和文件名1.4.1TurboC2.0集成环境与程序的上机操作Home/End光标移到行首/尾Crtl十N插入一行Crtl十Y删除当前行Ctrl+K+B定义块首Ctrl+K+K定义块尾Ctrl+K+V移动块到光标处Ctrl+K+C复制块到光标处Ctrl+K+Y删除块Ctrl+K+H取消块标记表1-1块操作1.4C语言程序开发工具介绍第1章

2.上机操作与查错

(1)启动TC如果TurboC2.0系统安装在C:\TC子目录下,在C盘找到TC.EXE文件双击,即可进入TC环境。默认情况下,编辑的源程序文件、编译生成的目标文件、连接生成的可执行文件,都保存在TurboC2.0系统目录下。为了系统的维护与安全,建议在上机时创建自己的工作目录,每次上机时都进入自己的工作目录中操作。1.4.1TurboC2.0集成环境与程序的上机操作1.4C语言程序开发工具介绍第1章

2.上机操作与查错

(2)编辑源程序文件进入TC集成开发环境后,系统默认新建的文件名为“NONAME.C”。按【Ese】键后,在编辑窗口中出现闪烁的编辑光标,就可以输入源程序的代码。启动TC后,就会自动打开一个已存在的源程序文件;或按【ALT+F】,选择“New”后按回车,就可以新建一个源程序文件。(3)保存源程序文件按【ALT+F】后,选择“writeto”,出现“命名”输入框,将文件保存在自己的工作目录中,输入保存文件的盘符、路径及文件名exp1,按回车。此时,状态栏右端的文件名已从NONAME.C变成了exp1.c。1.4.1TurboC2.0集成环境与程序的上机操作1.4C语言程序开发工具介绍第1章

2.上机操作与查错

(4)编译源程序并生成可执行文件

按Compile后选择“Buildall”系统开始编译源程序,逐行检查语法错误,并在编译消息窗口报告编译情况,编译成功,则出现提示:SuccessPressanykey,按任意键关闭编译消息窗口。编译中出现错误,则在消息窗口出现“Error:Pressanykey”提示,按任意键关闭编译消息窗口后,在信息(Message)窗口显示错误信息。1.4.1TurboC2.0集成环境与程序的上机操作1.4C语言程序开发工具介绍第1章

2.上机操作与查错

(5)查错当某行有语法错误时,系统会将该行白亮显示,并用一个竖的线条指出错误所在。这时,可按【F6】键切换到编辑状态,根据语法规则和错误提示进行修改。图1-6Run菜单(6)运行程序在TC集成开发环境中运行程序的方法是:直接按【CTRL十F9】(图1-6run菜单),系统开始运行文件。如果源程序尚未编译连接,此操作会自动编译源程序,连接目标程序生成可执行文件,并自动运行该可执行文件。1.4.1TurboC2.0集成环境与程序的上机操作1.4C语言程序开发工具介绍第1章

2.上机操作与查错

(7)查看结果

按【ALT+F5】,切换到用户屏幕查看结果,显示结果:sum=48,按任意键返回TC集成开发环境。

1.4.1TurboC2.0集成环境与程序的上机操作1.4C语言程序开发工具介绍第1章

1.安装与启动VisualC++6.0运行VisualStudio软件中的setup.exe程序,选择安装VisualC++6.0,然后按照安装程序的指示,完成安装过程。安装完成后,在开始菜单的程序选单中,可以看到MicrosoftVisualStudio6.0图标。选择MicrosoftVisualC++6.0即可运行。也可以在Window桌面建立一个快捷方式,双击即可进入VisualC++6.0运行环境。1.4.2VisualC++6.集成环境与C程序的上机操作1.4C语言程序开发工具介绍第1章

2.用VisualC++6.0建立并运行C语言应用程序的步骤⑴创建工程项目:1.4.2VisualC++6.集成环境与C程序的上机操作1.4C语言程序开发工具介绍第1章1.4.2VisualC++6.集成环境与C程序的上机操作1.4C语言程序开发工具介绍第1章1.4.2VisualC++6.集成环境与C程序的上机操作1.4C语言程序开发工具介绍第1章1.4.2VisualC++6.集成环境与C程序的上机操作1.4C语言程序开发工具介绍第1章1.4.2VisualC++6.集成环境与C程序的上机操作

⑵.新建C源程序文件1.4C语言程序开发工具介绍第1章1.4.2VisualC++6.集成环境与C程序的上机操作

⑶.编辑源程序在图1-12的C源程序编辑区输入如下源程序代码:#include<stdio.h>main(){ printf("IloveCprogramming\n");printf("\n");printf("Howareyoudoing?\n");printf("Hithere!\n"); printf("haveaniceday!\n"); printf("Takecare!\n");}1.4C语言程序开发工具介绍第1章1.4.2VisualC++6.集成环境与C程序的上机操作C源程序编辑区域显示错误与警告区域1.4C语言程序开发工具介绍第1章1.4.2VisualC++6.集成环境与C程序的上机操作

⑷编译、连接和运行C源程序①编译C源程序编辑完成后,选择主菜单“组建(Build)”中的“编译(Compile)”命令,或工具条上的图标。该操作只编译当前文件而不进行连接。系统在编译时会自动先保存源程序,然后进行编译。编译完成后,如果在编译过程中发现错误,将会在屏幕下方的显示错误与警告窗口,显示所有的错误和警告信息。双击显示错误或警告的第一行,则光标自动跳到代码的错误行,当修改错误后,重新进行编译,直到没有错误和警告信息为止。1.4C语言程序开发工具介绍第1章1.4.2VisualC++6.集成环境与C程序的上机操作

②组建1.4C语言程序开发工具介绍第1章1.4.2VisualC++6.集成环境与C程序的上机操作

③运行选择主菜单“组建(Build)”中的“执行”命令,或单击工具条上的图标运行程序,将会出现一个新的用户窗口,如图所示。1.4C语言程序开发工具介绍第1章1.4.2VisualC++6.集成环境与C程序的上机操作

⑸.打开已经存在的C源程序,进行编辑修改①进入VisualC++6.0环境后,选择主菜单“文件”中的“打开工作区”命令,在对话框内找到要打开的工作区文件,例如ex1_1.dsw,单击“打开”按钮,打开工作区,如图所示。1.4C语言程序开发工具介绍第1章1.4.2VisualC++6.集成环境与C程序的上机操作②选择主菜单“文件”中的“打开”命令,显示图所示的打开C源文件对话框。在对话框内找到要打开的文件,例如ex1_1.c,单击“打开”按钮,即可打开已经存在的C源程序。1.4C语言程序开发工具介绍第1章1.4.2VisualC++6.集成环境与C程序的上机操作

3.在VisualC++6.0中程序的调试与改错⑴修改语法错误查看运算结果时要注意错误的类别,是语法错误或是算法逻辑错误。对于语法错误,可按照系统所提示的错误类型对错误进行修改。

操作步骤为:双击显示错误或警告的第一行,则光标自动跳到错误代码处。切记,一定要先修改出现的第一个语法错误。修改了错误后,重新进行编译。一般第一个错误修改后,后面与其有关的错误自然就解决了。若还有错误,仍然是先修改第一个错误,然后再次进行编译,直到没有错误和警告信息为止。1.4C语言程序开发工具介绍第1章1.4.2VisualC++6.集成环境与C程序的上机操作

⑵.编辑、运行与调试程序中常用到的快捷键:Ctrl+O:打开文件Ctrl+S:保存文件Ctrl+F7:编译文件F7:连接文件Ctrk+F5:运行文件F9:将光标所在行位置设置为断点F5:调试运行到断点F10:不进入函数内部调试F11:进入函数内部调试Shift+F5:中断调试1.4C语言程序开发工具介绍第1章1.4.2VisualC++6.集成环境与C程序的上机操作

⑶.修改算法错误编译语法通过,但运行结果不正确,就要查找、分析算法,重新进行程序设计。当程序修改后,还要重新进行编译、连接,生成.exe文件后再次运行,直到运行结果正确。所以,C语言编程不仅要严格掌握语法规则,还要认真进行算法分析和设计。谢谢观看数据类型、表达式及其运算第2章本章要点

数据类型及定义方法

不同类型的运算符及表达式

指针变量的定义和基本运算2.1C语言的数据类型第2章任何程序都涉及待处理的数据,数据可以是常量和变量。常量和变量可分为基本类型、构造类型、指针类型和空类型。在C语言中,经常用到的各种类型数据,如图所示。2.1.1C语言的数据类型分类2.1C语言的数据类型第2章不同的数据类型在内存中占用不同的存储空间,它们的取值范围也不同。表2-1是C语言中常用的基本数据类型所对应的字长(存储空间)和取值范围。2.1.2C语言的数据类型的取值范围

类型标识符名字长度(字节)取值范围char字符型

1ASCII字符代码unsignedchar无符号字符型

10~255shortint短整型2-32768~32767int整型

4-2147483648~2147483647unsignedint无符号整型

4

0~4294967295longint长整型

4-2147483648~2147483647float单精度型

4

double双精度型

82.1C语言的数据类型第2章以上不同类型的数据输出时需要使用Printf函数语句,Printf函数是一个标准的格式输出函数。一般格式为:

Printf(“控制格式”,输出参数1,输出参数2···输出参数n);作用是在屏幕上输出引号内的信息或按控制格式所规定的格式输出数据。为将要显示的数据指定需要输出的格式,需要用到以下不同的转换字符。具体含义如下:2.1.3初识printf函数输出语句

%d表示数据按十进制整型数输出;

%f表示数据按十进制带小数点的形式输出;

%o表示数据按十进制八进制整型数输出;

%x表示数据按十进制十六进制整型数输出;

%c表示数据按字符型数输出;

%u表示数据按十进制无符号整型数输出2.2常量第2章常量可分为不同的类型。常用的有:

常量C语言中的数据有常量和变量之分。常量又称常数,是指在程序运行中,其值不能被改变的量。整型常量实型常量字符常量字符串常量符号常量2.2常量第2章整型常量是由一个或多个数字组成,可以有正、负号,但不能有小数点。整型常量有三种表示方法:2.2.1整型常量

(1)十进制整数:取值范围:0~9。如1236,-234,0。(2)八进制整数:以0开头的数是八进制数,取值范围:0~7。如:011表示八进制数的(11)8。(3)十六进制整数:以0x开头的数是十六进制数,取值范围:0~9,A~F或a~f。如:0x1F表示十六进制数的(1F)16,(十进制数为31)。2.2常量第2章2.2.1整型常量

【例2.1】三种进制表示方法的转换。main(){intx=1246,y=01246,z=0x1246;printf(″%d,%d,%d\n″,x,y,z);/*%d:以十进制格式符输出*/printf(″%o,%o,%o\n″,x,y,z);/*%o:以八进制格式符输出*/printf(″%x,%x,%x\n″,x,y,z);/*%x:以十六进制格式符输出*/}2.2常量第2章在C语言中,把带小数的数值称为实数或浮点数。C语言实型常量只使用十进制数。有以下两种表示形式:2.2.2

实型常量

1.十进制数形式:由正负号、整数部分、小数点、小数部分组成。如:3.14159,-7.21,128.96等都是十进制形式。

2.指数形式:由正负号、整数部分、小数点、小数部分和字母E或e后面带正负号的整数组成。如:十进制数180000=(1.8×)用指数法可以表示为1.8e5,其中:1.8称为尾数,5称为指数。2.2常量第2章字符型常量是由一对单引号括起来的单个字符,在内存中占1个字节。例如:′A′,′b′,′2′,′%′,′;′等都是有效的字符型常量。一个字符型常量的值是该字符集中对应的ASCII编码值(参见附录Ⅰ)。例如,字符常量′0′~′9′对应的ASCII编码值是48~57。显然′0′与数字0是不同的,这是初学者容易混淆的一点,具体可以参看附录Ⅰ。C语言中还允许用一种特殊形式的字符常量,即以反斜杠字符′\′开头的字符序列。前面用的printf()函数中的′\n′,代表一个“回车换行”符。这类字符称为“转义字符”,意思是将反斜杠“\”后面的字符转换成另外的意义。2.2.3字符型常量

2.2常量第2章表2-2转换码序列表2.2.3字符型常量转义符ASCII码字符含义\00NULL表示字符串结束\n10NL(LF)换行,将当前光标移到下一行的开头\t9HT水平制表\v11VT垂直制表\b8BS左退一格\r13CR回车,将当前光标移到本行的开头\f12FF换页\’39单引号\”34双引号\\92\反斜线\ddd1至3位八进制数所代表的字符\xhh1至2位十六进制数所代表的字符2.2常量第2章字符串常量是由一对双引号括起来的字符序列,若字符序列串长为N,则在内存占用N+1个内存单元,字符串常量在内存中存储时,系统自动加上串尾标记“\0”。例如:″program″,″A″,″book″都是字符串常量,双引号起定界符的作用。因为C语言中规定字符串常量以字符′\0′作为结束标志,系统将根据该字符判断字符串是否结束。对于字符串″CHINA″,它在内存中实际存放的形式如图所示。其长度是6个字节,而不是5个字节。字符′\0′所对应的ASCII值为0,即“空”字符。2.2.4

字符串常量

CHINA\02.2常量第2章用一个特定的符号来代替一个常量或代替一个较为复杂的字符串,这个符号称为符号常量。它通常由预处理命令#define来定义。符号常量一般用大写字母表示,以便与其它标识符相区别。符号常量的一般定义形式:#define符号常量常量(或“字符串”)预处理#define又称为宏定义命令,一个#define命令只能定义一个符号常量。因为它不是语句,所以结尾不用加分号。2.2.5

符号常量

2.2常量第2章2.2.5

符号常量

使用符号常量的优点如下:(1)增强可读性。在程序中定义一些具有一定意义的符号常量,能起到“见名知义”的作用。(2)简化输入程序。使用符号常量代替一个字符串,可以减轻程序中重复书写某些字符串的工作量。(3)增强程序的通用性和可维护性。如果一个程序中有多处使用同一个常量,这时,可把该常量定义为一个符号常量。若需要修改该常量时,则只需要在定义处修改即可。可以作到一改全改,避免出现修改不完全或遗漏等错误。2.3变量第2章变量是指在程序运行过程中其值可以被改变的某个标识符。C语言中的变量可以分为以下几种类型,如图所示。2.3.1.变量的概念

2.3变量第2章在C语言中,无论使用哪一种类型变量,都要“先定义”,后“使用”。所谓定义,是给程序中用到的变量定义一个类型,即取值范围。初始化,就是在定义变量的同时,给变量赋初值。2.3.2

变量的定义与初始化

变量定义格式为:〈数据类型〉〈变量名表〉;例:inta;/*定义变量a为int,系统给a分配4个字节的内存空间*/a=10;/*给变量a赋值10,即把10送入a所分配的内存中*/或:inta=10;/*定义变量a的同时,给a赋值10,又称给变量初始化*/我们可以用以上两种方法给变量赋初值。2.3变量第2章

1.整型变量整型变量用来存放整型数据(即不带小数点的数)。有以下几种类型,其定义的关键字如下:2.3.2

变量的定义与初始化

(1)基本型:用int表示(4个字节)(2)短整型:用shortint或short表示(2字节)(3)长整型:用longint或long表示(4字节)(4)无符号整型:①无符号整型:用unsignedint或unsigned表示(4字节)②无符号短整型:用unsignedshortint或unsignedshort表示(2字节)③无符号长整型:用unsignedlongint或unsignedlong表示(4字节)2.3变量第2章

无符号整型变量在存储单元中的全部二进制位都用来存放数据本身。而没有符号位,即不能存放负数。下面以短整型变量在内存中占两个字节(16bit)为例,来说明无符号与有符号数据类型的区别。短整型变量数值的表示范围是-32768~32767,若不考虑符号位,无符号短整型数值的表示范围为0~65535,如图2-4所示,可以看出它们的取值范围是不同的。2.3.2

变量的定义与初始化

2.3变量第2章2.3.2

变量的定义与初始化

【例2.2】简单的算术运算。#include<stdio.h>main(){inta,b,s1,s2;/*定义a,b,s1,s2为整型变量*/unsignedx=20;/*定义x为无符号整型变量并赋初值20*/a=10;b=-30;/*给变量a,b分别赋值*/s1=a+x;/*进行计算,结果赋给变量s1*/s2=b+x;/*进行计算,结果赋给变量s2*/printf(″a+x=%d,b+x=%d\n″,s1,s2);/*a+x=,b+x=是字符串原样输出,%d是按整型格式输出变量s1,s2的值,\n是输出数据后换行*/}运行结果为:

a+x=30,b+x=-102.3变量第2章2.实型变量实型变量又称浮点型变量,按能够表示数的小数点后的精度,C语言实型变量分为三种:(1)单精度型:用float表示,在内存占用4个字节,有效数字6~7位。(2)双精度型:用double表示,在内存占用8个字节,有效数字15~16位。(3)长双精度型:用longdouble表示,在内存占用16个字节,有效数字18~19位。2.3.2

变量的定义与初始化

2.3变量第2章其定义方式如下:floata,b;/*定义单精度变量a,b*/doublec,d;/*定义双精度变量c,d*/单精度浮点型变量和双精度浮点型变量之间的差异仅仅体现在所能表示的数的精度上。一般单精度型数据占4个字节,有效位为7位,数值范围约为10-38~1038,而双精度型数据占8个字节,有效位为15~16位,数值范围约为10-308~10308。2.3.2

变量的定义与初始化

2.3变量第2章2.3.2

变量的定义与初始化

【例2.3】不同类型数据的输出比较。#include<stdio.h>main(){floata;doubleb;a=123456.111;b=123456.111;printf("a=%f,b=%lf\n",a,b);}

运行结果:a=123456.109375,b=123456.1110002.3变量第2章

3.字符型变量

一个字符型变量用来存放一个字符,在内存中占一个字节。实际上,将一个字符常数赋值给一个字符变量,并不是把该字符本身放到内存单元中去,而是将该字符对应的ASCII值(整数)存放到内存单元中。因此,字符型数据也可以像整型数据那样使用,用来表示一些特定范围内的整数。

字符型数据分为两类:2.3.2

变量的定义与初始化

一般字符类型(char)无符号字符类型(unsignedchar)2.3变量第2章其定义方式如下:floata,b;/*定义单精度变量a,b*/doublec,d;/*定义双精度变量c,d*/单精度浮点型变量和双精度浮点型变量之间的差异仅仅体现在所能表示的数的精度上。一般单精度型数据占4个字节,有效位为7位,数值范围约为10-38~1038,而双精度型数据占8个字节,有效位为15~16位,数值范围约为10-308~10308。2.3.2

变量的定义与初始化

2.3变量第2章其定义方式如下:floata,b;/*定义单精度变量a,b*/doublec,d;/*定义双精度变量c,d*/单精度浮点型变量和双精度浮点型变量之间的差异仅仅体现在所能表示的数的精度上。一般单精度型数据占4个字节,有效位为7位,数值范围约为10-38~1038,而双精度型数据占8个字节,有效位为15~16位,数值范围约为10-308~10308。2.3.2

变量的定义与初始化

2.3变量第2章2.3.2

变量的定义与初始化

【例2.4】字符型数据与整型数据的互相赋值运算。

#include<stdio.h>main(){charc1,c2;/*定义c1,c2为字符型变量*/c1=65;c2=66;/*将数值65、66分别赋给c1,c2*/printf(″%c,%c\n″,c1,c2);/*按字符格式输出c1,c2对应的字符*/printf(″%d,%d\n″,c1,c2);/*按十进制输出c1,c2对应的ASCII码值*/}运行结果为

A,B65,662.3变量第2章4.指针变量指针又称地址,指针变量即存放地址的变量。变量的三要素是变量名、变量值与变量地址。而变量值与变量地址是两个不同的概念,变量在内存所占的存储单元中存放的数据称为变量的值;变量在内存所占的存储单元的首地址称为变量的地址。变量的地址只可以存储在指针变量中,通过指针变量来引用地址中的数据。指针变量与其它变量一样,也要先定义后使用。指针变量定义的一般形式:

2.3.2

变量的定义与初始化

数据类型*指针变量名;2.3变量第2章2.3.2

变量的定义与初始化

【例2.6】输出变量与指针变量的值。#include<stdio.h>main(){inta=10;/*a的值为10,变量a的内存地址编号为1245052*/int*p;/*定义存放整型变量地址的指针变量p*/p=&a;/*将整型变量a的地址送给指针变量p*/printf(“a=%d,p=%u”,a,p);/*分别打印出变量a和指针变量p中的值*/}

运行结果:a=10,p=1245052

2.4运算符及表达式第2章

1.C语言的运算符常用的C语言中的运算符有以下几类:2.4.1.C语言运算符

(1)算术运算符:(+-*/%++--)(2)关系运算符:(<<=>>===!=)(3)逻辑运算符:(&&||!)(4)赋值运算符:(=+=-=*=/=%=)(5)指针运算符:(*&)(6)条件运算符:(?:)(7)逗号运算符:(,)(8)位运算符:(&|~∧<<>>)(9)求字节运算符:(sizeof)(10)特殊运算符:(()[]->等)(11)分量运算符:(.—>)(12)下标运算符:([])(13)其他:(如函数调用运算符)2.4运算符及表达式第2章

2.C运算符的优先级与结合性由于C语言的运算符多,使用时变化非常丰富,所以,C语言规定了运算符的优先级和结合性。当一个表达式中有多个运算符参加运算时,将按不同的先后次序进行运算。这种计算的先后次序称为运算符的优先级。结合性是指,当一个操作数两侧的运算符具有相同优先级时,该操作数是先与左边还是先与右边的运算符结合进行运算。从左至右的结合方向,称为左结合性。反之,称为右结合性。结合性是C语言的独有概念。除单目运算符、赋值运算符和条件运算符是右结合性外,其他运算符都是左结合性。2.4.1.C语言运算符

2.4运算符及表达式第2章表2-3运算符的优先级和结合性2.4.1.C语言运算符

优先级

义要求运算对象个数结合方向(高)1()[]

一>

。圆括号下标运算符指向结构体成员运算符结构体成员运算符自左至右2!~++___(类型)*&sizeof逻辑非运算符按位取反运算符自增运算符自减运算符负号运算符类型转换运算符指针运算符取地址运算符取长度运算符(字节数)(单目运算符)自右至左2.4运算符及表达式第2章表2-3运算符的优先级和结合性2.4.1.C语言运算符

优先级

义要求运算对象个数结合方向3*/%乘法运算符除法运算符求余运算符(取模运算)(双目运算符)自左至右4+-加法运算符减法运算符(双目运算符)自左至右5<<>>左移运算符右移运算符

(双目运算符)自左至右6<<=>>=关系运算符(双目运算符)自左至右7

==!=等于运算符不等于运算符(双目运算符)自左至右8&按位“与”运算符(双目运算符)自左至右9∧按位“异或”运算符(双目运算符)自左至右2.4运算符及表达式第2章表2-3运算符的优先级和结合性2.4.1.C语言运算符

优先级

义要求运算对象个数结合方向10|按位“或”运算符(双目运算符)自左至右11&&逻辑与运算符

(双目运算符)自左至右12

||逻辑或运算符(双目运算符)自左至右13

?:条件运算符(三目运算符)自右至左14=十=—=*=/=%=>>=<<=&=∧=|=赋值运算符(双目运算符)自右至左(低)15,逗号运算符(顺序求值)自左至右2.4运算符及表达式第2章

3.表达式求值顺序用运算符和括号将运算对象(常量、变量和函数等)连接起来的、符合C语言语法规则的式子称为表达式。例如,(a+b+c)/3凡是表达式都有一个值,即运算结果。一个表达式的求值顺序是:先乘除后加减,括号优先,同级运算符按照从左到右的顺序执行。同时还要考虑C语言规定的结合性(结合方向)。不同级运算符按表2-3中的优先级高低顺序执行。2.4.1.C语言运算符

2.4运算符及表达式第2章

1.基本算术运算符+:加法运算符。如5+7,a+b。-:减法运算符。如9-3,a-b。*:乘法运算符。如,4*12,a*b。/:除法运算符。如16/2,a/b。以上加、减、乘、除运算符,与数学中的运算相同。%:取余运算符(又称模运算)。如17%5,a%b。取余%运算只能用于两个整型常量或整型变量,其运算结果为两整数整除后所得的余数。2.4.2

算术运算符和表达式

2.4运算符及表达式第2章

2.自增(++)与自减(--)运算符++自增运算符。如a++,++a。 --自减运算符。如a--,--a。自增++(自增1)与自减--(自减1)运算符,是C语言中两个最有特色的单目运算符。自增或自减运算的作用是,使变量的值自己增1或减1。所以,也称为增1或减1运算。这两个运算符有两种用法,一种在变量之前,称为前置;另一种在变量之后,称为后置。2.4.2

算术运算符和表达式

2.4运算符及表达式第2章(1)前置运算——运算符放在变量之前:++变量--变量先使变量的值增(或减)1,然后再以变化后的值参与运算。即先增减、后运算。例如:a=3;/*a=3*/b=(++a)*5;/*先执行a加1,再执行4*5的值赋给b,所以b=20,a=4*/2.4.2

算术运算符和表达式

2.4运算符及表达式第2章(2)后置运算——运算符放在变量之后:变量++变量--变量先参与表达式的运算,然后再使变量的值增(或减)1。即先运算,后增减。例如:a=3;/*a=3*/b=(a++)*5;/*先执行a*5的值赋给b,再执行a加1,所以b=15,a=4*/2.4.2

算术运算符和表达式

2.4运算符及表达式第2章2.4.2

算术运算符和表达式

【例2.7】写出程序的运行结果。#include<stdio.h>main(){inta=100;printf(″a=%d\n″,a++);/*a++是后置运算,所以先输出100后加1,a=101*/printf(″a=%d\n″,++a);/*++a是前置运算,所以a先加1后输出,a=102*/printf(″a=%d\n″,a--);/*a--是后置运算,所以先输出102,后a减1,a=101*/printf(″a=%d\n″,--a);/*--a是前置运算,所以a先减1后输出,a=100*/}输出结果:a=100a=102a=102a=1002.4运算符及表达式第2章

用算术运算符和括号将运算对象如常量、变量和函数等连接起来的式子称为算术表达式。例如:a+b*c+(x/y)-700,100%3+100*2等,都是合法的算术表达式。2.4.3

算术表达式

算术表达式书写规则如下:

(1)所有字符必须写在同一水平线。

(2)相乘的地方必须写上“*”符号,不能省略,也不能用“·”代替。

(3)算术表达式中出现的括号一律用小括号,且一定要成对。2.4运算符及表达式第2章在内存中,字符是以字符的编码值形式存储的。除字符型数据和整型数据之间可以通用之外,不同类型的数据在进行混合运算时,须先转换成同一类型,然后再进行运算。不同类型的数据转换有两种方式:一种是自动类型转换,也称为隐式转换;另一种是强制类型转换,称为显式转换。1.自动转换(隐式转换)

(1)表达式中不同类型数据由低向高转换C语言允许在整型、单精度浮点型数据之间进行混合运算。在进行运算时,首先将不同类型的数据由低向高转换成同一类型,然后进行运算。2.4.4数据间的混合运算与类型转换

2.4运算符及表达式第2章转换规则如下:高低

double(8个字节)←float(4个字节)↑longint(4个字节)↑unsignedint(4个字节)↑int(4个字节)←shortint(2字节)←char(1个字节)2.4.4数据间的混合运算与类型转换

2.4运算符及表达式第2章

(2)赋值号右边的数据转换成左边的类型当把一个变量的值赋给另一个变量时,转换规则是:把赋值号右边的类型转换成赋值号左边的类型。若右边的数据类型的长度大于左边,则要进行截断或舍入操作。2.4.4数据间的混合运算与类型转换

2.4运算符及表达式第2章2.4.4数据间的混合运算与类型转换

【例2.9】写出下面程序的运行结果。

#include<stdio.h>

main()

{

inta,b;

floatx,y=1.4;

a=3.5;

/*赋值时因为a是整型变量,所以a=3*/

x=57;

/*赋值时因为x是实型变量,所以x=57.00000*/

b=a+x+y;

/*a+x+y=61.900000,但是b是整型变量,所以b=61*/

printf(“b=%d\n”,b);

}运行结果:b=612.4运算符及表达式第2章

2.强制转换(显式转换)转换格式如下::

(强制转换的类型名称)(操作数)作用:把操作数强制转换为指定的类型。例如:(int)(a+b),将a+b的结果强制转换成int型;

又如:(float)a/b,将a强制转换成float型后,再进行除法运算,结果为float型。2.4.4数据间的混合运算与类型转换

2.4运算符及表达式第2章2.4.4数据间的混合运算与类型转换

【例2.10】写出下面程序的运行结果。#include<stdio.h>main(){floatf=7.12;

/*定义变量f为实型数据*/inta=5,b;b=(int)f%a;

/*实型数据不能取余运算,所以对变量f进行强制转换为int型*/printf(“b=%d\n”,b);

/*7%5=2,所以打印b=2*/printf(“f=%f\n”,f);

/*f的类型及值没有变,仍为7.120000*/}运行结果为:b=2f=7.1200002.5赋值运算符和赋值表达式第2章所谓赋值是指将一个数据存储到某个变量对应的内存存储单元的过程。赋值运算符有两种类型:基本赋值运算符和复合赋值运算符。C语言的赋值运算符是“=”,它的作用是将赋值运算符右边表达式的值赋给其左边的变量。例如:a=10;x=a+5;前者是把常量10赋给变量a,后者是将表达式a+5的值赋给变量x。2.5.1

基本赋值运算符

2.5赋值运算符和赋值表达式第2章2.5.2

复合赋值运算符

C语言允许在赋值运算符“=”之前加上其他运算符,以构成其复合运算符。复合运算符多数为双目运算符。在C语言中,可以使用的复合赋值运算符有10个:+=、-=、*=、/=、%=、&=、∧=、|=、<<=、>>=例:x+=10;执行过程为:先对赋值运算符左右两侧进行运算,然后,再把结果赋值给左边的变量。即相当于:x=x+10;例如:a+=2;等价于a=a+2x%=6;等价于x=x%6x*=y+10;等价于x=x*(y+10)2.5赋值运算符和赋值表达式第2章2.5.2

复合赋值运算符

1.赋值表达式的定义由赋值运算符或复合赋值运算符,将一个变量和一个表达式连接起来的式子称为赋值表达式。一般格式:〈变量〉(赋值运算符/复合赋值运算符)〈表达式〉;它的功能是将赋值运算符右边的“表达式”的值赋给左边的变量。一般常见的赋值表达式有以下几种:①一般赋值表达式例:a=10:y=x+y等。②赋值表达式中的“表达式”,又是一个赋值表达式例:a=(b=4)。③赋值表达式也可以包含复合赋值运算符2.5赋值运算符和赋值表达式第2章2.5.2

复合赋值运算符

2.赋值表达式与赋值语句赋值表达式与赋值语句的区别是语句末尾有无分号“;”。当在一个赋值表达式后面加上分号,就可以构成赋值语句。例:y=a=3(赋值表达式)a=3;(赋值语句)i++(赋值表达式)2.6逗号运算符及其表达式第2章2.6.1

逗号运算符与表达式

逗号运算符为“,”。逗号表达式是用逗号运算符把两个表达式组合成的一个表达式。其一般形式为:〈表达式1〉,〈表达式2〉说明:(1)逗号表达式的执行过程是:先求表达式1的值,再求表达式2的值,表达式2的值就是整个逗号表达式的值。(2)一个逗号表达式可以与另一个表达式构成一个新的逗号表达式。2.6逗号运算符及其表达式第2章2.6.2

逗号运算符举例

【例2.11】分析程序运行结果。#include<stdio.h>main(){intx,y;

x=50;

y=(x=x-5,x/5);/*x的初值=50,减5后为45,再被5除,所以y=9*/printf(“y=%d\n”,y);}运行结果:y=92.7指针的基本知识与运算第2章2.7.1

地址与指针的概念

指针是C语言中的精髓,也是C语言的重要特色。C语言的高度灵活性及极强的表达能力,在很大程度上来自于巧妙而恰当地使用指针。前面简单介绍了指针变量的概念,下面将详细介绍指针与指针运算。变量的指针与变量的值计算机中内存是以字节为单位的一片连续的存储空间。每一个字节都有一个编号,这个编号就是内存地址。就像教学大楼的房间编号一样,根据房间号很容易找到教室及其中的某个同学。同样,根据内存地址可以准确地找到相应的内存单元及其中的变量值。

2.7指针的基本知识与运算第2章2.7.1

地址与指针的概念

【例2.12】输出变量的值和变量的指针(地址)。#include"stdio.h"main(){inta=10,b=20;charc='X',d='Y';floate=5.6,f=-2.8;printf("%d,%d\n",a,b);/*输出整型变量a,b的值*/printf("%c,%c\n",c,d);/*输出字符变量c,d的值*/printf("%f,%f\n",e,f);/*输出实型变量e,f的值*/printf("%u,%u,%u,%u,%u,%u\n",&a,&b,&c,&d,&e,&f);/*输出所有变量的地址值*/}2.7指针的基本知识与运算第2章2.7.1

地址与指针的概念

2.变量的指针和指针变量C语言中,一个变量所分配的内存空间首字节地址,称为该变量的指针(地址)。地址一旦被分配,只要程序没有结束,就不会再改变。所以,变量的指针(地址)是一

温馨提示

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

评论

0/150

提交评论