2024-2025-1 学号20241315《计算机基础与程序设计》第八周学习总结

news/2024/11/17 10:36:23/文章来源:https://www.cnblogs.com/tanzitian11/p/18549754

作业信息

这个作业属于哪个课程 2024-2025-1-计算机基础与程序设计
这个作业要求在哪里 <作业要求的链接>https://www.cnblogs.com/rocedu/p/9577842.html#WEEK08
这个作业目标 功能设计与面向对象设计 面向对象设计过程 面向对象语言三要素 汇编、编译、解释、执行
作业正文 https://www.cnblogs.com/tanzitian11/p/18549754

教材学习内容总结

《计算机科学概论(第七版)》第9章
程序设计语言范型:

命令式范型
面向过程:以过程为中心,将程序看作一系列按顺序执行的步骤,注重解决问题的具体流程。
面向对象:以对象为基础,把现实世界中的事物抽象成对象,通过对象之间的交互来解决问题。对象包含数据(属性)和操作数据的方法(行为),具有封装、继承、多态等特性。
声明式范型:
函数式模型:强调使用函数来进行计算和编程,函数被视为一等公民,可以作为参数传递、返回值或存储在数据结构中。函数式编程避免了可变状态和副作用,注重函数的组合和变换。
逻辑编程:基于逻辑推理的编程范式,程序由一系列逻辑规则和事实组成,通过逻辑推理引擎来求解问题。
高级程序设计语言的功能性:

布尔表达式:用于表示逻辑条件,是程序中进行条件判断和控制流程的基础。
数据归类:涉及到数据的类型和分类,不同的数据类型有不同的操作和存储方式,程序设计语言需要提供相应的数据类型来支持对各种数据的处理。
输入/输出结构:程序与外部世界进行交互的方式,包括从用户获取输入和向用户输出结果,以及与文件、网络等外部设备进行数据交换。
控制结构:用于控制程序的执行流程,如顺序结构、选择结构(如 if 语句)、循环结构(如 for 循环、while 循环)等。
面向对象语言的功能性:

封装:将数据和操作数据的方法封装在一个类中,对外隐藏内部的实现细节,只提供公共的接口供外部访问,提高了代码的安全性和可维护性。
类:是对象的模板或蓝图,定义了对象的属性和方法,通过类可以创建多个具有相同属性和行为的对象。
继承:子类可以继承父类的属性和方法,并可以在此基础上进行扩展和修改,实现了代码的复用和扩展。
多态:不同类的对象可以对同一消息做出不同的响应,增加了程序的灵活性和可扩展性。
过程设计与面向对象设计的区别:

