笔试强训 Day6

news2024/12/29 11:05:12

选择题

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

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

在这里插入图片描述

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

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

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

 

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

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

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中的每个元素都是一个一维数组,很明显ABC都正确

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/=SQR(y+z)/SQR(y+z) == x/=3+2 * 3+2 /3+2*3+2 =》x/=17=>x=6/17=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

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

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

B.int* p   ----->p指向的是int类型的空间

C.int* p(int*)malloc(4); free(p)

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

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

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

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

A.24

B.28

C.16

D.18 

  • 本题有疏漏,没有告诉是在什么平台下运行,vs下默认对齐数是8,linux下默认对齐数是4在这里插入图片描述

10.运行结果是()

#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

编程题:

不要二_牛客题霸_牛客网 (nowcoder.com) 

思路:

在一个 W*H 的网格盒子中,最多可以放置多少块蛋糕的功能。下面是实现思路的解释:

  1. 首先,从输入中读取 W 和 H 的值,即网格盒子的宽度和高度。
  2. 创建一个二维向量 a,用于表示网格盒子,并将所有元素初始化为1。这里使用向量的向量来表示二维数组。
  3. 对二维数组进行遍历,从左上角开始,依次处理每个网格的位置。
  4. 如果当前网格中放置了蛋糕(即元素值为1),则将计数器 count 增加1,并且将当前网格右边和下面相邻的两个网格的元素值设置为0,表示这两个位置不能放置蛋糕。这样做的原因是,如果在当前位置放置了蛋糕,那么右边和下面相邻的两个位置就无法放置蛋糕,因为它们与当前位置的欧几里得距离为2。
  5. 完成对网格盒子的遍历后,输出计数器 count 的值,即最多可以放置的蛋糕数量。

该实现思路通过遍历网格盒子的方式,按照一定规则放置蛋糕,以保证任意两块蛋糕之间的欧几里得距离不等于2。这样可以得到最多可以放置的蛋糕数量。代码中使用了向量的特性来表示二维数组,并且只遍历了一次网格盒子,所以时间复杂度为 O(W*H)。在这里插入图片描述

 

代码实现:

#include <iostream>
using namespace std;
#include <vector>

int main()
{
    int W, H, count = 0;
    cin >> W >> H;

    //定义二维数组
    vector<vector<int>> a;

    //确定行
    a.resize(W);
    //确定列
    for (auto& e : a)
    {
        //将每个元素初始化为1
        e.resize(H, 1);
    }

    for (int i = 0; i < W; i++)
    {
        for (int j = 0; j < H; j++)
        {
            if (a[i][j] == 1)
            {
                count++;
                if (i + 2 < W)
                {
                    a[i + 2][j] = 0;
                }
                if (j + 2 < H)
                {
                    a[i][j + 2] = 0;
                }
            }
        }
    }
    cout << count << endl;
}

 把字符串转换成整数__牛客网 (nowcoder.com)

 代码实现:

class Solution {
public:
    int StrToInt(string str) {
        if (str.empty()) {
            return 0;  // 如果字符串为空,返回0
        }
        int flag = 1;  // 标志位,用于记录正负号,默认为正数
        if (str[0] == '-') {
            flag = -1;  // 如果第一个字符是负号,将标志位设置为-1
            str[0] = '0';  // 将负号替换为0,便于后续转换
        }
        else if (str[0] == '+') {
            flag = 1;  // 如果第一个字符是正号,将标志位设置为1
            str[0] = '0';  // 将正号替换为0,便于后续转换
        }

        int sum = 0;  // 用于累加转换后的结果
        for (int i = 0; i < str.size(); i++) {
            if (str[i] < '0' || str[i] > '9') {
                sum = 0;  // 如果遇到非数字字符,则将结果置为0
                break;
            }
            else {
                sum = sum * 10 + str[i] - '0';  // 将字符转换为数字,并累加到结果中
            }
        }
        return flag * sum;  // 返回带符号的结果
    }
};

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

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

相关文章

从传统开发到低代码:这是一次技术革命

