2023-2024-1 20231326《计算机基础与程序设计》第十一周学习总结

发布时间 2023-12-10 22:25:10作者: GisliW

2023-2024-1 20231326《计算机基础与程序设计》第十一周学习总结

作业信息

这个作业属于哪个课程 2023-2024-1-计算机基础与程序设计
这个作业要求在哪里 2022-2023-1计算机基础与程序设计第X周作业
这个作业的目标 计算机科学概论第15, 16章 《C语言程序设计》第10章
作业正文 https://www.cnblogs.com/gisliw/p/17893065.html

教材学习内容总结

《计算机科学概论》

第15章 网络

  • 网络连接
    • 网络类型
      • LAN
        • 星形拓朴
        • 环形拓扑
        • 总线拓扑
      • WAN
        • Internet是最大的WAN
        • WAN由LAN相互连接而成,相连的LAN之间的两个连接特殊节点叫网关(Gateway)
      • MAN
      • 无线网络
        • 无线局域网WLAN
          • Wi-Fi协议
          • Li-Fi协议
          • BlueTooth协议
          • ……
    • Internet连接
      • Internet骨干网 和 ISP
      • 电话调制解调器 Phone Modem
      • 数字用户线调制解调器 DSL
      • 线缆调制解调器 Cable Modem
      • 宽带:提供数据传输率大于20Mbps的网络技术,eg. DSL, CM等
    • 包交换
      • 数据 -> 划分为包并排序 -> 传输 -> 接受 -> 按序组装包 -> 数据
      • 路由器:指导包传输最终目的地的网络设备
      • 中继器:在较强传输线路上加强、传播信号的网络设备
  • 开放式系统、协议
    • 开放式系统互连参考模型 OSI
      7 应用层
      6 表示层
      5 会话层
      4 传输层
      3 网络层
      2 数据链路层
      1 物理层
      
    • 网络协议
      |SMTP	|TCP	|Telnet	|
      |	T	C	P	|	U	D	P	|
      |			I		P			|
      
    • TCP/IP:一组协议和支持低层网络通信的工具程序
      • TCP软件将数据划分排序成包,在接收端又按序组合包的信息
      • IP软件在网络上传递包到最终目的地
      • TCP vs UDP:
        TCP 比 UDP 更可靠稳定;UDP 比 TCP 更快速。
      • Ping, Tracert
    • 高层协议
      • SMTP
      • FTP
      • HTTP
      • telnet
      • ……
    • 防火墙(设备)
  • 网络地址
    • 主机名
    • IP
      • IPv4
      • IPv6
    • DNS
      • 域名构成,顶级域名
  • 云计算
    • 私有云
    • 公有云
    • 社区云
    • 混合云
  • 区块链

第16章 万维网

  • Web
    web浏览器
    web服务器
    统一资源定位符 URL
    • 搜索引擎
    • 即时消息 IM
      短信只能通过电话号码,IM只根据注册的用户名
    • 博客
      就像这篇文章,是一个博客
    • cookie
      存储于本地的web浏览记录数据,可能涉及隐私。
    • web分析
  • HTML, CSS
    常用于网页设计,web前端。
    • HTML 超文本标记语言
    • CSS 层叠样式表
  • 交互式网页
    • Java小程序
    • Java服务器页 JS
  • XML 可扩展标记语言

《C语言程序设计》

第十章 字符串

  • 字符串字面量
    C语言中没有字符串数据类型
    所谓字符串字面量,又称字符串常量,在C语言中常常用双引号括起来,其实际是若干有效字符构成并以'\0'结束
  • 字符串的存储
    • 字符数组
      char str[6] = "hello",该字符串有6个字符
      通常,将多个字符串用二维数组存储:
    char weekday[][10] = {"Monday", "Tuesday", "Wednesday", "Thursday",
    			"Friday", "Saturday", "Sunday"};
    // 此处的第二维度 10 是按照最长的字符串决定,"Wednesday"实际长度为10,因为'\0'不能省略
    
  • 字符指针
    char *pstr = "hello";这是定义了一个字符指针,该指针指向字符串"hello"的首地址,因为字符串属于常量,其存储位置是常量存储区,所以该指针仅可访问,不能修改其指向的数据
    *ptr = 'w'是非法的,因为字符指针是只读的。
    可以通过定义字符数组来解决:
char str[] = "hello";
char *pstr = str;
*pstr = 'w';
  • 字符串的输入/输出

    1. 按%c输入/输出
    for(int i = 0; i < 10; i++){
    	scanf("%c", &str[i]);
    }
    
    for(int j = 0; j < 10; j++){
    	printf("%c", str[i]);
    }
    
    //上述方法因字符串的长度与数组大小不一致,易导致溢出,不实际,改为以下方法输出:
    for(int i = 0; str[i] != '\0'; i++){
    	printf("%c", str[i]);
    }
    
    1. 按%s输入/输出
    #define N 12
    
    char str[N];
    scanf("%s", str);
    printf("%s", str);
    

    缺点:在读入字符串时,scanf()会将空格当成字符串的结束
    3. 使用字符串处理函数

    #define N 40
    
    char str[N];
    gets(str);
    puts(str);	// 等效于 printf("%s\n", str);
    

    存在隐患问题,当输入的内容过长,易导致缓冲区溢出,从而使他人乘机攻击。
    应该限制输入的长度
    使用fgets(name, sizeof(name), stdin);

    #define N 12
    
    char str[N];
    fgets(str, sizeof(str), stdin);
    // 此处使用 sizeof() 获取数组 str[N] 的大小当作输入的最大值,限制输入的长度。
    // fgets() 是 gets() 的文件操作版,stdin表示标准输入,也可以通过修改使其从文件读入。
    
  • 字符串处理函数
    必须包含头文件<string.h> <ctype.h>

    • 字符串长度strlen()
    • 复制字符串strcpy(目标数组, 字符串数组)
    • 拼接字符串strcat()
    • 比较字符串strcmp()
    • 判断是否为西文字符isalpha()
    • 判断是否为数字字符isdigit()
    • 判断是否为空白字符(包括制表符)isspace()
    • ……

教材学习中的问题和解决过程

问题:无线网络包含了无线局域网WLAN,而WLAN具体有常见的Wi-fi协议、BT协议,还有在实验的Li-Fi协议等等,那么,为什么在基于linux的系统(如Android等)上,WLAN专指wifi连接?单独设定Bluetooth连接?
暂未解决

基于AI的学习

image

代码调试中的问题和解决过程

代码托管

(statistics.sh脚本的运行结果截图)

上周考试错题总结

其他(感悟、思考等,可选)

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
第十一周 189/1300 4/9 30/90