C++:每日选择题--Day3

第一题

  1. 指针变量p进行自加运算(即 执行p++;)后,地址偏移值为1,则其数据类型为,char说法是否正确?
    A:正确

B:错误

答案及解析 B

比如我们的空类,空类所占的字节为1,指向空类的指针,自加运算之后,地址偏移也是1;

第二题

  1. 有如下类定义,请问sizeof(A)的值为:
cpp 复制代码
class A 
{
  public:
    int fun1();
  private:
    int _a;
    static int b;
};

A:12

B:8

C:4

D:1

答案及解析 C

本题考查的是static类型的成员变量是否应该计算到sizeof里,答案是不需要;因为static类型的变量,不是属于某个对象的,是属于整个类的;所以不需要计算。

第三题

  1. 下面程序的输出结果是()
cpp 复制代码
#include <iostream>
using namespace std;
int i = 0;
int fun(int n) 
{
    static int a = 2;
    a++;
    return (a * n);
}
 
int main() 
{
    int k = 5;
    {
        int i = 2;
        k += fun(i);
    }
    k += fun(i);
    cout << k;
    return (0);
}

A:11

B:12

C:13

D:14

答案及解析 A

明天出解析,请谅解!

第四题

  1. 下面描述错误的是( )
    A.this指针是非静态成员函数的隐含形参.

B.每个非静态的成员函数都有一个this指针.

C.this指针是存在对象里面的.

D.this指针可以为空

答案及解析 C

A:this指针就是非静态成员函数都有的隐藏的形参,this指的是实例化对象的地址;而静态成员函数是属于整个类的,不是某个对象的,所以无法得到实例化对象的地址,也就不需要this指针了;

B:正确;

C:this指针是非静态成员函数的形参,存在的是函数栈帧,因为是形参,不存在对象里。

D:this指针一般不为空,但是可以强制转换为空;

第五题

  1. 在32位机器上用gcc编译以上代码,求sizeof(A),sizeof(B)分别是()
cpp 复制代码
class A 
{
    int a;
    short b;
    int c;
    char d;
};
class B 
{
    double a;
    short b;
    int c;
    char d;
};

A:12 16

B:12 12

C:16 24

D:16 20

答案及解析 C

依旧是内存对齐:C/C++内存对齐规则(结构体、联合体、类)-CSDN博客

相关推荐
酷在前行3 分钟前
【R绘图】Nature Communications 半眼图复刻:分布、区间与多面板排版(保姆级教程)
android·开发语言·r语言
C++、Java和Python的菜鸟16 分钟前
第10章 后端Web进阶(Maven高级)
开发语言·python
神罚天下ET1 小时前
.NET 新增功能系列文章——C# 中的新增功能
开发语言·c#·.net
所愿ღ1 小时前
SSM框架-Spring3
java·开发语言·笔记·spring
noipp1 小时前
推荐题目:洛谷 P3726 [AHOI2017/HNOI2017] 抛硬币
c语言·数据结构·c++·算法·编程·洛谷·luogu
c238561 小时前
C/C++每日一练14
c语言·c++·算法
影视飓风TIM2 小时前
C++ STL 完整入门笔记[8]:deque 底层原理深度剖析
开发语言·c++·笔记
zmzb01032 小时前
C++课后习题训练记录Day176
开发语言·c++
qz5zwangzihan12 小时前
题解:Atcoder Beginner Contest abc469 F - GCD Maximum Spanning Tree
c++·图论·kruskal·并查集·atcoder·abc469·abc469_f
王维同学2 小时前
跨位数进程的映像、命令行与环境块读取
c++·windows·安全