C语言基础编程实战-全套课件 林富荣 第1-16章 概述、C语言环境搭建 -学生信息管理系统_第1页
C语言基础编程实战-全套课件 林富荣 第1-16章 概述、C语言环境搭建 -学生信息管理系统_第2页
C语言基础编程实战-全套课件 林富荣 第1-16章 概述、C语言环境搭建 -学生信息管理系统_第3页
C语言基础编程实战-全套课件 林富荣 第1-16章 概述、C语言环境搭建 -学生信息管理系统_第4页
C语言基础编程实战-全套课件 林富荣 第1-16章 概述、C语言环境搭建 -学生信息管理系统_第5页
已阅读5页,还剩413页未读 继续免费阅读

下载本文档

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

文档简介

概述“C语言基础编程实战第1章01C语言概述C语言的历史01语言的发展历史(1)BCPL语言:BCPL语言是在CPL基础上简化而来的,于1967年在剑桥大学诞生。(2)B语言:以BCPL语言为基础,设计出的简单且很接近硬件的语言(取BCPL的首字母),第一个UNIX系统就是用B语言编写的。1972年,美国贝尔实验室的D.M.Ritchie在B语言的基础上最终设计出了一种新的语言,并取BCPL的第二个字母作为该语言的名字,这就是C语言。(3)《可移植的C语言编译程序》:1978年,C语言正式发布,同时著名的TheCProgrammingLanguage一书发布。很多人可以购买C语言的书籍开始学习C语言。(4)ANSIC:ANSI在这本书的基础上制定了C语言标准,1989年,C语言标准被美国国家标准协会(ANSI)通过,被称为ANSIX3.159-1989"ProgrammingLanguageC",因为这个标准是1989年通过的,所以一般简称为C89标准。1990年,国际标准化组织(ISO)和国际电工委员会(IEC)把C89标准定为C语言的国际标准,命名为ISO/IEC9899:1990"Programminglanguages--C"。因为此标准是在1990年发布的,所以一般简称为C90标准。C语言的历史02什么是C语言C语言是一门面向过程的、抽象化的通用程序设计语言,广泛应用于底层开发。C语言能以简易的方式编译、处理低级存储器。C语言程序是由函数构成的。虽然C语言提供了许多低级处理的功能,但是仍然保持着跨平台的特性,以一个标准规格写出的C语言程序可在包括类似嵌入式处理器以及超级计算机等作业平台的许多计算机平台上进行编译。03C语言简介C语言是一门面向过程的计算机编程语言,与C++、C#、Java等面向对象编程语言有所不同。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、仅产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。C语言描述问题比汇编语言迅速、工作量小、可读性好、易于调试、修改和移植,而代码质量与汇编语言相当。C语言一般只比汇编语言代码生成的目标程序效率低10%~20%。因此,C语言可以编写系统软件。C语言的应用01语言可以编写操作系统C语言可以编写操作系统,如UNIX。UNIX是用C语言编写的,而且是世界上第一个用C语言编写的操作系统。02iOS手机操作系统是由UNIX编写的iOS是由苹果公司开发的移动操作系统,是在UNIX的基础上进行的。UNIX是一种流行的计算机操作系统,被广泛用于服务器、工作站和超级计算机等领域。iOS操作系统基于UNIX的变体,采用了许多UNIX的设计和理念,如进程管理、文件系统、网络协议等。iOS操作系统的核心是Darwin,它是一个开源的UNIX-like操作系统,提供了许多基础的系统服务,如内存管理、进程调度、设备驱动等。苹果公司在Darwin的基础上添加了许多自定义的组件和功能,如Siri语音助手、FaceID面部识别、AppStore应用商店等。因此,可以说,iOS是基于UNIX的操作系统,采用了许多UNIX的特性和技术,并在其基础上进行了创新和扩展。C语言的应用03iOS操作系统是由C语言编写的C语言是一种广泛使用的编程语言,允许程序员直接访问硬件并控制内存,因此被广泛用于操作系统和嵌入式系统的开发。UNIX系统的绝大部分程序是用C语言编写的,只有约占5%的程序用汇编语言编程。C语言是一种高级程序设计语言,使得UNIX系统易于理解、修改和扩充,并且具有非常好的移植性。iOS操作系统的核心层主要由C语言编写,其中也使用了少量汇编语言Objective-C语言的代码。苹果公司的工程师团队在C语言的基础上开发了iOS操作系统的各组件,如内核、文件系统、设备驱动、图形界面等。需要注意的是,虽然iOS操作系统的核心层主要由C语言编写,但其上层的应用层主要使用Objective-C和Swift等高级编程语言。Objective-C是面向对象的C语言,在C语言的基础上添加了面向对象特性和动态性,被广泛用于iOS应用的开发。Swift是苹果公司在2014年推出的一种新型编程语言,具有安全、性能强大、易学易用的特点,也被广泛用于iOS应用的开发。C语言的应用04C语言开发的操作系统有UNIX、Linux和macOSLinux操作系统的内核是用C语言编写的,意味着C语言是Linux开发的首选语言。此外,Linux系统上运行的大部分程序也是运用C语言编写的,包括各种开源软件和工具。因此,学习C语言对于理解和开发Linux系统和Linux开源软件非常重要。此外,Linux系统提供了许多用于开发C语言程序的工具和库,如GCC编译器和GNU工具链。所有工具和库可以帮助开发人员更轻松地编写、调试和测试C语言的程序。macOS操作系统并没有直接运用C语言开发出来。macOS的前身是NextSTEP,而NextSTEP是基于BSDUNIX操作系统开发的。因此,macOS是基于BSDUNIX操作系统开发的,并被认证为UNIX系统,所以macOS属于UNIX系统的正统衍生品,也就是C语言间接开发出macOS操作系统,学习C语言对于开发macOS还是很有帮助的。C语言是一种面向过程的编程语言,需要开发者手动管理内存和资源的分配和释放。macOS是由苹果公司开发的操作系统,使用了许多不同的编程语言和技术,包括C语言。C语言在macOS开发中被广泛使用,提供了一种高效、可靠的方式来访问和控制底层系统资源,因此在编写系统软件时非常有用。需要学习C语言的人群01语言的发展历史计算机相关专业:C语言是计算机相关专业的基础课程,掌握C语言有助于更深入地了解计算机科学。程序员:作为程序员,掌握C语言有助于更好地了解计算机,并具备更广阔的就业机会。硬件工程师:C语言是编写嵌入式系统的主要语言,掌握C语言有助于硬件工程师更好地进行系统设计和开发。数学家和科学家:C语言具有高效性能和数据处理能力,掌握C语言有助于数学家和科学家更好地进行计算和分析。需要学习C语言的人群01语言的发展历史游戏开发者:C语言是游戏开发重要语言,掌握C语言有助于更好地了解游戏引擎和游戏开发流程。数据分析师:C语言这样的专业编程语言将数据分析的相关算法嵌入和封装到软件和系统中,以便让软件和系统实现数据分析的功能。此外,C语言具有效率高、可移植性强等特点,可以更广泛地应用到各类计算机上,形成多种版本的C语言,从而为数据分析提供更多可能性和便利性。兴趣爱好者:许多兴趣爱好者通过学习C语言,可了解到其能开发什么样的应用软件,以此进入编程行业。C语言比较容易上手,适合初学者学习。02C++概述C++语言的历史C++语言是BjarneStroustrup在1983年基于C语言开发的一种高级编程语言。C++的前身是CwithClasses(带类的C语言),是为了处理Simula67所提供的数据抽象的C语言扩展。在C++中,基本的C语言数据类型和语句被保留下来,同时添加了许多新的特性,如类、模板、继承、多态等,这些特性为软件开发带来了更多的便利性和可维护性,使得C++成为一种广泛使用的编程语言。1985年,美国AT&T贝尔实验室的本贾尼·斯特劳斯特卢普发布了C++的第一个版本,包含类、继承和虚函数等面向对象编程的特性。此后,C++逐渐流行,并在各领域得到广泛应用。1998年,C++标准委员会发布了C++98标准,为C++定义了一套正式的语法和语义规范,进一步完善了C++的功能和特性。C++语言的历史C++语言的发展大概可以分为以下三个阶段。第一阶段,20世纪80年代到1995年,C++语言基本上是传统类型上的面向对象语言,并且凭借接近C语言的效率,在工业界使用的开发语言中占据了相当大份额。第二阶段,1995年到2000年,由于标准模板库(stl)和后来的Boost等程序库的出现,泛型程序设计在C++中占据了越来越多的比重。当然,同时由于Java、C#等语言的出现和硬件价格的大规模下降,C++受到了一定的冲击。第三阶段,2000年至今,由于以Loki、MPL等程序库为代表的产生式编程和模板元编程的出现,C++出现了发展历史上又一个新的高峰,这些新技术的出现以及与原有技术的融合,使C++成为当今主流程序设计语言中最复杂的一员。C语言和C++语言面向过程和面向对象:C语言是面向过程语言,即先分析出解决问题的步骤,再将这些步骤一一实现。C++是面向对象语言,即把问题分成若干对象,目的是描述某个事物在解决整个问题的步骤中的行为。关键字不同:C语言中有32个关键字,而C++语言有63个关键字。参数列表:在C语言中,函数没有指定参数列表时,默认可以接收任意多个参数;但在C++语言中,因为严格的参数类型检测,没有参数列表的函数,默认为void,不接收任何参数。此外,二者的编译器不同、函数重载、数据封装和数据隐藏等都有区别。01C语言与C++语言的主要区别C语言和C++语言02C语言和C++语言的关系C++语言是在C语言的基础上增加了新的理论,是衍生产品。在目标上,C++被定位为“abetterC”;在名称上,C++有一个乳名叫作“CwithClasses”;在语法上,C更是C++的一个子集,C++几乎支持C语言的全部功能。掌握了C语言,有了编程的基本功底,学习C++就会更加轻松一些。但是,如果学习能力强,也可以直接学C++。C++是C语言的升级、扩充版本,以C语言为基础,新增了不少特性。下面列出了C语言和其他语言的文件后缀扩展名。C语言源文件的后缀扩展名是.c。C++语言(CPlusPlus)源文件的后缀扩展名是.cpp。Java源文件的后缀扩展名是.java。Python源文件的后缀扩展名是.py。JavaScript源文件的后缀扩展名是.js。03DevC++编辑器概述DevC++的历史DEVC++是一个流行的开源C和C++集成开发环境(IDE),具有简单易用的界面和一系列功能,使得编写、编译和调试C/C++代码变得相对容易。DEVC++的主要特点如下。免费且开源:DEVC++是免费的,并且源代码是开放的,意味着任何人都可以查看和修改源代码。这为开发者提供了一个很好的学习和扩展工具的机会。跨平台:DEVC++可以运行在多种操作系统上,包括Windows、Linux和macOS。这使得开发者可以在不同的操作系统上开发和测试他们的代码。内置编译器:DEVC++包含一个内置的GCC编译器,使得编译和运行代码变得非常简单。调试功能:DEVC++提供了调试功能,包括步进、断点等,使得找出和修复代码中的错误变得更加容易。代码补全和语法高亮:DEVC++支持代码补全和语法高亮,可以帮助开发者更高效地编写代码。工程管理:DEVC++支持管理多个文件和项目,使得组织和管理大型项目变得更容易。DevC++的历史DEVC++是一个流行的开源C和C++集成开发环境(IDE),具有简单易用的界面和一系列功能,使得编写、编译和调试C/C++代码变得相对容易。DEVC++的主要特点如下。免费且开源:DEVC++是免费的,并且源代码是开放的,意味着任何人都可以查看和修改源代码。这为开发者提供了一个很好的学习和扩展工具的机会。跨平台:DEVC++可以运行在多种操作系统上,包括Windows、Linux和macOS。这使得开发者可以在不同的操作系统上开发和测试他们的代码。内置编译器:DEVC++包含一个内置的GCC编译器,使得编译和运行代码变得非常简单。调试功能:DEVC++提供了调试功能,包括步进、断点等,使得找出和修复代码中的错误变得更加容易。代码补全和语法高亮:DEVC++支持代码补全和语法高亮,可以帮助开发者更高效地编写代码。工程管理:DEVC++支持管理多个文件和项目,使得组织和管理大型项目变得更容易。小熊猫DevC++的概述小熊猫DEVC++是一款由中国开发者royqh1979开发的免费集成开发环境(IDE),主要用于C和C++语言的开发,也就是支持C和C++编程语言。它提供了许多常用的功能,如代码编辑器、编译器、调试器等,可以帮助用户快速开发C/C++程序。小熊猫DEVC++具有以下特点。免费易用:小熊猫DEVC++是完全免费的,不需要向开发者收取任何费用,还具有简单易用的界面,使初学者可以快速上手。跨平台支持:与许多其他IDE一样,小熊猫DEVC++可以运行在多种操作系统上,如Windows、Linux和macOS等。这使得开发者可以在不同的操作系统上开发和测试他们的代码。内置编译器:小熊猫DEVC++包含了GCC和TDM-GCC编译器,这使得编译和运行代码变得非常简单。代码补全和语法高亮:小熊猫DEVC++支持代码补全和语法高亮功能,可以帮助开发者更高效地编写代码。调试功能:小熊猫DEVC++提供了基本的调试功能,包括步进、断点等,使得找出和修复代码中的错误变得更加容易。项目管理:小熊猫DEVC++支持管理多个文件和项目,使得组织和管理大型项目变得更容易。谢谢观看“C语言基础编程实战C语言环境搭建“C语言基础编程实战第2章01安装软件DevC++步骤1:从网络上下载DevC++的中文安装包,如图2-1所示。步骤2:双击“Dev_C++.exe”安装文件,弹出安装对话框,如图2-2所示。步骤3:单击“OK”按钮,表示同意安装,弹出“许可证协议”对话框,如图2-3所示。步骤4:单击“我接受”按钮,弹出“选择组件”对话框,组件是默认全选,所需空间为182.2MB,如图2-4所示。步骤5:单击“下一步”按钮,弹出“选择安装位置”对话框,默认安装位置即可,如图2-5所示。步骤6:单击“安装”按钮,弹出“正在安装”对话框,此时程序正在安装,显示“RedPandaDev-C++6.7.5正在安装,请稍候。”的提示内容,如图2-6所示。步骤7:安装程序结束后,默认选中“运行RedPandaDev-C++6.7.5(R)”复选框,并单击“完成”按钮,如图2-7所示。02打开软件DevC++步骤1:进入程序的设置页面,选择程序的语言,建议选择“简体中文/Chinese”,如图2-8所示。步骤2:单击“Next”按钮,弹出设置主题界面,可以设置字体、配色、菜单图标大小、工具栏图标大小、标签页图标大小等,如图2-9所示。步骤3:单击“Next”按钮,显示Dev-C++已设置成功,如图2-10所示。步骤4:单击“OK”按钮,弹出DEV-C++软件的界面,说明已经成功地打开了软件,如图2-11所示。03新建DevC++文件步骤1:单击按钮或者按Ctrl+N快捷键,即可新建代码,如图2-12所示。步骤2:新建成功后,文件名显示为“未命名1”,此时在窗口中已经可以输入代码,如图2-13所示。步骤3:输入以下代码。#include<stdio.h>intmain(){

