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

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

时间:2024-11-17 10:31:00浏览次数:1  
标签:arr 学号 int 元素 存储 2024 2025 二维 数组

作业信息

这个作业属于哪个课程 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

标签:arr,学号,int,元素,存储,2024,2025,二维,数组
From: https://www.cnblogs.com/tanzitian11/p/18549754

相关文章

  • 2024六安市第二届网络安全大赛-misc
    六安市第二届网络安全大赛复现misc听说你也喜欢俄罗斯方块?ppt拼接之后缺三个角补上flag{qfnh_wergh_wqef}流量分析流量包分离出来一个压缩包出来一张图片黑色代表0白色代表11010101000rab反的压缩包转一下密码:拾叁拾陆叁拾贰陆拾肆密文:4p4n575851324332474r324753574o594n5n574651......
  • 2024安徽省现代服务业-信息安全测试员
    加密的目标第一种方法:第二种方法:tcp流181ZmxhZ3s0ZTg0YTExZjQ0NDBhYzlhYWM2MTYyZTNmMTQ1YzI5Mn0flag{4e84a11f4440ac9aac6162e3f145c292}EZ_RSA共模攻击但是要先计算e1和e2直接`对ec1和ec2分别开3次方和5次方`,得到e1和e2的字符串,分别去除A和D,得到e1和e2,最后共模攻击......
  • 2024网鼎杯青龙misc04
    2024网鼎杯misc04Misc04首先看到一个杂乱的图片不过这是一个皮亚诺曲线上脚本fromPILimportImagefromtqdmimporttqdmdefpeano(n):ifn==0:return[[0,0]]else:in_lst=peano(n-1)lst=in_lst.copy()px,py=lst[-1]......
  • 2024鹏城杯-re
    2024鹏城杯-reRafflesia先去花指令a='H@^jHwpsH)[jH{M/\\tBBK_|-O{W.iJZ7\\)|~zaB^H+Lwv{SS|-j@\\_[Y'flag=''foriinrange(len(a)):flag+=chr(ord(a[i])^0x18)print(flag)PXFrPohkP1CrPcU7DlZZSGd5WcO6qRB/D1dfbyZFP3ToncKKd5rXDGCA接着是tls改了表H......
  • 2024强网杯-misc
    2024强网杯-misc谍影重重5.0打开发现是SMB流量,从NTLM流中找到数据来解密。用NTLMRawUnhide这个脚本一键提取出数据。下载下来运行一下Hashcat直接爆破babygirl233再用smb流量脚本解密跑出key,再导入这个时候发现有flag的压缩包导出来压缩包需要密码,接着可以看到流量包还有rdp的流......
  • 20241112
    T1传送门肯定是准备用传送门的时候才会开。于是打出一个传送门之后肯定是找最近的能走到的墙然后在这面墙上打一个传送门穿过去。因此每一步的决策就是四向移动或者以当前格到最近的墙的距离的代价走到四个方向上最近的墙之一。直接最短路即可。代码#include<iostream>......
  • 20222301 2024-2025-1 《网络与系统攻防技术》实验六实验报告
    1.实验内容1.1本周学习内容回顾本文采用了Metasploit框架,这是一款功能强大的渗透测试工具。Metasploit提供了丰富的攻击模块,涵盖远程代码执行、服务拒绝、提权等多种攻击方式,支持对多种操作系统和应用程序进行测试。除了漏洞利用,Metasploit还具备强大的后渗透功能,如键盘记录、......
  • 2024第四届京津冀长城杯-misc
    2024第四届京津冀长城杯-miscBrickGame就连连看或者改图标会快一点吧漏洞探踪,流量解密第一阶段192.168.30.234第二阶段bdb8e21eace81d5fd21ca445ccb35071bdb8e21eace81d5fd21ca445ccb350715a76f6751576dbe1af49328aa1d2d2bea16ef62afa3a7c616dbdb8e21eace81d5fd21ca445ccb35071......
  • 2024GHCTF的三道取证题
    2024GHCTF的三道取证题[GHCTF2024新生赛]皆非取证vol.py-fchall.vmem--profile=Win7SP1x64filescan|grepzip找到压缩包vol.py-fchall.vmem--profile=Win7SP1x64mimikatzmrl64l0v3miku这个是密码,解压得flag[GHCTF2024新生赛]是名取证vol.py-fchall.vmem--profile......
  • 2024腾龙杯-easy_Forensics
    2024腾龙杯-easy_Forensicsvol.py-f3.img--profile=Win7SP1x64filescan|grep-E"png|zip|rar|jpg|txt"找到一张图片提取出来发现有压缩包分离出来解压得镜像导出来镜像里面是一个hint.txt打开是坐标,需要画图直接用gnuplot画图解码就行Hereisthevigenerekey:aeolus,bu......