C语言程序整套课件电子教案课件_第1页
C语言程序整套课件电子教案课件_第2页
C语言程序整套课件电子教案课件_第3页
C语言程序整套课件电子教案课件_第4页
C语言程序整套课件电子教案课件_第5页
已阅读5页,还剩419页未读 继续免费阅读

下载本文档

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

文档简介

2024/9/15C语言程序设计1第1章C语言概述主要内容C语言的发展简史及特点

C程序的结构及书写规则

C语言的语句、标识符和关键字

C程序的运行与调试核心知识点

C语言的标识符和关键字

C程序的基本结构

C程序的书写规则

C程序的编辑、编译、运行和调试的一般过程2024/9/15C语言程序设计2重点难点

C语言的基本结构

TurboC编译系统的工作环境参数的设置编辑、编译、运行、调试C程序的完整的上机过程及C程序的编辑、调试技巧核心知识点

了解C语言的发展历史和C语言的特点掌握C程序的基本结构与书写规则掌握C程序的编辑、编译、运行和调试的一般过程第1章C语言概述2024/9/15C语言程序设计31.1C语言的发展简史和特点C语言的产生与发展1967年,英国剑桥大学的M.Richards在CPL语言的基础上实现并推出了BCPL(BisicCombinedProgrammingLanguage)语言。1970年,美国贝尔实验室的KenThompson以BCPL语言为基础,又做了进一步简化设计出了B语言,并用B语言写了第一个UNIX操作系统。由于B语言过于简单,功能有限,1972年,贝尔实验室的DennisM.Ritchie在B语言的基础上设计出了C语言。1973年,贝尔实验室的K.Thompson和DennisM.Ritchie合作,首先用C语言重新改了UNIX操作系统。此后,伴随着UNIX操作系统的发展,C语言越来越广泛地被人们接受和应用。至此,C语言不断得到改进,但主要还是作为实验室产品在使用,因为它仍然依赖于具体的机器。直到1977年才出现了独立于具体机器的C语言编译版本。1978年,BrianW.Kernighan和DennisM.Ritchie正式出版了影响深远的《TheCProgrammingLanguage》一书,此书中介绍的C语言成为后来广泛使用的C语言版本基础,它被称为标准C语言。C语言的的标准化工作是从20世纪80年代初期开始的。1983年,美国国家标准化协会(ANSI)颁布了C语言的新标准ANSIC。由于C语言的不断发展,1987年,美国国家标准化协会又颁布了新标准87ANSIC。1990年,87ANSIC成为ISOC的标准。目前流行的C编译系统都是以它为基础的。目前,我国计算机上常用的C语言版本主要有:BorlandInternational公司的TurboC;Microsoft公司的MicrosoftC等。2024/9/15C语言程序设计4C语言的特点(1)语言简洁、使用方便。(2)适应性强、应用范围广。(3)运算符丰富,语言的表达能力强。C语言共有34种运算符,它把括号、赋值号、强制类型转换等作为运算符处理,使C语言运算类型丰富、灵活、多样,功能强大。可直接处理字符,访问内存地址,进行位操作等。(4)数据结构系统化。C语言具有现代化语言的各种数据结构,且具有数据类型的构造能力,因此,便于实现各种复杂的数据结构的运算。(5)具有结构化的控制语句。C语言是结构化的程序设计语言,提供了各种控制语句(如if、while、for、switch等),对程序的逻辑结构提供了很好的基础。其程序结构清晰,层次分明,有利于采用自顶向下、逐步求精的程序设计方法。(6)运行程序质量高,程序运行效率高。试验表明,C源程序生成的运行程序的效率仅比汇编程序的效率低10%~20%。(7)可移植性好。C编译程序基本上不做修改就能用于各种型号的计算机和各种操作2024/9/15C语言程序设计51.2C程序的结构与书写规则用C语言编写的程序称为C程序或C源程序。下面通过一个简单的C程序实例,分析C程序的基本组成和结构。【例1-2】main() /*主函数*/{

int

a,b,c; /*声明部分,定义a,b,c为整型变量*/

scanf("%d,%d",&a,&b);/*由键盘输入a和b的值*/c=max(a,b); /*调用max函数,将得到的值赋给c*/

printf("max=%d",c); /*输出c的值*/}

int

max(int

x,inty) /*定义max函数*/{

intz; /*max函数中定义变量z为整型*/if(x>y)z=x;elsez=y;/*如果x>y,将x赋值给z,否则将y赋值给z*/

return(z); /*将z的值返回到函数的调用处*/}这个程序的执行结果如下:3,5↙max=5(输出max的值)2024/9/15C语言程序设计6一个完整的C程序结构有以下特点:(1)C语言是由函数构成的。函数是C语言程序的基本单位。其中main函数是一个特殊的函数,一个完整的C程序必须有且仅有一个main函数,它是程序启动时的惟一入口(不管main函数的位置如何)。除main函数之外,C程序也可包含若干个其他C标准函数和用户自定义的函数,它们可以相互调用,最终返回主函数结束程序。(2)一个函数是由函数说明和函数体两个部分组成。①函数的说明部分。确定函数名并说明函数名、函数类型、形式参数名及其类型。如例1.2中:

int max (intx, inty) ↓ ↓ ↓ ↓

类型名函数名形参x为整型形参y为整型②函数体。由函数说明部分下的第1对大括弧“{}”内的一系列语句和注释构成。语句又包括变量的定义和可执行语句两部分。变量定义:如main函数中的“int

a,b,c;”语句,max中的“intz;”语句。可执行语句:完成当前函数功能的语句。(3)程序书写格式较自由,一行可写几条语句,一条语句也可以分行书写。(4)语句以分号结束,例如:z=y;。(5)在每条语句后,可用/*…*/对该语句进行注释,以增加程序的可读性。注释不影响语句的功能。2024/9/15C语言程序设计71.3C语言的语句、标识符和关键字1.3.1C语言的语句

