【笔试强训】Day 6

news2024/9/23 9:37:28

🌈欢迎来到笔试强训专栏


  • (꒪ꇴ꒪(꒪ꇴ꒪ )🐣,我是Scort
  • 目前状态:大三非科班啃C++中
  • 🌍博客主页:张小姐的猫~江湖背景
  • 快上车🚘,握好方向盘跟我有一起打天下嘞!
  • 送给自己的一句鸡汤🤔:
  • 🔥真正的大师永远怀着一颗学徒的心
  • 作者水平很有限,如果发现错误,可在评论区指正,感谢🙏
  • 🎉🎉欢迎持续关注!
    在这里插入图片描述

请添加图片描述

笔试强训解析

  • 🌈欢迎来到笔试强训专栏
    • 🌈选择题
    • 🌈编程题
      • 1️⃣不要二
      • 2️⃣把字符串转换成整数
  • 📢写在最后

请添加图片描述

🌈选择题

十进制变量i的值为100,那么八进制的变量i的值为()
A 146
B 148
C 144
D 142

本题很简单:100除8,取余数,直到商为零,最后反向的串起余数即可

在这里插入图片描述

答案选C

执行下面语句后的输出为()

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

A %%
B ****
C 有语法错,不能正确执行
D %%%%

  • printf(格式化,参数1,参数2,…)
    格式化串:printf第一个参数之后的参数要按照上面格式打印
    %d——> 按照整形方式打印
    %f—— > 按照float方式打印

  • 格式串有一定的规定,%之后跟上特定的字符才代表一定的格式化
    %Q——>无效的格式——>编译器会忽略%
    printf(“%Q”) ;——>直接输出Q
    printf(“%%%%\n”)可想而知输出的就是%%

答案是A

对于下面的C语言声明描述正确的一项是()
char (*p)[16]
A p是长度为16的字符指针数组
B p是包含16个字符的字符串
C p是指向长度为16的字符数组的指针
D p是长度为16的字符数组

  • p是一个指针,指向的是长度为16的字符数组 也叫作数组指针

答案是C

数组a的定义语句为“float a[3][4];”,下列()是对数组元素不正确的引用方法
A a[i][ j]
B *(a[i]+j)
C ((a+i)+j)
D (a+i4+j)

  • a[i]——> *(a+i) —— 访问数组的a的第i个元素
    二维数组a中的每个元素都是一个一维数组,很明显ABC都正确

答案选D

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

#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/=SQR(y+z)/SQR(y+z) == x/=3+2 * 3+2 /3+2*3+2 按顺序算得出等于0

答案选D

当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

  • 考察递归算法,画递归图算出f1、f2、f3等的数值,最后相加即可

答案选C

以下对C语言的”指针“描述不正确的是()
A 32位系统下任何类型指针的长度都是4个字节
B 指针的数据类型声明的是指针实际指向内容的数据类型
C 野指针是指向未分配或者已释放的内存地址
D 当使用free释放掉一个指针内容后,指针变量的值被置为NULL

  • int* p(int*)malloc(4); free(p)

  • free释放后,只是将p所在的内存空间释放了,并没有将p指针置为空,需要手动置空

数组定义为”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+1)表示数组a中第一个元素
  • *(a+1)+2是对一维数组后移两个单位;表示的是a数组第1行第2列元素的地址

答案选B

有一个如下的结构体:

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

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

  • 老对手了,结构体对齐
  • 本题有疏漏,没有告诉是在什么平台下运行,vs下默认对齐数是8,linux下默认对齐数是4

在这里插入图片描述

答案选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

本题考查的是递归,f(3)= f(2)+333;f(2)=f(1)+222;f(1)=1;因此f(3)=1+222+333=36

因此答案选D

🌈编程题

1️⃣不要二

题目地址:传送

在这里插入图片描述
解题思路:

  • 任意两个蛋糕的欧几里得距离不能等于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;
    cin >> w >> h;

    vector<vector<int>> arr;
    arr.resize(w);

    for (auto& e : arr) 
    {   
        e.resize(h, 1);//初始值都置为1
    }
    int count =0;
    for (int i = 0; i < w; i++) 
    {
        for (int j = 0; j < h; j++) 
        {
            if (arr[i][j] == 1) 
            {   
                //不能放的位置置为0
                count++;
                if (i + 2 < w) 
                {
                    arr[i + 2][j] = 0;
                }
                if (j + 2 < h) 
                {
                    arr[i][j + 2] = 0;
                }
            }
        }
    }
    cout << count << endl;
    return 0;
}