printf("林富荣");return0;步骤4:输入C语言代码后,界面显示如图2-14所示。步骤5:在菜单栏中单击按钮,弹出“保存为”对话框,在“文件名”文本框中输入“lfr.c”。在“保存类型”下拉列表框中选择“Csourcefiles(*.c)”,可见扩展名“*.c”是C语言源文件,如图2-15所示。步骤6:单击“保存”按钮,弹出“Confirm”对话框,显示文字内容“源代码未编译。是否立刻编译?”,然后单击“Yes”按钮,如图2-16所示。步骤5:在菜单栏中单击按钮,弹出“保存为”对话框,在“文件名”文本框中输入“lfr.c”。在“保存类型”下拉列表框中选择“Csourcefiles(*.c)”,可见扩展名“*.c”是C语言源文件,如图2-15所示。步骤6:单击“保存”按钮,弹出“Confirm”对话框,显示文字内容“源代码未编译。是否立刻编译?”,然后单击“Yes”按钮,如图2-16所示。步骤7:编译成功后,弹出程序运行成功窗口,并显示正确的内容:“林富荣”,说明程序已经安装成功,C语言程序能够正确运行,如图2-17所示。步骤8:软件界面的文件名变为“lfr.c”,如图2-18所示。谢谢观看“C语言基础编程实战C语言基础“C语言基础编程实战第3章01运用printf()函数编写第一行代码步骤1:打开DevC++编辑器,选择“文件→新建→源代码”菜单命令,创建一个新文件,如图3-1所示。步骤2:输入以下代码。#include<stdio.h>intmain(){printf("HelloWorld!");return0;}步骤3:输入代码后的效果如图3-2所示。步骤4:按快捷键F10执行命令,由于文件未命名,此时弹出“保存为”对话框,设置文件名为“printf.c”,保存类型为“Csourcefiles(*.c)”,如图3-3所示。步骤5:单击“保存”按钮,弹出“Confirm”对话框,如图3-4所示。步骤1:进入程序的设置页面,选择程序的语言,建议选择“简体中文/Chinese”,如图2-8所示。步骤2:单击“Next”按钮,弹出设置主题界面,可以设置字体、配色、菜单图标大小、工具栏图标大小、标签页图标大小等,如图2-9所示。步骤6:单击“Yes”按钮,源代码立刻编译,编译成功后显示如图3-5所示。02运用%d的方法输出整数(printf())步骤1:打开DevC++编辑器,选择“文件→新建→源代码”菜单命令,创建一个新文件,显示文件名为“未命名1”,如图3-6所示。步骤2:选择“文件→另存为”菜单命令,弹出“保存为”对话框,如图3-7所示。步骤3:设置文件名为“lfr.c”,保存类型为“Csourcefiles(*.c)”,如图3-8所示。步骤4:单击“保存”按钮,此时文件名从“未命名1”变为“lfr.c”,如图3-9所示。步骤5:输入以下代码。#include<stdio.h>intmain(){intyuwen_score=95;