C语言的语句是由关键字、标识符、运算符、常量和变量来构成的。1.3.2C语言标识符在程序设计中,常用具有一定意义的名字来标识程序中的变量、函数、数组、类、标号以及用户自定义的数据类型,以方便在程序设计中按名字来访问数据,这个名字称为标识符。在C语言程序中,标识符由1~8个字符组成。构成标识符的字符只能是下划线“_”、数字(0-9)和英文字母,并且标识符的第一个字符只能是下划线或英文字母。下列这些都是合法的标识符:address、Tel、name、password、varl、year_1999、_123、ID_view下列这些都是非法标识符:T-3、2abc、Tel#、[str]、mail@sina、+point、!keyC语言是一种对字母大小写敏感的语言,定义标识符必须注意字母的大小写,例如:passWord和password在C语言中是两个不同的标识符。2024/9/15C语言程序设计81.3.3C语言关键字

在C语言程序中,还有一类特殊的标识符,它们不能被用户程序中自定义的标识符,它们仅供系统专用,不能用作用户定义的标识符,称为关键字,又称系统保留字。关键字是有特殊含义的系统标识符,它们不能隨便被用作用户程序中定义的标识符。C语言保留的关键字如下:_cs_ds_es_ssasmcdeclautodoublefarhugeinteruptintpascalnearlongswitchforenumregistertypedefbreakcharexternreturnunionconstfloatshortsignedunsignedcontinuestaticwhilevioddoelseifstructsizeofvolatilegotodefault2024/9/15C语言程序设计91.4C程序的运行与调试1.4.1C程序设计的基本步骤程序设计就是用某种程序语言编写程序的过程。一个简单的程序设计一般包含以下四个步骤:(1)分析问题,建立数学模型(2)确定数据结构和算法(3)编写程序(4)调试程序2024/9/15C语言程序设计101.4.2如何使用TurboC++3.0运行与调试C程序“TurboC++3.0”软件是Borland公司在1992年推出的强大的、集程序编辑、编译、连接、调试为一体的C语言程序设计与C++面向对象程序设计的集成开发工具。它具有速度快、效率高、功能强等优点,使用非常方便,并且完全支持鼠标选择、拖放和右键操作,很好地照顾了习惯于图形操作环境的用户。C语言程序人员可在TurboC环境下进行全屏幕编辑,利用窗口功能进行编译、连接、调试、运行、环境设置等工作。2024/9/15C语言程序设计111.TurboC的工作窗口下面是TurboC的工作窗口。它包括以下几方面的内容:(1)主菜单:在TC屏幕的顶部。它包括8个主菜单,分别用来实现各项操作。(2)编辑窗口:在主菜单的下面,屏幕的左上部,正上方有所编辑的C程序文件名字样作为标志。其作用是对TurboC源程序进行输入和编辑。(3)信息窗口:在屏幕的左下部,用来显示编辑和连接时的有关信息。(4)监视窗口:在主菜单的下面,屏幕的右上部,用来设置程序执行的断点,插入、编辑监视表达式,显示监视程序执行的有关信息。(5)输出窗口:在屏幕的右下部,用来显示程序执行结果的有关信息。(6)功能提示行:在屏幕最下方,它显示一些功能键的作用。2024/9/15C语言程序设计122.编辑一个新文件如果要编辑一个新的C程序,具体操作步骤如下:①选主菜单中的File菜单。②按回车键后出现下拉菜单,用键盘上的↓和↑键找到子菜单New,编辑一个新的程序,如下图所示:③按回车键,编辑窗口就被清空,光标定位在左上角(第1行、第1列)。用户可以开始输入和编辑源程序了。输入程序后应对程序作认真检查,并改正已发现的错误。这时应及时将源程序保存起来。2024/9/15C语言程序设计13对于源程序的保存常用方法有两种:方法一:从File菜单下找到子菜单Save。按回车键后,TC就会弹出一个对话框,要求用户指定文件名,见图1-3。图1-3源程序保存的默认路径和文件名从上图中可以看到:在对话框中有文件的默认的路径(C:\TC\PROJECT)(与文件安装的位置C:\TC有关)和默认的文件名(NONAME00.C)。方法二:按F2键直接保存文件,但保存的是默认的路径和默认的文件名。2024/9/15C语言程序设计143.编辑一个已存在的文件

假如上次编辑的源文件需要进行编辑,就需要把它从磁盘中调出来。按F10键,再选择菜单File→Open,这时,屏幕上会出现一个包含*.C的“装入文件对话框”,用户输入准备调入的文件路径和文件名,按回车键即可进行编辑。

2024/9/15C语言程序设计154.确定TC工作环境如果用户把已经编译好的源程序换一个地方(比如换到另外一台计算机上)进行编译,却发现本来正确的现在却不能运行,主要是TC工作环境设置不正确造成的。确立TurboC系统的工作环境,需要利用主菜单条上的Options菜单。首先在主菜单窗口上,将亮块移到Options处,按回车键,用↓键选择Directories项,见图1-4。图1-4确定TC的工作环境2024/9/15C语言程序设计16按回车键又弹出一个窗口,见图1-5。图1-5Options菜单的Directories项图1-5所示窗口中各项的含义如下:(1)IncludeDirectories:C:\TC\INCLUDE(指“包含文件”所在的目录)(2)LibraryDirectories:C:\TC\LIB(指库文件所在的目录)(3)OutputDirectory:C:\TC\OUTPUT(指定输出文件存放的目录)(4)SourceDirectories:C:\TC(指TurboC系统文件所在的目录)2024/9/15C语言程序设计17在进行了以上设置后,还应当把这些信息保存起来。打开Options菜单,然后选择Save菜单项,并按回车键时会弹出一个对话框,见图1-6。点击OK按钮保存。图1-6TC配置文件的建立

