备战秋招 | 笔试强训4

news2024/11/24 7:54:49

目录

一、选择题

二、编程题

三、选择题题解 

四、编程题题解 


一、选择题

1、有以下程序,程序运行后的输出结果是()

#include<iostream>
#include<cstdio>
using namespace std;
int main()
{
  int m=0123, n=123;
  printf("%o %o\n", m, n);
  return 0;
}

A.0123 0173

B.0123 173

C.123 173

D.173 173

2、以下哪个选项一定可以将flag的第二个bit置0()

A.flag&=~2

B.flag|=2

C.flag^=2

D.flag>>=2

3、请声明一个指针,其所指向的内存地址不能改变,但内存中的值可以被改变。

A.const int const *x = &y;

B.int * const x = &y;

C.const int *x = &y;

D.int const *x = &y;

E.const int * const x = &y;

4、以下C语言指令:运行结果是什么?

int a[5] = {1,3,5,7,9};
int *p = (int *)(&a+1);
printf(“%d,%d”,*(a+1),*(p-1));

A.2,1

B.3,1

C.3,9

D.运行时崩溃

5、二维数组X按行顺序存储,其中每个元素占1个存储单元。若X[4][4]的存储地址为Oxf8b82140,X[9][9]的存储地址为Oxf8b8221c,则X[7][7]的存储地址为()。

A.Oxf8b821c4

B.Oxf8b821a6

C.Oxf8b82198

D.Oxf8b821c0

6、根据下面递归函数:调用函数Fun(2),返回值是多少()

int Fun(int n)          
{ 
    if(n==5)     
        return 2;        
    else        
        return 2*Fun(n+1);           
}

A.2

B.4

C.8

D.16

7、以下程序的输出结果是:

#include <iostream>
using namespace std;
void func(char **m)
{
    ++m;
    cout<<*m<<endl;
}
int main()
{
    static char *a[]={"morning", "afternoon", "evening"};
    char **p;
    p=a;
    func(p);
    return 0;
}

A.afternoon

B.字符o的起始地址

C.字符o

D.字符a的起始地址

8、求函数返回值,输入x=9999

int func(int x)
{
	int count=0;
	while (x)
	{
		count++;
		x=x&(x-1);//与运算
	}
	return count;
}

A.8

B.9

C.10

D.12

9、下列程序执行后,输出的结果为()

#include <stdio.h>
int cnt = 0;
int fib(int n) 
{
    cnt++;
    if (n == 0)
        return 1;
    else if (n == 1)
        return 2;
    else
        return fib(n - 1) + fib(n - 2);
}
void main() 
{
    fib(8);
    printf("%d", cnt);
}

A.41

B.67

C.109

D.177

10、在32位系统环境,编译选项为4字节对齐,那么sizeof(A)和sizeof(B)是()

struct A
{
 int a;
 short b;
 int c;
 char d;
};
struct B
{
 int a;
 short b;
 char c;
 int d;
};

A.16,16

B.13,12

C.16,12

D.11,16

二、编程题

1、计算糖果  题目链接

2、进制转换  题目链接

三、选择题题解 

1、有以下程序,程序运行后的输出结果是()

#include<iostream>
#include<cstdio>
using namespace std;
int main()
{
  int m=0123, n=123;
  printf("%o %o\n", m, n);
  return 0;
}

A.0123 0173

B.0123 173

C.123 173

D.173 173

正确答案:C

题解:

        此题考查进制之间的转换以及各进制的前缀,首先我们明确计算机世界中,有许多进制,我们要记住最常用的机制的前缀,比如二进制的前缀为0B,八进制的前缀为0,十进制无前缀,十六进制的前缀为0X;此题m是一个八进制的数,n是一个十进制的数,打印时,要求我们按照八进制打印,因此将n转换为八进制为0173,故打印结果为C选项

2、以下哪个选项一定可以将flag的第二个bit置0()

A.flag&=~2

B.flag|=2

C.flag^=2

D.flag>>=2

正确答案:A

题解:

         选项A,2转换为二进制为0000 0010(此处以8个比特位为例),对其取反后为1111 1101,此时我们那这个数和任何数进行按位与,第二个比特位都为0,回忆一下按位与的规则,一零则零,都一才一;

3、请声明一个指针,其所指向的内存地址不能改变,但内存中的值可以被改变。

A.const int const *x = &y;

B.int * const x = &y;

C.const int *x = &y;

D.int const *x = &y;

E.const int * const x = &y;

正确答案:B

题解:

        根据题意知,题目想让我们找到指针常量,我们判断修饰其指向内容就要放在*前,修饰这个指针则必须放在*后,标识符前;故选B; 

4、以下C语言指令:运行结果是什么?

int a[5] = {1,3,5,7,9};
int *p = (int *)(&a+1);
printf(“%d,%d”,*(a+1),*(p-1));

