2022暑期复习-Day3
Posted Booksort
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了2022暑期复习-Day3相关的知识,希望对你有一定的参考价值。
目录
选择题
Q1 关于重载函数,( )说明是正确的。
A: 函数名相同,参数类型或个数不同
B: 函数名相同,返回值类型不同
C: 函数名相同,函数内部实现不同
D: 函数名称不同
函数重载-静态的多态
要求函数名相同,参数列表不同,缺省参数要从右向左排布
答案:A
Q2 关于引用以下说法错误的是( )。
A: 引用必须初始化,指针不必
B: 引用初始化以后不能被改变,指针可以改变所指的对象
C: 不存在指向空值的引用,但是存在指向空值的指针
D: 一个引用可以看作是某个变量的一个“别名”
E: 引用传值,指针传地址
F: 函数参数可以声明为引用或指针类型
引用必须显示初始化,而指针可以不用显示初始化,但是其编译器自动指向了某个不重要的地址。
引用初始化就绑定了一个对象,这个无法再去绑定其他的对象。
引用,起先我个人认为引用也算一种传值,只不过和普通的传值相比,传值是传递的是值的拷贝,而传引用传的是值本身。但是细想,如果仅仅所谓的传递值本身,是没有意义的,C++中没有传递值本身这个说法,且引用在底层上也是指针的一种封装,所以引用传递的也是地址。
答案:E
Q3 以下程序输出的是( )。
A: 编译阶段报错运行阶段报错
B: a = 10, *p = 10
C: a = 20, *p = 20
D: a = 10, *p = 20
E: a = 20, *p = 10
这个可以去IDE试试
引用我的C++类型转换的笔记
答案:D
Q4 在 Windows 32 位操作系统中,假设字节对齐为 4 ,对于一个空的类 A , sizeof(A) 的值为( )。
A: 0
B: 1
C: 2
D: 4
类的实例化是在内存中分配一块地址,每个实例在内存中都有独一无二的二地址。同样,空类也会实例化,所以编译器会给空类隐含的添加一个字节,这样空类实例化后就有独一无二的地址了。
所以,空类的sizeof为1,而不是0. 多重继承的空类的大小也是1.
答案:B
Q5 有如下类的定义:
在所描述的函数中,具有隐含 this 指针的是哪个( )。
A: F1
B: F2
C: F3
D: F4
只有类中的成员函数才能隐含this指针,但是static类的成员函数是不具备this指针
引用侯捷老师的一句话
静态成员函数没有this指针,不与类的实例(对象)“挂钩”,所以C++静态成员函数不能声明为const、volatile、virtual。
答案:C
编程题
Q6
version-1
class Solution
public:
void rotate(string& s,int left,int right)
while(left<right)
char tmp = s[left];
s[left] = s[right];
s[right] = tmp;
left++;
right--;
string reverseWords(string s)
int len = s.size();
int i=0;
int prev=0;
while(i<len)
if((i<len-1&&s[i+1]==' ')||(i==len-1&&s[i]!=' '))
if(prev!=i)
rotate(s,prev,i);
prev = i+2;
i++;
return s;
;
version-2
class Solution
public:
string reverseWords(string s)
// [start, pos)标记一个单词
int start = 0;
int pos = 0;
while (start < s.size())
// 从start位置开始,从前往后找最近的一个空格
pos = s.find(' ', start);
// 如果pos是-1,说明[start, s.size())刚好是最后一个单词,调整下pos
if (pos == -1)
pos = s.size();
// 逆置[start, pos)表示的单词
std::reverse(s.begin()+start, s.begin() + pos);
// 将start挪动到下一个单词的起始位置
start = pos + 1;
return s;
Q7
class Solution
public:
int maxPower(string s)
int len =s.size();
int i=0;
int prev=0;
int maxlen=0;
while(i<len)
if(s[i]==s[prev])
maxlen = max(i-prev+1,maxlen);
else
prev = i;
i++;
return maxlen;
;
以上是关于2022暑期复习-Day3的主要内容,如果未能解决你的问题,请参考以下文章
JDK的equals方法都写错了,那到底该怎么写呢?(备战2022春招或暑期实习,每天进步一点点,打卡100天,Day3)