printf("语文成绩是:%d\n",yuwen_score);return0;}步骤6:输入代码后的效果如图3-10所示。步骤7:按快捷键F10执行命令,弹出“Confirm”对话框,显示“源文件比可执行文件更新,需要重编译吗?”,如图3-11所示。步骤8:单击“Yes”按钮,源代码立刻编译,编译成功后显示如图3-12所示。03运用puts()函数编写第一行代码步骤1:输入以下代码。#include<stdio.h>intmain(){puts("HelloWorld!");return0;}

步骤2:输入代码后的效果如图3-17所示。步骤3:按快捷键F10执行命令,弹出“Confirm”对话框,如图3-18所示。步骤4:单击“Yes”按钮,源代码立刻编译,编译成功后显示如图3-19所示。04运用指针的方法输出字符(puts())步骤1:输入以下代码。#include<stdio.h>intmain(){char*yuwen="92";输入以下代码。步骤2:输入代码后的效果如图3-20所示。步骤3:按快捷键F10执行命令,弹出“Confirm”对话框,如图3-21所示。步骤4:单击“Yes”按钮,源代码立刻编译,编译成功后显示如图3-22所示。05空白符步骤1:输入以下代码。#include<stdio.h>intmain(){

printf("A广东省深圳市罗湖区\n");