A.2,1

B.3,1

C.3,9

D.运行时崩溃

正确答案:C

题解:

         本题考察对指针的理解,p被(int*)(&a + 1)赋值,而&a取到的是整个数组的地址,因此对其+1·跳过整个数组,指向最后一个元素的下一个位置;并对其强制类型转换成int*,而打印时,打印a+1,a代表首元素地址,+1,代表第二个元素地址,打印3,p-1指向最后一个元素地址,故打印9;选C;

5、二维数组X按行顺序存储,其中每个元素占1个存储单元。若X[4][4]的存储地址为Oxf8b82140,X[9][9]的存储地址为Oxf8b8221c,则X[7][7]的存储地址为()。

A.Oxf8b821c4

B.Oxf8b821a6

C.Oxf8b82198

D.Oxf8b821c0

正确答案:A

 题解:

        本题主要考察十六进制之间的计算,本题给出我们x[4][4]与x[9][9]的地址,我们不妨计算都计算出他们开始的地址,也就是x[4][0]与x[9][0]的地址,然后相减得到的数字除以5,就是每一行最多有多少个字节,然后在将x[4][0]加上3倍的行字节再加上7,便是最后结果;

6、根据下面递归函数:调用函数Fun(2),返回值是多少()

int Fun(int n)          
{ 
    if(n==5)     
        return 2;        
    else        
        return 2*Fun(n+1);           
}

A.2

B.4

C.8

D.16

正确答案:D

题解:

        本题考察对递归的理解,我们不难算出结果为16,可通过如下递归展开图理解;

7、以下程序的输出结果是:

#include <iostream>
using namespace std;
void func(char **m)
{
    ++m;
    cout<<*m<<endl;
}
int main()
{
    static char *a[]={"morning", "afternoon", "evening"};
    char **p;
    p=a;
    func(p);
    return 0;
}

A.afternoon

B.字符o的起始地址

C.字符o

D.字符a的起始地址

正确答案:A

题解:

         首先要弄清本题答案,得小知道a是什么,a是一个数组,数组中存放着三个字符指针,分别指向三个字符串,p是一个二级指针,把a赋值给p,也就是将第一个指针的地址给p,我们把p传给m,并对m+1,跳过其指向数据的类型,char** m指向的是一个char*,因此跳过一个char*,指向第二个字符串的指针的地址,对其解引用打印,则打印第二个字符串;

 

8、求函数返回值,输入x=9999

int func(int x)
{
	int count=0;
	while (x)
	{
		count++;
		x=x&(x-1);//与运算
	}
	return count;
}

A.8

B.9

C.10

D.12

正确答案:A

 题解:

        我们不难推测出,x=x&(x-1)是消除数字的二进制中最低位的1,实际上这个循环就是查看该数的二进制表示中,有多少个1,故结果A;

9、下列程序执行后,输出的结果为()

#include <stdio.h>
int cnt = 0;
int fib(int n) 
{
    cnt++;
    if (n == 0)
        return 1;
    else if (n == 1)
        return 2;
    else
        return fib(n - 1) + fib(n - 2);
}
void main() 
{
    fib(8);
    printf("%d", cnt);
}

A.41

B.67

C.109

D.177

正确答案:B

 题解:

        由题意不难知,我们要求的是斐波那契数列的递归次数,我们f(0)递归了1次,f(1)递归了1次,f(2) = 1(自己)+f(0) + f(1)=3次,依次类推;

10、在32位系统环境,编译选项为4字节对齐,那么sizeof(A)和sizeof(B)是()

struct A
{
 int a;
 short b;
 int c;
 char d;
};
struct B
{
 int a;
 short b;
 char c;
 int d;
};

A.16,16

B.13,12

C.16,12

D.11,16

正确答案:C

题解:

        首先,我们的了解结构体对齐规则;如下所示;

首先是A结构体,第一个成员a为整型,占0-3字节的空间,b成员为short,必须再2的整数倍的地址处,因此占4-5字节,c成员为整型,必须为4的整数倍,因此占8-11字节,最后d为char类型,必须为1的整数倍,因此占12字节,有根据结构体对齐规则,必须为最大对齐数的整数倍,故一共占16字节,B类也同理推导;如下图; 

四、编程题题解 

1、计算糖果

        我们将四个表达式(A - B, B - C, A + B, B + C)得值依次保存进num1,num2,num3,num4中;不难发现有以下关系;

        为什么最后需要验证一下呢,因为这里的出发都是整形除法,如果存在不成立的等式;代码如下; 

#include <iostream>
using namespace std;
int main() 
{
    int num1, num2, num3, num4;
    int A, B1, B2, C;
    cin >> num1 >> num2 >> num3 >> num4;
    A = (num1 + num3) / 2;
    B1 = (num3 - num1) / 2;
    B2 = (num2 + num4) / 2;
    C = (num4 - num2) / 2;
    if(B1 == B2)
    {
        cout << A << " " << B1 << " " << C;
    }
    else 
    {
        cout << "No" << endl;
    }
}