2024/9/15C语言程序设计185.编译和连接编辑好源程序并存盘后,应当对源程序进行编译、连接和运行。(1)编译、连接分别进行①编译按F10键,将亮条移至Compile处后回车(也可直接按Alt+C),即可产生一个编译菜单,见图1-7。图1-7TC的编译菜单选择Compile,此时系统显示出默认的目标文件名。如果当前被编译的源程序文件名为c1.c,系统就自动将目标文件名定为c1.obj,按回车键就可以进行编译。编译后将生成的目标文件c1.obj保存在当前工作目录或指定的输出目录中。2024/9/15C语言程序设计19选择Compile,此时系统显示出默认的目标文件名。如果当前被编译的源程序文件名为c1.c,系统就自动将目标文件名定为c1.obj,按回车键就可以进行编译。编译后将生成的目标文件c1.obj保存在当前工作目录或指定的输出目录中。②连接有了目标文件后,还不能直接运行,还要将目标文件与系统提供的库函数和包含文件等连接成一个可执行文件(后缀为.exe),才能运行这个.exe文件。按F10键后选择Compile→Link,然后按回车键,就可执行连接,在当前工作目录或指定的输出目录中生成一个可执行文件*.exe。应当注意:必须先进行编译,得到*.obj文件后才能进行连接,否则会出错。2024/9/15C语言程序设计20(2)一次完成编译和连接用Alt+F9得到编译菜单,从中选择Make项(见图1-8),按回车键后就可一次完成编译和连接,在当前工作目录或指定的输出目录中生成一个目标文件*.obj和一个可执行文件*.exe。图1-8一次完成编译和连接在TurboC的信息窗口下面有一个“功能键提示行”,其中的“F9”表示:按F9键相当于选择了编译菜单中的“Make”,即可一次完成编译和连接。用户既可以按以上介绍的通过选择菜单来进行编译和连接,也可以直接按F9键进行编译和连接。2024/9/15C语言程序设计21(3)对多个文件程序进行编译和连接如果一个源程序包含多个文件模块,则应当对各文件分别进行编译,得到多个.obj文件(每个源文件(后缀为.c)编译后生成一个.obj文件),然后将这些目标文件以及库函数、包含文件等连接成一个可执行文件。TurboC提供了对多个文件程序进行编译和连接的简便方法。要将这些文件组成一个“项目”,为此要建立一个“项目文件”,在该文件中包含各文件的名字,然后将该项目文件交付编译和连接,就可以得到可执行文件.exe。2024/9/15C语言程序设计226.运行如果在编译、连接过程中未发现错误,系统就会生成目标文件.obj和可执行文件.exe,如发生错误就需要对程序进行修改,一直到无错误为止。这时就可以运行了。运行一个程序,可以采用以下几种方法:(1)在TC集成环境中通过菜单选择运行按F10键,然后在主菜单条中选择“Run”,并回车键出现“Run”下拉菜单,见图1-9。图1-9TC的运行菜单从中选择Run项并按回车键,即开始运行。2024/9/15C语言程序设计23(2)直接用Ctrl+F9键使之运行。Ctrl+F9键的作用不仅是运行,而是包含编译、连接和运行。因此,完成一个源程序的编辑后,如果经过检查认为没有问题,就可以直接按Ctrl+F9键。这时TurboC将一次完成从编译、连接到运行的全过程。如果在编译或连接中有错,就将停下来,显示出错信息,等用户改正后再按Ctrl+F9键重新编译、连接;如不出错,就自动开始运行。下面把最常用的功能键的有关操作作简要列出:

F9:进行编译和连接。

Ctrl+F9:编译、连接、运行。

Alt+F5:观看运行结果。按任一键:从用户屏切换到TC窗口。2024/9/15C语言程序设计247.观察运行结果程序的运行结果可直接在输出窗口观察,也可在Windows菜单中UserScreen子菜单下进行观察。如图1-10所示。图1-10运行结果的观察2024/9/15C语言程序设计25

第2章基本数据类型、运算符与表达式主要内容C语言的数据类型C语言的常量、变量整型数据、实型数据和字符型型数据各种类型数据之间的混合运算C语言的运算符及其表达式运算符的优先级及其结合性核心知识点C语言的运算符及表达式各类数值型数据间的混合运算规则运算符优先级与结合性2024/9/15C语言程序设计26

第2章基本数据类型、运算符与表达式重点难点C语言的运算符及其表达式的使用各类数值型数据间的混合运算学习目标了解C语言的数据类型掌握常量和变量概念、分类及变量初始化方法掌握整型、实型和字符型数据的形式掌握各类数值型数据间的混合运算规则掌握常见的各种运算符及其表达式理解运算符优先级与结合性2024/9/15C语言程序设计272.1C语言的数据类型2.2常量和变量2.3整型数据2.4实型数据2.5字符型数据2.6各类数据混合运算2.7运算符与表达式2.8运算符的优先级及其结合性2024/9/15C语言程序设计282.1C语言的数据类型C语言提供的数据结构,是以数据类型形式出现的。具体分类如下:1.基本类型分为整型、实型(又称浮点型)和字符型。2.构造类型分为数组类型、结构类型和共用类型,分别在第6章和第10章介绍。3.指针类型(*)在第9章中介绍。4.空类型(void)本章将介绍基本类型中的整型、实型和字符型三种数据。2024/9/15C语言程序设计292.2常量和变量2.2.1常量

1.常量的概念在程序运行过程中,其值不能被改变的量称为常量。

2.常量的分类常量的类型,可通过书写形式来判别。(1)整型常量:如:123,-123。

(2)实型常量:如:123.12,-12.34。

(3)字符常量:如:’a’,’k’。

(4)字符串常量:如:“China”。(5)符号常量:为代表常量的标识符(符号),一般用大写字母表示,如:在程序开头有:#definePI=3.14,则之后就可使用标识符PI代表常量3.14。(关于#define的用法可参看8.1节)2024/9/15C语言程序设计302.2.2变量

1.变量的概念

在程序运行过程中,其值可以被改变的量称为变量。

2.变量的两个要素(1)变量名。每个变量都必须有一个名字──变量名,变量命名遵循标识符命名规则。(2)变量值。在程序运行过程中,变量值存储在内存中。在程序中,通过变量名来引用变量的值。

3.变量的定义与初始化

C语言要求对所有用到的变量“先定义,后使用”。

(1)变量的定义数据类型标识符<变量名列表>2024/9/15C语言程序设计31

类型标识符必须是C语言的有效数据类型符,如:int、char、float、double等。变量名列表是一个或多个标识符名,当变量名多于两个以上时,每个标识符之间用","分隔。例如:

inti,j,k;charc,str[5];(2)变量初始化数据类型变量名[=初值1][,变量名2[=初值2]……];例如:intx=3;/*指定整型变量x的初值为3*/floatf=3.56;/*指定单精度实型变量f的初值为3.56*/charch='a';/*指定字符型变量ch的初值为a*/inta,b,c=5;/*指定整型变量c的初值为5,未指定整型变量a、b的初值*/2024/9/15C语言程序设计32