2️⃣把字符串转换成整数

题目链接:传送

在这里插入图片描述

解题思路:

  • 考虑字符串是正、负、空的情况
  • 怎么样把字符转换成数字呢?查看ascll码表可以得知:'1' - '0' = 1
  • 关键表达式:sum = sum *10 + str[i] - '0'
  • ps:+是会直接令sum=0,所以判断完是+or-,就要置为零,也不影响下面的判断

在这里插入图片描述

class Solution {
public:
    int StrToInt(string str) {
        if(str.empty())
        {
            return false;
        }
        int flag = 1;
        if(str[0] == '+')
        {
            flag = 1;
            str[0] = '0';//防止后面+进入不了循环所以置0
        }
        if(str[0] == '-')
        {
            flag = -1;
            str[0] = '0';
        }
        
        int sum = 0;
        for(int i = 0; i < str.size(); i++)
        {
            //出现字母的情况
            if(str[i] < '0' || str[i] > '9')
            {
                sum = 0;
                break;
            }
            sum = sum*10 + str[i]-'0';
        }
        return flag * sum;
    }
};

📢写在最后

星期三真不错

在这里插入图片描述

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

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

相关文章

Redis - Redis为什么这么快?

1. Redis为什么这么快&#xff1f; 数据结构简单&#xff0c;对数据操作也简单&#xff0c;Redis 中的数据结构是专门进行设计的&#xff1b;基于内存实现&#xff0c;读写速度快&#xff1b;Redis 是单线程的&#xff0c;避免了不必要的上下文切换和竞争条件&#xff0c;也不…

卖座网站影院界面:优化长列表的滑动流畅度方案

关键点1&#xff1a;优化长列表的滑动流畅度 问题&#xff1a;在长列表中&#xff0c;向下滑动时&#xff0c;为了提高用户的使用感受&#xff0c;这个滑动一般都会做的很流畅。但是在网速不快的情况下&#xff0c;它自然会卡顿&#xff0c;所以为了优化网速慢带来的卡顿现象&…

好用的国产远程控制软件,我只推荐这款!

近年来&#xff0c;越来越多的人需要远程办公&#xff0c;远程为用户提供服务或支持等&#xff0c;导致人们对远程控制软件的需求不断增加。 但现在市面上远程控制软件参差不齐&#xff0c;有的远程控制软件功能不齐全&#xff0c;有的操作步骤过于繁琐&#xff0c;有的使用起…

vue 组件封装——可自由拖拽移动的盒子

最终效果 完整代码 关键性要点&#xff0c;详见注释 组件封装 superBox.vue <template><divref"box_Ref"class"box"mousedown"moveStart"mousemove"moving"mouseup"moveEnd":style"{width: (nodeInfo.width…

js模块化

第1章:模块化入门 1.1.理解什么是模块 将一个复杂的程序依据一定的规则拆分成单个文件&#xff0c;并最终组合在一起这些拆分的文件就是模块&#xff0c;模块内部数据是私有的&#xff0c;只是向外部暴露一些方法与外部其它模块通信 1.2.为什么要模块化? 降低复杂度&#…

2023最新SSM计算机毕业设计选题大全(附源码+LW)之java网络游戏虚拟交易平台8rfnp

计算机毕业设计的编程真的不会, 应该怎么办啊, 平时学了3年都没学懂&#xff0c;然而还有一个月就要答辩了&#xff0c;一点东西都没做出来&#xff0c;不知道该怎么办了&#xff1f;好迷茫&#xff0c;如果毕不到业怎么办, 有没有快速的学习方法 毕设毕设&#xff0c;最终的是…

【软件测试】10年测试老鸟,告诉你测试内功修炼之道......

目录&#xff1a;导读前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09;前言 一名测试人员&#…

Docker[2]-docker的组成与卸载

1.5 Docker的基本组成 1.5.1 镜像(image) Docker 镜像&#xff08;Image&#xff09;就是一个只读的模板。镜像可以用来创建 Docker 容器&#xff0c;一个镜像可以创建很多容器。 docker面向对象容器对象镜像类 1.5.2 容器(container) Docker 利用容器&#xff08;Container&a…

一文读懂如何让网页变灰白色(黑白色)

文章目录1. 文章引言2. 实现方法2.1 修改CSS文件2.2 修改html标签2.3 修改body标签2.4 使用grayscale.js插件1. 文章引言 有段时间&#xff0c;我们打开知名的网页&#xff0c;发现全部变成黑白色了&#xff0c;如下图所示&#xff1a; 一般在清明节&#xff0c;全国哀悼日&am…

