信息学奥赛培训教程C++版

上传人:gbs****77 文档编号:10834300 上传时间:2020-04-15 格式:DOC 页数:230 大小:1.11MB
返回 下载 相关 举报
信息学奥赛培训教程C++版_第1页
第1页 / 共230页
信息学奥赛培训教程C++版_第2页
第2页 / 共230页
信息学奥赛培训教程C++版_第3页
第3页 / 共230页
点击查看更多>>
资源描述
青少年信息学奥林匹克竞赛培训教程目 录青少年信息学奥林匹克竞赛情况简介5第一章 计算机基础知识71.1 计算机的基本常识71.1.1 计算机的产生与发展71.1.2 计算机系统及工作原理71.1.3 计算机中有关数及编码的知识81.1.4 原码、反码与补码101.1.5 逻辑运算101.2 操作系统111.2.1 DOS(Disk Operating System)的组成111.2.2 DOS的文件和目录111.2.3 DOS命令121.2.4 Windows简介121.3 计算机网络常识131.3.1 网络基础知识131.3.2 Internet简介141.4 计算机信息安全基础知识161.4.1 计算机的网络安全161.4.2 计算机病毒171.4.3 病毒的分类17第2章C+编程简介192.1 机器语言、汇编语言和高级语言192.2 C语言与C+的历史202.3 C+标准库202.4 结构化编程212.5 简单程序222.6 简单程序:两个整数相加252.7 算术运算272.8 判断:相等与关系运算符292.9 新型头文件与名字空间31第3章 C+输入/输出流333.1 简介333.2 流333.2.1 iostream类库的头文件343.2.2 输入/输出流类和对象343.3 输出流353.3.1 流插入运算符353.3.2 连续使用流插入/流读取运算符373.3.3 输出char*类型的变量373.3.4 用成员函数put输出字符和put函数的连续调383. 4 输入流393.4.1 流读取运算符393.4.2 成员函数get和getline413.5 成员函数read、gcount和write的无格式输入/输出443.6 流操纵算子453.6.1 整数流的基数:流操纵算子dec、oct、hex和setbase453.6.2 设置浮点数精度(precision、setprecision)463.6.3 设置域宽(setw、width)473.6.4 用户自定义的流操纵算子483.7 流格式状态493.7.1 格式状态标志503.7.2 尾数零和十进制小数点(ios:showpoint)503.7.3 对齐(ios:left、ios:right、ios:internal)513.7.4 设置填充字符(fill、setfill)533.7.5 整数流的基数:(ios:dec、ios:oct、ios:hex、ios:showbase)543.7.6 浮点数和科学记数法(ios:scientific、ios:fixed)553.7.7 大/小写控制(ios:upercase)563.7.8 设置及清除格式标志(flags、setiosflags、resetosflags)573.8 流错误状态58第4章 文件处理614.1 简介614.2 文件和流614.3 建立并写入文件614.4 读取文件中的数据654.5 更新访问文件67第5章 C+的字符串流685.1 流的继承关系685.2 字串流的输入操作685.3 字串流的输出操作695.4 字串流在数据类型转换中的应用705.5 输入/输出的状态标志71第6章 控制结构746.1 简介746.2 算法746.3 控制结构746.4 if选择结构756.5 if/else选择结构766.6 while重复结构786.7 构造算法:实例研究1(计数器控制重复)786.8 构造算法与自上而下逐步完善:实例研究2(标记控制重复)806.9 构造算法与自上而下逐步完善:实例研究3(嵌套控制结构)856.10 赋值运算符886.11 自增和自减运算符886.12 计数器控制循环的要点916.13 for重复结构926.14 for结构使用举例946.15 switch多项选择结构976.16 do/while重复结构1016.17 break和continue语句1026.18 逻辑运算符1046.19 混淆相等(=)与赋值(=)运算符1056.20 结构化编程小结106第7章 函数1087.1 简介1087.2 数学函数库1087.3 函数1097.4 函数定义1097.5 头文件1127.6 作用域规则1137.7 递归1167.8 使用递归举例,Fibonacci数列1187.9 递归与迭代1207.10 带空参数表的函数1217.11 内联函数1227.12 函数重载123第8章 数组1258.1 简介1258.2 数组1258.3 声明数组1268.4 使用数组的举例1268.5 将数组传递给函数1378.6 排序数组1418.7 查找数组:线性查找与折半查找1428.8 多维数组147第9章 指针与字符串1539.1 简介1539.2 指针变量的声明与初始化1539.3 指针运算符1549.4 按引用调用函数1569.5 指针与常量限定符1589.6 按引用调用的冒泡排序1639.7 指针表达式与指针算法1679.8 指针与数组的关系1699.9 指针数组1729.10 函数指针1739.11 字符与字符串处理简介1779.11.1 字符与字符串基础1779.11.2 字符串处理库的字符串操作函数179第10章 信息学奥赛中的常用算法18510.1 算法简介18510.2 枚举算法18710.3 回溯算法19110.4 递归算法19310.5 递推算法19610.6 分治算法20010.7 贪心算法20210.8 搜索算法一(深度优先)20510.9 搜索算法二(广度优先)20910.10 动态规划法21210.11 高精度计算215附 录228ASCII表228青少年信息学奥林匹克竞赛情况简介 信息学奥林匹克竞赛是一项旨在推动计算机普及的学科竞赛活动,重在培养学生能力,使得有潜质有才华的学生在竞赛活动中锻炼和发展。近年来,信息学竞赛活动组织逐步趋于规范和完善,基本上形成了“地级市省(直辖市)全国国际”四级相互接轨的竞赛网络。现把有关赛事情况简介如下:全国青少年信息学(计算机)奥林匹克分区联赛: 在举办1995年NOI活动之前,为了扩大普及的面,并考虑到多数省、直辖市、自治区已经开展了多年省级竞赛,举办了首届全国青少年信息学(计算机)奥林匹克分区联赛。考虑到不同年级学生的知识层次,也为了鼓励更多的学生积极参与,竞赛设提高组、普及组,并分初、复赛进行,这样可以形成一个梯队,确保每年的竞赛活动有比较广泛扎实的基础。从1995年起,至2001年共举办了七届全国青少年信息学奥林匹克分区联赛,每年举办一次(下半年十月左右),有选手个人奖项(省、国家级)、选手等级证书、优秀参赛学校奖项。安徽省青少年信息学(计算机)奥林匹克复决赛(简称AHOI): 省级信息学奥赛是一个水平较高的、有较大影响力的学科竞赛。由各市组织代表队参赛,参赛名额实行动态分配制度,每年举办一次(上半年五月左右)。从1984年起安徽省奥林匹克竞赛活动得到了蓬勃发展。奖项有个人一、二、三等奖,女选手第一、二、三名,奖励学校团体总分1-8名、市团体总分1-8名。全国青少年信息学(计算机)奥林匹克竞赛(简称NOI): 由中国算机学会主办的、并与国际信息学奥林匹克接轨的一项全国性青少年学科竞赛活动。1984年举办首届全国计算机竞赛。由各省市组织参赛,每年举办一次。奖项有个人一、二、三等奖,女选手第一、二、三名,各省队团体总分名次排队。国际青少年信息学(计算机)奥林匹克竞赛(简称IOI): 每年举办一次,由各参赛国家组队参赛。 全国青少年信息学(计算机)奥林匹克分区联赛竞赛大纲一、初赛内容与要求:(#表示普及组不涉及,以下同)计 基算 本机 常的 识* 诞生与发展 *特点*在现代社会中的应用* 计算机系统的基本组成* 计算机的工作原理#*计算机中的数的表示* 计算机信息安全基础知识 *计算机网络计 基算 本机 操的 作* MS DOS与Windows的使用基础* 常用输入/输出设备的种类、功能、使用* 汉字输入/输出方法* 常用计算机屏示信息程序设计基本知识程序的表示* 自然语言的描述* PASCAL或BASIC语言数据结构的类型* 简单数据的类型* 构造类型:数组、字符串* 了解基本数据结构(线性表、队列与栈)程序设计* 结构化程序的基本概念* 阅读理解程序的基本能力* 具有完成下列过程的能力:现实世界(指知识范畴的问题)信息世界(表达解法)计算机世界(将解法用计算机能实现的数据结构和算法描述出来)基本算法处理* 简单搜索 * 字串处理* 排序 * 查找* 统计 * 分类 * 合并* 简单的回溯算法* 简单的递归算法二、复赛内容与要求:在初赛的内容上增加以下内容(2008年修改稿):计算机软 件*操作系统的使用知识*编程语言的使用数据结构*结构类型中的记录类型*指针类型*文件(提高组必须会使用文本文件输入)*链表*树*图#程序设计*程序设计能力*设计测试数据的能力*运行时间和占用空间的估算能力#算法处理*排列组合的应用*进一步加深回溯算法、递归算法*分治法*搜索算法:宽度、深度优先算法*表达式处理:计算、展开、化简等#*动态规划#三、初赛试题类型:注:试题语言两者选一(程序设计语言: FREE PASCAL、C、C+)*判断 *填空 *完善程序 *读程序写运行结果 *问答四、推荐读物:*分区联赛辅导丛书 *学生计算机世界报及少年电世界杂志第一章 计算机基础知识1.1 计算机的基本常识1.1.1 计算机的产生与发展计算机的产生是20世纪最重要的科学技术大事件之一。世界上的第一台计算机(ENIAC)于1946年诞生在美国宾夕法尼亚大学,到目前为止,计算机的发展大致经历了四代: 第一代电子管计算机,始于1946年,结构上以CPU为中心,使用计算机语言,速度慢,存储量小,主要用于数值计算; 第二代晶体管计算机,始于1958年,结构上以存储器为中心,使用高级语言,应用范围扩大到数据处理和工业控制; 第三代中小规模集成电路计算机,始于1964年,结构上仍以存储器为中心,增加了多种外部设备,软件得到了一定的发展,文字图象处理功能加强; 第四代大规模和超大规模集成电路计算机,始于1971年,应用更广泛,很多核心部件可集成在一个或多个芯片上,从而出现了微型计算机。 我国从1956年开始电子计算机的科研和教学工作,1983年研制成功1亿/秒运算速度的“银河”巨型计算机,1992年11月研制成功10亿/秒运算速度的“银河II”巨型计算机,1997年研制了每秒130亿运算速度的“银河III”巨型计算机。 目前计算机的发展向微型化和巨型化、多媒体化和网络化方向发展。计算机的通信产业已经成为新型的高科技产业。计算机网络的出现,改变了人们的工作方式、学习方式、思维方式和生活方式。 1.1.2 计算机系统及工作原理1.计算机的系统组成 计算机系统由软件和硬件两部分组成。硬件即构成计算机的电子元器件;软件即程序和有关文档资料。 (1) 计算机的主要硬件 输入设备:键盘、鼠标、扫描仪等。 输出设备:显示器、打印机、绘图仪等。 中央处理器(CPU):包括控制器和运算器运算器,可以进行算术运算和逻辑运算;控制器是计算机的指挥系统,它的操作过程是取指令分析指令执行指令。 存储器:具有记忆功能的物理器件,用于存储信息。存储器分为内存和外存内存是半导体存储器(主存):它分为只读存储器(ROM)和随机存储器(RAM)和高速缓冲存储器(Cache);ROM:只能读,不能用普通方法写入,通常由厂家生产时写入,写入后数据不容易丢失,也可以用特殊方法(如紫外线擦除(EPROM)或电擦除(EEPROM_)存储器);RAM:可读可写,断电后内容全部丢失;Cache:因为CPU读写RAM的时间需要等待,为了减少等待时间,在RAM和CPU间需要设置高速缓存Cache,断电后其内容丢失。 外存:磁性存储器软盘和硬盘;光电存储器光盘,它们可以作为永久存器; 存储器的两个重要技术指标:存取速度和存储容量。内存的存取速度最快(与CPU速 度相匹配),软盘存取速度最慢。存储容量是指存储的信息量,它用字节(Byte)作为基本单位,1字节用8位二进制数表示,1KB=1024B,1MB=1024KB,lGB=1024MB (2)计算机的软件 计算机的软件主要分为系统软件和应用软件两类: 系统软件:为了使用和管理计算机的软件,主要有操作系统软件如,WINDOWS 9598 2000NT40、DOS 60、UNIX等;WINDOWS 95982000NT40是多任务可视化图形 界面,而DOS是字符命令形式的单任务的操作系统。 应用软件:为了某个应用目的而编写的软件,主要有辅助教学软件(CAI)、辅助设计软件(CAD)、文 字处理软件、工具软件以及其他的应用软件。2.计算机的工作原理到目前为止,电子计算机的工作原理均采用冯.若依曼的存储程序方式,即把程序存储在计算机内,由计算机自动存取指令(计算机可执行的命令=操作码+操作数)并执行它。工作原理图如下:1.1.3 计算机中有关数及编码的知识 1.计算机是智能化的电器设备 计算机就其本身来说是一个电器设备,为了能够快速存储、处理、传递信息,其内部采用了大量的电子元件,在这些电子元件中,电路的通和断、电压高低,这两种状态最容易实现,也最稳定、也最容易实现对电路本身的控制。我们将计算机所能表示这样的状态,用0,1来表示、即用二进制数表示计算机内部的所有运算和操作。2.二进制数的运算法则 二进制数运算非常简单,计算机很容易实现,其主要法则是:0+0=0 0+1=1 1+0=1 1+1=0 0*0=0 0*1=0 1*0=0 1*1=1由于运算简单,电器元件容易实现,所以计算机内部都用二进制编码进行数据的传送和计算。3.十进制与二进制、八进制、十六进制数之间的相互转换(1)数的进制与基数计数的进制不同,则它们的基数也不相同,如表1-1所示。进制基数特点二进制0 ,1逢二进一八进制0,1,2,3,4,5,6,7逢八进一十六进制0,1,2,.,9,A,B,C,D,E,F逢十六进一(2)数的权 不同进制的数,基数不同,每位上代表的值的大小(权)也不相同。 如:(219)10=2*102+1*101+9*100 (11010)2=1*24+1*23+0*22+1*21+1*20 (273)8=2*82+7*81+3*80 (27AF)16=2*163+7*162+10*161+15*160 (3)十进制数转换任意进制 1) 将十进制整数除以所定的进制数,取余逆序。 (39)10=(100111)2 (245)10=(365)8 2)将十进制小数的小数部分乘以进制数取整,作为转换后的小数部分,直到为零或精确到小数点后几位。 如:(0.35)10=(0.01011)2 (0.125)10=(0.001)2 (4)任意进制的数转换十进制 按权值展开: 如:(219)10=2*102+1*101+9*100 (11010)2=1*24+1*23+0*22+1*21+1*20=26 (273)8=2*82+7*81+3*80=187 (7AF)16=7*162+10*161+15*160=1867 4.定点数与浮点数 定点数是指数据中的小数点位置固定不变。由于它受到字长范围的限制,所能表示的数的范围有限,计算结果容易溢出。 浮点数的形式可写成:N=M*2E(其中M代表尾数,E代表阶码)其形式如下: 阶码尾数(包括符号位)5.ASCII编码 由于计算机是电器设备,计算机内部用二进制数,这样对于从外部输入给计算机的所有信息必须用二进制数表示,并且对于各种命令、字符等都需要转换二进制数,这样就牵涉到信息符号转换成二进制数所采用的编码的问题,国际上统一用美国标准信息编码(ASCII)它可用7位二进制数表示,存储时用一个字节,它的最高位为0。因此基本的ASCII字符集有128个如: 0-9:48-57:00110000-. A-Z:65-90 :01000001-. a-z:97-122:01100000-. 6.汉字编码与汉字输入法 (1)机内码 ASCII码不能表示汉字,因此要有汉字信息交换码,我国国家标准是gb2312,它也被称作国际码。它由两个字节组成,两个字节的最高位都为1。 gb2312共收纳6763个汉字,其中,一级汉字(常用字)3755个按汉字拼音字母顺序排列,二级汉字3008个按部首笔画次序排列。 (2)汉字输入码(外码) 目前,汉字输入法主要有键盘输入、文字识别和语音识别。键盘输入法是当前汉字输入的主要方法。它大体可以分为: 流水码:如区位码、电报码、通信密码,优点重码律少,缺点难于记忆; 音码:以汉语拼音为基准输入汉字,优点是容易掌握,但重码律高; 形码:根据汉字的字型进行编码,优点重码少,但不容易掌握; 音形码:将音码和形码结合起来,能减少重码律同时提高汉字输入速度。 (3)汉字字模 供计算机输出汉字(显示和打印)用的二进制信息叫汉字字形信息也称字模。通用汉字字模点阵规格有16*16,24*24,32*32,48*48,64*64,每个点在存储器中用一个二进制位((bit)存储,如一个16*16点阵汉字需要32个字节的存储空间。 1.1.4 原码、反码与补码 在计算机中,数据是以补码的形式存储的: 在n位的机器数中,最高位为符号位,该位为零表示为正,为1表示为负; 其余n-1位为数值位,各位的值可为0或1。 当真值为正时:原码、反码、补码数值位完全相同; 当真值为负时: 原码的数值位保持原样, 反码的数值位是原码数值位的各位取反, 补码则是反码的最低位加一。 注意符号位不变。 如:若机器数是16位: 十进制数 17 的原码、反码与补码均为: 0000000000010001 十进制数-17 的原码、反码与补码分别为:1000000000010001、1111111111101110、1111111111101111 1.1.5 逻辑运算 1.逻辑运算 逻辑与:同真则真 逻辑或:有真就真 逻辑非:你真我假 逻辑异或:不同则真 2.按位运算 按位与:同1则1 如1001010110110111=10010101 按位或:有1则1 如1001010110110111=10110111 3.逻辑化简 化简定律: (1)交换律: A + B = B + A ,AB = BA(2)结合律: (A + B)+ C = A + (B + C ), (AB)C = A(BC)(3)幂等律: AA = A , A + A = A(4)吸收律: A(A + B )= A , A +(AB)= A(5)分配律: A(B + C )= AB + AC , A +(BC)=(A + B)(A + C)(6)互补律: A + A = 1 ,AA = 0(7)非深入:A + B = AB, AB = A +B(8)0-1律: A + 0 = A , A + 1 = 1 , A1 = A , A0 = 0 例:化简函数 Q = AD + AD + AB + ACEF。这个函数有5个自变量,化简过程如下:Q = AD + AD + AB + ACEF= A + AB + ACEF= A + ACEF= A 练习:求证:(A+B)(A+C)=AB+AC1.2 操作系统1.2.1 DOS(Disk Operating System)的组成MSDOS采用模块结构,它由五部分组成:ROM中的BIOS模块、IOSYS模块、MSDOSSYS模块、COMMANDCOM模块和引导程序。(1)BIOS模块:在PC机主板上有一个ROM芯片,该芯片中存有系统自测试程序, CMOS设置程序和基本输入输出程序(BIOS)。BIOS是一组程序和参 表,其中程序部份是可以通过中断方式调用的一组驱动程序,参数 给出外设的地址和参数。BIOS是计算机硬件和操作系统之间的接口 通过它操作系统管理计算机硬件资源。(2)IOSYS模块:IOSYS是MSDOS和ROMBIOS之间的接口程序。它和RON BIOS一起完成系统设备的管理。(3)MSDOS.SYS模块: MSDOSSYS用于实现文件管理,包括文件管理、目录管理、内存管理等功能。它以功能调用的形式实现用户和MSDOS之间的程序级接口。(4)COMMANDCOM模块:COMMANDCOM的主要功能是负责接收、识别、解释和执行用户从键盘输入的MSDOS命令。(5)引导程序:引导程序又叫“引导记录”,其作用是检查当前盘上是否有两个系统文件,若有系统文件则把DOS系统从磁盘装人内存。一张系统盘上应该包含有:引导记录、IOSYS、MSDOSSYS和COMMANDCOM等模块。1.2.2 DOS的文件和目录1)文件概念:文件是指记录在存储介质(如磁盘、光盘)上的一组相关信息的集合。2)文件标识:驱动器号+路径+文件名(1到8各字符)+扩展名(1到3个字符代表文件的类型)3)通配符:*代表从该位置起的一个或多个合法字符;?代表所在位置的任一个合法字符。4)树形目录:DOS采用树形目录结构。由一个根目录和若干层子目录组成。这种目录结构一是能够解决文件重名问题,即不同的目录可以包含相同的文件名或目录名;二是能够解决文件多而根目录容量有限带来的问题。在查找某个子目录下的一个文件时,要使用目录路径。指定路径有两种方法:绝对路径和相对路径。绝对路径是从根目录开始到文件所在目录的路径。例如要查找UCDOS子目录下的二级子目录DATA下的READMETXT文件,绝对路径为:UCDOSDATA。路径中第一个“”符号代表根目录。相对路径是从当前目录开始到文件所在目录的路径。当前目录指在不特意指定路径情况下DOS命令所处理的目录。例如系统提示符为:“C:UCDOSDATA”,则DATA是当前目录。1.2.3 DOS命令 1内部命令 1)内部命令:当启动DOS系统时,计算机引导程序将系统以及常用的命令处理模块驻留在计算机的内存中,我们称之为内部命令。 2)常用的内部命令: (1)目录命令: DIR(显示文件目录) MD、CD、RD(子目录的建立、进入、删除命令) (2)文件操作命令: COPY(复制命令)、DEL(删除命令)、REN(更改文件名) TYPE(显示文本文件内容) (3)其他内部命令 DATA、TIME、VER、CLS等 2外部命令 1)外部命令:存储在外存储器上的DOS可执行的文件,这些文件程序所占的存储容量比较大,当用户使用外部命令时,计算机从外存调入内存,当执行完外部命令,就自动从内存中退出。 2)常用的外部命令 (1)磁盘格式化命令: FORMAT 盘符 S)IV 其作用,能够清除原盘中所有信息,并将磁盘规范成计算机所能接受的格式,以便有效存储信息。 (2)软盘复制命令: DISKCOPY 盘符1:盘符2: 其作用,能够进行软盘之间的全盘复制(以磁道方式),不仅可以复制系统文件而且可以复制隐含文件。1.2.4 Windows简介 Windows是一个多任务图形用户界面,该环境可以在基于MS-DOS的计算机上运行,在多任务图形用户环境下,Windows提供了一个基于下拉菜单、屏幕窗口和鼠标的界面,在该环境下运行的应用程序必须进行专门的设计才能发挥这些特征的优点。 1Windows的特点Windows能够充分发挥计算机的作用,其图形接口能够组织用户程序和文件、同时运行几个用户程序、在文档之间移动和复制信息、在平台上进行应用程序的切换等。为了提高效率,Windows还提供了一些辅助程序,如字处理器、画笔及其他标准应用程序等。Windows具有以下主要特点。 (1)图形化的用户界面 Windows提供了一种不同于DOS系统下命令行的工作方式,它通过对窗口、图标、选单、对话框、命令按钮、滚动框等图形符号与画面的操作来实现对计算机的各种操作。(2)标准化的操作界面在Windows中,所有的操作都是通过窗口中的图形界面进行的。 (3)多任务机制和执行性能 在Windows中,平稳的多任务机制可以同时运行多道程序以及执行多项任务,各程序与各任务之间不仅转换容易,而且还可以方便地交换数据。 (4)充分利用内存 Winddws利用虚拟内存技术,允许应用程序超过640阳常规内存的运行空间,从而最大限度地利用了计算机系统的所有内存资源,从而使内存较小的微机也能运行大型的应用程序。 (5)强大的联网功能 在Windows中,可以简单直观地实现网络的安装、配置、浏览,从而可以更加方便地实现网络管理和资源共享。 (6)丰富的多媒体功能 Windows提供大量辅助程序,用以实现文字、图形、图像、声音、视频等多媒体功能,同时还支持其他厂商基于Windows标准开发的各种相应软件。 (7)TryType技术 TryType(真实字体)属于内建式比例字体,可以任意平滑放大与缩小。这种字体能使屏幕上显示的效果与实际打印机输出的信息完全一致,这就是所谓的“所见即所得”。 例在Windows 95中,“任务栏”的作用是_。A)显示系统的所有功能 B)只显示当前活动窗口名C)只显示正在后台工作的窗口名 D)实现窗口之间的切换解答:在任务栏中,显示了所有打开的程序的图标。本题正确答案为D。 1.3 计算机网络常识1.3.1 网络基础知识 1.网络的概念 计算机网络是将地理位置不同的计算机,用通信链路连接起来,共同遵守一定的协议,以实现计算机软硬件资源共享为目标的通信系统。 2.网络的组成 计算机网络由网络硬件和网络软件组成。 网络软件包括网络操作系统、通信软件、通信协议(计算机之间实现数据通信共同遵守的相关规定)。 网络硬件包括网络的拓扑结构、网络服务器、网络工作站、传输介质和设备。 3.网络的分类 (1)按通信距离分:局域网(LAN):局限于某个范围(10公里左右)的网络连接情(校园网)。广域网(WAN):跨地区的局域网,Internet是覆盖全球的广域网。 (2)按网络的使用目的分:共享资源网:使用者可分享网络的各种资源(如Internet)。数据处理网:用于数据处理(企业经营管理用的网络)。数据传输网:用于数据的收集、交换和传输(情报检索网络)。 (3)按网络的拓扑结构分:星形网:以一台计算机为中心,以放射状连接若干台计算机。环形网:传输线路构成一个封闭的环,入网的计算机连到这个环形线路上。总线网:用一条通信线路作主干,入网的计算机通过相应接口连到线路上。 4.开放系统互联 模型(OSI模型)OSI模型分7层:各层功能如下: 1物理层物理层与移动二进制数和维护物理连接有关。2数据链路层数据链路层通过帧在一个给定的物理链路传输分组(报文),保持帧的有序以及发现检测到的各种错误,包括传输错误,但是数据链路层只了解在链路另一端的对等实体。数据链路层的地址是为了将网络中一点的数据帧送到另一点。3网络层网络层知道每个数据链路的对等进程,并负责在链路间移动分组,把它送到目的地。网络层地址是为了把单一分组从网络的一端送到目的地。4传输层传输层注意的是整个网络,该层是第一个端到端层。其对等实体位于分组的最终目的地。传输层依靠网络层经过中间节点移动分组。传输层地址是为了把网络一端进程的完整信息送到最终目的地的对等进程。5-7会话层、表示层和应用层提供了如下功能:处理计算机间数据表示的差别。 确保数据在网络传输中不被窃取和泄露,并且确保网络不允许未经授权就访问数据。最高效地使用网络资源通过应用程序及活动同步来管理对话和活动。 在网络节点间共享数据。1.3.2 Internet简介 Internet英文直译为“互联网”,中文名为“因特网”。是世界上众多计算机网络的集合起源于20世纪80年代。 1.Internet的IP地址、IP地址类型和主机域名 (1) 在Internet网上采用统一的网络协议TCP/IP,与Internet相连的计算机必须具有唯一的主机地址,称IP地址。IP地址采用分段地址方式,使用数字表示;如:207.46.130.14,其中由三个点隔开的四个数是十进制,其大小是0-255,每个数对应一个8位二进制数,所以IP地址用32位二进制位存放站4个字节。 (2)IP地址类型:最初设计互联网络时,为了便于寻址以及层次化构造网络,每个IP地址包括两个标识码(ID),即网络ID和主机ID。同一个物理网络上的所有主机都使用同一个网络ID,网络上的一个主机(包括网络上工作站,服务器和路由器等)有一个主机ID与其对应。IP地址根据网络ID的不同分为5种类型,A类地址、B类地址、C类地址、D类地址和E类地址。 A类IP地址 一个A类IP地址由1字节的网络地址和3字节主机地址组成,网络地址的最高位必须是“0”, 地址范围从 1.0.0.0 到126.0.0.0。可用的A类网络有126个,每个网络能容纳1亿多个主机。 B类IP地址 一个B类IP地址由2个字节的网络地址和2个字节的主机地址组成,网络地址的最高位必须是“10”,地址范围从128.0.0.0到191.255.255.255。可用的B类网络有16382个,每个网络能容纳6万多个主机 。 C类IP地址 一个C类IP地址由3字节的网络地址和1字节的主机地址组成,网络地址的最高位必须是“110”。范围从192.0.0.0到223.255.255.255。C类网络可达209万余个,每个网络能容纳254个主机。 D类地址用于多点广播(Multicast)。 D类IP地址第一个字节以“lll0”开始,它是一个专门保留的地址。它并不指向特定的网络,目前这一类地址被用在多点广播(Multicast)中。多点广播地址用来一次寻址一组计算机,它标识共享同一协议的一组计算机。 E类IP地址 以“llll0”开始,为将来使用保留。 全零(“0000”)地址对应于当前主机。全“1”的IP地址(“255255255255”)是当前子网的广播地址。 在IP地址3种主要类型里,各保留了3个区域作为私有地址,其地址范围如下: A类地址:10.0.0.010.255.255.255 B类地址:172.16.0.0172.31.255.255 C类地址:192.168.0.0192.168.255.255 (3)为了使用方便,在访问Internet上的主机时,通常使用主机域名而不是IP地址,但主机域名和IP地址一一对应,它由圆点分隔的一序列单词组成如“Public.bta.net.cn。IP地址如同电脑的身份证号码,而域名相当电脑的姓名。 2.Internet的功能 (1)信息浏览(WWW)WWW(World Wide Web),中文名为”万维网“,是基于超文本的、方便用户信息浏览和信息搜索的信息服务系统。用户在浏览器中输入网址即可得到需要的信息。人们常用的浏览器有网景公司的Netscape浏览器和Microsoft公司的Internet Explorer浏览器。网址的输入是使用协议提供的服务服务器地址(IP地址或主机域名)如http:/198.105.232.1;ftp:/zsqz.com (2)文件传输(FTP) FTP(File Transfer Protocol)是Internet的一种标准协议,这一协议使用户能在联网的计算机之间传送文件如上载(UPLOAD把本地计算机上地文件复制到远程计算机上)和下载(DOWNLOAD把远程计算机上的文件复制到本地计算机上)。 (3)传送电子邮件(Email)电子邮件地址用户名+主机域名;如:zhangmingyahoo.com (4)电子公告牌(BBS) (5)远程登录(telnet) (6)电子商务等 3.TCP/IP参考模型 TCP/IP协议的开发研制人员将Internet分为五个层次,以便于理解,它也称为互联网分层模型或互联网分层参考模型,如下表:应用层(第五层)传输层(第四层)互联网层(第三层)网络接口层(第二层)物理层(第一层)各层简要说明如下: 物理层:对应于网络的基本硬件,这也是Internet物理构成,即我们可以看得见的硬件设备,如PC机、互连网服务器、网络设备等,必须对这些硬件设备的电气特性作一个规范,使这些设备都能够互相连接并兼容使用。网络接口层:它定义了将数据组成正确帧的规程和在网络中传输帧的规程,帧是指一串数据,它是数据在网络中传输的单位。互联网层:本层定义了互联网中传输的“信息包”格式,以及从一个用户通过一个或多个路由器到最终目标的信息包转发机制。传输层:为两个用户进程之间建立、管理和拆除可靠而又有效的端到端连接。应用层:它定义了应用程序使用互联网的规程。1.4 计算机信息安全基础知识1.4.1 计算机的网络安全1、不同环境和应用中的网络安全运行系统安全,即保证信息处理和传输系统的安全。它侧重于保证系统正常运行,避免因为系统的崩溃和损坏而对系统存贮、处理和传输的信息造成破坏和损失,避免由于电磁泄漏,产生信息泄露,干扰他人,受他人干扰。网络上系统信息的安全。包括用户口令鉴别,用户存取权限控制,数据存取权限、方式控制,安全审计,安全问题跟踪,计算机病毒防治,数据加密。网络上信息传播安全,即信息传播后果的安全。包括信息过滤等。它侧重于防止和控制非法、有害的信息进行传播后的后果。避免公用网络上大量自由传输的信息失控。网络上信息内容的安全。它侧重于保护信息的保密性、真实性和完整性。避免攻击者利用系统的安全漏洞进行窃听、冒充、诈骗等有损于合法用户的行为。本质上是保护用户的利益和隐私。网络安全的特征2、网络安全应具有以下四个方面的特征:保密性:信息不泄露给非授权用户、实体或过程,或供其利用的特性。完整性:数据未经授权不能进行改变的特性。即信息在存储或传输过程中保持不被修改、不被破坏和丢失的特性。可用性:可被授权实体访问并按需求使用的特性。即当需要时能否存取所需的信息。例如网络环境下拒绝服务、破坏网络和有关系统的正常运行等都属于对可用性的攻击;可控性:对信息的传播及内容具有控制能力。3、主要的网络安全威胁自然灾害、意外事故;计算机犯罪;人为行为,比如使用不当,安全意识差等;“黑客” 行为:由于黑客的入侵或侵扰,比如非法访问、拒绝服务计算机病毒、非法连接等;内部泄密;外部泄密;信息丢失;电子谍报,比如信息流量分析、信息窃取等;信息战;网络协议中的缺陷,例如TCP/IP协议的安全问题等等。4、黑客常用的信息收集工具 信息收集是突破网络系统的第一步。黑客可以使用下面几种工具来收集所需信息:SNMP协议,用来查阅非安全路由器的路由表,从而了解目标机构网络拓扑的内部细节。TraceRoute程序,得出到达目标主机所经过的网络数和路由器数。Whois协议,它是一种信息服务,能够提供有关所有DNS域和负责各个域的系统管理员数据。(不过这些数据常常是过时的)。 DNS服务器,可以访问主机的IP地址表和它们对应的主机名。Finger协议,能够提供特定主机上用户们的详细信息(注册名、电话号码、最后一次注册的时间等)。 Ping实用程序,可以用来确定一个指定的主机的位置并确定其是否可达。把这个简单的工具用在扫描程序中,可以Ping网络上每个可能的主机地址,从而可以构造出实际驻留在网络上的主机清单。1.4.2 计算机病毒 计算机病毒是一种程序,是人为设计的具有破坏性的程序。 计算机病毒具有破坏性、传播性、可激发性、潜伏性、隐蔽性等特点。1.4.3 病毒的分类 (1)按病毒设计者的意图和破坏性大小,可将计算机病毒分为良性病毒和恶性病毒。 良性病毒:这种病毒的目的不是为了破坏计算机系统,而只是为了编制者表现自己。此类病毒破坏性较小,只是造成系统运行速度降低,干扰用户正常工作。 恶性病毒:这类病毒的目的是人为的破坏计算机系统的数据。具有明显破坏目标,其破坏和危害性都很大,可能删除文件或对硬盘进行非法的格式化。 (2)计算机病毒按照寄生方式可以分为下列四类: 源码病毒:在源程序被编译之前,就插入到用高级语言编写的源程序当中。编写这种病毒程序较困难。但是,一旦插入,其破坏性和危害性都很大。 入侵病毒:是把病毒程序的一部分插入到主程序中。这种病毒程序也难编写,一旦入侵,难以清除。 操作系统病毒:是把病毒程序加入或替代部分操作系统进行工作的病毒。这种病毒攻击力强、常见、破坏性和危害性最大。 外壳病毒:是把病毒程序置放在主程序周围,一般不修改源程序的一种病毒。它大多是感染DOS下的可执行程序。这种病毒占一半以上,易编制,也易于检测和消除。在日常维护中应隔离计算机病毒的来源,经常要用杀毒软件检查计算机系统和存储器。 例设一张软盘已染上病毒,能清除病毒的措施是_。A)删除该软盘上的所有文件B)格式化该软盘C)删除该软盘上的所有可执行文件D)删除该软盘上的所有批处理文件解答:软盘染毒后,病毒隐藏在磁盘内部,并感染磁盘上的文件,而且可能通过磁盘的使用进而扩散到其他磁盘,造成更大的破坏。为了清除病毒,必须格式化软盘,从而彻底清除染毒文件和病毒本身。本题正确答案为B。第2章C+编程简介2.1 机器语言、汇编语言和高级语言 程序员用各种编程语言编写指令,有些是计算机直接理解的,有些则需要中间翻译(tranlation)的步骤。如今使用的计算机语言有几百种,可以分为三大类: 1机器语言 2汇编语言 3高级语言 任何计算机只能直接理解本身酌机器语言(machine language)。机器语言是特定计算机的自然语言,由计算机的硬件设计定义。机器语言通常由一系列数字组成(最终简化0和1),让计算机一次一个地执行最基本的操作。机器语言非常繁琐,下面的机器语言程序将工龄工资和基础工资相加,并把结果保存在工资总额中: +1300042774 +1400593419 +1200274027 随着计算机越来越普及,机器语言编程对大多数程序员显然太慢、太繁琐。程序员不用计算机直接理解的一系列数字,而是用类似英文缩写的助记将来表示计算机的基本操作,这些助记符构成了汇编语言(assembly language)。称为汇编器(assembler)的翻译程序以计算机的速度将汇编语言程序转换为机器语言。下列汇编程序也是工龄工资和基础工资相加,并将结果保存在总工资中,但要比相应的机器语言清晰得多: LOAD BASEPAY ADD OVERPAY STORE GROSSPAY尽管这种代码对于人们一目了然,但计算机却无法理解,必须先翻译为相应的机器语言。 随着汇编语言的出现,计算机的使用迅速增加,然而即使是最简单的任务也需要许多条指令才能完成。为了加速编程过程,人们开发了高级语言(high-level language),用一条语句完成大量任务。称为编译器(compiler)的翻译程序将高级语言程序变为相应的机器语言。高级语言使程序员能够编写更像英语的指令,可以包含常用的数学符号。将工龄工资和基础工资相加并把结果保存在总工资中,可以用下列高级语言程序: grossPay basePay + overTimePay 显然,从程序员角度看,高级语言比机器语言和汇编语言都要强得多。 C和C+是最强大最广泛使用的高级语言。 将高级语言程序编译为相应的机器语言的过程可能需要大量时间。解释器(interpreter)程序可以直接执行高级语言程序,而不必先将这些程序编译成相应的机器语言。尽管编译程序的执行速度比解释程序更快,但解释器在程序开发环境中更常用,因为增加新特性和纠正错误时经常需要重新编译程序。一旦程序开发完成,编译版本的运行最有效。2.2 C语言与C+的历史 C+是从C语言演变而来的,而C语言又是从两个编程语言BCPL和B演变而来的、BCPL是Martin Richards于1967年开发的,用于编写操作系统软件和编译器。Ken Thompson在他的B语言(1970年在贝尔实验室)。DCPL和B都是“无类型”语言,每个数据项在内存中占一个“字”(word)长、如果要将数据项作为整数或实数处理,编程的工作量会很大。 C语言是从D语言演变而成的,由贝尔实验室的Dennis Ritchie开发,最初于1972年在DEC PDP11计算机上实现。C语言使用了BCPL和B的许多重要概念,同时增加了数据类型和其他特性。C语言最初作为UNIX操作系统的开发语言而闻名于世。如今,大多数操作系统都是用C/C+写成的。二十多年来,C语言已经遍布在大多数计算机上。C语言是硬件无关的,只要仔细设计。就可以编写能移植列大多数计算机上的C语言程序。 到20世纪70年代未期,C语言演变成现在所谓的“传统C”、“经典CPP或“KernighanRitchieC。1978年Prentice Hall公司出版了Kernighan和Ritchie合作的著作The CProgrmmming Language,引起了人们对C语言的广泛关注(见参考文献Ke78)。 C语言在各种不同类型计算机(有时称为硬件平台)上的普及导致了许多变形。它们虽然相似,但通常互不兼容。对需要为不同平台编写可移植程序的开发人员这是个严重问题,显然需要有个标准的C语言版本。1983年,美国国家计算机与信息处理标准委员会(x3)成立了x3JII技术分会,目的是提供无歧义性且与机器无关的语言定义。1989年推出了这种语言标准。AN5I与国际标准化组织(IS0)合作在全球范围内将C语言标淮化,1990年推出了联合标准文档。称为ANSIIS09899:1990。这个文档可以从ANSI获得副本。1988年推出的Kernighan 和Ritchie著作的第二版体现了该版本(称为ANSI C),这也是目前全世界使用的版本。 C+是C语言的扩展,是20世纪80年代初由贝尔实验室的Bjarne stroustrup开发的。C+的许多特性是从c语言中派生的,但更重要的是,它提供了面向对象编程(object-oriented programming)的功能。 软件业正在酝酿一场革命,最终日标是更快、更正确、更经济地建立软件,新的、更强大的软件需求迫在眉睫。对象(object)实际上是模拟实际项目的可复用软件组件(component)。软件开发人员发现,利用模块化、面t向对象的设计和实现方法与过去结构化编程方法相比较,可以使软件开发小组的生产率更高。面向对象编程的优势在于更容易理解、纠正和修改。 许多面向对象的语言也纷纷涌现,包括最著名的由Xerox的Pa
展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 解决方案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!