当前位置:网站首页>C语言数组专题训练
C语言数组专题训练
2022-06-29 18:39: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
解析:关于这一题,我们需要区分数据的物理结构与逻辑结构。物理结构主要是指存储方式,包含线性存储与链式存储,它是从计算机存储的角度去考虑。逻辑结构指的是数据之间的关系,有线性关系和链式关系等,主要是从人为定义角度去考虑。数组是一种被人们定义为线性关系的表,至于其存储结构,可以用线性存储也可以是链式存储去存储。
推荐阅读:逻辑结构与物理结构
第十一题
边栏推荐
- 高能直播,大咖云集!邀你共启BizDevOps探索之路。
- Us judge ruled that the former security director of Uber accused of covering up hacking must face fraud charges
- 誰在抖音文玩裏趁亂打劫?
- Svg circle drawing path animation
- Wechat launched the picture big bang function; Apple's self-developed 5g chip may have failed; Microsoft solves the bug that causes edge to stop responding | geek headlines
- [Nanjing University] information sharing of the first and second postgraduate entrance examinations
- Product axure9 (English version), repeater implements addition, deletion, query and modification of table contents (crud)
- SQL Server Backup and restore command operations
- postgis 生成 图形切割
- 山东大学项目实训(七)添加导航栏选择城市
猜你喜欢

元素等待机制

Know that Chuangyu has helped the energy industry in asset management and was selected into the 2021 IOT demonstration project of the Ministry of industry and information technology

2. 银河麒麟离线模式下如何安装MySQL数据库

Anfulai embedded weekly report no. 271: June 20, 2022 to June 26, 2022

网站加了CDN后,字体图标报错Access-Control-Allow-Origin

云上未来,数智导航:阿里云研究院报告合集

The table ‘table_ Name 'is full exception troubleshooting and solution

Leetcode 984. String without AAA or BBB (thought of netizens)

JS text particle dynamic background

svg画圆路径动画
随机推荐
数据仓库模型分层ODS、DWD、DWM实战
layer.prompt
防汛救援便携式应急通信系统解决方案
第三方工具與框架集成
Introduction to isalpha () method
C Primer Plus 第12章_存储类别、链接和内存管理_代码和练习题
面霸篇:MySQL六十六问,两万字+五十图详解!
信息系统项目管理师---第七章项目成本管理历年考题
Cannot retrieve repository metadata processing records
Up to 81.98%! Announcement of undergraduate study rate of more than 100 "double first-class" Universities
第三方工具与框架集成
These advantages of the Institute are really fragrant! The landing rate is still very high!
2. how to install MySQL database in Galaxy Kirin offline mode
The table ‘table_ Name 'is full exception troubleshooting and solution
Third party tools and framework integration
[Nanjing University] information sharing of the first and second postgraduate entrance examinations
Basis of data analysis -- prediction model
Shandong University project training (VI) Click event display line chart
网站加了CDN后,字体图标报错Access-Control-Allow-Origin
Redis (I) -- getting started with redis (2) -- redis data type