1、(多选)下面关于哈夫曼树的描述中,错误的是(ABD)
A、哈夫曼树一定是完全二叉树
B、哈夫曼树一定是平衡二叉树
C、哈夫曼树中权值最小的两个节点互为兄弟节点(正确)
D、哈夫曼树中左孩子节点小于父节点,右孩子节点大于父节点。(错误,右孩子节点也小于父节点)
2、(判断)对于整数n,(n&(n-1))==0的函数是判断n是否为偶数。F
-------判断n是否为2的X次方(乘方的结果叫做幂。在a^n中,a叫做底数,n叫做指数。a^n读作“a的n次方”或“a的n次幂“。)
3、(多选题) Linux系统的优势有(AB) A. 多用户多任务,使用者与群组的规划 B. 稳定、高效和安全 C. 实时操作系统 D. 高游戏支持度
4. (单选题) 以下哪项用来确定路由优先级?(A)A.路由协议算法的优劣 B. 到目标网络的跳数 C.发送接口的带宽 D.物理链路的可靠性
5. (多选题) auto_ ptr 类使用必须满足下列限制:(ABCD) A. 不要使用auto. ptr对象保存指向静态分配对象的指针。 B. 不要使用两个auto. ptrs对象指向同-对象。 C. 不要使用auto_ ptr对象保存指向动态分配数组的指针。 D. 不要将auto.ptr对象存储在容器中。
6. (单选题) 若要将当前目录中的myfle.txt文件压缩成myfile.txt.tar.gz,命令为(C) A. tar -cvf myfile.txt myfile.txt.tar.gz B. tar -zcvf myfile.txt myfile.txt.tar.gzC )C. tar -zcvf mfle.txt.tar.gz myfile.txt D. tar -cvf myfle.txt.tar.gz myfile.txt
(参考 https://blog.csdn.net/uotail/article/details/89281459)
6.1.(单选题)在Linux系统下,要将wangyi.txt压缩成wangyi.txt.tar.gz,下面那个命令可以实现?(D) A. gzip –r wangyi.txt.tar.gz wangyi.txt B. gzip –r wangyi.txt wangyi.txt.tar.gzC. tar –zcvf wangyi.txt wangyi.txt.tar.gz D. tar –zcvf wangyi.txt.tar.gz wangyi.txt
7. (单选题)在C++语言中,下列说法正确的是:(D) A.inline函数表示编译器一定会将函数体直接插入到到调用此函数的地方,这样可以加快程序的运行速度 B.局部变量和全局变量不能重名 C.静态局部变量内存是在运行期分配的,存储在堆栈区 //(静态局部变量存在静态存储区,而局部变量存储在堆栈区,确切的说是栈区) D. C++不是类型安全的语言
8.(单选题)代码生成阶段的主要任务是:(C) A.把高级语言翻译成机器语言 B.把高级语言翻译成汇编语言 C.把中间代码变换成依赖具体机器的目标代码 D.把汇编语言翻译成机器语言
9.(单选题) void swap_ _int(int *a,int *b){ *a=*a+*b; *b=*a-*b; *a=*a-*b; }以下说法正确的是:(B) A.结果不正确,因为会溢出,用位与的方式就没问题B.结果正确,即使会溢出 C.结果正确,不会溢出 D.其他选项都不对
10. (单选题)C++中以下关于函数调用的说法哪个是正确的?(D) A.传地址后实参和形参指向不同的对象 B.传引用后实参和形参是不同的对象 //传引用后实参和形参应该是同一个对象的引用 C.传值后对形参的修改会改变实参的值 D.其他三项都不对
11. (单选题)C++中关于堆和栈的说法,哪个是错误的: (C) A.堆的大小仅受操作系统的限制,栈的大小一-般一般较小 B.在堆上频繁的调用new/delete容易产生内存碎片,栈没有这个问题C.堆和栈都可以静态分配 //错误× D.堆和栈都可以动态分配
12. (多选题)可以使用memset, memcpy直接进行初始化和拷贝的有:(ABD)A.结构 B.枚举 C.类实例D.指针
13.(单选题) x是一个行列数均为1000二维数组,下面代码效率执行最高的是(D) A. for(int j=0;j<1000;j++) for(int i=0;i<1000;i++) X[i][j]+=X[j][i]; B. for(int i=0;i<1000;j++) for(int j=0;j<1000;j++) X[i][j]+=X[j][i]; C. for(int i=0;i<1000j++) for(int j=0;j<1000;j++) X[j][i]+=x[j][i];D. for(int i=0;i<1000;++) for(int j=0;j<1000;j++) X[i][j]+=x[i][j]; //在连续地址取用元素
14.(单选题)引入多道程序技术以后,处理器的利用率(C) A.降低了 B.没有变化,只是程序的执行方便了 C.大大提高 D.没有影响
15.(多选题) TCP首部报文信息中跟建立链接有关的是(BD) A. PSH B. SYN C. FIN D. ACK
16.(多选题)关于TCP协议以下说法正确的是: (BD) A. 通讯双方被动关闭的一方进入TIME_ _WAIT状态B. TIME_ _WAIT状态会持续2个MSL C. TIME_ _WAIT状态会持续1个MSLD.通讯双方主动关闭的一方进入TIME_ _WAIT状态
17.(多选题)关于二叉树,下面说法正确的是(BD) A.二叉 树中至少有一个节点的度为2 B.一个具有1025个节点的二叉树,其高度范围在11到1025之间(在完全二叉树中,具有n个结点的完全二叉树深度为(log2n)+1,其中(log2n)+1是向下取整;满二叉树的深度为k=log2(n+1))? C.对于n个节点的二叉树,其高度为nlogn D. 二叉树的先序遍历是EFHIGJK,中序遍历为HFIEJKG,该二叉树的右子树的根为G
18.(多选题)下面算法中可以判断出一个有向图是否有环的是:(BD) A.求最短路径 B.深度优先遍历 C.广度优先遍历 D.拓扑排序
19.(单选题)修改替换file文件中myname字段为name,下列正确的是:(D) A. sed 's@name@myname@g file B. sed -i 's@name@myname@g' file C. sed 's@myname@name@g' fileD. sed -i 's@myname@name@g' file
20.(单选题)有一个算法的递推关系式为: T(N) = T(2N/3)+ 1,则该算法的时间复杂度为(D) (^符号 是幂的意思) A. 0(1) B. 0(N^log2(3)) C. 0(N|og3(2)) D. 0(logN)
21.(单选题)某表达式的后缀表达式为AB+CD+/E*,该表达式原型可能为以下哪个?(D) A. A+B/(C+D)*E B. ((A+B)/C+D)*E C. (A+B/C+D)*E D. (A+B)/(C+D)*E
//参考 https://blog.csdn.net/fireflylane/article/details/83017889
22.(主观题)简述下面几项定义各自表达的含义: a. int *ptr[n] //指针数组 b. int (*)ptr[n] //数组指针 c. int *ptr() d. int (*)ptr() e. int (* ((*ptr(int, int)))(int) 参考:
a:数组指针 定义 int (*p)[n]; ()优先级高,首先说明p是一个指针,指向一个整型的一维数组 b:指针数组 定义 int *p[n]; []优先级高,先与p结合成为一个数组,再由int*说明这是一个整型指针数组,它有n个指针类型的数组元素 e:ptr是一个函数指针,指向的的函数包含两个int参数,返回是另一个函数指针,返回的函数指针指向的函数包含一个int参数,并且返回int;要点:两个函数指针;
23.(单选题)在高性能、高并发的网络应用的主路径上,进行下面哪项操作是合理的? (C) A. 主动sleep 1秒 B. 访问同一内网中的memcached,超时时间设为5秒C. 调用getaddrinfo进行域名解析 D. 访问同一内网中的外存数据库,超时时间设为1
24.(多选题)下列说法错误的是(ABD) A. 已知- -颗二叉树的前序遍历顺序和后序遍历顺序,可以唯一-确定这棵二叉树× B.将一个递归算法改为非递归算法时,通常使用队列作为辅助结构× C.快速排序和堆排序都是不稳定排序。正确 √ D.二分查找法,平均时间复杂度为0(n) ×
注:归并排序是稳定的排序算法。归并排序是把序列递归地分成短序列,递归出口是短序列只有1个元素或者2个序列,然后把各个有序的段序列合并成一个有序的长序列,不断合并直到原序列全部排好序。可以发现,在1个或2个元素时,1个元素不会交换,2个元素如果大小相等,没有外部干扰,将不会破坏稳定性。 那么,在短的有序序列合并的过程中,稳定性是没有受到破坏的,合并过程中如果两个当前元素相等时,把处在前面的序列的元素保存在结果序列的前面,这样就保证了稳定性。所以,归并排序也是稳定的排序算法。
25.(单选题)典型的创建Windows窗口过程的流程为(A) A. 注册窗口类->创建窗口->显示窗口->更新窗口->消息循环 B. 注册窗口类->创建窗口->更新窗口->显示窗口->消息循环 C. 创建窗口->注册窗口类->更新窗口->显示窗口->消息循环 D. 创建窗口->注册窗口类->显示窗口->更新窗口->消息循环
26.(单选题)基于统计的分词方法为(D) A.正向最大匹配法 B.逆向最大匹配法 C.最少切分 D.条件随机场
27.(单选题)以下哪种操作更适合使用排序处理(C ) A.找最大,最小值 B.找出现次数最多的值 C.找中间值 //注解: ABD都只需要遍历一遍就可以了,不需要排序 D.求算术平均值
28.(单选题)不考虑任何编译器优化(如:NRV0),下述代码的第lable行会发生(D)
A. 一次默认构造函数,一次拷贝构造函数,一次析构函数,一次(拷贝赋值运算符)operator= B. 二次拷贝构造函数,一次析构函数 C. 一次(拷贝赋值运算符)operator=,一次析构函数 D. 一次拷贝构造函数,一次析构函数,一次(拷贝赋值运算符)operator=
29.(单选题)快速排序在下面哪种情况下优势最明显(C) A.数据有多个相同数值 B. 数据基本有序C.数据基本无序 D. 数据无任何相同数值
注解:快速排序每次将待排序数组分为两个部分,在理想状况下每一次都将待排序数组划分成等长两个部分,则需要logn次划分。而在最坏情况下(即数组已经有序或大致有序的情况下),每次划分只能减少一个元素,快速排序将不幸退化为冒泡排序,所以快速排序时间复杂度下界为O(nlogn),最坏情况为O(n^2)。 在实际应用中,快速排序的平均时间复杂度为O(nlogn)。
30.(多选题)关于进程和线程描述正确的是(ABD) A.线程不拥有系统资源,但可以访问隶属于进程的资源 B.在创建或销毁进程时系统开销明显大于创建或销毁线程时开销 C.进程是调度和拥有资源的基本单位 //× 线程才是 D.不仅进程可以并发执行,同一个进程的多个线程之间也可以并发执行
31.new_handler处理程序可以自行定义,并可以实现全局替换,自定义new_handler的期望行为有(ABC)
A.让更多的内存可用,并且返回
B.抛出类型为bad_alloc,或者派生自bad_alloc的异常
C.终止程序的执行,并且不返回至调用者
D.不建议抛出bad_alloc或者派生自bad_alloc的异常
32.关于下列代码说法错误的是(D)
A.flag1和flag2可能存储在单个存储器位置
B.thread1和thread2对flag1和flag2的访问可能导致不可预期的结果
C.上面的代码要加锁保护
D.上面的代码在执行后flags.flag1为1,flags.flag2为2
33.以下关于const的使用哪种写法错误(C)
A.const char& p = c;
B.char const& p = c;
C.char& const p = c;
D.char* const p = c;
34.下列说法正确的有(ABD)
A.尽量不要在头文件中出现"using namespace XXX"
B.命名空间不能在函数和类的内部定义
C.可以向标准命名空间std及其包含的命名空间中添加定义或声明
D.不要向标准命名空间posix及其包含的命名空间中添加定义或声明
35.调用va_start()宏时必须小心,关于va_start的第二个参数值类型的要求正确的是(ABC)
A.不能使用默认可以提升的参数类型
B.不能传引用
以上就是本篇文章【C/C++软件开发笔试题集锦】的全部内容了,欢迎阅览 ! 文章地址:http://lanlanwork.gawce.com/quote/8797.html 行业 资讯 企业新闻 行情 企业黄页 同类资讯 网站地图 返回首页 阁恬下移动站 http://lanlanwork.gawce.com/mobile/ , 查看更多