数据结构选择题(c语言)

1.若有char w; int x; float y; double z; 则表达式w*x+z-y值的数据类型为( )。
(2分)
A.float
B.char
C.int
D.double

D
解析:
整形和浮点型计算,结果为浮点型;单精度和双精度计算,结果为双精度

因为在计算这个表达式时,首先要将各个变量强制转化为最高的存储类型。相当于(double)w*(double)x+(double)z-y,所以是double类型了。

c语言中两个不同类型的运算,要转化成同类型的,转换从低到高 char–>float–>short–>int–>double。

2.以下关于数据结构的说法中错误的是( )。
A.数据结构相同,对应的存储结构也相同
B.数据结构涉及数据的逻辑结构、存储结构和施加其上的操作3个方面
C.数据结构操作的实现与存储结构有关
D.定义逻辑结构时可不考虑存储结构

A
解析:
线性表,可以顺序存储,也可以链式存储,但是并没有改变线性表的逻辑特征

3.以下选项中属于非线性结构的是( )。
A.广义表
B.队列
C.优先队列
D.栈

A
解析:
广义表(Lists,又称列表)是一种非连续性的数据结构,是线性表的一种推广。即广义表中放松对表元素的原子限制,容许它们具有其自身结构

4.若将一棵树 T 转化为对应的二叉树 BT,则下列对 BT 的遍历中,其遍历序列与 T 的后根遍历序列相同的是:
A.先序遍历
B.中序遍历
C.后序遍历
D.按层遍历

B
解析:
一棵树的后根遍历与这棵树所对应的二叉树的中序遍历相同。因为树转化为二叉树后是没有右子树的,所以最后访问的是树的根结点。

给定一棵树,可以找到唯一一棵二叉树与之对应,同样,森林也与一棵树存在一一对应关系。树与二叉树,森林与二叉树的转化(a)(b)(c)为三棵树,并构成一个森林,(d)(e)(f)分别为(a)(b)(c)对应的二叉树,(g)为森林对应的二叉树。

树结构有两种次序遍历树的方法:

1、先根遍历:先访问树的根节点,再依次先根遍历子树;

2、后根遍历:先依次后根遍历子树,再访问树的根节点。

因为树并不一定是二叉树,‘中’的概念不好定义,比如对于一个拥有3个子树的根节点来说,根节点除了先根和后根两种遍历方式之外还有另外两种次序。

如一种次序是先遍历根节点的第一棵子树,再访问根节点,之后再依次遍历剩余子树,另一种次序是,先遍历根节点的前两棵子树,再访问根节点,最后访问第三棵子树。对于拥有更多子树的根节点来说,依次遍历的方法更多。

5.如果A和B都是二叉树的叶结点,那么下面判断中哪个是对的?
A.存在一种二叉树结构,其前序遍历结果是…A…B…,而中序遍历结果是…B…A…
B.存在一种二叉树结构,其中序遍历结果是…A…B…,而后序遍历结果是…B…A…
C.存在一种二叉树结构,其前序遍历结果是…A…B…,而后序遍历结果是…B…A…
D.以上三种都是错的

D

6.对于一个有N个结点、K条边的森林,共有几棵树?
A.N−K
B.N−K+1
C.N−K−1
D.不能确定

A
解析:
由一颗树的性质:结点等于边+1【n= k+ 1】。
等价于 n - k =1。
故共有 n - k 棵树。

7.在N个结点的顺序表中,算法的时间复杂度为O(1)的操作是:
A.访问第i个结点(1≤i≤N)和求第i个结点的直接前驱(2≤i≤N)
B.在第i个结点后插入一个新结点(1≤i≤N)
C.删除第i个结点(1≤i≤N)
D.将N个结点从小到大排序

A

8.对于顺序存储的长度为N的线性表,访问结点和增加结点的时间复杂度为:
A.O(1), O(1)
B.O(1), O(N)
C.O(N), O(1)
D.O(N), O(N)

