【C++笔试强训】第六天

news2024/11/30 12:50:47

文章目录

    • 选择题
    • 编程题

选择题

1.十进制变量i的值为100,那么八进制的变量i的值为()

A 146

B 148

C 144

D 142

进制之间的转化,这不用多说了把

image-20221212002621734

2.执行下面语句后的输出为

int I=1;
if(I<=0)
    printf("****\n") ;
else
    printf("%%%%\n");

A %%

B ****

C 有语法错,不能正确执行

D %%%%

条件判断打印else的结果,我们在来看看:printf(格式化串,参数1,参数2,…)格式化串:printf第一个参数之后的参数按照什么格式打印。

printf(“%%%%\n”):格式串有一定规定,%之后跟上特定的字符才代表一定的格式化,%Q----->无效格式,编译器会忽略%,如printf(%Q)---->直接输出Q。所以这个地方,两个%只会输出一个%,答案选A

3.对于下面的C语言声明描述正确的一项是()

char (*p)[16]

A p是长度为16的字符指针数组

B p是包含16个字符的字符串

C p是指向长度为16的字符数组的指针

D p是长度为16的字符数组

p这里加了括号先和*结合,所以p是数组指针,指针指向长度为16的字符数组。答案选C。

4.数组a的定义语句为“float a[3][4];”,下列()是对数组元素不正确的引用方法

A a[i][j]

B *(a[i]+j)

C *(*(a+i)+j)

D *(a+i*4+j)

a[i]---->*(a+i)====访问数组a的第i个元素。

A是最普通的引用,对于B,a[i]是一维数组,+j拿到了第j个元素地址,解引用拿到了第i行第j列。C选项实际上和B选项等价。对于D:i*4这是不合理的写法,表示是错误的。

5.下面程序的输出结果是__________。

#include < iostream.h>
#define SQR(A) A*A
void main() {
    int x=6,y=3,z=2;
    x/=SQR(y+z)/SQR(y+z);
    cout< < x< < endl;
}

A 5

B 6

C 1

D 0

程序运行会经过预处理,编译,汇编,链接,在预处理阶段会将宏展开。宏函数最大的坑就是括号问题,最终是x/=3+2*3+2/3+2*3+2=0.

6.当n=5时,下列函数的返回值是()

int foo(int n){
    if(n<2)
    {
        return n;
    }
    else
        return 2*foo(n-1)+foo(n-2);
}

A 5

B 11

C 29

D 10

直接自己手动画一下展开结果显而易见:

image-20221213002917441

答案为29

7.以下对C语言的”指针“描述不正确的是()

A 32位系统下任何类型指针的长度都是4个字节

B 指针的数据类型声明的是指针实际指向内容的数据类型

C 野指针是指向未分配或者已释放的内存地址

D 当使用free释放掉一个指针内容后,指针变量的值被置为NULL

不正确的是D,free释放掉一个指针内容后,指针变量的值需要我们手动置为NULL,并不会被置为NULL。

8.数组定义为”int a[4][5];”, 引用”*(a+1)+2″表示()(从第0行开始)

A a[1][0]+2

B a数组第1行第2列元素的地址

C a[0][1]+2

D a数组第1行第2列元素的值

数组名是首元素的地址,a+1代表的是数组a中第一个元素的地址,解引用之后代表数组a中的第一个元素,a又是一个二维数组,二维数组中的每个元素都是一维数组,所以*(a+1)实际为一维数组,*(a+1)+2是当前一维数组的第二个元素。故答案选B。

9.有一个如下的结构体:

struct A{
    long a1;
    short a2;
    int a3;
    int *a4;
};

请问在64位编译器下用sizeof(struct A)计算出的大小是多少()

A 24

B 28

C 16

D 18

结构体内存对齐问题,我们实在是太熟悉了,对于64位编译器下,long—>4,short—>2,int—>4,int*—>8。VS的默认对齐数是8,linux的默认对齐数是4。a1:0-3,a2:4-5,a3:8-11,a4:16-23,答案选A。

#include <iostream>
using namespace std;
int f(int n){
if (n==1)
return 1;
    else
return (f(n-1)+n*n*n);
}
int main(){
int s=f(3);
cout<<s<<endl;
return 0;
}

运行结果是()

A 8

B 9

C 27

D 36

把递归展开即可:

image-20221213085431343

答案选D


编程题

不要二

image-20221205195032199

题目说了这么多,实际上最重要的是两个点:一个是二维数组,另一个是欧几里得距离:

image-20221213095632298

两个蛋糕的欧几里得距离不能等于2,根据上面的推导:我们可以知道,如果[i][j]位置放了蛋糕,那么[i+2][j] 和[i][j+2] 的位置就不可以放蛋糕了.我们可以定义count计数,把二维数组初始化为1,把不能放的位置置为0,统计count即可得出我们的结果,同时要防止[i+2]和[j+2]的越界,我们加个判断即可防止越界。