2、进制转换

        本题依旧可以考虑使用类似于除十取余法,只不过这里不除十,除n,每次取余得到n进制的最低位,然后对其除n,循环此步,由于n的范围是2到16,因此,我们还要考虑出现的余数大于等于10的情况,此时需要用ABCDEF代替,因此,我们需要开辟一个字符数组,一一对应;具体代码如下;

#include <iostream>
#include <string>
#include <algorithm>
using namespace std;

int main() 
{
    string str, num_str;
    num_str = "0123456789ABCDEF";
    int m, n;
    cin >> m >> n;
    // 防止m为0的情况
    if(m == 0)
    {
        cout << 0 << endl;
        return 0;
    }
    // 判断m正负
    int flag = 0;
    if(m < 0)
    {
        m *= -1;
        flag = 1;
    }
    while (m) 
    {
        int num = m % n;
        str += num_str[num];
        m /= n;
    }
    // 如果为负数,尾插'-'
    if(flag)
    {
        str += "-";
    }
    // 逆置得到正确结果
    reverse(str.begin(), str.end());
    cout << str << endl;
}

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

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

相关文章

【LeetCode: 931. 下降路径最小和 | 暴力递归=>记忆化搜索=>动态规划 】

&#x1f680; 算法题 &#x1f680; &#x1f332; 算法刷题专栏 | 面试必备算法 | 面试高频算法 &#x1f340; &#x1f332; 越难的东西,越要努力坚持&#xff0c;因为它具有很高的价值&#xff0c;算法就是这样✨ &#x1f332; 作者简介&#xff1a;硕风和炜&#xff0c;…

中国8K摄像机厂家加入国际广电设备制造商协会IABM

近日&#xff0c;BOSMA博冠正式成为国际广电设备制造商协会IABM会员&#xff0c;标志着中国8K摄像机厂家BOSMA博冠在广播电视超高清前端采集领域受到全球广电权威机构认可&#xff0c;进一步推动国产品牌在全球市场竞争中提升品牌知名度、加强行业影响力。 IABM创立于1976年&am…

【Unity面试篇】Unity 面试题总结甄选 |C#基础篇 | ❤️持续更新❤️

前言 关于Unity面试题相关的所有知识点&#xff1a;&#x1f431;‍&#x1f3cd;2023年Unity面试题大全&#xff0c;共十万字面试题总结【收藏一篇足够面试&#xff0c;持续更新】为了方便大家可以重点复习某个模块&#xff0c;所以将各方面的知识点进行了拆分并更新整理了新…

android更换开机动画

android11 路径&#xff1a;device / {vendor-name} / {platform-name} / {device-name} / system / bootanimation.zip 例&#xff1a;android \ device \ softwinner \ ceres \ ceres-b6 \ system \ bootanimation.zip android13 路径&#xff1a;device / softwinner / {PRO…

2023年最全最新的学习课程合集

WEB前端入门&#xff1a;从零开始做网站。 完成所有课堂练习就可以做出自己的作品&#xff0c;并掌握数据库和了解开源项目。 这些课程涵盖了HTML、CSS和JavaScript等前端技术&#xff0c;以及与之相关的设计原则和最佳实践。 前端课程的目标是培养学生在网页开发方面的技能…

uniCloud

uniCloud 一、介绍1.新建项目2.初识云函数 二、数据库1.在云控制台操作数据库2.通过云函数对数据库进行操作&#xff08;1&#xff09;查询&#xff08;2&#xff09;修改&#xff08;3&#xff09;删除 3.客户端操作4.JQL语法 三、云函数四、云对象五、云存储六、uni-id七、扩…

2023年7月深圳软考中级系统集成项目管理工程师报名

系统集成项目管理工程师是全国计算机技术与软件专业技术资格&#xff08;水平&#xff09;考试&#xff08;简称软考&#xff09;项目之一&#xff0c;是由国家人力资源和社会保障部、工业和信息化部共同组织的国家级考试&#xff0c;既属于国家职业资格考试&#xff0c;又是职…

EasyCVR接口调用正常,但快照不显示是什么原因?

有用户反馈&#xff0c;现场部署了EasyCVR v3.1版本&#xff0c;将设备通过国标GB28181协议接入到平台&#xff0c;但是页面没有显示出快照&#xff0c;请求我们协助排查。 针对用户的反馈&#xff0c;我们立即排查。排查后发现&#xff0c;视频播放是正常的&#xff0c;调用接…

玩转字符串函数与字符函数——【C语言】

