单选题
1. 在下列选项中,哪一项不属于软件工程的三要素?
A. 记录
B. 工具
C. 过程
D. 方法
2. 关于HTTP协议下面描述正确的是?
A. HTTP协议默认的端口号是8080。
B. HTTP切议是以ASCII码传输,建立在TCP/IP协议之上的应用层规范。
C. HTTP协议中只能通过post方法向服务器上传资源。
D. HTTP协议是有状态的。
3. 在编译系统中,语法分析程序的输出的是?
A. 语法分析树
B. 四元式
C. 表达式
D. 句子
4. 关于虛函数下列说法正确的是?
A. 编译阶段能够确定虚函数具体的函数代码。
B. 可以声明虛析构函数,因此也可以声明虛构造函数。
C. 父类声明虚函数后,子类声明同原型的函数且省略virtual关键字默认为虛函数。
D. 如果父类没有声明虛函数,那么子类也不能声明虛函数。
5. 下面代码段打印结果是什么
# include struct TEST { char t_a; char t_b; int t_c; char t_d; }; int main() { int a[3][5] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15}; int num = a[1][sizeof(TEST)/4]; printf("%d\n", num); return O; }
A. 10
B. 5
C. 4
D. 9
6. 在面向对象的程序设计中,下列说法正确的是?
A. 派生类继承方式是protected,基类的public成员变量在派生类的访问权限是public。
B. 派生类继承方式是private,基类的protected成员变量在派生类的访问权限是private。
C. 派生类继承方式是public,基类的protected成员变量在派生类的访问权限是public。
D. 派生类继承方式是protected,基类的private成员变量在派生类的访问权限是protected。
7. 关于Linux系统,描述错误的是?
A. Linux是内核目前尚无法脱离界面运行。
B. Linux主要分内核、Shell、文件系统和应用程序。
C. etc目录主要存放配置文件、启动脚本等。
D. bin目录主要放置一些系统的必备执行文件。
8. 网段地址154.27.0.0的网络,若不做子网划分,能支持几台主机?
A. 254
B. 1024
C. 65534
D. 16777206
9. Linux系统中,关于管道的描述错误的是?
A. 命名管道是存在内存中的特殊文件,可以使用文件操作函数进行读写。
B. 命名管道弥补了匿名管道在无关进程之间无法通信的局限性。
C. 命名管道也是半双工通信。
D. 匿名管道为半双工通信,同一时刻数据只能在一个方向上流动。
10. 关于斐波那契的这段代码时间复杂度是?
def fib_loop(n): if n <= 1: # 0,1 直接返回 return n fibs = [0] * (n+1) # 初始化一个数组 fibs[1] = 1 for i in range(2, n+1): # 从下标为2的数字开始 fibs[i] = fibs[i-1] + fibs[i-2] return fibs[n] # 返回第n个数字
A. O(n*n)
B. O(n)
C. O(2n)
D. O(logn)
11. 关于排序算法描述错误的是
A. 虽然快速排序速度较高,但是考虑到空间复杂度、元素类型、元素无序程度、代码风格等诸多元素,其他排序算法依然有其适用场景。
B. 冒泡排序核心思路是比较相邻的元素。如果第一个比第二个大,就交换。
C. 插入排序和快速排序的额外空间复杂度都是O(1)。
D. 希尔排序的核心思路是序列分割成为若干子序列分别进行直接插入排序。
多选题
1. 关于数组和链表的描述正确的有哪些?
A. 虽然数组和链表在内存中都是连续的,但是数组可以直接通过下标访问,比较快速。
B. 数组长度固定,而链表长度可以动态增减。
C. 数组从栈中分配空间,访问元素快捷但是自由度低。
D. 链表从堆中分配空间.插入和删除元素更加方便。
2. 关于下面func函数描述正确的是?
char *func(const char *str1, const char *str2) { char *cp = (char *) str1; char *s1, *s2; if (!*str2) return ((char *) str1); while (*cp) { s1 = cp; s2 = (char *) str2; while (*s1 && *s2 && !(*s1 - *s2)) s1++, s2++; if (!*s2) return (cp); cp++: } return NULL: }
A. func的功能是将str2拼接在str1后面。
B. func并未做函参的安全性检查,所以传入的指针如果有NULL的话,会出现运行错误。
C. func时间复杂度不稳定。
D. func的功能是判断str2在str1中首次出现的位置。
3. 关于OSI网络七层描述正确的是?
A. 物理层:通过媒介传输比特,确定机械及电气规范(比特Bit)。
B. 网络层:负责数据包从源到宿的传递和网际互连(包PackeT)。
C. 会话层:对数据进行翻译、加密和压缩(表示协议数据单元PPDU)。
D. 表示层:建立、管理和终止会话(会话协议数据单元SPDU)。
4. 下列哪个方法可用于创建一个可运行的类?
A. public class X extends Thread{public void run() {……}}
B. public class X implements Runnable{protected void run() {……}}
C. public class X implements Runnable{public void run() {……}}
D. public class X extends Thread{public int run() {……}}
5. 对于以下程序说法正确的是?
public class Test { public static void main(String args[]) throws Exception { for (int i = 0; i < 2: i++) { System.out.print(i + 'b' + 1); } } }
A. 时间复杂度是O(n)
B. 输出:0b11b1
C. 时间复杂度是o(1)
D. 输出:99100
6. 下列说法正确的是?
A. 静态成员函数不能访问普通成员变量。
B. 普通成员函数不可以访问静态成员变量。
C. 静态成员在类的所有对象中是共享的。
D. 在类的构造函数中不能初始化静态成员变量。
7. Linux系统中,以下哪些指令可以创建文件?
A. printf
B. >
C. echo
D. touch
8. 在软件工程中,关于单元测试方法,如下选项正确的是?
A. 静态测试可以通过人工分析来确认程序正确性。
B. 动态测试通过动态分析、程序测试等方法来检查和确认程序是否存在问题。
C. 黑盒测试又称结构测试,不考虑程序内部特性,只依据程序的需求规格说明书做检测。
D. 白盒测试又称功能测试,允许测试人员利用程序内部的逻辑结构及有关信息.设计或选择测试用例,对程序所有逻辑路径进行测试。
9. 以下说法错误的是?
A. 高级语言编译程序常用的语法分析方法中,递归分析法属于自底而上的分析方法。
B. 编译程序常常被设计成“前端”加“后端”的模式,有利于功能的移植和扩展。
C. 与编译器相比,解释器能产生运行更快的程序。
D. “未定义符号”错误 (Undefined Symbol Error) 一般发生在程序预编译阶段。
算法题
1. 手机运行时长
时间限制: 3000MS
内存限制: 589824KB
题目描述:
米小兔新买了一台小米mix fold 2,配备8英寸大屏,骁龙8+处理器和12G内存,拥有强劲性能,后台可以轻松在同一时间运行多款App。假设当后台没有App在运行时,手机进入休眠;否则手机处于运行状态。
第i个App的开始运行时间starti,运行结束时间endi,组成第i个App的运行区间intervals[i] = [starti, endi]。
数组intervals表示今天米小兔的mix fold 2的各个App的运行区间的集合,求今天米小兔的手机运行了多长时间
输入描述:
输入所有App的运行时间区间,每行都是一个App运行区间starti和endi
输出描述:
运行时间
样例输入:
1 3
2 6
8 10
15 18
样例输出:
10
2. 米小兔的英语考试
时间限制: 3000MS
内存限制: 589824KB
题目描述:
老师发给米小兔一串排列好的卡片,每个卡片上都有一个英文字母,组成的字符串为s。老师要求,米小兔可以通过增加卡片、抽出卡片、替换卡片的方式(26个英文字母均可替换),将卡片排列成目标字符串t。你能算一算,米小兔最少需要操作几次吗?
输入描述:
字符串s和字符串t
输出描述:
操作次数
样例输入:
“horse”
“ros”
样例输出:
3
提示:
字符串s和t的长度<=500
且字符串s和t均由小写英文字母组成