printf("B广东省深圳市罗湖区\n");

printf("C广东省深圳市罗湖区\n");

printf("D广东省深圳市罗湖区\n");return0;}步骤2:输入代码后的效果如图3-23所示。步骤3:按快捷键F10执行命令,弹出“Confirm”对话框,如图3-24所示。步骤4:单击“Yes”按钮,源代码立刻编译,编译成功后显示如图3-25所示。06注释步骤1:输入以下代码。#include<stdio.h>intmain(){

printf("深圳市\n");//这是一个城市名

printf("林富荣\n");//这是作者的姓名

return0;}输入命令后,可见“//”及后面的文字显示了绿色,单行注释成功,如图3-26所示。步骤2:按快捷键F10执行命令,弹出“Confirm”对话框,如图3-27所示。步骤3:单击“Yes”按钮,源代码立刻编译,编译成功后显示如图3-28所示。07保存源文件步骤1:如果代码修改过,或者新建的代码未保存过,那么左上角的文件名会显示“[*]”,如图3-33所示。步骤2:执行菜单栏中的“文件”命令,可见保存的功能,如图3-34所示。步骤3:执行“文件→保存”菜单命令,文件保存成功,这样就没有“[*]”的提示符了,如图3-35所示。步骤4:验证文件是否保存成功,可以找到名为lfr.c的文件,查看修改日期是否为保存的时间,若日期和时间正确,则代表保存文件成功了,如图3-36所示。08打开源文件步骤1:找到C语言的源文件(扩展名为*.c的都是C语言的源文件),如图3-42所示。步骤2:要想打开lfr.c的源文件,选中文件“lfr.c”,如图3-43所示。步骤3:单击鼠标右键,在弹出的快捷菜单中选择“打开方式→Dev-C++IDE”命令,如图3-44所示。步骤4:执行命令后,程序自动运行,并且打开lfr.c源文件,如图3-45所示。09生成EXE文件步骤1:打开C语言的源文件“lfr.c”,如图3-46所示。步骤2:按快捷键F10执行命令,弹出“Confirm”对话框,单击“Yes”按钮,执行程序后,显示如图3-47所示。步骤3:源文件运行过一次后,则自动生成lfr.exe文件。找到源文件的保存路径,可以看到C语言的源文件lfr.c和执行文件lfr.exe,如图3-48所示。步骤4:将执行文件lfr.exe发给朋友,他们打开的文件就查看不到源文件的代码,只能查看到已经执行成功的结果,如图3-49所示。10解决无法执行EXE文件步骤1:学会“system("pause");”的运用方法,输入以下代码。#include<stdio.h>intmain(){

printf("HelloWorld!");

system("pause");//暂停程序,直到用户按任意键继续