在C语言的学习中&#xff0c;我们经常会遇到字符串&#xff0c;对它的处理也是数不胜数&#xff0c;但是我们没有很好的处理办法&#xff0c;字符串只能放在字符数组或常量字符串中通过自定义函数去使用处理。而现在我将带领大家学习C语言函数库中专门处理字符串的函数。 这些…

超高性能MCU发布,为开发人员提供了高效的工具链

近日嵌入式开发软件和服务的全球领导者IAR与业界领先的半导体器件供应商兆易创新(GigaDevice)宣布&#xff0c;联合推出最新版本IAR Embedded Workbench for Arm 9.40已经全面支持兆易创新的GD32H737/757/759系列超高性能MCU微控制器&#xff0c;这为**ERP系统**开发人员提供了…

Java 注解使用

一、注解简介 注解是那些插入到源代码中使用其他工具可以对其进行处理的标签。这些工具可以在源码层次上进行操作&#xff0c;或者可以处理编译器在其中放置了注解的类文件。 注解不会改变程序的编译方式。Java编译器对于包含注解和不包含注解的代码会生成相同的虚拟机指令。 为…

7种优秀的电商API命名方式

本文通过展示7种优秀API命名实践&#xff0c;来协助您创建高效的API端点&#xff0c;为用户提供更好的使用体验。 如今&#xff0c;API已成为了现代化编程的基本组成部分。它们不但能够改善不同开发团队的协作、并鼓励创新&#xff0c;而且能够提高应用程序的安全性。而作为两…

用PCB加热PCB——PCB加热台

之前为了焊接一些小贴片模块&#xff0c;想过买一个加热台&#xff0c;后来一搜加热台&#xff0c;发现有很多卖PTC加热板的&#xff0c;就又想自己做一个加热台。正好这个月嘉立创又送了打样券&#xff0c;搞起来~ PCB加热台设计主要考虑以下几个方面&#xff1a; 面积功率铜…

【方法】电脑如何打开Heic文件?

存放在电脑里的Heic文件打不开&#xff1f;相信有小伙伴也遇到过这样的问题。 因为Heic是苹果升级到ios11之后&#xff0c;在拍摄照片时的默认图像存储格式&#xff0c;只能兼容苹果系列产品&#xff0c;不能在Windows电脑里打开。&#xff08;Windows10 RS4开始支持该格式&am…

概率论的学习和整理18:为什么 P(至少成功1次概率) = Σ p(几何分布概率之和)----(未完成)

我们计算几何概率时&#xff0c;会很容易发现这么一个特点 我们很容易计算 试验n次&#xff0c;连续成功概率试验n次&#xff0c;连续失败概率试验n次&#xff0c;至少成功1次概率试验n次&#xff0c;最后一次成功概率试验n次&#xff0c;成功k次概率试验n次&#xff0c;累计成…

python3的全局解释器锁是什么意思?有什么要注意的?

Python中的全局解释器锁&#xff08;Global Interpreter Lock&#xff0c;GIL&#xff09;是一种机制&#xff0c;用于确保在任何给定时间只有一个线程执行Python字节码。GIL是由Python解释器实现的&#xff0c;对于CPython解释器来说是存在的&#xff0c;其他一些Python解释器…

[chatgpt+Azure]unity AI二次元小女友之使用微软Azure服务实现RestfulApi->语音识别+语音合成

1.简述 如题所述&#xff0c;这个小项目是在unity引擎端&#xff0c;使用了chatgpt微软azure的一个AI二次元女友对话的项目&#xff0c;实现原理也比较简单&#xff0c;即在unity端实现AI二次元女友的交互界面&#xff0c;接入chatgpt-3.5-turbo的api接口&#xff0c;借助chatg…

探讨餐饮行业油烟污染与治理措施

安科瑞 华楠 摘 要&#xff1a; 近年来我国餐饮行业油烟污染已成为城市大气污染的主要来源之一。如今环境问题日益突出严重制约到人们的身体健康&#xff0c;需要引起重视采取一系列有效的措施来治理餐饮行业的油烟污染。 关键词&#xff1a;餐饮业&#xff1b;污染&#xf…

STM32驱动ADS1256串口输出-AD转换

STM32驱动ADS1256串口输出-AD转换 ADS1256ADS1256简介芯片特点引脚说明模块相关寄存器与命令相关程序初始化 实验效果接线实验现象 ADS1256 ADS1256简介 ADS1256是TI推出的一款微功耗、高精度、8 通道、24 位高性能模数转换器。该芯片还带有4个可编程的I/O口、输入缓冲器和可编…

Spring依赖注入Bean类型的8种情况详解

1、普通对象 这没什么好说的&#xff0c;大家都这么用的&#xff0c;比如需要用到 UserService&#xff0c;直接 Autowired 就可以了。 Autowired private UserService userService;2、Collection 及其子接口 除了支持注入一个单一的对象之外&#xff0c;Autowired 还支持注…