B
解析:
题目字眼 “ 顺序存储 ” ,说明内存单元中分配的存储空间是连续的,所 以该线性表为数组形式存储,所以数组访问时,通过下标可随机访问,时间复杂度为O(1),而增加插入时,需要涉及大量元素的移动,所以时间复杂度为O(N)。

9.在长度为n的()上,删除第一个元素,其算法的时间复杂度为O(n)。
A.只有表头指针的不带表头结点的循环单链表
B.只有表尾指针的不带表头结点的循环单链表
C.只有表尾指针的带表头结点的循环单链表
D.只有表头指针的带表头结点的循环单链表

10.如果所有的变量按照下面的程序进行定义和声明,那么在main()函数中所有可用的变量为 ()。

void fun(int x)
{static int y;……return;
}
int z;
void main( )
{int a,b;fun(a);……
}

A.x,y
B.x,y,z
C.a,b,z
D.a,b,x,y,z

C
解析:

普通局部变量是再熟悉不过的变量了,在任何一个函数内部定义的变量(不加static修饰符)都属于这个范畴。编译器一般不对普通局部变量进行初始化,也就是说它的值在初始时是不确定的,除非对其显式赋值。

普通局部变量存储于进程栈空间,使用完毕会立即释放。

静态局部变量使用static修饰符定义,即使在声明时未赋初值,编译器也会把它初始化为0。且静态局部变量存储于进程的全局数据区,即使函数返回,它的值也会保持不变。

变量在全局数据区分配内存空间;编译器自动对其初始化
其作用域为局部作用域,当定义它的函数结束时,其作用域随之结束

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

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

相关文章

搭建独立博客,这款评论插件不能错过

微信公众号因为申请的时间晚,一直到现在都无法开通评论功能,之前博客一直使用的多说作为评论系统,自从多说关闭后,好多年都处于无评论状态,最近发现 gitalk 还不错,所以在博客中进行了对 gitalk 的集成&…

最大堆和最小堆(数据结构)

堆和栈的区别: 一、空间分配区别: 栈(操作系统):由操作系统自动分配释放,存放函数的参考值,局部变量的值等。其操作方式类似于数据结构中的栈堆(操作系统):一…

2019公众号总结之——Top100 技术文章汇总

大家好,我是张善友。新年伊始,我们在欢送10年代的同时迎来了20年代。在这个崭新的时代,感谢各位朋友一直关注“dotnet跨平台”。一晃5年有余,关注公众号的粉丝6万,相对于.NET开发人员,希望2020年有更多小伙…

树,森林,二叉树的互相转换

树、森林到二叉树的转换 将树转换为二叉树 树中每个结点最多只有一个最左边的孩子(长子)和一个右邻的兄弟。按照这种关系很自然地就将树转换成相应的二叉树: 在所有兄弟结点之间加一连线对每个结点,除了保留与其长子的连线外&am…

数据丢失引起宕机怎么办?

做过系统开发和运维的朋友,应该最怕数据丢失问题出现,更严重的是造成无法恢复的糟糕境地,简直叫人崩溃啊,这周有一个朋友跟我咨询这方面的事情,就整理了一下数据库自动异地备份的方法,分享给大家。大家都知…

python字典(Dict)

字典的创建 字典的访问(List转换) 字典的遍历 字典的添加 字典的合并 字典的删除(清空) 字典的其他操作 字符串转字典(eval) 字典的创建 dict1{"A":1,"B":2,"C":99} //直接…

ASP.NET Core跨平台技术内幕

ASP.NET Core设计初衷是开源跨平台、高性能Web服务器,其中跨平台特性较早期ASP.NET是一个显著的飞跃,.NET现可以理直气壮与JAVA同台竞技,而ASP.NET Core的高性能特性更是成为致胜法宝。ASP.NET Core 2.1为IIS托管新增In-Process模型并作为默认…

6-23 分离链接法的删除操作函数 (20 分)