return0;}步骤2:输入代码后的效果如图3-50所示。步骤5:按快捷键F10执行命令,弹出“Confirm”对话框,单击“Yes”按钮,执行程序后,显示如图3-51所示。谢谢观看“C语言基础编程实战变量类型“C语言基础编程实战第4章01变量的赋值在C语言中,变量赋值是将一个值存储到一个变量中的操作。赋值操作使用赋值运算符(=)来完成。方法一:在C语言中,赋值的具体格式如下:inta=8;此方法同时定义变量和赋值,这一行代码定义了一个整型变量a,并且直接将它赋值为8。a表示变量名,8表示值,意思是将值8赋值给a变量名。方法二:在C语言中,赋值的具体格式如下:inta;a=8;此方法先定义变量,再赋值。首先定义一个整型变量a,然后使用赋值运算符(=)将整数值8赋值给a。这样,变量a就存储了整数值8。意思同样是将值8赋值给a变量名。02整型(int)在C语言中,整型(int)是一种基本的数据类型,用于存储整数值,可以是正数、负数或零。整型在内存中占用固定大小的存储空间,通常是4字节(32位)或8字节(64位)。在C语言中,整型的范围取决于系统。对于大多数系统,整型(int)可以表示的范围为−2147483648~2147483647。“%d”是用于表示整型的格式说明符。例如:intyuwen;表示定义一个变量名为yuwen的整型变量。yuwen=95表示将值95赋值给整型变量yuwen。03浮点型(float)在C语言中,浮点型(或浮点数)是一种可以表示带有小数点的数值的数据类型。C语言中的浮点型包括float、double和longdouble三种。在C语言中,float是一种基本的数据类型,用于存储单精度浮点数。它占用4字节(32位)的内存空间,可以表示的范围是±1.18×10-8~±3.4×1038。float类型的变量通常用于需要高精度的计算,但需要注意的是,由于其存储空间有限,对于超出其表示范围或精度需求的计算,可能会产生误差。“%f”是用于表示浮点数的格式说明符。备注:由于浮点数的精度限制,舍入可能导致实际值与输出结果略有差异。例如:floatpai=3.1415926表示定义一个变量名为pai的浮点型变量,数值为3.1415926。04字符型(char)在C语言中,字符型(char)是一种基本的数据类型,通常用于存储单个字符或ASCII值。定义字符型变量时,可以使用关键字char来声明,后面紧跟变量名。“%c”是用于表示字符型的格式说明符。例如:charnumber;number是一个字符型变量的名称,可以根据需要将名称更改为适合自己程序的变量名称。char是数据类型的定义,不能修改。例如:charnumber="L"字符型使用char,变量number被初始化为L。05布尔型(bool)在C语言中,没有内置的布尔类型,但通常会使用整型表示布尔值。一般情况下,使用0表示false,1表示true。标准库<stdbool.h>提供了_Bool类型用于表示布尔值。使用_Bool类型的好处是它只有1字节,并且编译器会对其进行优化。06枚举类型(enum)在C语言中,枚举类型(enum)是一种用户自定义的数据类型,可以为一组相关的整数常量定义一个有意义的名称。在C语言中,枚举类型被视为数据类型,用来创建枚举类型的变量并使用。07字符型(char)在C语言中,结构体是一种用户自定义的数据类型,可以包含多个不同类型的数据成员。结构体类型是由关键字struct定义的,用于将多个相关的变量组合成一个整体。例如,结构体为学生,那么学生的变量就有姓名、年龄、班级、语文分数、数学分数、英语分数等;结构体为手机,那么手机的变量就有产品名称、出厂日期、序列号、软件版本等。创建结构体类型的基本语法格式如下:struct结构体名{

成员类型1成员变量1;

成员类型2成员变量2;...

成员类型n成员变量n;};08联合类型(union)在C语言中,联合类型(union)是一种特殊的数据类型,允许在相同的内存位置存储不同的数据类型,但是一次只能存储一个值。联合类型的定义与结构体类型的定义类似,但联合类型的成员是共享相同的内存空间。union的主要目的是节省内存,可使多个变量共享同一块内存空间。结构体类型(struct)和联合类型(union)都是C语言中的数据类型,它们有一些共同点但在以下方面存在区别。0102struct中的成员是顺序排列的,每个成员在内存中占用的空间取决于该成员的类型,所有成员共用内存空间,而union也是共用内存空间,但只有最大的成员占用的空间。成员占用的内存空间在struct中,可以同时访问其所有成员,而在union中,一次只能访问一个成员。成员访问方式0304在定义struct或union时,如果没有给其成员指定初始值,则会自动将0赋值给它们。成员的初始值struct可以包含多个不同类型的数据,而union只能包含多个相同类型的变量。存储空间05任何时候都可以访问struct的所有成员,而只有当一个成员的值被释放后才能访问union的另一个成员。成员访问09指针类型01020304通过指针,可以间接访问内存中的数据,而不需要知道数据的具体地址,使程序可以更加灵活地操作数据。例如,通过指针修改变量的值,或者访问数组中的元素等。间接访问在函数调用时,指针可以作为参数传递给函数,使函数可以修改调用方的数据。例如,通过指针修改数组中的元素,或者修改变量的值等。函数参数传递使用指针可以避免在数据结构中重复存储相同的数据地址,从而节省空间。例如,使用指针可以方便地将相同的数据结构链接起来,而不需要为每个结构都存储完整的地址信息。节省空间在函数调用时,指针可以作为参数传递给函数,使函数可以修改调用方的数据。例如,通过指针修改数组中的元素,或者修改变量的值等。动态内存分配10void类型010203灵活性:使用void可以使代码更加灵活。例如,要编写一个函数,这个函数可能不需要返回任何值,或者可能不需要任何输入参数,这时就可以使用void类型,使函数定义更加简洁。可读性:使用void可以提高代码的可读性。当看到一个void类型的函数时,读者可以清楚地知道这个函数不返回任何值。同样,查看到一个void*类型的变量,读者可以明白这个变量是一个通用指针,可以指向任何类型的数据。通用性:void类型可以用于创建通用的数据结构。例如,可以创建一个void*类型的数组,这个数组可以存储任何类型的数据。这在需要动态分配内存时非常有用。11转义字符在C语言中,转义字符是以反斜杠(\)开头的特殊字符,具有特殊含义,通常用于表示不可直接输入的字符或具有特殊含义的字符。常见的C语言转义字符如下。(1)\n:换行符,用于将输出移到下一行。(2)\t:制表符,用于在输出中添加制表位。(3)\b:退格符,用于将输出向左移动一个字符位置。(4)\r:回车符,用于将输出移到行尾。(5)\:反斜杠符号本身,用于转义其他字符。(6)'':空格符,用于在字符串中添加空格,是一个单字符类型。(7)\0:空字符,用于表示字符串的结束。12数据类型转换在C语言中,数据类型转换(类型转换)是常见的操作。C语言支持隐式类型转换和显式类型转换两种方式。隐式类型转换(ImplicitTypeConversion)隐式类型转换是C语言编译器自动进行的类型转换,通常发生在表达式中,涉及不同的数据类型。例如:inta=3;floatb=2.8;floatresult=a+b; //隐式类型转换:int->float显式类型转换(ExplicitTypeConversion)显式类型转换也称为强制类型转换,是程序员明确要求的类型转换。例如:inta=8;floatb=(float)a; //显式类型转换:int->float谢谢观看“C语言基础编程实战运算符“C语言基础编程实战第5章C语言的运算符可以用于加法、减法、乘法、除法等算术运算,也可以用于比较大小、逻辑运算等操作。另外,C语言的运算符可以用于位运算、条件运算、类型转换、指针操作等特殊操作。不同的运算符可以使程序更加简洁清晰,并且可以完成各种复杂的计算和操作。C语言有多种运算符,下面介绍一些常见的运算符。1.算术运算符:用于基本的算术运算,包括加(+)、减(-)、乘(*)、除(/)和取余(%)。2.赋值运算符:用于将右侧的值赋给左侧的变量,包括等于(=)、加等于(+=)、减等于(-=)、乘等于(*=)、除等于(/=)和模等于(%=)。3.比较运算符:用于比较两个值,包括大于(>)、小于(<)、大于或等于(>=)、小于或等于(<=)、等于(==)和不等于(!=)。4.逻辑运算符:用于逻辑运算,包括与(&&)、或(||)和非(!)。5.位运算符:用于对二进制位进行操作,包括按位与(&)、按位或(|)、按位异或(^)、按位取反(~)、左移(<<)、右移(>>)。6.条件运算符(三目运算符):用于简化if-else语句的写法,格式为“表达式1?表达式2:表达式3”。7.类型转换运算符:用于强制转换数据类型,包括带有空格的“()”和不带空格的“()”。8.指针运算符:用于操作指针,包括取地址运算符(&)和间接引用运算符(*)。9.复合赋值运算符:用于简化赋值运算符的写法,包括加法赋值运算符(+=)和减法赋值运算符(-=)等。10.增量运算符:用于增加或减少变量的值,包括自增运算符(++)和自减运算符(--)。01加法运算符步骤1:加法运算符#include<stdio.h>intmain(){inta=1983;intb=10;printf("%d",a+b);return0;}<code/:>PHPHTML5步骤2:输入代码后的效果如图5-1所示。步骤3:按快捷键F10执行命令,弹出“Confirm”对话框,单击“Yes”按钮,执行程序后,显示如图5-2所示。02减法运算符步骤1:输入以下代码。#include<stdio.h>intmain(){inta=1983;intb=10;printf("%d",a-b);return0;}步骤2:输入代码后的效果如图5-3所示。步骤3:按快捷键F10执行命令,弹出“Confirm”对话框,单击“Yes”按钮,执行程序后,显示如图5-4所示。03乘法运算符步骤1:输入以下代码。#include<stdio.h>intmain(){inta=3;intb=9;

