编程求二维数组a[4][4] = {{23,34,-1,2},{6,78,-54,20}, {18?

一、选择题(在下列各题的A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确选项填涂在答题卡相应位置上。)7.1 若有说明 int a[3][4];则a数组元素的非法引用是

7.2 在C语言中,引用数组元素时,其数组下标的数据类型允许是

C)整型常量或整型表达式

7.3 执行下面的程序段后,变量k中的值为

7.4 定义如下变量和数组:

则下面语句的输出结果是

7.5 下列程序执行后的输出结果是

7.7 以下不正确的定义语句是

7.9 对以下说明语句的正确理解是

A)将5个初值依次赋给a[1]至a[5]

B)将5个初值依次赋给a[0]至a[4]

C)将5个初值依次赋给a[6]至a[10]

D)因为数组长度与初值的个数不相同,所以此语句不正确

7.10 若有说明:int a[][4]={0,0};则下面不正确的叙述是

A)数组a的每个元素都可得到初值0

B)二维数组a的第一维大小为1

C)当初值的个数能被第二维的常量表达式的值除尽时,所得商数就是第一维的大小

D)只有元素a[0][0]和a[0][1]可得到初值,其余元素均得不到确定的初值

正确答案:D来源:-计算机二级考试

程序运行后的输出结果是

7.12 假定int类型变量占用两个字节,其有定义:int x[10]={0,2,4};,则数组x在内存中所占字节数是

7.13 以下能对二维数组c进行正确的初始化的语句是

7.14 在C语言中,一维数组的定义方法为

D)[整型常量]或[整型表达式]

7.15 若二维数组a有m列,则计算任一元素a[i][j]在数组中相对位置的公式为 (假设a[0][0]位于数组的第一个位置上)

7.16 下面程序输出的结果是

7.17 以下不能对二维数组a进行正确初始化的语句是

7.18 阅读下面程序,则程序段的功能是

A)对数组元素的升序排列

B)对数组元素的降序排列

C)对数组元素的倒序排列

D)对数组元素的随机排列

7.19 下列选项中错误的说明语句是

7.20 下述对C语言字符数组的描述中错误的是

A)字符数组的下标从0开始

B)字符数组中的字符串可以进行整体输入/输出

C)可以在赋值语句中通过赋值运算符“=”对字符数组整体赋值

D)字符数组可以存放字符串

正确答案:C来源:-计算机二级考试

7.21 阅读下列程序,则在执行后,程序的运行结果为

7.22 现有如下程序段

7.24 现在有如下程序

这个程序段的功能是删除输入的字符串中字符′H′,则空线上应当添入的是

7.25 以下二维数组c的定义形式是

7.26 已知:int c[3][4];则对数组元素引用正确的是

7.27 若有以下语句,则正确的描述是

A)a数组和b数组的长度相同

B)a数组长度小于b数组长度

C)a数组长度大于b数组长度

D)a数组等价于b数组

7.30 阅读如下程序段,则程序在先后输入love和china后,输出结果是

正确答案:A来源:-计算机二级考试

二、填空题(请将每一个空的正确答案写在答题卡相应序号后。)7.31 下面程序的功能是输出数组s中最大元素的下标,请填空。

7.32 以下程序可把输入的十进制数以十六进制数的形式输出,请填空。

7.33 以下程序的功能是:删去一维数组中所有相同的数,使之只剩一个。数组中的数已按由小到大的顺序排列,函数返回删除后数组中数据的个数。

例如,若一维数组中的数据是:

删除后,数组中的内容应该是:

7.34 下列程序的输出的结果是 【6】 , 【7】 。

7.35 下面程序是求出数组arr的两条对角线上元素之和,请填空。


不指定行数,那就需要确定具体的元素,编译器会根据元素的个数 以及 列 来确定行数


本次是的第三课时学习记录。本课时学习内容如下脑图:

本章大概需要20min阅读理解时间。自己复现本章的代码,既可以巩固上一章索引的知识点,同时掌握Numpy数组的一些变形操作。

我的脑图备注里面注明了本章内容得知识点和官方文档链接,方便后面查阅复习,需要的朋友欢迎评论区留言告诉我,我可以免费私发


Numpy数组本身有维度(ndim),形状(shape)、数组元素(size)等数组属性。不了解的同学可以回去看的相关内容。

以下是四个关于改变数组形状的操作:

将数组转换为一维的迭代器,可以用for访问数组每一个元素。

将数组的副本转换为一维数组,并返回。flatten()函数返回的是拷贝。order的可选参数有:'C':按行(垂直方向);’F‘:按列(水平方向);’A‘:原顺序;’K':元素在内存中出现的顺序。

返回一个连续的扁平数组。默认返回的是视图,若设置order=F 就是拷贝的副本

在不更改数据的情况下为数组赋予新的形状。当参数newshape = [rows,-1]时,将根据行数自动确定列数。

下面是对上面四个更改数组形状的函数的实操,通过实操,你可以更加熟悉这些函数操作的概念和应用。

print(x) #默认np.ravel返回的是视图,对视图的操作映射到原数组

数组转置是将数组的的元素按照一定的规则实现位置的调换。类似矩阵的转置。主要有两个函数,分别是np.ndarray.T和np.transpose

其中np.transpose中的axes参数可以传入数组的维度,从而实现数组的多种方式的转置。

关于数组的转置比较抽象,很考验学习者的空间想象能力,这里推荐一篇博文,十分清晰地讲解了数组地转置的整个过程:

1.1更改形状我们就介绍了数组的形状,其中涉及到数组维度,改变数组维度在数据分析中是比较常见的,有两个方向:增加维度、减少维度。

None的别名,对索引数组很有用。可让数组增加一个维度

增加维度的代码实操如下:

从数组的形状中删除单维度条目,即把shape中为1的维度去掉。
axis用于指定需要删除的维度,但是指定的维度必须为单维度,否则将会报错;

# 注:若数组中存在一维,则采用matplotlib画图时,显示界面为空,可以利用squeeze()函数将表示向量的数组转换为秩为1的数组,这样利用 matplotlib 库函数画图时,就可以正常的显示结果了。如:

在数据分析中,数组组合应该是最常见的操作。数组组合的方式大致可分为两种:一种是沿现有轴(维度)组合数组另一种是沿新轴(新的维度)组合数组。虽然组合方式只有两种,但实现的方式(函数操作)是多样的,比如下面要介绍的np.concatenate,np.stack等。

下面我们通过一些实例来了解这四个函数操作的具体应用:

# x,y在原来的维度上进行拼接

其次是关于np.stack的实例操作

#总结:hstack(),vstack()分别表示水平和竖直的拼接方式。在数据维度等于1时,比较特殊。而当维度大于或等于2时,它们的作用相当于concatenate,用于在已有轴上进行操作。也就是说相同的要求可以使用不同的函数操作来实现,下面的练习大家就可以试试看用不同的函数操作来实现相同的结果。

搞不清楚这四个操作的区别的同学可以参考这篇博文:

数组的拆分其实就是数组组合的反操作,所以理解了前面的数组组合,数组拆分对学习者来说就很简单了。下面是对这三个数组拆分操作的实操:

axis=0,沿着y轴复制,实际上增加了行数。
axis=1,沿着x轴复制,实际上增加了列数。
repeats,可以为一个数,也可以为一个矩阵。
axis=None时就会flatten当前矩阵,实际上就是变成了一个行向量。

1.7查找数组中的唯一值

axis:要操作的轴。如果没有,ar将被压扁。如果是整数,则由给定轴索引的子数组将被展平,并被视为具有给定轴维度的一维数组的元素
# 返回二维数组的唯一行 # 返回给出唯一值的原始数组的索引 # 从唯一值重建输入数组并反转 # 从唯一值和计数重建输入值

二、练习数组操作:变形

如何垂直叠加两个数组?

如何水平叠加两个数组?

如何访问二维数组的全部元素,并按列输出?

三、答案数组操作:变形

以上是天池Numpy第三课时数组操作:变形的学习内容记录。通过上面的代码复现已初步对数组的维度和变形有了更加直观的了解。Numpy有着大量的函数和操作,我们往往无法掌握所有的参数和语法规则(况且语法参数也一直在更新改变),所以我们往往需要去Numpy的官方文档查看,甚至去查看源代码。

以下贴出本章数组操作在官方文档中的详细介绍:


写得太长了,但没办法,数组操作这一章得内容太多了……

有任何疑惑或错误欢迎评论区指出~

有收获的朋友也可以点一个免费的 ,你的点赞就是我创作的无限动力!

我要回帖

更多关于 对于已正确定义的二维数组a 的文章

 

随机推荐