试实现分离链接法的删除操作函数。 函数接口定义: bool Delete( HashTable H, ElementType Key );其中HashTable是分离链接散列表,定义如下: typedef struct LNode *PtrToLNode; struct LNode {ElementType Data;PtrToLNode Next; }; typed…

使用 Visual Studio Code 进行远程开发

在完成了 AT 指令入门的学习之后,接下来就要使用 AT 指令进行 Socket 通信了。问题在于,之前 .NET 的 Socket 编程只需一台电脑便可进行学习,服务器和客户端都可以在本机运行,也可以分别运行在局域网上的两台电脑之上。而 NB-IOT …

AI人工智能

1,为什么要对特征做归一化? 2,什么是组合特征?如何处理高维组合特征? 3,请比较欧式距离与曼哈顿距离? 4,为什么一些场景中使用余弦相似度而不是欧式距离? 5,O…

python练习题

一、 请编写程序,使得能够计算以下算术运算并打印结果:9的3次方 print(9**3)二、 给你一个整数,代表Tom的妈妈买的书本的数量,输出一段英文,能完整表述Tom的妈妈买了几本书。本题考查字符串的组合、数据类型的变换、变…

.NETCore3.1中的Json互操作最全解读-收藏级

前言本文比较长,我建议大家先点赞、收藏后慢慢阅读,点赞再看,形成习惯!我很高兴,.NETCore终于来到了3.1LTS版本,并且将支持3年,我们也准备让部分业务迁移到3.1上面,不过很快我们就遇到了新的问题…

在一个数组中实现两个堆栈

6-11 在一个数组中实现两个堆栈 (20 分) 本题要求在一个数组中实现两个堆栈。 函数接口定义: Stack CreateStack( int MaxSize ); bool Push( Stack S, ElementType X, int Tag ); ElementType Pop( Stack S, int Tag );其中Tag是堆栈编号,取1或2&…

逻辑结构的四种基本关系

逻辑结构的四种基本关系 1集合结构:数据元素之间除了“属于同一集合”的关系外,没有其他关系 2线性结构:数据元素之间存在一对一的关系 3树结构:数据元素之间存在一对多的关系 4图结构:数据元素之间存在多对多的关系

轻量级开源小程序SDK发车啦

Magicodes.WxMiniProgram.Sdk轻量级微信小程序SDK,支持.NET Framework以及.NET Core。目前已提供Abp模块的封装,支持开箱即用。地址:https://github.com/xin-lai/Magicodes.WxMiniProgram.SdkNuget新的包主要功能轻量级微信小程序SDK&#xf…

单链表基础知识详解

//通常使用结构的嵌套来定义单向链表结点的数据类型 typedef struct Node *PtrToNode;//将Node命名为PtrToNode struct Node {ElementType Data;//存储结点数据PtrToNode Next;//指向下一个结点的指针 }; //结构类型Node中的Next分量又是该结构类型的指针&#xff0…

[译文] C# 8 已成旧闻, 向前, 抵达 C# 9!

C# 8 is old news. Onward, to C# 9! (C# 8 已成旧闻, 向前, 抵达 C# 9!)Did you know that planning is already underway for the ninth version of the C# language?第九版 C# 语言已经在开发中了, 你晓得伐?Now, to be fair, this has been in the planning phases long,…

考察对顺序表的理解

顺序表是在计算机内存中以数组的形式保存的线性表 线性表的顺序存储是指用一组地址连续的存储单元依次存储线性表中的各个元素、使得线性表中在逻辑结构上相邻的数据元素存储在相邻的物理存储单元中,即通过数据元素物理存储的相邻关系来反映数据元素之间逻辑上的相邻…

2020年你应该学习 .Net Core

一、什么是.NET Core.NET Core是一个开源通用的开发框架,支持跨平台,即支持在Window,macOS,Linux等系统上的开发和部署,并且可以在硬件设备,云服务,和嵌入式/物联网方案中进行使用。.NET Core的…

对表头指针、表头结点,单链表删除的理解

https://blog.csdn.net/weixin_46678290/article/details/105309156