2024-2025-1学号20241309《计算机基础与程序设计》第十一周学习总结
作业信息
这个作业属于哪个课程 | 2024-2025-1-计算机基础与程序设计 |
---|---|
这个作业要求在哪里 | 2024-2025-1计算机基础与程序设计第十一周作业 |
这个作业的目标 |
|作业正文|2024-2025-1学号20241309《计算机基础与程序设计》第十一周学习总结
教材学习内容总结
《计算机科学概论》第十五章:
计算机网络
计算机网络是将多台计算机及相关设备通过通信线路连接起来,以实现资源共享、信息交换等目的的系统。它可以按照覆盖范围分为局域网(LAN,通常局限在较小区域如办公室、校园等)、城域网(MAN,覆盖城市范围)和广域网(WAN,可跨越较大地理区域,甚至全球范围,比如互联网就是最大的广域网)。网络中的节点包括计算机、服务器、路由器等设备,通过各种通信协议来保障数据准确有序地传输。
网络拓扑
网络拓扑描述了网络中各个节点相互连接的布局结构,常见的拓扑结构有:
总线型拓扑:所有节点都连接到一条称为总线的公共通信线路上,数据沿着总线传输,各节点接收并判断是否是发给自己的数据。优点是成本低、易于安装,缺点是一处故障可能影响整个网络通信。
星型拓扑:以中央节点(如交换机或集线器)为核心,其他节点都与之相连。这种结构便于集中管理、故障诊断和隔离,某个节点出现故障一般不会影响其他节点间通信,但中央节点一旦故障则影响较大,且布线成本相对较高。
环型拓扑:节点依次连接形成一个闭合的环形,数据沿着环单向传输。它能提供有序的数据传输,但某个节点故障可能导致整个网络瘫痪,而且重新配置较复杂。
网状拓扑:每个节点都与多个其他节点相连,具有很高的可靠性和冗余性,即使部分链路出现故障,网络仍可通过其他路径通信,但成本高且配置复杂,常用于对可靠性要求极高的网络环境。
云计算
云计算是一种通过网络提供计算资源(包括服务器、存储、软件等)的模式。用户无需在本地构建和维护复杂的硬件及软件设施,而是通过互联网按需从云服务提供商获取所需资源。云计算具有以下特点和优势:
按需分配资源:用户可根据实际需求灵活增加或减少使用的资源量,比如计算能力、存储空间等,像企业旺季增加服务器资源,淡季减少,节省成本。
可扩展性强:方便应对业务增长带来的资源需求变化,轻松扩展服务规模。
成本低:减少了企业自身购置和维护硬件等基础设施的高额费用。不过,云计算也存在数据安全和隐私等方面需要重视的问题,毕竟数据存放在云端,需要可靠的措施保障其安全。
网络安全
网络安全旨在保护网络及其所承载的信息免受各种威胁,主要面临的威胁包括:
黑客攻击:黑客可能试图非法入侵系统,窃取敏感信息、篡改数据或者破坏系统运行,比如通过漏洞利用、暴力破解密码等手段。
病毒和恶意软件:它们可以自我复制并在网络中传播,感染计算机设备,造成系统卡顿、数据丢失、隐私泄露等危害,像蠕虫病毒可通过网络自动传播到其他主机。
网络钓鱼:攻击者伪装成合法的机构或个人,通过欺骗性的邮件、网站等诱导用户输入敏感信息,如账号密码等。
为保障网络安全,采取的措施有使用防火墙(对进出网络的流量进行过滤和管控)、安装杀毒软件和入侵检测系统(实时监测并防范恶意软件和异常入侵行为)、加密技术(对传输的数据加密,使即使被截获也难以解读)等。
《计算机科学概论》第十五章:
Web(万维网)
万维网是基于互联网、通过超文本链接等方式将分布在世界各地的文本、图像、音频、视频等各种资源相互连接起来的信息系统。用户可以通过浏览器输入网址访问不同的网页,网页之间通过超链接实现便捷的跳转和信息浏览,极大地改变了人们获取和共享信息的方式。
HTML(超文本标记语言)
HTML 是用于创建网页的基础标记语言,通过各种标签来定义网页的结构和内容,比如 标签表示整个 HTML 文档的开始和结束, 标签内定义网页展示的主体内容,
用于定义段落, 用于插入图片等。浏览器会解析 HTML 代码并将其渲染成可视化的网页呈现给用户,它是网页构成的骨架,决定了页面的基本布局和元素呈现方式。
CSS(层叠样式表)
CSS 主要用于控制网页的样式,如字体颜色、大小、背景颜色、元素的布局排版等。它可以和 HTML 分离编写,通过选择器选择要修饰的 HTML 元素,并应用相应的样式规则。这样能使网页的内容与表现形式分离,便于统一管理和修改网页风格,提高代码的可维护性,例如可以通过 CSS 定义所有段落文字的字体样式,改变一处 CSS 规则就能改变所有对应元素的样式。
JavaScript
JavaScript 是一种脚本语言,能为网页添加交互性。它可以响应用户的操作,比如点击按钮、鼠标移动等事件,实现动态效果,像弹出提示框、验证表单输入内容的合法性、实现页面元素的动态显示隐藏等。在现代网页开发中,JavaScript 与 HTML 和 CSS 协同工作,极大地丰富了网页的功能和用户体验。
XML(可扩展标记语言)
XML 是一种用于存储和传输数据的标记语言,与 HTML 不同的是它更侧重于描述数据的结构和内容,具有自定义标签的灵活性,常用于数据交换、配置文件等场景。比如企业之间交换产品信息、软件的配置参数存储等,通过 XML 可以清晰规范地定义数据格式,方便不同系统之间进行数据的解析和处理。
总体而言,这两章内容涵盖了计算机网络基础架构、网络连接相关形态、网络应用相关的重要服务模式以及万维网构建中涉及的核心技术等多方面知识,它们共同构成了现代网络及网络应用开发的重要基础。
《C语言程序设计》第十章:
一、字符串的基本概念
在 C 语言中,字符串是以空字符‘\0’作为结束标志的字符数组。它用于存储和操作一系列字符,比如文本信息等。可以通过字符数组的形式来定义字符串,例如 char str[10] = "hello"; ,这里定义了一个能容纳 10 个字符的字符数组 str 来存放字符串 “hello”,系统会自动在末尾添加‘\0’,实际占用 6 个字节存储空间(5 个字符加上‘\0’)。
二、字符串的输入输出
输出:
常用的输出函数是 printf ,使用 %s 格式控制符来输出字符串。例如 printf("%s", str); 就可以将定义好的字符串 str 输出显示。需要注意的是,该函数在输出时会从给定字符串的起始地址开始,逐个字符输出,直到遇到‘\0’为止。
输入:
scanf 函数:可以使用 scanf("%s", str); 的方式来输入字符串,不过它遇到空格、制表符或者回车时就会结束输入,意味着它无法完整输入包含空格等分隔符的长文本内容。
gets 函数:该函数能接收用户从键盘输入的一行字符串,会一直读取直到遇到回车符为止,可用于输入包含空格的字符串,但由于其存在安全隐患(不检查输入缓冲区大小可能导致缓冲区溢出),在一些新的编程规范中已不建议使用。
fgets 函数:相比之下更安全可靠,它从指定的文件流(标准输入时对应键盘输入)中读取一行字符串,可以指定最多读取的字符数,避免缓冲区溢出问题,格式如 fgets(str, sizeof(str), stdin); ,其中 str 是存储字符串的字符数组,sizeof(str) 限定了最多读取的长度,stdin 表示标准输入流(键盘)。
三、字符串处理函数
求字符串长度函数 strlen:
其函数原型为 size_t strlen(const char *s); ,作用是返回字符串 s 的实际长度,也就是不包含末尾‘\0’的字符个数。例如 char str[] = "abc"; ,strlen(str) 的值为 3。
字符串复制函数 strcpy 和 strncpy:
strcpy 函数:函数原型为 char *strcpy(char *dest, const char *src); ,它把源字符串 src (包含‘\0’)完整地复制到目标字符串 dest 中,目标字符串必须有足够的空间来容纳源字符串内容,使用时要确保不会发生缓冲区溢出情况,比如 char dest[10]; char src[] = "hello"; strcpy(dest, src); 会将 “hello” 复制到 dest 中。
strncpy 函数:函数原型是 char *strncpy(char *dest, const char *src, size_t n); ,它会从源字符串 src 中最多复制 n 个字符到目标字符串 dest 中,若 n 大于源字符串长度,则在目标字符串剩余位置填充‘\0’,相比 strcpy 更具安全性,可控制复制的字符数量,防止溢出。
字符串连接函数 strcat 和 strncat:
strcat 函数:函数原型为 char *strcat(char *dest, const char *src); ,它将源字符串 src 连接到目标字符串 dest 的末尾(去掉 dest 原来末尾的‘\0’后连接),要求 dest 有足够空间容纳连接后的字符串,例如 char dest[20] = "hello"; char src[] = " world"; strcat(dest, src); 会使 dest 变为 “hello world”。
strncat 函数:函数原型是 char *strncat(char *dest, const char *src, size_t n); ,它把源字符串 src 中的最多 n 个字符连接到目标字符串 dest 的末尾,同样也要确保 dest 有空间,使用它可避免因源字符串过长导致的溢出问题。
字符串比较函数 strcmp 和 strncmp:
strcmp 函数:函数原型为 int strcmp(const char *s1, const char *s2); ,它逐个比较两个字符串 s1 和 s2 中对应字符的 ASCII 码值,当 s1 小于 s2 时返回负数,相等时返回 0,大于时返回正数。例如比较 “abc” 和 “abd”,因为‘c’的 ASCII 码小于‘d’,所以 strcmp("abc", "abd") 返回负数。
strncmp 函数:函数原型是 int strncmp(const char *s1, const char *s2, size_t n); ,它只比较两个字符串的前 n 个字符,返回值规则和 strcmp 类似,常用于只需要比较部分字符来判断字符串是否相等或大小关系的情况。
四、字符串数组
可以定义二维字符数组来表示字符串数组,即数组中的每个元素都是一个字符串。例如 char strs[3][10] = {"one", "two", "three"}; ,这里定义了一个包含 3 个字符串的字符串数组,每个字符串最长可容纳 10 个字符(包含‘\0’),通过索引可以访问和操作各个字符串元素,如 printf("%s", strs[1]); 会输出 “two”。
五、字符指针与字符串
字符指针可以指向一个字符串,通过指针操作来访问和处理字符串内容。例如 char *p = "hello"; ,此时 p 指向了常量字符串 “hello”,可以通过 p 来输出字符串(printf("%s", p); )等操作,但要注意不能通过指针去修改常量字符串的内容,否则会导致运行时错误。而且在动态分配内存用于存储字符串等场景下,字符指针有着重要的应用,比如通过 malloc 等函数分配内存后,利用字符指针来指向并操作这片内存区域存储的字符串。
这一章的内容着重介绍了 C 语言中字符串的定义、输入输出方法、各类处理函数以及相关的存储表示形式等,掌握这些知识能帮助更好地在 C 语言程序中对文本类信息进行操作和处理。