过程设计:侧重于解决问题的具体步骤和过程,将问题分解为一系列的函数或过程,通过函数的调用来实现程序的功能。
面向对象设计:更关注问题中的对象及其相互关系,将问题域中的实体抽象成对象,通过对象之间的消息传递和协作来解决问题。
在《C语言程序设计》第7章内容总结
数组的定义和声明
一维数组:介绍一维数组的基本语法。例如,int arr[5]; 定义了一个名为 arr 的整型数组,它可以存储5个整数。数组的下标从0开始,所以可以通过 arr[0]、arr[1]等访问数组中的元素。
二维数组:int matrix[3][4]; 定义了一个3行4列的二维整型数组。它在内存中是按行存储的,访问元素时使用双下标形式,如 matrix[1][2] 表示访问第2行(下标从0开始)第3列的元素。
数组的初始化
一维数组初始化:可以在定义数组时进行初始化,如 int arr[3] = {1, 2, 3};,也可以部分初始化,如 int arr[5]= {1, 2};,此时未初始化的元素会被自动初始化为0(对于全局数组和静态数组)或不确定的值(对于局部数组)。
二维数组初始化:例如,int matrix[2][3]={{1,2,3},{4,5,6}};
数组在内存中的存储方式
一维数组:在内存中是连续存储的,元素之间的地址是连续的。例如,对于 int arr[5];,如果 arr 的首地址是 0x1000,那么 arr[1] 的地址可能是 0x1004(假设 int 类型占4个字节)。
二维数组:对于二维数组,它的行与行之间也是连续的。比如对于 int matrix[3][4];,可以把它看作是一个包含3个元素的一维数组,每个元素又是一个包含4个整数的一维数组(注意:二维数组的列不可以省略)。
数组作为函数参数
当数组作为函数参数时,实际上传递的是数组的首地址。
例如
int Readscore(int score[],int n);
其中,n代表了score数组的下标
数组的长度(大小)
不同的编程语言获取数组长度的方式不同。在 C 和 C++ 中,对于一个数组int cArray[6];,没有内置的函数来获取数组长度,但是可以通过sizeof(cArray)/sizeof(cArray[0])来计算数组的长度(前提是数组没有发生指针衰减等情况)。
在 Java 和 JavaScript 中,可以通过属性来获取数组长度。例如在 Java 中,对于数组> int[] javaLengthArray = {17, 18, 19};,可以使用javaLengthArray.length来获取数组的长度 3。在 JavaScript 中,对于数组let jsLengthArray = [20, 21, 22];,可以使用jsLengthArray.length来获取长度。
三、多维数组
概念
多维数组是数组的数组。例如二维数组可以看作是一个表格,其中行和列组成了元素的位置。在 C 语言中,定义一个二维整数数组可以这样写:int twoDArray[3][4];,这表示有一个二维数组,它有 3 行 4 列,总共可以存储 3 * 4 = 12 个整数。
二维数组的索引也是从 0 开始,twoDArray[0][0]表示第一行第一列的元素,twoDArray[0][1]表示第一行第二列的元素,以此类推。
存储方式和访问
二维数组在内存中也是按照一定顺序存储的。对于 C 语言中的二维数组,它是按行主序存储的,也就是说,先存储第一行的所有元素,然后再存储第二行的元素,依此类推。
访问二维数组元素的方式和访问一维数组类似,通过两个索引来定位元素。

基于AI的学习






上周考试错题总结

  • 错题1
    如果整数A的全部因子(包括1,不包括A本身)之和等于B;且整数B的全部因子(包括1,不包括B本身)之和等于A,则A和B称为亲密数。求10000以内的亲密数。
    **输出格式要求:"(%4d,%4d)\n"
#include <stdio.h>
int main()
{int a, b, i, n;for (a = 1; a < 10000; a++){b = 0;for (i = 1; i <= a / 2; i++){if (a % i == 0)b += i;}n = 0;for (i = 1; i <= b / 2; i++){if (b % i == 0)n += i;}if (n == a && a < b)printf("(%4d,%4d)\n", a, b);}return 0;
}

理解情况:没有很好地去理解题目的意思,没有把数学模型转换成编程语言,逻辑思维能力还是有待提高。

  • 错题2
    请按如下函数原型编写计算1~n之间的所有素数之和的程序。
    int IsPrime(int x)
    在主函数中调用该函数计算,并输出1~n之间的所有素数之和
#include<stdio.h>
#include<math.h>
int IsPrime(int x);
int main()
{int m = 3;int sum = 2;int n;scanf("%d", &n);for (m = 3; m <= n; m++){if (IsPrime(m)){sum += m;}}printf("%d", sum);return 0;
}
int IsPrime(int x)
{int i, flag = 1;int squareRoot = (int)sqrt(x);if (x <= 1){flag = 0;}for (i = 2; i <= squareRoot && flag; i++){if (x % i == 0){flag = 0;}}return flag;
}

理解情况:没有很好地复习。忘了数学怎么表达。

  • ...

其他

感悟:还得练。

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 5000行 30篇 400小时
第六周 200/200 1/2 20/20
第七周 300/500 1/4 18/38
第八周 700/1000 1/7 25/60
第九周 0/1300 0/9 0/90

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/835229.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2024六安市第二届网络安全大赛-misc

六安市第二届网络安全大赛复现misc听说你也喜欢俄罗斯方块?ppt拼接之后缺三个角补上flag{qfnh_wergh_wqef}流量分析流量包分离出来一个压缩包出来一张图片黑色代表0白色代表11010101000rab反的压缩包转一下密码:拾叁拾陆叁拾贰陆拾肆密文:4p4n575851324332474r324753574o594…

2024强网杯-misc