※在定义变量时不允许用连等的方式同时给多个变量指定相同的初值。如:inta=b=c=3;是不合法的。应该写成:inta=3,b=3,c=3;2024/9/15C语言程序设计332.3整型数据2.3.1整型常量1.整型常数的表示按不同的进制区分,整型常数有三种表示方法:(1)十进制(以非0开始的数),例如:123、-123。(2)八进制(以数字0开头),例如:0123(表示十进制数83)、06(表示十进制数6)。(3)十六进制(以数字0+小写字母x开头或以数字0+大写字母X开头),例如:0x123(表示十进制数291)、0XFF(表示十进制数255)。另外,可在整型常数后添加一个"L"或"l"字母表示该数为长整型数,例如:22L,-773l。2024/9/15C语言程序设计342.整型常量的类型加上不同的修饰符,整型常量可分为如下几种类型:(1)基本整型,值范围:-32768~32767。(2)短整型,与基本整形相同。(3)长整型,在数值后面加“L(l)”。对超出基本整型值域的整型常量,可使用长整型常量表示,其取值范围可达-231~(231-1)。例如,123l、315L等。(4)无符号整型,在数值后面加“U(u)”。如:12345u,在内存中按unsignedint方式存放,而-12345u则先转换成其补码53191,然后再以无符号数方式存放。想一想:-10u在内存中的存放形式(值)是多少?(即求-10的补码)2024/9/15C语言程序设计35

上述各类型整型常量占用的内存字节数,随系统而异。在16位操作系统中,一般用2字节表示一个int型常量,用4字节表示一个long型常量。2.3.2整型变量1.整型变量的分类根据占用内存字节数的不同,整型变量又分为3类:(1)基本整型包括:有符号基本整型(简称为基本整型),其类型标识符为int,用来存储有符号基本整数。无符号基本整型,其类型标识符为unsignedint,用来存储无符号的基本整数。2024/9/15C语言程序设计36(2)短整型包括:有符号短整型(简称为短整型),其类型标识符为short或shortint,用来存储有符号的短整数。无符号短整型,其类型标识符为unsignedshort,用来存储无符号的短整数。(3)长整型包括:有符号长整型(简称为长整型),其类型标识符为long或longint,用来存储有符号的长整数。无符号长整型,其类型标识符为unsignedlong,用来存储无符号的长整数。2024/9/15C语言程序设计372.整形变量占用内存字节数与取值范围

C语言标准没有规定整型变量在计算机内存中所占的字节数,它与具体的机器和操作系统有关,例如,在16位的计算机中,一个整形变量一般占2个字节,而在32位的计算机中,一个整形一般占4个字节。而且不同类型的整型变量,其取值范围是不同的。占用内存字节数为n的(有符号)整型变量,其值域为:-2n*8-1~(2n*8-1-1);无符号整型变量的值域为:0~2n*8-1。

例如,PC机中的一个int型变量占2字节,其值域为-22*8-1~(22*8-1-1),即-32768~

32767;一个unsigned型变量的值域为:0~(22*8-1),即0~65535。2024/9/15C语言程序设计383.整型变量定义可以用上面几种整形类型定义整型变量,如:inta,b;/*指定变量a、b为整型*/unsignedshortc,d;/*指定变量c、d为无符号短整型*/longe,f;/*指定变量e、f为长整型*/unsignedlongg;/*指定变量g为无符号长整型*/想一想:若有inta,b;a=32767;b=a+1;此时b的值为多少?为什么?

※注意整形数据类型匹配规则为:一个整型常量可以赋给能容纳下其值的整型变量。2024/9/15C语言程序设计392.5实型数据2.4.1实型常量

1.表示形式实型常量即实数,又称浮点数,其值有两种表示形式:(1)十进制形式:必须有小数点。例如3.14、9.8、0.123、.123、-123.0等。

(2)指数形式:<尾数>E(或e)<整型指数>。例如3.0E+5、123E-2、-6.8e-18、123e3或123E3等。2.说明:(1)实型常量均为有符号浮点数,没有无符号浮点数。(2)实型常量只能用十进制形式表示,而无其它进制表示形式。(3)按默认格式输出实型常量时,最多只保留小数点后六位。2024/9/15C语言程序设计402.4.2实型变量1.实型变量的分类实型变量分为两种:(1)单精度型。类型标识符为float,占4字节(共32位二进制数)、提供7位有效数字,数的取值范围是3.4E-38~3.4E+38。(2)双精度型。类型标识符为double,占8个字节(共64位二进制数)、提供15~16位有效数字,数的取值范围是1.7E-308~1.7E+308。2.实型变量的定义可以用下列语句定义浮点型变量:floatx,y;/*指定x、y为单精度实型变量*/doublez;/*指定z为双精度实型变量*/2024/9/15C语言程序设计412.5字符型数据2.5.1字符常量1.字符常量的定义用一对单引号括起来的单个字符,称为字符常量。例如,‘A’、‘1’、‘+’等。字符常量也可以用该字符的ASCII码值表示,例如:可用十进制数65表示大写字母'A'、十进制数10表示换行,另外C语言还有一种特殊的字符常量——转义字符。2.转义字符(看书表2-3)

转义字符是以反斜杠“\”开头,后面跟一个字符,或者一组八进制整常数或十六进制整常数的一种特殊形式的字符常量。其功能是将反斜杠“\”后面的字符转换成另一种含义。2024/9/15C语言程序设计42

例如:\102表示‘B’,‘\x4F’代表字符‘O’,‘\x4B’代表字符‘K’,‘\x21’代表字符‘!’。转义字符主要用来控制打印机和屏幕输出。例如:

printf("\nsumis%d\n\n",sum);

※注意:如果反斜杠或单引号本身作为字符常量,必须使用转义字符:‘\\’、‘\’’。想一想:若有chara=‘\1’;printf(“%c%c%c”,a,a,a)输出结果是什么?2024/9/15C语言程序设计432.5.2字符变量字符变量的类型关键字为char,一般占用1字节内存单元。1.变量值的存储

字符变量用来存储字符常量。将一个字符常量存储到一个字符变量中,实际上是将该字符的ASCII码值(无符号整数)存储到内存单元中。例如,charch1,ch2;/*定义两个字符变量:ch1,ch2*/ch1=’a’;ch2=’b’;/*给字符变量赋值*/2024/9/15C语言程序设计442.特性字符数据在内存中存储的是字符的ASCII码──一个无符号整数,其形式与整数的存储形式一样。(1)一个字符型数据,既可以字符形式输出,也可以整数形式输出。(2)字符型数据与整型数据之间可通用。C语言允许对字符数据进行算术运算,此时就是对它们的ASCII码进行算术运算。

