题一:
下面哪些运算符不能被重载?()
正确答案: A B C 你的答案: A B (错误)
三目运算符“?:”
作用域运算符“::”
对象成员运算符“.”
指针成员运算符“->”
解答:
不能被重载的运算符只有五个,分别是

  1. . (成员访问运算符)
    • (成员指针访问运算符)
  2. :: (域运算符)
  3. sizeof (长度运算符)
  4. ?: (条件运算符)
    前两个运算符不能重载是为了保证访问成员的功能不被改变 ,域运算符和sizeof运算符的运算对象是类型而不是变量或者一般表达式,不具备重载的特征。

题二:
稀疏矩阵压缩的存储方法是:()
正确答案: A D 你的答案: A C (错误)
三元组
二维数组
散列
十字链表
解答:
三元组表示稀疏矩阵可大大节省空间,但是当涉及到矩阵运算时,要大量移动元素。

十字链表表示法可以避免大量移动元素。
节点结构如下: down指向同列下一个节点,right指向同行下一个节点

矩阵部分表示如下:

题三:
若调用fputc函数输出字符成功,则其返回值是()。
正确答案: D 你的答案: C (错误)
EOF
1
0
输出的字符
解答:
【解释】fputc函数输出字符成功时,其返回值就是输出的字符。故选择答案是D.
题四:
若使用枚举法求解TSP算法,则时间复杂度是()
正确答案: B 你的答案: D (错误)
n!
(n-1)!
n^2
n
解答:
枚举法解决旅行商问题,即在一个连通图里在每一个节点上进行穷举,第一个节点为n-1,第二个节点n-2,……,即为(n-1)!
题五:
下面哪种情况下,B不能隐式转换为A?
正确答案: B 你的答案: D (错误)
class B:public A{}
class A:public B{}
class B{operator A();}
class A{A(const B&);}
解答:
答案A,表示A是基类,B是派生类,向上级类型转换是隐式的,因为部分元素丢弃可以自动完成,向下转型是显式的因为不知道应该增加的值是什么。所以B不能。
答案C,Operator除了表示函数重载操作符,还可以表示B类型可以装换为A类型。这个知识点就有点偏了。
答案D,拷贝构造函数, B b = A 肯定是可以的。
题六:
堆排序的时间复杂度是(),堆排序中建堆过程的时间复杂度是()。
正确答案: C 你的答案: D (错误)
O(n2),O(n log n)
O(n),O(n log n)
O(n log n),(n)
O(n log n),O(n log n)
解答:
堆排序的时间,主要由建立初始堆和反复重建堆这两部分的时间开销构成,它们均是通过调用Heapify实现的。时间复杂度O(n*logn)
如果从底部最后的父节点开始建堆,那么我们可以大概算一下: 假如有N个节点,那么高度为H=logN,最后一层每个父节点最多只需要下调1次,倒数第二层最多只需要下调2次,顶点最多需要下调H次,而最后一层父节点共有2(H-1)个,倒数第二层公有2(H-2),顶点只有1(2^0)个,所以总共的时间复杂度为s = 1 * 2^(H-1) + 2 * 2^(H-2) + … + (H-1) * 2^1 + H * 2^0 将H代入后s= 2N - 2 - log2(N),近似的时间复杂度就是O(N)。
题七:
能说明快速排序是不稳定的排序方法的一组关键字序列是( ).
正确答案: C 你的答案: D (错误)
(10,20, 30, 40,50)
(50, 40, 30, 20,10)
(20, 20,30,10,40)
(20, 40, 30, 30, 10)
解答:
快排的原理是取基准分区,左边的小于或等于基准,右边的大于基准。依次类推,直到每区只有一个元素。
不稳定的含义是建立在有两个相同元素在排序前后,相对位置发生了变化。所以排除A、B选项。
C选项(20, 20,30,10,40)根据快排原理,当比对到10,则10与第一个20交换位置,则相对于第二个20发生了位置变化。所以不稳定。
题八:
带头结点的单链表head为空的判定条件( )
正确答案: B 你的答案: C (错误)
headNULL
head->nextNULL
head->nexthead
head!=NULL
解答:
1、带头结点单链表:head->nextNULL
2、带头结点循环链表:head->nexthead
3、不带头结点单链表:headNULL
题九:
下面有关c++线程安全,说法错误的是?
两个难点:
正确答案: C 你的答案: B (错误)
线程安全问题都是由全局变量及静态变量引起的
若每个线程中对全局变量、静态变量只有读操作,而无写操作,一般来说,这个全局变量是线程安全的;若有多个线程同时执行写操作,一般都需要考虑线程同步,否则的话就可能影响线程安全
c++标准库里面的string保证是线程安全的
POSIX线程标准要求C标准库中的大多数函数具备线程安全性
线程安全问题都是由全局变量及静态变量引起的 ?
答案:
1.局部变量局部使用是安全的
为什么?因为每个thread 都有自己的运行堆栈,而局部变量是生存在堆栈中,大家不干扰。
2.全局原生变量多线程读写是不安全的 , 全局变量是在堆(heap)中。
3.函数静态变量多线程读写也是不安全的。
4.volatile能保证全局整形变量是多线程安全的么?
不能。 volatile仅仅是告诫compiler不要对这个变量作优化,每次都要从memory取数值,而不是从register
5.InterlockedIncrement保证整型变量自增的原子性
写好多线程安全的法宝就是封装,使数据有保护的被访问到
安全性:
局部变量 > 成员变量 > 全局变
题十:
下面代码打印结果为()
class Base {
char data[3];
public:
virtual void f() { cout << “Base::f” << endl; }
virtual void g() { cout << “Base::g” << endl; }
virtual void h() { cout << “Base::h” << endl; }
};
int main()
{
cout << sizeof(Base)<< endl;
return 0;
}
正确答案: C 你的答案: D (错误)
6
7
8
9
解答:
类中虚函数存放的只是虚函数表的指针,4个字节,加上char求组的3个字节,对齐以后就是8字节
题十一:
数组A=array[1…100,1…100]以行序为主序存储,设每个数据元素占2个存储单元,基地址为10,则LOC[5,5]应为。
正确答案: C 你的答案: B (错误)
1020
1010
818
808
解答:

题十二:
32位机器上,有三个类A B C定义如下, 请确定sizeof(A) sizeof(B) sizeof©的大小顺序.
struct A{
A() {}
~A() {}
int m1;
int m2;
};
struct B:A{
B() {}
~B() {}
int m1;
char m2;
static char m3;
};
struct C{
C() {}
virtual~C() {}
int m1;
short m2;
};
正确答案: D 你的答案: D (正确)
A=B=C
A<B<C
A=C<B
A<C<B
解答:
Examples:
//空类:
class CBase
{ };
空类也会被实例化,编译器会给空类隐含的添加一个字节,sizeof()的结果是1。

//这个也是空类
class Base
{
public:
Base();
~Base();
}; //1字节

class CBase
{
public:
CBase(void); //其他成员函数不归入sizeof统计
virtual ~CBase(void); //虚析构函数 virtual ~Base() 的指针占4子字节
private:
int a; //32位机器上,32 / 8 = 4 字节
char *p; // 同上 4字节
};//一共 4 + 4 + 4 = 12 字节

class Derive:public Base //Derive类首先要具有Base类的部分,也就是占12字节
{
public:
Derive():Base(){};
~Derive(){};
private:
static int st; //非实例独占 , static int st;不归入sizeof统计
int d; //占4字节
char *p; //4字节指针
}; //12 + 8 = 20 字节
1.类的大小为类的非静态成员数据的类型大小之和,也就是说静态成员数据不作考虑。
2.普通成员函数与sizeof无关。
3.虚函数由于要维护在虚函数表,所以要占据一个指针大小,也就是4字节。
4.类的总大小也遵守类似class字节对齐的,调整规则。

//32位机器上,有三个类A B C定义如下, 请确定sizeof(A)=8 sizeof(B)=8+5+对齐=16 sizeof©=10+对齐=12的大小顺序.
struct A{
A() {}
~A() {}
int m1; // 4
int m2; // 4
};
struct B:A{
B() {}
~B() {}
int m1; // 4
char m2; // 1
static char m3;
};
struct C{
C() {}
virtual~C() {} // 4
int m1; // 4
short m2; // 2
};

32位编译器:
char :1个字节
char*(即指针变量): 4个字节(32位的寻址空间是2^32, 即32个bit,也就是4个字节。同理64位编译器)
short int : 2个字节
int: 4个字节
unsigned int : 4个字节
float: 4个字节
double: 8个字节
long: 4个字节
long long: 8个字节
unsigned long: 4个字节
64位编译器:
char :1个字节
char*(即指针变量): 8个字节
short int : 2个字节
int: 4个字节
unsigned int : 4个字节
float: 4个字节
double: 8个字节
long: 4个字节
long long: 8个字节
unsigned long: 8个字节