#include <iostream>
#include <vector>
using namespace std;
int main() {
    int w,h,count=0;
    cin>>w>>h;
    vector<vector<int>> vv;
    vv.resize(w);
    for(auto& e:vv)
    {
        e.resize(h,1);
    }
    for(size_t i = 0;i<w;i++)
    {
        for(size_t j = 0;j<h;j++)
        {
            if(vv[i][j] == 1)
            {
                count++;
                if(i+2<w)
                {
                  vv[i+2][j] = 0;
                }
                if(j+2<h)
                {
                    vv[i][j+2] = 0;
                }
            }
        }
    }
    cout<<count<<endl;
}

把字符串转换成整数

image-20221213085818688

根据题意:我们首先需要去判断第一个字符是’+‘还是’-‘,需要去标记一下(同时,把第一个字符置为’0’,为了后面遍历字符串过滤掉)然后去遍历字符串,如果不是合法的数值,直接return。最终算出最后的值sum即可

class Solution {
public:
    int StrToInt(string str) {
        if(str.empty())
        {
            return 0;
        }
        int flag = 1;
        int sum = 0;
        if(str[0]=='+')
        {
            flag = 1;
            str[0] = '0';
        }
        else if(str[0]=='-')
        {
            flag = -1;
            str[0]='0';
        }
        for(size_t i = 0;i<str.size();i++)
        {
            if(str[i]<'0'||str[i]>'9')
            {
                return 0;
            }
            sum = sum*10+str[i]-'0';
        }
        return flag*sum;
    }
};

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/84826.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

大数据Kudu(四):Kudu集群搭建

文章目录 Kudu集群搭建 一、kudu 安装包 二、节点规划及安装 1、首先在每个节点上传安装包 2、在node1、node2节点上安装如下rpm安装包 3、在node3节点上安装如下rpm安装包 4、配置Master Server 5、配置Tablet Server 6、Master节点配置所有Master Server 7、Server…

对DataFrame中元素进行定位并修改的DataFrame.iat[]方法

