前言
记录一下自己遇到的笔试题
1.(单选)下列链表中,其逻辑结构属于非线性结构的是()
A.二叉链表
B.双向链表
C.循环链表
D.带链的的栈
解析:
- 常见线性结构:线性表,栈,队列,双队列,串,数组
- 常见非线性结构:二维数组,多维数组,广义表,树
- 结合上面举例的结构不难猜出线性结构是指数据元素之间存在一对一的线性关系,即每个元素只有一个直接前驱和一个直接后继
- 然后来分析选项,二叉链表是二叉树的物理实现,是一种存储结构,不属于线性结构,上面也举例了树不是线性结构。答案是A,其他选项也提一嘴
- 双向链表对比于单链表就是节点头部有一个next域,在单链表中的结点中增加一个指针域指向它的直接前件,这样的链表,就称为双向链表,如下图
他仍是每个元素只有一个直接前驱和一个直接后继,所以还是线性结构 - 循环链表具有单链表的特征,但又不需要增加额外的存贮空间,仅对表的链接方式稍做改变,使得对表的处理更加方便灵活,头节点与尾节点相连罢了,仍是线性结构
- 栈不用多说,是线性结构
2.(单选)下面不属于软件设计阶段任务的是()
A.软件的总体结构设计
B.软件的数据分析
C.软件的需求分析
D.软件的详细设计
解析:
软件设计可以分为概要设计和详细设计 两个阶段。概要设计就是结构设计 ,其主要目标就是给出软件的模块结构,用软件结构图表示。详细设计的首要任务就是设计模块的程序流程、算法和数据结构。次要任务就是设计数据库,常用方法还是结构化程序设计方法。 实际上软件设计的主要任务就是将软件分解成模块,模块是指能实现某个功能的数据和程序说明、可执行程序的程序单元。可以是一个函数、过程、子程序、一段带有程序说明的独立的程序和数据,也可以是可组合、可分解和可更换的功能单元。然后进行模块设计。所以应选择C选项。
3.(单选)下列叙述中错误的是()
A.二分查找只适用于顺序存储的线性有序表
B.所有二叉树都另能用二叉链表表示
C.有多个指针域的链表也有可能是线性结构
D.循环队列是队列的存储结构
解析:
- 逐选项分析,二分查找是必须有序才行的,这一点一想就应该明白了,A是对的
- 额,这题好像有点问题,反正B是错的
- 只要每个元素只有一个直接前驱和一个直接后继就是线性结构,C是对的
- D是对的
4.(单选)以下各进制正整数中,值最大的是()
A.(10101101)~2~
B.(264)~8~
C.(155)~10~
D.(AE)~16~
解析:
进制换算,不难,直接全转十进制,
(10101101)~2~=173
(264)~8~=180
(155)~10~=155
(AE)~16~=174
选B
5.(单选)设在某C程序中有以下变量声明(定义)和初始化语句,那么值为0(即逻辑假)的表达式为()。int x=5,y=0;char z='0';
A.!(x||y)&&z
B.(x|y)&&(!xz)
C.x||y&&z
D.(x&&y)||(x&&z)
解析:
逐项分析:
先明白运算符优先级,在这道题出现的运算符中,括号()最高,其次逻辑非!,再是或||和与&&,这两同级,按左到有运算
第一个选项如图:
选A
第二个选项:
B这个选项这个(!xz)没看懂,估计题目有误,不讨论,
第三个选项:
第四个选项:
6.(单选)嵌套层次不得超过()
A.4
B.5
C.6
D.7
解析:
这题没有找到合适的答案,网上查到的是说不建议超过三层,我在做这道题时选的时A,4层
7.(单选)能正确表示a和b同时为正(正数不包含0)或同时为负的逻辑表达式是()
A.(a>0||b>0)&&(a<0||b<0)
B.(a>0&&b>0)&&(a<0&&b<0)
C.(a+b>0)&&(a+b<=0)
D.a*b>0
解析:
这个很简单,一眼看过去,A,B,C的与运算符两边都是相斥的,只有D在a和b同时为正或为负时表达式为真
8.(单选)下面哪个是指CPU一次能并行处理的二进制位数,是CPU的主要技术指标之一
A.字节
B.带宽
C.位宽
D.字长
解析:
选A,字长是是CPU的主要技术指标之一
字节(Byte,拜特)是计算机处理数据的基本单位
9.(单选)构成计算机软件的是()
A.程序和数据
B.程序,数据及相关文档
C.程序和文档
D.源代码
解析:
选B
10.(单选)下列叙述正确的是()
A.多重链表必定是非线性结构
B.堆可以用完全二叉树表示,其中序遍历序列是有序序列
C.排序二叉树的中序遍历序列是有序序列
D.任何二叉树只能采用链式存储结构
解析:
- 关于线性结构只要记住每个元素只有一个直接前驱和一个直接后继就是线性结构就行,多重链表也有可能是线性结构
- 堆的中序遍历不是有序的
- C是对的
- 二叉树还可采用顺序存储结构
11.寄存器类型变量的作用域和寿命与自动类变量的相同
A.对
B.错
解析:
这句话是对的
寄存器类变量是指存储在CPU寄存器中的变量,与自动类变量是两种不同的存储方式,但是在作用域和寿命上是相同的
12.C语言的书写格式不会影响程序的可读性
A.对
B.错
解析:
额,我觉得是对的,
13.C语言允许用字符串的方式对数组初始化赋值
A.对
B.错
解析:
对的
14.C语言是一种具有某些低级语言特征的高级语言
A.对
B.错
解析:
对的
15.可以用一个指针变量指向一个函数,然后通过指针变量调用此函数
A.对
B.错
解析:
对的
16.函数strcmp从头至尾顺序地将其对应字符比较,遇到两个字符不等时,两个字符相减得到一个int型值,两个字符串完全相等时,则返回0
A.对
B.错
解析:
对的
17.循环体包括有一个以上的语句,则必须用{}括起来,组成复合语句
A.对
B.错
解析:
对的
18.申请资源时,明确资源的适用范围,不要超范围适用。比如:局部变量不要在函数外部使用,线程内部资源不要在线程外使用
A.对
B.错
解析:
对的
19.表达式语句和表达式没有什么区别
A.对
B.错
解析:
错的
20.局部变量如果没有指定初值,则其初值不稳定
A.对
B.错
解析:
对的