※注意:C语言不允许用字符形式输出一个大于255的数值,否则会出错。2024/9/15C语言程序设计45main(){ charc1,c2;/*定义字符变量c1,c2*/ c1=97;c2=98;/*给字符变量c1,c2赋初值*/

printf("%c%c\n",c1,c2);/*以字符形式输出*/

printf("%d%d\n",c1,c2);/*以整数形式输出*/ c1=c1-32;c2=c2-32;/*将小写字母转换为大写字母*/

printf("%c%c\n",c1,c2);/*以字符形式输出*/

printf("%d%d\n",c1,c2);/*以整数形式输出*/}【例2-1】观察下面程序的运行结果。2024/9/15C语言程序设计462.5.3字符串常量1.字符串常量的概念和字符串长度字符串常量是用一对双引号括起来的若干字符序列。字符串中字符的个数称为字符串长度。长度为0的字符串(即一个字符都没有的字符串)称为空串,表示为“”(一对紧连的双引号)。例如,“Howdoyoudo.”、“Goodmorning.”等,都是字符串常量,其长度分别为14和13(空格也是一个字符)。2024/9/15C语言程序设计47

如果反斜杠和双引号作为字符串中的有效字符,则必须使用转义字符。例如:(1)C:\msdos\v6.22→"C:\\msdos\\v6.22"

(2)Isay:"Goodbye!"→"Isay:\"Goodbye!\""2.字符串的存储C语言规定:在存储字符串常量时,由系统在字符串的末尾自动加一个‘\0’作为字符串的结束标志。注意:在源程序中书写字符串常量时,不必加结束字符‘\0’,否则画蛇添足。

如果有一个字符串为“CHINA”,则它在内存中的实际存储如下所示:最后一个字符'\0'是系统自动加上的,它占用6字节而非5字节内存空间。CHINA\02024/9/15C语言程序设计48※注意:字符常量'A'与字符串常量"A"是两回事:(1)定界符不同:字符常量使用单引号,而字符串常量使用双引号;(2)长度不同:字符常量的长度固定为1,而字符串常量的长度,可以是0,也可以是某个整数;(3)存储要求不同:字符常量存储的是字符的ASCII码值,而字符串常量,除了要存储有效的字符外,还要存储一个结束标志’\0’。2024/9/15C语言程序设计492.6各类数据混合运算

整型、实型(包括单、双精度)、字符型数据可以混合运算。例如:10+'a'+1.5-8765.1234*'b‘

各类数据混合运算时,先转换成同一种类型,然后进行运算。转换规则如图2-2所示。图2-2数据混合运算转换规则2024/9/15C语言程序设计501.

自动转换整型、实型和字符型数据间进行混合运算,系统可自动进行数据类型转换。如果一个运算符两侧的操作数的数据类型不同,则系统按“先转换、后运算”的原则,首先将数据自动转换成同一类型,然后在同一类型数据间进行运算。转换规则如图2-2所示。(1)横向向左的箭头,表示必须的转换。char和short型必须转换成int

型,float型必须转换成double型。(2)纵向向上的箭头,表示不同类型的转换方向。例如,int型与double型数据进行混合运算,则先将int型数据转换成double型,然后在两个同类型的数据间进行运算,结果为double型。2024/9/15C语言程序设计51例如:若已定义以下变量inti;floatf;doubled;longe;则计算式:100+'a'+i*f-d/e的运算次序是:

a.进行100+‘a’运算。先将‘a’转换为整数97,运算结果为整数197。

b.进行i*f运算。先将i和f均转换为double类型(实运算过程总是使用double类型,仅在把结果存入存储器时,才可能使用float类型),运算结果是double类型。

c.整数197与i*f的积相加。先将整数197转换为double类型(197.0),运算结果是double类型(假设值为A)。

d.进行d/e运算。先将longe转换为double类型,运算结果是double类型(假设值为B)。

e.最后进行A-B的运算,结果为double类型。2024/9/15C语言程序设计522.除自动转换外,C语言也允许强制转换。数据类型强制转换的一般格式为:(要转换成的数据类型标识符)(被转换的表达式)例如:(double)a(等价于(double)(a))/*将变量a的值转换成double型*/(int)(x+y)

/*将x+y的结果转换成int型*/(float)5/2

(等价于:(float)(5)/2)

/*将5转换成实型,再除以2,等于2.5*/(float)(5/2)

/*将5整除2的结果(2)转换成实型(2.0)*/(float)(5%3)

