当前位置:网站首页>C语言数组专题训练
C语言数组专题训练
2022-07-05 06:36:00 【一只嵌入式爱好者】
第一题
若有语句char s1[10], s2[10] = {“books”};则能将字符串 books 存放到数组 s1 的正确语句是( )
A、strcpy(s1, s2);
B、s1 = {“books”};
C、s1 = s2;
D、strcpy(s2, s1);
答案:A
解析:数组名代表的是数组的首地址,是一个地址常量,所以不能给数组名赋值,C错误。strcpy函数原型如下
char *strcpy(char *dest, const char *src)
第二题
线性表是________。
A、一个有限序列,可以为空
B、一个有限序列,不可以为空
C、一个无限序列,可以为空
D、一个无限序列,不可以为空
答案:A
解析:线性表包括链表数组,数组就是有限的,线性表可以初始化为空,线性表中没有元素时,就是一个空表。
推荐阅读:逻辑结构与物理结构
第三题
以下哪个选项正确定义了一维数组。()
A、char a[] = {‘0’, ‘1’, ‘2’, ‘3’, ‘\0’};
B、char a = {‘A’, ‘B’, ‘C’};
C、int a[] = “0123”;
D、int a[3] = {0, 1, 2, 3};
答案:A
解析:B选项中a并没有定义成数组,而是字符,会出错;C选项整型数组不能被赋值字符串;D选项定义的初值个数超过了数组的长度;
第四题
设有序表的关键字序列为{1,4,6,10,18,35,42,53,67,71,78,84,92,99},当用二分查找法查找键值为35的结点时,经()次比较后查找成功。
答案:4
解析:
第1次
1,4,6,10,18,35,42,53,67,71,78,84,92,99
left=0,right=13,mind=6; mid值为42,太大
第2次
1,4,6,10,18,35,42,53,67,71,78,84,92,99
left=0,right=5,mind=2; mid值为6,太小
第3次
1,4,6,10,18,35,42,53,67,71,78,84,92,99
left=3,right=5,mind=4; mid值为18,太小
第4次
1,4,6,10,18,35,42,53,67,71,78,84,92,99
left=5,right=5,mind=5; mid值为35,找到了
第五题
稀疏矩阵一般的压缩存储方式有两种,即 ()
A、二维数组和三维数组
B、三元组和散列
C、三元组和十字链表
D、散列和十字链表
答案:C
解析:所谓三元组就是一个元素存放三个信息,矩阵中的行号,列号以及值,这样就可以不存放值为0的元素,实现压缩。 十字链表相当于是邻接表和逆邻接表的合集,在一个元素里面存放了值以及出度表和入度表,这样也不需要像邻接矩阵那样存放大量0元素,而且找一个节点的入节点和找出节点一样快。
一个二维十字链表是链表的元素同时链接左右水平邻结点与上下垂直邻结点。
典型用于稀疏矩阵存储时,矩阵每个元素为以下五元组:
typedef struct OLNode
{
int LineNumber, ColumneNumber; //行号与列号
ElemType value; //值
struct OLNode *right, *down; //同行、同列下一个元素的指针
} OLNode, *OList;
第六题
以下选项中,正确定义二维数组的是哪个选项()
A、char a[2][2] = ‘a’, ‘b’, ‘c’, ‘d’;
B、int a[][] = { {1, 2, 3}, {4, 5, 6}};
C、int a[2][] = {1, 2, 3, 4, 5, 6};
D、int a[][4] = {1, 2, 3, 4, 5, 6};
答案:D
解析:定义字符型数组时不允许直接使用“字符常量”的方式赋初值,C语言规定,二维数组定义时不允许省略第二维的长度,所以选项A、B、C错误。二维数组定义时允许省略第一维的长度,因此选项D正确。
第七题
已知int a[3][4];则下列能表示a[1][2]元素值的是()
A、*( *(a+1)+2)
B、 *(a+1+2)
C、(&a[0]+1)[2]
D、 *(a[0]+1)
答案:A
解析:在二维数组中,数组名是第一个数组的地址,注意这里a不是第一个元素的地址,而是第一个维数组的地址,a[0][0]才是表示的一维数组第一个元素的地址。地址 + 1表示向下移一层。
A, a 是一个二级指针,不是一级指针,*(a+1)表示的第二个数组的地址
B, * (a+1+2)等于 *(a+3),是一个int *, 表示的是第4个数组a[3]的地址,而 **(a+3)表示a[3][0]的值, *((int *)(a+3)) 也可以表示 a[3][0]的值
C. (&a[0]+1)表示的是第2个数组 a[1]的地址,(&a[0]+1)[2]其实是数组a[3]的地址,改成((int *)(&a[0]+1))[2] 才是对的
D. *(a[0]+1) 是 a[0][1]的值
第八题
执行以下代码段会输出什么结果。()
int a[][3] = {
1, 2, 3, 4, 5, 6, 7, 8, 9};
char k;
for (k = 0; k < 3; k ++)
printf("%d ",a[k][2-k]);
A、1 3 5
B、3 5 7
C、3 6 9
D、编译出错或其他都不对
答案:B
解析:二维数组必须指定列数,题目已指定且不越界,所以不会出错。
a[0][0]=1 a[0][1]=2 a[0][2]=3
a[1][0]=4 a[1][1]=5 a[1][2]=6
a[2][0]=7 a[2][1]=8 a[2][2]=9
for循环里输出a[0][2]=3 a[1][1]=5 a[2][0]=7
第九题
int A[2][3]={1,2,3,4,5,6}; 则A[1][0]和*(*(A+1)+1)的值分别是()
A、4 5
B、4 3
C、3 5
D、3 4
答案:A
解析:数组A一共2行3列,第0行为123,第1行为456。A[1][0]为第1行第0列数字4。 * (A+1)指向数组第1行第0个元素, * (A+1)+1指向数组第1行第1个元素,再取 * 则为第1行第1个元素的值5,因此为4,5。
第十题
下列说法正确的是()
A、二维以上的数组其实是一种特殊的广义表
B、数组一旦建立,结构的元素个数和元素间的物理存储关系就不再变化
C、数组是一种线性结构,因此只能用来存储线性表
D、数组采用顺序存储方式表示
答案:A B D
解析:关于这一题,我们需要区分数据的物理结构与逻辑结构。物理结构主要是指存储方式,包含线性存储与链式存储,它是从计算机存储的角度去考虑。逻辑结构指的是数据之间的关系,有线性关系和链式关系等,主要是从人为定义角度去考虑。数组是一种被人们定义为线性关系的表,至于其存储结构,可以用线性存储也可以是链式存储去存储。
推荐阅读:逻辑结构与物理结构
第十一题
边栏推荐
- Modnet matting model reproduction
- June 29, 2022 daily
- 使用paping工具进行tcp端口连通性检测
- Record of problems in ollvm compilation
- 5. Oracle TABLESPACE
- confidential! Netease employee data analysis internal training course, white whoring! (attach a data package worth 399 yuan)
- Inclusion exclusion principle acwing 890 Divisible number
- ‘mongoexport‘ 不是内部或外部命令,也不是可运行的程序 或批处理文件。
- [Chongqing Guangdong education] National Open University 2018 autumn 0702-22t contemporary Chinese political system reference questions
- Vscode creates its own code template
猜你喜欢