2024强网杯-misc谍影重重5.0打开发现是SMB流量,从NTLM流中找到数据来解密。用NTLMRawUnhide这个脚本 一键提取出数据。下载下来运行一下Hashcat直接爆破babygirl233再用smb流量脚本解密跑出key,再导入这个时候发现有flag的压缩包导出来压缩包需要密码,接着可以看到流量包还有…

2024网鼎杯青龙misc04

2024网鼎杯misc04Misc04首先看到一个杂乱的图片不过这是一个皮亚诺曲线上脚本from PIL import Imagefrom tqdm import tqdmdef peano(n): if n == 0: return [[0,0]] else: in_lst = peano(n - 1) lst = in_lst.copy() px,py = lst[-1] …

CTFshow命令执行

CTFshow命令执行web291/?c=system("tac fla?.php");2/?c=system("tac f*.php>1.txt");再访问1.txtweb301<?php/*# -*- coding: utf-8 -*-# @Author: h1xa# @Date: 2020-09-04 00:12:34# @Last Modified by: h1xa# @Last Modified time: 2020…

CTFshowPHP特性

CTFshowPHP特性web89<?php/*# -*- coding: utf-8 -*-# @Author: h1xa# @Date: 2020-09-16 11:25:09# @Last Modified by: h1xa# @Last Modified time: 2020-09-18 15:38:51# @email: h1xa@ctfer.com# @link: https://ctfer.com*/include("flag.php");highlig…

学舟图书阅读管理系统

前言:这不是一款用于观看网上电子书的阅读软件。这几年看了许多书籍,却一直没找到合意的软件以集中、统一整理笔记,因此只好自己开发了这个系统。使用了一段时间,还行,基本满足自己的需求,后来觉得可能也有他人在寻找类似的软件,就发布了。 在这竞争日益激烈的社会,你是…

CTFshow信息收集

CTFshow信息收集web1查看源代码就可以看到flagweb2ctrl++u得到flagweb3抓个包就可以查看flagweb4访问/robots.txt得到目录访问一下web5访问index.phps然后会下载一个文件文件中有flag。web6目录扫到www.zip啊?/fl000.txt得到了最终的flagweb7目录扫到访问web8还是扫目录访问we…

20222301 2024-2025-1 《网络与系统攻防技术》实验六实验报告

1.实验内容 1.1 本周学习内容回顾 本文采用了Metasploit框架,这是一款功能强大的渗透测试工具。Metasploit提供了丰富的攻击模块,涵盖远程代码执行、服务拒绝、提权等多种攻击方式,支持对多种操作系统和应用程序进行测试。除了漏洞利用,Metasploit还具备强大的后渗透功能,…

2021陇剑杯-流量分析

1.昨天,单位流量系统捕获了⿊客攻击流量,请您分析流量后进⾏回答:该⽹站使⽤了( )认证方式?(如有字母则默认小写) 注意:此附件适用于jwt所有系列 网站使用的认证方式主要有: Session机制JWTOAuth2CookieHTTP Basic AuthOpenID Connect双因素认证这题使用的是cookiejwt解密…

CTFshow黑盒测试刷题

web380 先扫目录打开报错了先用伪协议去查看源码之前扫到有flag.php 访问一下就得到flag了 web381 查看一下源码点击第三个css藏在目录里面 web382 跟上题一样不过访问这个页面是一个登录框 试一下弱口令 最后是admin admin888 就进去了web383 ![](https://cdn.nlark.com/yuque…

[BSidesCF 2020]Had a bad day 1

[BSidesCF 2020]Had a bad day 1 打开实例为一个随机猫狗图片网页点击WOOFERS,显示出一张狗子的图片,并发现参数?category=woofers尝试sql注入验证,闭合,发现报错信息发现include_path函数,猜测可能存在文件包含 构造payload,尝试读取index.php ?category=php://filter…

2024御宛杯

2024御宛杯图片的隐藏题目提示6位数字爆破一下改个宽高扫描就行NYSEC{abcdefghiklmn}啥玩意啊这赛博厨子flag{HNCTFbs345680967709b5}List of file signatures每四个字节翻转f=open("fl4g.jpeg",rb)ff=open("out.jpeg","wb")a=f.read()l=len(a)f…