printf("%d",a*b);return0;}步骤2:输入代码后的效果如图5-5所示。步骤3:按快捷键F10执行命令,弹出“Confirm”对话框,单击“Yes”按钮,执行程序后,显示如图5-6所示。04除法运算符步骤1:输入以下代码。#include<stdio.h>intmain(){inta=12;intb=3;

printf("%d",a/b);return0;}步骤2:输入代码后的效果如图5-7所示。步骤3:按快捷键F10执行命令,弹出“Confirm”对话框,单击“Yes”按钮,执行程序后,显示如图5-8所示。05取余运算符步骤1:输入以下代码。#include<stdio.h>intmain(){inta=10;intb=3;

printf("%d",a%b);return0;}步骤2:输入代码后的效果如图5-9所示。步骤3:按快捷键F10执行命令,弹出“Confirm”对话框,单击“Yes”按钮,执行程序后,显示如图5-10所示。06自增运算符步骤1:输入以下代码。#include<stdio.h>intmain(){inta=7;

printf("原始的值:%d\n",a);a++;

printf("自增后的值:%d\n",a);return0;}步骤2:输入代码后的效果如图5-11所示。步骤3:按快捷键F10执行命令,弹出“Confirm”对话框,单击“Yes”按钮,执行程序后,显示如图5-12所示。07自减运算符步骤1:学习--a的前缀自减运算符的运用,输入以下代码。#include<stdio.h>intmain(){inta=7;

printf("原始的值:%d\n",a);intb=--a*3;

printf("自减后的值:%d\n",b);return0;}步骤2:输入代码后的效果如图5-17所示。步骤3:按快捷键F10执行命令,弹出“Confirm”对话框,单击“Yes”按钮,执行程序后,显示如图5-18所示。08加等于运算符步骤1:输入以下代码。#include<stdio.h>intmain(){inta=3;a+=5;//等同于a=a+5;

printf("a的值现在是:%d\n",a);//输出:a的值现在是:8return0;}步骤2:输入代码后的效果如图5-21所示。步骤3:按快捷键F10执行命令,弹出“Confirm”对话框,单击“Yes”按钮,执行程序后,显示如图5-22所示。09减等于运算符步骤1:输入以下代码。#include<stdio.h>intmain(){inta=7;a-=5; //等同于a=7-5;

printf("a的值现在是:%d\n",a); //输出:a的值现在是:2return0;}步骤2:输入代码后的效果如图5-23所示。步骤3:按快捷键F10执行命令,弹出“Confirm”对话框,单击“Yes”按钮,执行程序后,显示如图5-24所示。10乘等于运算符步骤1:输入以下代码。#include<stdio.h>

intmain(){inta=7;a*=5; //等同于a=7*5;

printf("a的值现在是:%d\n",a); //输出:a的值现在是:35return0;}步骤2:输入代码后的效果如图5-25所示。步骤3:按快捷键F10执行命令,弹出“Confirm”对话框,单击“Yes”按钮,执行程序后,显示如图5-26所示。11除等于运算符步骤1:输入以下代码。#include<stdio.h>

intmain(){inta=10;a/=5;

//等同于a=10/5;

printf("a的值现在是:%d\n",a);//输出:a的值现在是:2return0;}步骤2:输入代码后的效果如图5-27所示。步骤3:按快捷键F10执行命令,弹出“Confirm”对话框,单击“Yes”按钮,执行程序后,显示如图5-28所示。12模等于运算符步骤1:输入以下代码。#include<stdio.h>intmain(){inta=9;a%=5; //等同于a=9%5;

printf("a的值现在是:%d\n",a); //输出:a的值现在是:4return0;}步骤2:输入代码后的效果如图5-29所示。步骤3:按快捷键F10执行命令,弹出“Confirm”对话框,单击“Yes”按钮,执行程序后,显示如图5-30所示。13大于运算符步骤1:输入以下代码。#include<stdio.h>intmain(){inta=9;intb=7;if(a>b){

printf("a>b正确\n");}else{

printf("a>b错误\n");}return0;}步骤2:输入代码后的效果如图5-31所示。步骤3:按快捷键F10执行命令,弹出“Confirm”对话框,单击“Yes”按钮,执行程序后,显示如图5-32所示。可见a>b,也就是9>7,是正确的。显示a>b正确,也就是大于运算符运用成功。14大于运算符步骤1:输入以下代码。#include<stdio.h>intmain(){inta=9;intb=7;intc;if(a<b){c=1;}else{c=0;}

printf("a小于b的结果:%d\n",c); return0;}步骤2:输入代码后的效果如图5-35所示。步骤3:按快捷键F10执行命令,弹出“Confirm”对话框,单击“Yes”按钮,执行程序后,显示如图5-36所示。代码可见a<b,也就是9<7,是错误的。显示a<b的结果为0,也就是小于运算符运用成功。15大于或等于运算符步骤1:输入以下代码。#include<stdio.h>intmain(){inta=9;intb=7;if(a>=b){

printf("a>=b正确\n");}else{

printf("a>=b错误\n");}return0;}步骤2:输入代码后的效果如图5-37所示。步骤3:按快捷键F10执行命令,弹出“Confirm”对话框,单击“Yes”按钮,执行程序后,显示如图5-38所示。16小于或等于运算符步骤1:输入以下代码。#include<stdio.h>intmain(){inta,b;