MySQL (UDF authorization)

【MySQL8.0不支持表名大写-对应方案】

confidential! Netease employee data analysis internal training course, white whoring! (attach a data package worth 399 yuan)

Inclusion exclusion principle acwing 890 Divisible number

Package webapp or H5 pages into apps

Sum of two numbers, the numbers in the array are converted to decimal, added, and output inversely

PHY驱动调试之 --- PHY控制器驱动(二)

Game theory acwing 893 Set Nim game

Database mysql all

Genesis builds a new generation of credit system
随机推荐
解读最早的草图-图像翻译工作SketchyGAN
Dameng database all
How to correctly ask questions in CSDN Q & A
Modnet matting model reproduction
Game theory acwing 893 Set Nim game
MySQL (UDF authorization)
A brief introduction to heading/pitch/roll and omega/phi/kappa
Find the combination number acwing 888 Find the combination number IV
2022 winter vacation training game 5
Xavier CPU & GPU high load power consumption test
Skywalking all
La redirection de l'applet Wechat ne déclenche pas onload
[Chongqing Guangdong education] National Open University 2018 autumn 0702-22t contemporary Chinese political system reference questions
PR automatically moves forward after deleting clips
inux摄像头(mipi接口)简要说明
Sum of two numbers, the numbers in the array are converted to decimal, added, and output inversely
ethtool 原理介绍和解决网卡丢包排查思路(附ethtool源码下载)
摄像头的MIPI接口、DVP接口和CSI接口
Error: "mountvolume.setup failed for volume PVC fault handling
ROS2——Service服务(九)