/*将5%3的值转换为float类型*/2024/9/15C语言程序设计53说明:(1)强制类型转换时,得到一个所需类型的中间变量,原来变量的类型不发生变化。例如:(int)x只是将变量x的值转换成一个int型的中间量,其数据类型并未转换成int型,即变量x的类型不发生变化。(2)当被转换的表达式是一个简单表达式时,外面的一对圆括号可以省略不写。2024/9/15C语言程序设计542.7运算符与表达式运算符类别举例自增、自减运算符++、--算术运算符+、-、*、/、%关系运算符>、<、==、>=、<=、!=逻辑运算符!、&&、||位运算符<<、>>、~、|、^、&赋值运算符=条件运算符?、:逗号运算符,指针运算符*、&(在第8章介绍)其他sizeof、.、->(在第9章后介绍)C语言的运算符非常丰富,主要有:算术运算符、关系运算符、逻辑运算符与按位运算符,除此之外,还有一些用于完成特殊任务的运算符。如表2-5所示。2024/9/15C语言程序设计552.7.1算术运算符和算术表达式1.算术运算符算术运算符共有5种,如表2-6所示。运算符号作用+加法运算符,如:3+5正值运算符,如:+3-减法运算符,如:5-2负值运算符,如:-3*乘法运算符,如:3*5/除法运算符,如:15/2表示求15除以2的商,结果(“向零取整”)为商的整数部分7%求模运算符(又称求余运算符),如:15%2表示求15除以2的余数部分12024/9/15C语言程序设计562.算术表达式①表达式的概念用运算符和括号将运算对象(常量、变量和函数等)连接起来的、符合C语言语法规则的式子,称为表达式。单个常量、变量或函数,可以看作是表达式的一种特例。将单个常量、变量或函数构成的表达式称为简单表达式,把其它的表达式称为复杂表达式。②算术表达式的概念运算符全部是算术运算符的表达式。如:8+6*5、(x+y)/2-z等,都是算术表达式。2024/9/15C语言程序设计573.算术运算符的优先级与结合性①运算符的结合性所谓结合性是指当一个操作数两侧的运算符具有相同的优先级时,该操作数是先与左边的运算符结合,还是先与右边的运算符结合,自左向右的结合方向,称为左结合性。反之,称为右结合性。除求负、逻辑非运算符、赋值运算符和条件运算符是“右结合性”外,其它运算符都是“左结合性”。②运算符的优先级所谓优先级是指运算符在进行计算时的先后顺序。如果在一个运算对象(或称操作数)两侧的运算符的优先级相同,则按运算符结合性规定的结合方向进行运算。2024/9/15C语言程序设计58③算术表达式中运算符的优先级与结合性优先级:先乘除(乘与除为同级运算)、后加减(加与减为同级运算);若有括号,则先算括号内的。结合性:为左结合(即:先左后右)。例如,在执行“a–b+c”时,变量b先与减号结合,执行“a-b”;然后再执行加c的运算。2.7.2自增与自减运算符自增与自减运算符是C语言特有的两种非常有用的运算符。其中:自增运算符为"++",表示操作数加1;自减运算符为"--",表示操作数减1。2024/9/15C语言程序设计591.功能自增运算使单个变量的值增1,自减运算使单个变量的值减1。有以下四种形式:++i;/*在使用i之前使i加1*/--i;/*在使用i之前使i减1*/i++;/*在使用i之后使i加1*/i--;/*在使用i之后使i减1*/例如:x=m++表示将m的值赋给x后,m加1。

x=++m表示m先加1后,再将新值赋给x。从上例可知:x=m++和x=++m有很大差别。2024/9/15C语言程序设计602.用法自增、自减运算符都有两种用法:(1)前置运算──运算符放在变量之前:++变量、--变量,先使变量的值增(或减)1,然后再以变化后的值参与其它运算,即:先增减、后运算。例如:i=3;j=++i;

/*先使i加1,再赋给j。执行完语句后:j=4,i=4*/(2)后置运算──运算符放在变量之后:变量++、变量--,变量先参与其它运算,然后再使变量的值增(或减)1,即:先运算、后增减。例如:i=3;k=(i++)+(i++)+(i++);/*i++:先使用i,再加1。执行后:k=3+3+3=9,i=6*/

2024/9/15C语言程序设计61想一想:执行完以下语句后i,j,k的值是多少?为什么?i=3;j=i++;k=(++i)+(++i)+(++i);

※注意:++和--的结合方向为“右结合”。例:-i++等价于:-(i++),而不是等价于:(-i)++,因为负值运算符“-”和自增运算符优先级相同。2024/9/15C语言程序设计62【例2-2】

自增、自减运算符的用法示例。main(){

intx=6,y;

printf("x=%d\n",x);/*输出x的初值*/ y=++x;/*前置运算*/

printf("y=++x:x=%d,y=%d\n",x,y); y=x--;/*后置运算*/

printf("y=x--:x=%d,y=%d\n",x,y);}程序运行结果:x=6y=++x:x=7,y=7y=x--:x=6,y=7想一想:若将“y=++x;”改为(y=x++;),“y=x--;”改为(y=--x;),结果会如何?2024/9/15C语言程序设计633.说明(1)自增、自减运算,常用于循环语句中,使循环控制变量加(或减)1,以及用于指针变量中,使指针指向下(或上)一个地址。(2)自增、自减运算符,只能用于变量,不能用于常量和表达式。例如,5++、--5、--(a+b)、(a+b)--等都是非法的。又如:#defineONE1;ONE++;也是错误的写法。(3)出现多个运算符时,编译器在处理时尽可能多的(从左到右)将若干个字符组合成一个运算符。例:i+++j等价于(i++)+j;而不是i+(++j)(4)在表达式中,连续使同一变量进行自增或自减运算时,很容易出错,所以最好避免这种用法。2024/9/15C语言程序设计642.7.3赋值运算符和赋值表达式1.赋值运算赋值符号“=”就是赋值运算符。构成赋值表达式的一般形式:变量=表达式

功能:是构成一个赋值表达式,将“=”右边的表达式的值赋给“=”右边的变量。例如:x=3/*将常数3赋值给变量x。常数是特殊的表达式*/y=(float)5/2/*将5.0/2的结果赋值给变量y*/a=b+c+1/*将b+c+1的结果赋值给变量a*/※注意:如果赋值号右边的表达式值的类型与被赋值变量的类型不一致,但都是数值型或字符型时,则系统会自动地将表达式的值转换成被赋值变量的数据类型,然后再赋值给变量。2024/9/15C语言程序设计652.复合赋值运算复合赋值运算符是由赋值运算符之前再加一个双目运算符(如:算术运算符或位运算符)构成的。复合赋值运算的一般格式:变量双目运算符=表达式

└──┬──┘

复合赋值运算符它等价于:变量=变量双目运算符(表达式)。常见的复合赋值运算符共10种,如表2-7所示。2024/9/15C语言程序设计66复合赋值运算符例子语句等价语句复合算术运算符+=a+=3;a=a+3;-=a-=3;a=a–3;*=x*=y+8;x=x*(y+8);而不是x=x*y+8;/=x/=3;x=x/3;%=x%=3;x=x%3;复合位运算符&=x&=2x=x&2^=x^=2x=x^2|=x|=2x=x|2<<=x<<=2x=x<<2>>=x>>=2x=x>>2表2-7复合赋值运算符2024/9/15C语言程序设计673.赋值表达式由赋值运算符或复合赋值运算符,将一个变量和一个表达式连接起来的表达式,称为赋值表达式。(1)一般格式:<变量><(复合)赋值运算符><表达式>例如:x=100(2)赋值表达式的值:被赋值变量的值例如,“x=100”这个赋值表达式,变量x的值“100”就是它的值。(3)说明①赋值表达式与赋值语句的区别在于赋值语句的最后一个字符之后必须有分号(;)。例如:a=5

为赋值表达式,a=5;

为赋值语句。②赋值表达式中的“表达式”也可以是赋值表达式。例如:a=(b=5)/*b的值等于5,表达式b=5的值等于5,因此a的值等于5*/等价于:a=b=5