printf("请输入a和b的值:\n");scanf("%d%d",&a,&b); //从键盘输入a和b的值

if(a<=b){

printf("a小于或等于b\n");}else{

printf("a大于b\n");}return0;}步骤2:输入代码后的效果如图5-41所示。步骤3:按快捷键F10执行命令,弹出“Confirm”对话框,单击“Yes”按钮,执行程序后,输入值8和8,显示如图5-42所示。可见a<=b,也就是8<=8,是正确的。显示“a小于或等于b”正确,也就是小于或等于运算符运用成功。步骤4:重新执行一次程序,按快捷键F10执行命令,弹出“Confirm”对话框,单击“Yes”按钮,执行程序后,输入值9和8,显示如图5-43所示。可见a<=b,即9<=8,是错误的。显示“a大于b”,也就是小于或等于运算符运用成功。17和等于运算符在C语言中,和等于运算符(==)用于比较两个数值是否相等。如果左侧操作数等于右侧操作数,那么结果为真;否则,结果为假。在C语言中,==和=是两个不同的运算符。(1)=是赋值运算符,表示将一个值赋给一个变量。例如,“inta=1983;”表示将整数值1983赋给变量a。(2)==是和等于运算符,也称为相等运算符,用于比较两个值是否相等。例如,if(a==b){...}表示如果a等于b,就执行括号中的代码块。步骤1:输入以下代码。#include<stdio.h>intmain(){inta,b;

printf("请输入a和b的值:\n");

scanf("%d%d",&a,&b); //从键盘输入a和b的值

if(a==b){

printf("a等于b\n");}else{

printf("a不等于b\n");}return0;}步骤4:重新执行一次程序,按快捷键F10执行命令,弹出“Confirm”对话框,单击“Yes”按钮,执行程序后,输入值97和77,显示如图5-46所示。可见a==b,也就是97==77,是错误的。显示“a不等于b”,也就是和等于运算符运用成功。18不等于运算符步骤1:输入以下代码。#include<stdio.h>intmain(){inta,b;

printf("请输入a和b的值:\n");

scanf("%d%d",&a,&b);//从键盘输入a和b的值

if(a!=b){

printf("a不等于b\n");}else{

printf("a等于b\n");}return0;}步骤2:输入代码后的效果如图5-47所示。步骤3:按快捷键F10执行命令,弹出“Confirm”对话框,单击“Yes”按钮,执行程序后,输入值77和99,显示如图5-48所示。可见a!=b,也就是77!=99,是正确的。显示“a不等于b”,也就是不等于运算符运用成功。19逻辑与运算符步骤1:输入以下代码。#include<stdio.h>intmain(){inta,b;

printf("请输入a和b的值:\n");

scanf("%d%d",&a,&b);//从键盘输入a和b的值

if(a>27&&b<27){

printf("两个条件都正确\n");}else{

printf("一个或两个条件错误\n");}return0;}步骤2:输入代码后的效果如图5-49所示。步骤3:按快捷键F10执行命令,弹出“Confirm”对话框,单击“Yes”按钮,执行程序后,输入值28和26,显示如图5-50所示。可见a=28,28>27是正确的;b=26,26<27也是正确的。显示“两个条件都正确”,也就是逻辑与运算符运用成功。步骤4:重新执行一次程序,按快捷键F10执行命令,弹出“Confirm”对话框,单击“Yes”按钮,执行程序后,输入值28和33,显示如图5-51所示。可见a=28,28>27正确;b=33,33<27错误。显示“一个或两个条件错误”,也就是逻辑运算符运用成功。20逻辑或运算符步骤1:输入以下代码。#include<stdio.h>intmain(){inta,b;

printf("请输入a和b的值:\n");

scanf("%d%d",&a,&b);//从键盘输入a和b的值

if(a>27||b<27){

printf("至少一个条件正确为真\n");}else{

printf("两个条件都错误为假\n");}return0;}步骤2:输入代码后的效果如图5-52所示。步骤3:按快捷键F10执行命令,弹出“Confirm”对话框,单击“Yes”按钮,执行程序后,输入值28和28,显示如图5-53所示。可见a=28,28>27是正确的;b=28,28<27是错误的。显示“至少一个条件正确为真”,也就是逻辑或运算符运用成功。步骤4:重新执行一次程序,按快捷键F10执行命令,弹出“Confirm”对话框,单击“Yes”按钮,执行程序后,输入值3和33,显示如图5-54所示。可见a=3,3>27是错误的;b=33,33<27是错误的。显示“两个条件都错误为假”,也就是逻辑或运算符运用成功。21逻辑非运算符步骤1:输入以下代码。#include<stdio.h>intmain(){inta=1; //非零值,被视为真值

intb=0; //零值,被视为假值

intc=7; //零值,被视为假值

printf("逻辑非a为%d\n",!a); //输出“逻辑非a为0”,因为a是非零值,逻辑非运算后为假值

printf("逻辑非b为%d\n",!b); //输出“逻辑非b为1”,因为b是零值,逻辑非运算后为真值