Jeff的错题集(九):奥利给!相关推荐

  1. C语言易错题集 第四部

    C语言易错题集 第四部 一.位操作相关 二.switch()相关 三.输出相关 四.实数相关 五.指针&a相关 六.指针访问数组元素相关 七.转义字符相关 八.类型提升问题 九.是不是正确的浮 ...

  2. C语言易错题集 第二部

    C语言易错题集后续 一.共用体相关(union) 二.do,while相关 三.char溢出相关 四.printf()相关 五.++相关 六. for语句相关 七.calloc()相关 八.defin ...

  3. c语言解三元一次方程组_七年级下学期《8.3 一元一次不等式组》2020年高频易错题集...

    一.选择题(共10小题) 二.填空题(共5小题) 三.解答题(共5小题) 七年级下学期<8.5 一元一次不等式组>2020年高频易错题集 参考答案与试题解析 一.选择题(共10小题) [点 ...

  4. php开发错题集,基于PHP技术数学错题集错系统的设计实现

    基于PHP技术的数学错题集错系统的设计与实现 摘要:现代信息技术的快速发展和不断更新,引发了教育教学领域的深刻变革.先进的教育理念鼓励教师把现代信息技术与其它学科课程相整合,鼓励教育技术从" ...

  5. “错题集”帮你期末考试冲向满分

    考试考不好,怎么办呢?习网的错题集可以全面的为学生解答平时的错误问题,是冲向满分的开始.考试没考好,一般分为以下几点: 1.睡眠不够,那就加强睡眠.延长睡眠的时间和提高睡眠质量,早半小时睡觉.睡觉前听 ...

  6. 阿里云ACP云计算错题集1-40

    大家都来考个阿里云ACP认证吧,这里是阿里云ACP云计算错题集1-40,powered by zhengkai.blog.csdn.net. 1.在阿里云上创建专有网络VPC时,VPC会自动为用户创建 ...

  7. 阿里云ACP云计算错题集71-100

    每天学一点阿里云ACP认证,这里是ACP错题集,今天先来复习几个概念:伸缩模式.伸缩组.伸缩配置.伸缩规则.伸缩活动. by Moshow郑锴(大狼狗) zhengkai.blog.csdn.net ...

  8. 阿里云ACP云计算错题集101-120

    每天学一点阿里云ACP认证,这里是ACP错题集.温故而知新,从错题入手,可以更好理解出题点.难点. by zhengkai.blog.csdn.net 101.A公司基于阿里云服务构建了一套销售管理平 ...

  9. C语言练习题的错题集

    @C语言练习题错题集 判断题错题集 1.在对数组全部元素赋初值时,不可以省略行数,但能省略列数. 对于数组来说,列数是不可以省略的,相反的可以省略行数. 2.数组名就是一个指针常量,指向数组的首元素( ...

最新文章

  1. linux进程与端口查看命令
  2. Python 网络编程(Socket)
  3. vue控制多行文字展开收起
  4. 电泳涂装行业调研报告 - 市场现状分析与发展前景预测(2021-2027年)
  5. 分片上传,断点续传,还有秒传
  6. java.lang.NoClassDefFoundError 怎么解决
  7. 会声会影编辑面板常用功能介绍
  8. BZOJ3781 小B的询问
  9. 推荐几个很好的资源下载网站
  10. 工科数学分析寒假预习day3 一般级数的敛散性
  11. 硬核!高频Linux命令大总结,建议收藏~
  12. The content of element type “mapper“ must match “(cache-ref|cache|resultMap*|parameterMap*|sql*|inse
  13. cad刷新快捷键_CAD快捷键大全清单,送给每一位CAD初学者,非常实用的干货
  14. vue实现不同页面显示不同标题
  15. golang并发编程之Ticker
  16. 提升思维品质,不可不知的5个工具
  17. Android Studio 安装应用失败总结
  18. 有道云Markdown笔记导出PDF
  19. 首都师范 博弈论 6 1 7逆向归纳法应用2 斯塔克伯格模型
  20. Chrome浏览器多开

热门文章

  1. 蓝牙Bluetooth模块介绍
  2. 终于等到你,最强 IDE Visual Studio 2017 正式版发布
  3. CSRF攻击的原理和spring security对CSRF攻击的解决方法
  4. 知乎上的48条神回复!看完人生透彻了许多!
  5. 封装Libuv定时器 - Timer
  6. 添加msg文件找不到目录add_message_files() directory not found:
  7. 手把手教您使用北美打折返利网
  8. docker下安装kong和konga
  9. 解决CentOS下boost安装后不能使用的问题
  10. 对称密钥算法和公钥算法的优缺点