例如:a+=a-=a*a/*先计算a=a-a*a,再计算a=a+a*/2024/9/15C语言程序设计684.赋值语句中的数据类型转换类型转换是指不同类型的变量混用时的类型改变。当赋值运算符两侧的类型不同时,在赋值前必须进行类型转换。在赋值语句中,类型转换规则是:等号右边的值转换为等号左边变量所属的类型。(1)、float、double转换为int:舍弃(或截断)小数。(2)、int转换为float、double:值不变。例如:main(){inti=15,j=2;/*定义整型变量*/floatf,g=2.58;/*定义浮点型变量*/f=i*j;/*i与j的乘积是整型数30,被转换成为浮点数赋给f*/i=g;/*g中的浮点型数转换成为整型数赋给i*/f=i/2;/*i/2的商是整型数7,被转换成为浮点数赋给f*/f=i/2.0;/*i/2.0的商是浮点数7.5,被直接赋给f*/...}2024/9/15C语言程序设计692.7.4关系运算符及其表达式1.关系运算符“关系运算”实际上就是“比较运算”,即将两个数据进行比较,判定两个数据是否符合给定的关系。如:10>2成立,我们认为其结果为真。C语言提供6种关系运算符,如表2-8所示。关系运算符作用>大于>=大于等于<小于<=小于等于==等于!=不等于2024/9/15C语言程序设计702.关系运算符的优先级①在关系运算符中,前4个优先级相同,后2个也相同,且前4个高于后2个。②关系运算符与算术运算符、赋值运算符的优先级关系(高)算术运算符→关系运算符→赋值运算符(低)例如:

c>a+b等效于c>(a+b)a>b!=c等效于(a>b)!=ca==b<c等效于a==(b<c)a=b>c等效于a=(b>c)2024/9/15C语言程序设计713.关系表达式(1)关系表达式的概念关系表达式是指用关系运算符将两个表达式连接起来,进行比较运算的式子。例如:a>b,a+b>c-d,(a=3)<=(b=5),'a'>='b',(a>b)==(b>c)均为合法的关系表达式。(2)关系表达式的值——逻辑值,即为:真(true)或假(false)。若表达式为真(即true)则返回1,否则,表达式为假(即false),返回0。例如:210>=99返回110<(2-10)返回02024/9/15C语言程序设计722.7.5逻辑运算及其表达式关系表达式只能描述单一条件,如“x>=0”。如果需要描述“x>=0”且“x<10”,就需要借助于逻辑表达式。1.逻辑运算符C语言的逻辑运算符有3种,如表2-9所示。逻辑运算符作用&&逻辑与(相当于“同时”)||逻辑或(相当于“或者”)!逻辑非(相当于“否定”)2024/9/15C语言程序设计732.逻辑运算规则①&&:当且仅当两个运算量的值都为“真”时,运算结果为“真”,否则为“假”。②||:当且仅当两个运算量的值都为“假”时,运算结果为“假”,否则为“真”。③!:当运算量的值为“真”时,运算结果为“假”;当运算量的值为“假”时,运算结果为“真”。例如:假定x=5,则(x>=0)&&(x<10)的值为“真”;(x<-1)||(x>5)的值为“假”。在一个逻辑表达式中,可包含多个逻辑运算符,如:!a&&b||x>y&&c2024/9/15C语言程序设计743.逻辑运算符的运算优先级①逻辑非的优先级最高,逻辑与次之,逻辑或最低,即:!(非)→&&(与)→||(或)②与其它种类运算符的优先关系!→算术运算→关系运算→&&→||→赋值运算例如:(a>b)&&(x>y)可以写为:a>b&&x>y(a==b)||(x==y)可以写为:a==b||x==y(!a)||(a>b)可以写为:!a||a>b2024/9/15C语言程序设计754.逻辑表达式(1)逻辑表达式的概念逻辑表达式是指用逻辑运算符将一个或多个表达式连接起来,进行逻辑运算的式子。逻辑表达式常用于表示多个条件的组合。例如:判断一个字符是否是英文字母的逻辑表达式为(ch>=65)&&(ch<=90)||(ch>=97)&&(ch<=122)

(2)逻辑表达式的值──逻辑值,即:“真(非0)”或“假(0)”。在判断一个表达式是“真”或“假”时,是以0和非0为依据:如果为0,则判定为“逻辑假”;如果为非0,则判定为“逻辑真”。2024/9/15C语言程序设计76(3)说明①逻辑运算符两侧的操作数,可以是任何类型的数据。②在计算逻辑表达式时,并不是所有的表达式都被求解。即:对于逻辑与运算,如果第一个操作数被判定为“假”,系统不再判定或求解第二操作数。对于逻辑或运算,如果第一个操作数被判定为“真”,系统不再判定或求解第二操作数。例如:假设n1、n2、n3、n4、x、y的值分别为1、2、3、4、1、1,则求解表达式“(x=n1>n2)&&(y=n3>n4)”后,x的值变为0,而y的值不变,仍等于1。2024/9/15C语言程序设计772.7.6逗号运算(,)及其表达式逗号运算符即“,”又称顺序求值运算符,常用于将多个表达式串在一起,构成逗号表达式。“,”运算符的左边的表达式总不返回值,而最右边表达式的值才是整个逗号表达式的结果。逗号运算符在所有运算符中优先级最低。1.逗号表达式一般形式

表达式1,表达式2,……,表达式n例如:3+5,21,6+8/*是一个逗号表达式*/2.功能自左向右,依次计算各表达式的值,“表达式n”的值即为整个逗号表达式的结果。例如:“(a=3*5,a*4),a+5”的值是20:先求解a=3*5,得a=15;再求a*4=60;最后求解a+5=20,所以逗号表达式的值等于20。2024/9/15C语言程序设计782.7.7位运算符及其表达式为了节省内存空间,C语言提供了将标志状态从标志字节中分离出来的位运算功能。所谓位运算是指按二进制位进行的运算。1.位运算符及其表达式