printf("逻辑非c为%d\n",!c);return0;}步骤2:输入代码后的效果如图5-55所示。步骤3:按快捷键F10执行命令,弹出“Confirm”对话框,单击“Yes”按钮,执行程序后,显示如图5-56所示。可见当a=1,结果!a=0;当b=0,结果!b=1;当c=7,结果!c=0,逻辑非运算符运用成功。谢谢观看“C语言基础编程实战进制和位运算符“C语言基础编程实战第6章01二进制在C语言中,可以使用二进制表示法来表示整数的输入和输出。整数输出一个二进制数,可以运用printf()函数和格式说明符“%b”来实现。二进制是计算技术中广泛采用的一种数制。二进制数据是用0和1两个数码来表示的数。它的基数为2,进位规则是“逢二进一”,借位规则是“借一当二”。二进制是计算机科学的基础,也是计算机系统的基本组成部分。十进制和二进制互转十进制二进制0000000001000000012000000103000000114000001005000001016000001107000001118000010009000010011000001010十进制转换为二进制的手工计算方法一个十进制数转换为二进制数要分整数部分和小数部分分别转换,最后组合到一起。1.整数部分采用“除2取余,逆序排列”法:用2去除十进制整数,可以得到一个商和余数;再用2去除商,又会得到一个商和余数,如此进行,直到商为0为止;然后将先得到的余数作为二进制数的低位有效位,后得到的余数作为二进制数的高位有效位,依次排列起来。2.小数部分采用“乘2取整”法:用2乘以十进制小数,可以得到积,将积中的整数部分取出;再用2乘余下的小数部分,又得到一个积,将积中的整数部分取出,如此进行,直到积中的小数部分为0为止。此时0或1为二进制的最后一位,或者达到所要求的精度为止。然后把取出的整数部分按顺序排列起来,先取得的整数作为二进制小数的高位有效位,后取得的整数作为低位有效位。十进制数13转换为二进制数1101的过程如下。1.13/2=6余1;2.6/2=3余0;3.3/2=1余1;4.1/2=0余1。将余数从下往上连接起来是1101,即二进制数是1101。十进制数0.625转换为二进制数0.101的过程如下。1.小数部分:0.625×2=1.25,取出整数1作为二进制小数的最高位有效位;2.0.25×2=0.5,取出整数0作为低位有效位;3.0.5×2=1,取出整数1作为高位有效位。因此,十进制数0.625转换为二进制数是0.101。02十进制十进制是一种计数方法,它基于10个基本数字(0~9)进行计数。每个数字代表一个固定数值,称为位权。例如,十进制数123表示为1×102+2×102+3×100=100+20+3。在十进制中,每个位置的值是不同的,从右到左,每个位置的值依次增加。例如,在十进制数中,个位表示1,十位表示10,百位表示100,以此类推。二进制转换为十进制的手工计算方法:从二进制数的右边开始,从右到左,将每一位数字乘以2的幂(0次幂、1次幂、2次幂等),然后将得到的所有乘积相加。例如,将二进制数1101转换为十进制数的过程如下。1*2^3=81*2^2=40*2^1=01*2^0=18+4+0+1=13经过计算,二进制数1101转换为十进制数是13。03十六进制在C语言中,十六进制数是以0x或0X开头的数字字符串。它由0~9的数字和A~F的字母(不区分大小写)组成,表示成十六进制的数值。%X是C语言中的格式说明符,用于将数据以十六进制格式输出。例如,十六进制数1A3B可以转换为十进制数67625。04按位与运算符学习了二进制、十进制和十六进制的知识后,读者对进制已经有了初步的理解,才能学懂位运算符的知识。按位与运算符(&)是一种二进制运算符,它对两个操作数的每一个二进制位进行比较,只有当两个操作数的每个二进制位都相同且为1时,结果才为1,否则为0。也就是说,1&1为1,1&0为0,0&1为0,0&0为0。例如,假设A=10101100,B=11001100,则A&B的结果为10001100。计算过程:

A=10101100&B=11001100结果为10001100。05按位或运算符按位或运算符(|)是一种二进制运算符,它对两个操作数的每一个二进制位进行比较,只要两个操作数的对应位有一个为1,结果位就为1。也就是说,1|1为1,1|0为1,0|1为1。例如,假设A=10101100,B=11001100,则A|B的结果为11101100。计算过程:

A=10101100|B=11001100结果为11101100。06按位异或运算符按位异或运算符(^)是一种二进制运算符,它对两个操作数的每一个二进制位进行比较,当两个操作数的对应位不同时,结果为1,相同时结果为0。也就是说,1|1为0,0|0为0,1|0为1,0|1为1。例如,假设A=10101100,B=11001100,则A^B的结果为01100000。计算过程:

A=10101100^B=11001100结果为01100000。07按位取反运算符按位取反运算符(~)是一种二进制运算符,它对一个操作数的每个二进制位进行取反操作,即把1变为0,把0变为1。也就是说,A=1010,~A=0101。示例:A=1010,~A=0101。A=1111,~A=0000。A=1110,~A=0001。A=1100,~A=0011。A=1000,~A=0111。A=0000,~A=1111。08按位左移运算符按位左移运算符(<<)是将二进制表示的整数左移指定的位数。将一个数的二进制表示向左移动指定的位数,并在右侧用零填充空出的位。例如,将整数10(二进制表示为1010)左移2位,得到的结果是40。计算过程如下:1.十进制数10转换为二进制数为1010。2.左移两位(右侧用零填充两位0)后为101000。3.二进制数101000转换为十进制数为40。09按位右移运算符按位右移运算符(>>)是指将二进制表示的整数右移指定的位数。将一个数的十进制除以2的右移位数2的次方数,然后取整。例如,右移5位,就是25;右移3位,就是23。例如,将整数10(二进制数表示为1010)右移3位,得到的结果是1。计算过程如下:1.十进制数10右移3位:23=8。2.10/8=1.25。3.在C语言中,小数点后面的数值会被忽略,所以最终结果会是1。例如,将整数10(二进制数表示为1010)右移2位,得到的结果是2。计算过程如下:1.十进制数10右移2位:22=4。2.10/4=2.5。3.在C语言中,小数点后面的数值会被忽略,所以最终结果会是2。例如,将整数10(二进制数表示为1010)右移1位,得到的结果是5。计算过程如下:1.十进制数10右移2位:21=2。2.10/2=5。3.在C语言中,小数点后面的数值会被忽略,所以最终结果会是5。谢谢观看“C语言基础编程实战输入和输出“C语言基础编程实战第7章01暂停8秒在C语言中,可以使用sleep()函数使程序等待指定的秒数。sleep()函数(在unistd.h头文件中定义)的作用是让程序执行暂停一段时间。使用sleep()函数可以在程序中实现等待、延迟等操作,具体如下。等待用户输入可以使用sleep()函数等待用户按Enter键或其他按键,然后再继续执行程序。模拟延时效果在游戏或动画中,需要使用sleep()函数来实现一些延时效果或动画的帧率控制。例如,登录需要与数据库对接,可以延时等待几秒,先让程序与数据库连接,再显示数据给用户查看,这样数据交互效果就更好。限制程序的执行时间可以使用sleep()函数限制程序的执行时间。例如,让程序最多只能运行5秒钟。让用户观看几秒钟广告,再继续执行程序等。局限性使用sleep()函数有一定的局限性。例如,sleep()函数只能以秒为单位进行延时,并且会占用CPU时间,影响程序的执行效率。在实际应用中,需要根据具体需求选择合适的延时方

温馨提示

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

评论

0/150

提交评论