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博客

相关推荐
feng_blog668813 分钟前
C++线程池|解决死锁、崩溃、丢任务所有痛点
java·开发语言·c++
天天进步201520 分钟前
魔音漫创源码解析:状态管理——复杂长链路下的状态同步:Zustand 在多面板协作中的应用
开发语言·架构
古城小栈1 小时前
langchain-rust:高性能Rust LLM应用开发实战
开发语言·rust·langchain
我是无敌小恐龙2 小时前
Java基础入门Day10 | Object类、包装类、大数/日期类、冒泡排序与Arrays工具类 超详细总结
java·开发语言·数据结构·算法·贪心算法·排序算法·动态规划
yuanyuan2o22 小时前
从最小项目开始的 CMake 教程
c语言·开发语言·arm开发·c++·makefile·make·cmake
lifewange2 小时前
pytest 找不到文件?直接在 pytest.ini 配置根目录 + 路径(最简单方案)
开发语言·python·pytest
大鹏说大话3 小时前
MySQL + Redis + Caffeine:Java后端通用三级缓存架构实战
开发语言
yuanpan3 小时前
Python 桌面 GUI 入门开发:从 tkinter 窗口到简易记事本
开发语言·python
User_芊芊君子3 小时前
聊聊自由开发者常用的学习机会全解析
开发语言·人工智能·python
AI人工智能+电脑小能手3 小时前
【大白话说Java面试题】【Java基础篇】第40题:Java中的深拷贝和浅拷贝有什么区别
java·开发语言·后端·面试