C语言和其它高级语言不同的是它完全支持位运算符。这与汇编语言的位操作有些相似。常用的位运算符如表2-11所示。位运算符作用&按位与|按位或^按位异或-按位取反>>右移<<左移2024/9/15C语言程序设计79位运算是对字节或字中的二进制位进行检测、设置或移位,它只适用于字符型和整数型变量以及它们的变形体,对其它数据类型不适用。(1)按位与──&①格式:x&y②规则:对应位均为1时才为1,否则为0。例如,3&9=1:③主要用途:取(或保留)1个数的某(些)位,其余各位置0。

0011&1001────0001=12024/9/15C语言程序设计80(2)按位或──|①格式:x|y②规则:对应位均为0时才为0,否则为1。例如,3|9=11③主要用途:将1个数的某(些)位置1,其余各位不变。

0011|1001────1011=112024/9/15C语言程序设计81(3)按位异或──^①格式:x^y②规则:对应位相同时为0,不同时为1。如:3^9=10。③主要用途:使1个数的某(些)位翻转(即原来为1的位变为0,为0的变为1),其余各位不变。(4)按位取反──~①格式:~x②规则:各位翻转,即原来为1的位变成0,原来为0的位变成1:在IBM-PC机中,~0=0xffff,~9=0xfff6。③

主要用途:间接地构造一个数,以增强程序的可移植性。2024/9/15C语言程序设计82(5)按位左移──<<①格式:x<<位数②规则:使操作数的各位左移,低位补0,高位溢出:5<<2=20。(6)按位右移──>>①格式:x>>位数②规则:使操作数的各位右移,移出的低位舍弃,对无符号数和有符号中的正数,高位补0;对于有符号数中的负数,取决于所使用的系统:高位补0的称为“逻辑右移”,高位补1的称为“算术右移”。例如,20>>2=5。2024/9/15C语言程序设计83【例2-3】

从键盘上输入1个正整数给int变量num,输出由8~11位构成的数(从低位、0号开始编号)。【分析】可分以下3步进行:(1)使变量num右移8位,将8~11位移到低4位上。(2)构造1个低4位为1、其余各位为0的整数mask。(3)将mask与num进行按位与运算。

※注意:位运算中的操作数,只能是整型或字符型数据。除按位取反为单目运算符外,其余均为双目运算符。2024/9/15C语言程序设计84main(){

intnum,mask;

printf("Inputaintegernumber:");

scanf("%d",&num); num>>=8;/*右移8位,将8~11位移到低4位上*/ mask=~(~0<<4);/*间接构造1个低4位为1、其余各位为0的整数*/

printf("result=0x%x\n",num&mask);}程序如下:程序运行情况:Inputaintegernumber:2000result=0x72024/9/15C语言程序设计85【例2-4】

从键盘上输入1个正整数给int变量num,按二进制位输出该数。#include"stdio.h"main(){intnum,mask,i;

printf("Inputaintegernumber:");

scanf("%d",&num);mask=1<<15;/*构造1个最高位为1、其余各位为0的整数*/

printf("%d=",num);for(i=1;i<=16;i++){putchar(num&mask?’1’:’0’);/*输出最高位的值*/num<<=1;/*将次高位移到最高位上*/if(i%4==0)putchar(’,’);/*四位一组,用逗号分开*/}

printf("\bB\n");}程序如下:2024/9/15C语言程序设计862.8运算符的优先级及其结合性C语言规定了运算符的优先次序即优先级。当一个表达式中有多个运算符参加运算时,将按如表2-12所示的运算符的优先次序、结合性进行运算。表2-12中优先级从上往下逐渐降低,同一行优先级相同。

除求负、逻辑非运算符、赋值运算符和条件运算符等是“右结合性”(自右向左)外,其它大部分运算符都是“左结合性”(自左向右)。2024/9/15C语言程序设计87第3章C语句和简单的C程序设计主要内容C语言的语句概述程序的三种基本结构赋值语句数据的输入输出顺序结构程序设计应用举例核心知识点输入输出语句的格式、使用方法赋值语句的使用程序设计的三种基本结构及其特点2024/9/15C语言程序设计88第3章C语句和简单的C程序设计重点难点输入、输出函数的调用规则顺序结构程序的设计方法学习目标了解C语言的基本语句理解程序设计的三种基本结构及其特点掌握赋值语句的使用方法掌握数据输入、输出函数的调用规则和格式控制字符的意义掌握顺序结构程序的设计方法2024/9/15C语言程序设计893.1C语句概述 3.2程序的三种基本结构 3.3赋值语句 3.4数据输入输出 3.5顺序结构的C程序设计举例2024/9/15C语言程序设计90

一个C程序一般包含若干个C语句。C语句可以分为以下七类:1.控制语句

(1)条件语句:if~else(在第4章中介绍)(2)循环语句:for,while,do~while(在第5章中介绍)(3)结束本次循环语句:continue(在第5章中介绍)(4)中止switch或循环语句:break(在第5章中介绍)(5)多分支选择语句:switch~case(在第4章中介绍)

(6)转向语句:goto(在第5章中介绍)(7)从函数返回语句:return(在第7章中介绍)2024/9/15C语言程序设计912.表达式语句:在表达式后面加分号构成。例如:a=3/*后面无分号,是表达式,不是语句*/a=3;/*后面有分号,是语句*/i++;/*为语句,相当于赋值语句i=i+1;*/3.变量定义语句:定义指定类型的变量,也可同时给变量赋初值。例如:inta=3;/*定义整型变量a,并给它赋初值3*/charb;/*定义字符型变量b*/2024/9/15C语言程序设计924.数据类型定义语句:定义新的类型名来代表已有的类型名,以方便用户更好地使用C语言编写程序。例如:typedefcharNAME[10];/*定义NAME为字符数组*/NAMEa,b;/*定义a,b为字符数组*/5.空语句:仅包含一个分号的语句,语句中无实质性内容。例:;/*仅由一个分号组成*/2024/9/15C语言程序设计936.复合语句:由大括号{}括起来的语句序列。例如:

{z=x+y;t=z/100;

printf("%f",t);

}7.函数调用语句:是函数的具体执行部分,用于完成对数据的操作。例如:printf("ThisisaCstatement.");/*该语句是调用printf函数实现字符串输出*/※注意:C语言允许一行写多个语句,每条语句后面必须要有分号;也允许一个语句写多行。[Return]2024/9/15C语言程序设计943.2程序的三种基本结构C语言是理想的结构化程序设计语言。结构化程序的最大特点是以控制结构为单位,每个单位只有一个入口

温馨提示

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

评论

0/150

提交评论