【1224】C选填(字符串\0占大小,类大小函数调用,const定义常量,逗号表达式取尾,abs返回值

server/2024/12/25 10:56:49/


1.设有数组定义: char array[]="China"; 则数组array所占的存储空间为__________

6

注意要加上\0的位置

数组中考虑‘\0’,sizeof()判断大小也要考虑‘\0’

2.初始化数组char[] strArray="kuai-shou",strArray的长度为()

9

数组长度不需要考虑\0

3.

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

using namespace std;

class A {

public:

    void FunctionA() {cout << "FunctionA" << endl;}

    virtual void FunctionB() {cout << "FunctionB" << endl;}

    static void FunctionC() {cout << "FunctionC" << endl;}

};

class B : public A {

public:

    void FunctionB() {cout << "FunctionB" << endl;}

    int FunctionD() {cout << "FunctionD" << endl;}

};

int main() {

    B *b = nullptr;

    b->FunctionA();

    b->FunctionB();

    b->FunctionC();

    b->FunctionD();

    return 0;

}

以上程序中,下列哪个函数调用会有问题()

b->FunctionB();

因为虚函数本质上是通过类对象的虚表进行访问,而且类的成员函数除了虚函数,其他都不存储在类当中,因此类对象不存在的情况下,无法使用虚函数,其他函数都可以正常访问(前提是这些函数都没有存取类对象的成员变量) 

对象本来就是空的,只不过需要1个字节来进行占位,成员函数是不占对象空间的,影响对象空间大小只有虚函数,成员变量,继承关系中的一些变量

  • 空类的对象需要 1 字节来确保它们具有唯一地址。
  • 成员函数不会影响对象的大小。
  • 虚函数会增加对象的大小,因为需要额外的虚函数表指针(vptr)。
  • 成员变量直接决定了对象的大小。
  • 继承关系中的基类成员会被继承到派生类,因此派生类对象的大小也包括基类成员的大小。

4.下列的常量定义中,错误的定义是(   )。

A const int M=10;

B const int M=20;

C const char ch;

D const bool mark=true;

c const char ch;

常量的定义必须初始化

5.对于下面的代码

1

2

int i = (j = 4, k = 8, l = 16, m = 32);

printf("%d", i);

的输出是()

32

逗号表达式,取尾

逗号运算级别很低,int i = (j=4,k=8,l=16,m=32) ,加了括号就是取最后一个值,所以i=32;如果没加加括号就该是i=4.

6.math.h的abs返回值()

A 不可能是负数

B 不可能是正数

C 都有可能

D 不可能是0

C 都有可能

abs是取整数绝对值的函数,会出现负数是因为int中最小的负数-128没办法用正数绝对值表示

num为0或正数时,函数返回num值;

当num为负数且不是最小的负数时(不要问我最小的int类型负数是多少,上面那个图里面有真相),函数返回num的对应绝对值数,即将内存中该二进制位的符号位取反,并把后面数值位取反加一;

当num为最小的负数时(即0x80000000)-128,由于正数里int类型32位表示不了这个数的绝对值,所以依然返回该负数。

7.下面两段代码中for循环分别执行了多少次?

1

2

3

4

5

6

7

8

9

1.

unsigned short i,j;

for(i=0, j=2; i!=j; i+=5, j+=7)

{}

2.

unsigned short i,j;

for(i=3,j=7;i!=j;i+=3,j+=7)

{}

32767 16383

跑圈追赶问题:

unsigned short 2个字节,2……16 = 65536,2的16次方

看成一个圈

1.

可认为j比i落后65536-2=65534距离,j比i每次多跑2距离

所以赶上需要65534/2=32767次

2.

j比i落后65536-4=65532距离,j比i每次多跑4距离

所以赶上需要65532/4=16383次

8.关于变量及其作用范围描述正确的是()

A 实例变量是类的成员变量

B 静态变量用关键字static声明

C 在方法体中定义的局部变量在该方法被执行时创建

D 局部变量在使用前可不用初始化

AB

  • C:局部变量存放在栈区;在Windows和Linux平台,全局/静态存储区跟执行代码一样,是在编译过程中就已经生成在执行文件中。
  • D:变量在使用前必须初始化,不初始化变量是没有意义的。


http://www.ppmy.cn/server/153022.html

相关文章

Scala图书管理系统

项目创建并实现基础UI package org.appimport scala.io.StdInobject Main {def main(args: Array[String]): Unit {var running truewhile (running) {println("欢迎来到我的图书管理系统&#xff0c;请选择")println("1.查看所有图书")println("2…

springboot482基于springboot的车辆违章信息管理系统(论文+源码)_kaic

摘 要 使用旧方法对车辆违章信息管理系统的信息进行系统化管理已经不再让人们信赖了&#xff0c;把现在的网络信息技术运用在车辆违章信息管理系统的管理上面可以解决许多信息管理上面的难题&#xff0c;比如处理数据时间很长&#xff0c;数据存在错误不能及时纠正等问题。这次…

[Unity Shader]【游戏开发】【图形渲染】 Shader数学基础5-方阵、单位矩阵和转置矩阵

在计算机图形学和Shader编程中,矩阵运算是非常基础的数学工具。本篇文章主要介绍以下内容: 方阵(Square Matrix)单位矩阵(Identity Matrix)转置矩阵(Transpose Matrix)以下将逐一展开讲解。 一、方阵 定义:方阵是指行数与列数相等的矩阵。在三维渲染中,最常用的方阵…

网络下载ts流媒体

网络下载ts流媒体 查看下载排序合并 很多视频网站&#xff0c;尤其是微信小程序中的长视频无法获取到准确视频地址&#xff0c;只能抓取到.ts片段地址&#xff0c;下载后发现基本都是5~8秒时长。 例如&#xff1a; 我们需要将以上地址片段全部下载后排序后再合成新的长视频。 …

C++可执行文件参数解析

前言 针对简单工程甚至是单cpp文件&#xff0c;C可执行二进制的参数获取&#xff0c;getopt被用来解析命令行选项参数。该接口在unix的头文件<unistd.h>中定义。参数类型区分为短参数&#xff08;只有一个中划线’-&#xff09;、长参数&#xff08;有2个中划线‘–’&a…

LLaMA-Factory GLM4-9B-CHAT LoRA 微调实战

&#x1f929;LLaMA-Factory GLM LoRA 微调 安装llama-factory包 git clone --depth 1 https://github.com/hiyouga/LLaMA-Factory.git进入下载好的llama-factory&#xff0c;安装依赖包 cd LLaMA-Factory pip install -e ".[torch,metrics]" #上面这步操作会完成…

C++练习:图论的两种遍历方式

一、遍历 一提到遍历&#xff0c;我们首先想到的肯定是树的遍历。因为在数据结构中我们是从树引出图的。但图明显比树更常见&#xff0c;更丰富&#xff0c;更多变。所以我们可能会被树的一些知识所固化了思维。比如树的遍历有前、中、后遍历&#xff0c;或者深度优先、广度优…

Vue 3 和 Vue Router 使用 createWebHistory 配置

在 Vue 3 项目中&#xff0c;如果使用 Vue Router 并希望启用 HTML5 History 模式&#xff0c;需要在创建路由器实例时传入 createWebHistory 作为历史模式的配置。此外&#xff0c;还需要确保在生产环境中设置正确的基本路径&#xff08;base&#xff09;&#xff0c;这样才能…