学会这些C语言技巧,你的编程能力大大提升

一、函数指针 在讲回调函数之前&#xff0c;我们需要了解函数指针。 我们都知道&#xff0c;C语言的灵魂是指针&#xff0c;我们经常使用整型指针&#xff0c;字符串指针&#xff0c;结构体指针等 int *p1; char *p2; STRUCT *p3; //STRUCT为我们定义的结构体 但是好像我们…

PCB设计总有几个阻抗没法连续的地方。

罗永浩所说“人生总有几次踩到大便的时候”&#xff0c;PCB设计也总有阻抗不能连续的时候。 特性阻抗&#xff1a;又称“特征阻抗”&#xff0c;它不是直流电阻&#xff0c;属于长线传输中的概念。在高频范围内&#xff0c;信号传输过程中&#xff0c;信号沿到达的地方&#xf…

canal springboot 入门

Alibaba canal(官方文档链接) 简介 canal [kə’nl]&#xff0c;译意为水道/管道/沟渠&#xff0c;主要用途是基于 MySQL 数据库增量日志解析&#xff0c;提供增量数据订阅和消费 早期阿里巴巴因为杭州和美国双机房部署&#xff0c;存在跨机房同步的业务需求&#xff0c;实现方…

转行编程语言该怎么选择?小扎给你安排上

编程语言的发展 ​ 编程语言到目前为止&#xff0c;经历了三个发展阶段&#xff0c;机器语言&#xff0c;汇编语言、高级语言。在高级语言中&#xff0c;又可以分为面向过程语言以及目前最为广泛流传的面向对象语言。 机器语言 ​ 第一代计算机语言称为机器语言。机器语言就是…

stm32cubemx hal学习记录:FreeRTOS中断管理

一、参数配置 1、配置RCC、USART1、时钟84M 2、配置SYS&#xff0c;将Timebase Source修改为除滴答定时器外的其他定时器。 3、初始化LED的两个引脚、两个按键引脚 4、开启FreeRTOS&#xff0c;v1与v2版本不同&#xff0c;一般选用v1即可 5、创建一个队列 6、创建两个线程…

正大国际期货:外盘黄金期货怎么做,需要注意什么?

无论你是刚入外盘黄金期货市场的新手小白&#xff0c;还是已经入黄金市场多年的老手&#xff0c;必须知道外盘黄金期货交易的技巧及规则&#xff0c;这样才可以在黄金期货市场中站稳脚跟&#xff0c;才能收获更多的利益。下面正大IxxxuanI就为大家准备了一些黄金交易技巧以供参…

太阳能发电与蓄电池研究(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️❤️&#x1f4a5;&#x1f4a5;&#x1f4a5; &#x1f389;作者研究&#xff1a;&#x1f3c5;&#x1f3c5;&#x1f3c5;主要研究方向是电力系统和智能算法、机器学…

汇编语言程序设计入门

目录 基本概念 符号指令中的表达式 符号 数值常量 符号常量&#xff08;用的很少&#xff09; 数值表达式 标号&#xff08;一般出现在代码段&#xff09; 程序框架 ​编辑 标号的定义 变量&#xff08;最重要) 变量的属性​编辑 变量存储区中数据的存放​编辑 变量…

最受欢迎的Python科学类库

作为一种免费的&#xff0c;跨平台的&#xff0c;通用的和高级的编程语言&#xff0c;Python已被科学界广泛采用。科学家重视Python的精确和有效的语法&#xff0c;相对平坦的学习曲线以及它与其他语言&#xff08;例如C / C &#xff09;很好地集成的事实。 由于这种流行&…

最近沉迷Redis网络模型,无法自拔!终于知道Redis为啥这么快了

1. 用户空间和内核态空间 1.1 为什么要区分用户和内核 服务器大多都采用 Linux 系统&#xff0c;这里我们以 Linux 为例来讲解: ubuntu 和 Centos 都是 Linux 的发行版&#xff0c;发行版可以看成对 linux 包了一层壳&#xff0c;任何 Linux 发行版&#xff0c;其系统内核都…

设计模式-day03

5&#xff0c;结构型模式 结构型模式描述如何将类或对象按某种布局组成更大的结构。它分为类结构型模式和对象结构型模式&#xff0c;前者采用继承机制来组织接口和类&#xff0c;后者釆用组合或聚合来组合对象。 由于组合关系或聚合关系比继承关系耦合度低&#xff0c;满足“…