近年来&#xff0c;随着人工智能等新兴技术的快速发展&#xff0c;软件开发行业也在不断演变。传统的软件开发流程需要大量的编程知识和时间&#xff0c;而且往往需要复杂的架构和开发环境。然而&#xff0c;随着低/无代码平台的出现&#xff0c;软件开发变得更加高效、简单和普…

服务(第三十篇)elk-elasticsearch、logstash、kiabana

rsyslog 服务器较少时使用&#xff0c;rsyslog日志收集&#xff0c;统一存放在专门存放日志的收集器中&#xff1b; ELK 简介 ELK平台是一套完整的日志集中处理解决方案&#xff0c;将 ElasticSearch、Logstash 和 Kiabana 三个开源工具配合使用&#xff0c; 完成更强大的用…

产品经历、运营人员必看:高效产品帮助文档撰写指南

产品帮助文档是产品的重要组成部分&#xff0c;它对于产品的用户体验和产品的成功至关重要。帮助文档可以帮助用户更好地理解产品的功能和使用方法&#xff0c;提高用户的满意度和使用效率。同时&#xff0c;帮助文档还可以减轻客服和技术支持的工作负担&#xff0c;提高客服和…

Spring Boot 中如何使用 Spring Security OAuth2 来实现单点登录

Spring Boot 中如何使用 Spring Security OAuth2 来实现单点登录 简介 在现代 Web 应用程序中&#xff0c;单点登录&#xff08;Single Sign-On&#xff0c;简称 SSO&#xff09;是一个非常重要的功能。Spring Security OAuth2 是 Spring Security 框架的一个扩展&#xff0c…

Ubuntu宝塔显示磁盘被占满的解决方法

操作方法&#xff1a; 连接成功 Last login: Sat Mar 25 03:04:00 2023 from 192.168.153.1 rootubuntu:~# lvm lvm> lvextend -l 100%FREE /dev/mapper/ubuntu-vg/ubuntu-lv skip_dev_dir: Couldnt split up device name ubuntu-vg/ubuntu-lv. Size of logical volum…

Windows中的Tomcat服务器安装证书并设置强制https访问

官网参考 阿里云 华为云 获取证书 自己生成证书 这边介绍一个生产开发环境证书的方式&#xff1a;使用 Java 提供的工具&#xff1a;keytool keytool -genkeypair -alias "tomcat" -keyalg "RSA" -keystore "d:\tomcat.keystore" Tomcat服…

Golang变量初始

Golang变量初始 采用文章 本章使用go练习工具 https://tour.go-zh.org/welcome/13.1 为什么需要变量 3.1.1一个程序就是一个世界 3.1.2变量是程序的基本组成单位 不论是使用哪种高级程序语言编写程序,变量都是其程序的基本组成单位&#xff0c;比如一个示意图 3.2 变量的介…

专门用于管理企业与自己客户之间所有信息的客户管理系统

一、开源项目简介 关于 NXCRM NXCRM 是一套基于 Laravel 的 CRM 应用程序。它包含了一个管理中心&#xff0c;可以管理用户、客户、产品、订单、商机&#xff0c;合同&#xff0c;收款&#xff0c;附件&#xff0c;联系人&#xff0c;跟进动态&#xff0c;发票&#xff0c;业…

近年GDC服务器分享合集(二): 《太空工程师》中基于预测物理的多人游戏

客户端-服务端之间的位置同步一直是游戏开发中的一道难题&#xff0c;特别是还涉及到复杂的物理运动时。对于这个话题&#xff0c;来自《太空工程师》游戏的工程师在GDC 2023上为我们带来了他们的分享——《《太空工程师》中基于预测物理的多人游戏》&#xff08;Predicted Phy…

在 openEuler 22.03 上安装 KubeSphere 实战教程

作者&#xff1a;老 Z&#xff0c;中电信数智科技有限公司山东分公司运维架构师&#xff0c;云原生爱好者&#xff0c;目前专注于云原生运维&#xff0c;云原生领域技术栈涉及 Kubernetes、KubeSphere、DevOps、OpenStack、Ansible 等。 前言 导图 知识点 定级&#xff1a;入…

域泛化(Domain Generalization)相关知识学习