【小白从小学Python、C、Java】 【计算机等级考试500强双证书】 【Python-数据分析】 根据指定的行和列的位置号 显示或修改DataFrame中相应位置的元素 DataFrame.iat[x,y] 选择题 关于以下python代码说法错误的一项是? import pandas as pd df pd.DataFrame({"A"…

手把手教你搭建自己的FTP文件服务器

大家好&#xff0c;我是小豪&#xff0c;今天我来给大家分享如何在虚拟机上搭建自己的文件服务器 文章目录Linux上安装文件服务器FTP安装VSFTP下载dnf下载VSFTP清除防火墙的iptables缓存下载FTP匿名访问模式本地用户模式Linux上安装文件服务器FTP 由于FTP、HTTP、Telnet等协议…

【阿里实践】基于深度学习的个性化推荐系统实时化改造与升级

省时查报告-专业、及时、全面的行研报告库省时查方案-专业、及时、全面的营销策划方案库【免费下载】2022年11月份热门报告盘点推荐技术在vivo互联网商业化业务中的实践.pdf推荐系统基本问题及系统优化路径.pdf大规模推荐类深度学习系统的设计实践.pdf荣耀推荐算法架构演进实践…

doom emacs如何安装新插件和自定义快捷键

doom emacs如何安装新插件和自定义快捷键 最近在学习和使用doom emacs&#xff0c;遇到了2个问题。 问题1: 虽然doom emacs已经配置了很多的三方插件&#xff0c;但是还有些个性化的插件如何按doom风格添加&#xff1f; 问题2: 有些快捷键自己已经熟悉&#xff0c;如何修改&am…

双目密集匹配及SGM算法

提示&#xff1a; 双目密集匹配及SGM算法前言一、双目密集匹配1、双目密集匹配概述2.、双目密集匹配四大步骤代价计算&#xff08;per-pixel-cost&#xff09;&#xff1a;释义&#xff1a;代价聚集&#xff08;cost-aggregation&#xff09;:释义&#xff1a;分类&#xff1a;…

以就业为目标,Python到底应该学什么?

前言 很多小伙伴知道Python火爆薪资高&#xff0c;开始自学&#xff0c;可是并不知道Python应该学哪些技术、学到什么程度才能找到工作。今天我们就来分析一下&#xff0c;Python学到什么程度才能找到工作。 相关&#xff1a;我是今年刚刚毕业的不入流大学的本科生&#xff0…

KingbaseES Create Index Concurrently 过程探究

前言&#xff1a; 我们知道Oracle 可以通过create index online 在线创建索引&#xff0c;而不影响其他会话修改数据&#xff0c;但Oracle 实际在online 创建索引的最后一步&#xff0c;实际还是需要进行锁升级&#xff0c;申请表级的S锁&#xff0c;因此&#xff0c;最后还是有…

STM32CUBEMX开发GD32F303(17)----内部Flash读写

概述 本章STM32CUBEMX配置STM32F103&#xff0c;并且在GD32F303中进行开发&#xff0c;同时通过开发板内进行验证。 本例程主要讲解如何对芯片自带Flash进行读写&#xff0c;用芯片内部Flash可以对一些需要断电保存的数据进行保存&#xff0c;无需加外部得存储芯片&#xff0c…

广告公司到底干什么的?欣奥诚分享

广告公司到底干什么的&#xff1f; 这篇文章从产业的角度拆分广告业&#xff0c;还原一个真实的广告业出来。 01. 它们是谁&#xff1f; 早年广告业有4类公司&#xff1a;品牌咨询类公司&#xff1b;设计创意类公司&#xff1b;媒介投放类公司&#xff1b;活动执行类公司。 …

[附源码]Python计算机毕业设计电子病历系统Django(程序+LW)

该项目含有源码、文档、程序、数据库、配套开发软件、软件安装教程 项目运行 环境配置&#xff1a; Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术&#xff1a; django python Vue 等等组成&#xff0c;B/S模式 pychram管理等…

前端大全之JavaScript(简称JS)

目录 一、概念 1.总体概要 2.来源说明 3.JavaScript和java的关系 4.JS的特点 5.浏览器执行JS的简介 6.JS的组成 二、引入方式 1.内部脚本例子 2. 外部脚本例子 三、使用规则 1.书写语法 2.报错的查看方式 3.输出语句 &#xff08;1&#xff09;写入警告框 &am…

SecXOps 中的数据集存储方式

安全数据资产 统一管理DataOps&#xff0c;即 Data 和 Operations 的集成&#xff0c;于 2014 年首次提出。Gartner 将 DataOps 定义为“一种协作性的数据管理 实践&#xff0c;专注于改进组织内数据管道的通信、集成和自动化”[7]。DataOps 是一种面向流程的自动化方法&#x…

基于Java开发的(控制台)模拟的多用户多级目录的文件系统【100010035】

多级文件系统 1 设计目的 为了加深对文件系统内部功能和实现过程的理解&#xff0c;设计一个模拟的多用户多级目录的文件系统&#xff0c;并实现具体的文件物理结构、目录结构以及较为完善的文件操作命令集。 2 设计内容 2.1系统操作 操作命令风格&#xff1a;本文件系统的…

110115-07-6,Ac-LLM-CHOCalpain 抑制剂

Ac-LLM-CHO (ALLM) is a potent competitive inhibitor of cathepsin L (Ki0.6 nM) and cathepsin B (Ki100 nM). Ac-LLM-CHO (ALLM)是组织蛋白酶L (Ki0.6 nM)和组织蛋白酶B (Ki100 nM)的有效竞争性抑制剂。 编号: 124055中文名称: Calpain 抑制剂 II&#xff1a; Ac-Leu-Leu-M…

[附源码]Node.js计算机毕业设计点餐系统设计Express

项目运行 环境配置&#xff1a; Node.js最新版 Vscode Mysql5.7 HBuilderXNavicat11Vue。 项目技术&#xff1a; Express框架 Node.js Vue 等等组成&#xff0c;B/S模式 Vscode管理前后端分离等等。 环境需要 1.运行环境&#xff1a;最好是Nodejs最新版&#xff0c;我…

游戏开发59课 性能优化

7. 耗电优化 游戏耗电和游戏卡并无必然联系&#xff0c;有些游戏在某些设备上虽然运行很流畅&#xff0c;但发现耗电很厉害&#xff0c;玩了不到半个小时&#xff0c;电量已经出现警报。游戏耗电的原因主要是因为&#xff1a;CPU占用普遍高&#xff0c;内存操作频繁&#xff0…

Spring MVC学习 | 获取请求参数

文章目录一、ServletAPI获取二、控制器方法形参获取2.1 不使用RequestParam注解2.2 使用RequestParam注解2.2.1 简介&使用2.2.2 相关注解2.3 实体类类型的形参三、中文乱码问题3.1 在tomcat中设置编码&#xff08;了解&#xff09;3.2 使用Spring MVC内部过滤器设置编码学习…

【PortSwiggerのWeb Security Academy靶场】SQL Injection系列 9th

Subject Lab: Blind SQL injection with conditional responses Url: portswigger.net/web-securit… Mind Palace 在带着 cookies的后续访问网页时会找到出现的 Welcome back! 标志 > 无法回显 > 采用盲注的方式 0x01 确认注入点 0x02 爆破数据库名 # 测试informati…

qiankun 部署微前端-vue2(一)

自从前后端分离以来&#xff0c;一直都有个困惑&#xff0c;就是随着项目的功能的不断拓展&#xff0c;项目变得不断臃肿&#xff0c;每次打包编译&#xff0c;都要把整个项目编译&#xff0c;非常耗时。如果前端也能像后端一样&#xff0c;在项目搭建初期&#xff0c;有类似微…