文章目录 一、域泛化综述1&#xff09;Domain定义2&#xff09;Domain Generalization&#xff08;DG&#xff09;定义3&#xff09;一些相关领域与DG的区别4&#xff09;领域泛化的方法表示学习领域不变表示学习①基于核的方法&#xff08; kernel-based methods&#xff09;②…

python自动化(一)基础能力:9.yaml文件详解

一、什么是yaml文件 yaml 是专门用来写配置文件的语言——可以用例作为自动化框架的配置文件yaml文件其实也是一种配置文件类型&#xff0c;后缀名是.yaml或.yml都可以个人认为比yaml比json格式更方便 二、yaml语法规则 YAML 语言&#xff08;发音 /ˈjməl/ &#xff09;的设…

电力应急指挥需要哪些终端设备?

在电力应急现场&#xff0c;我们可能会面临很多复杂的情况&#xff0c;当发生电力险情时&#xff0c;现场可能会面临断电、断网、无路等问题。此时应急指挥中心很难第一时间掌控现场情况&#xff0c;指挥中心无法快速做出反应&#xff0c;无法对现场情况做出高效的应急处置决定…

Spring Boot源码中设计模式应用浅析

文章目录 1. 工厂模式1.1 详解 DefaultListableBeanFactory 2. 单例模式1.1 详解 DefaultSingletonBeanRegistry 3. 观察者模式4. 适配器模式5. 模板方法模式 背景&#xff1a;大家好&#xff0c;我是冰点。最近有网友反馈&#xff0c;他在面试过程中被面试官问到&#xff0c;设…

NVDIA GPU参数列表: 3090,4090, A40, A30,V100, A100, A800性能参数

GeForce RTX 4090 GeForce RTX 3090 Ti &#xff08;左&#xff09; GeForce RTX 3090&#xff08;右&#xff09; A40&#xff1a; The NVIDIA A40 accelerates the most demanding visual computing workloads from the data center, combining the latest NVIDIA Ampere …

如何在Spring Boot服务端实现公网远程调试并进行HTTP服务监听?具体涉及到的步骤包括端口映射等

文章目录 前言1. 本地环境搭建1.1 环境参数1.2 搭建springboot服务项目 2. 内网穿透2.1 安装配置cpolar内网穿透2.1.1 windows系统2.1.2 linux系统 2.2 创建隧道映射本地端口2.3 测试公网地址 3. 固定公网地址3.1 保留一个二级子域名3.2 配置二级子域名3.2 测试使用固定公网地址…

Hadoop学习---7、OutputFormat数据输出、MapReduce内核源码解析、Join应用、数据清洗、MapReduce开发总结

1、OutputFormat数据输出 1.1 OutputFormat接口实现类 OutputFormat是MapReduce输出的基类&#xff0c;所以实现MapReduce输出都实现了OutputFormat接口。 1、MapReduce默认的输出格式是TextOutputFormat 2、也可以自定义OutputFormat类&#xff0c;只要继承就行。 1.2 自定…

C++标准库算法std::upper_bound示例

C标准库算法std::upper_bound示例 贺志国 2023.5.25 C标准库算法std::upper_bound使用二分查找算法在已按升序排列的序列中返回指向第一个大于给定值的元素的迭代器&#xff0c;例如&#xff1a;已按升序排列的序列为{100.0, 101.5, 102.5, 102.5, 107.3}&#xff0c;第一个大…

如何优化供应商采购系统,提升供应商管理和采购流程效能

随着企业采购向数字化转型的发展&#xff0c;供应商采购系统的使用也越来越广泛。如何优化供应商采购系统&#xff0c;提升供应商管理和采购流程效能&#xff0c;已成为企业面临的重要问题。本文将为大家介绍一些优化供应商采购系统的方法&#xff0c;以提升采购效率和管理水平…

zabbix自定义监控

一、案例操作&#xff1a;自定义监控内容 案列&#xff1a;自定义监控客户端服务器登录的人数 需求&#xff1a;限制登录人数不超过 3 个&#xff0c;超过 3 个就发出报警信息 1、自定义监控内容的操作步骤 1.1 在客户端创建自定义 key 明确需要执行的 linux 命令 who | …