当前位置: 首页 > news >正文

三正科技笔试题

(15题,45分钟,闭卷)

一、( 8 分 )请问以下程序输出什么结果?

char *getStr(void) 。

char p[] = "hellow world"; return p;

void test(void)

char *str = NULL; str = getStr(); printf("%s", str);

不会正确输出,可能会段错误。

二、( 5 分 )test2 函数有问题吗?如果有, 请指出问题出在什么地方并给出正确答案。

void test2()

char string[10], str[10];

int i;

for(i = 0; i < 10; i++)

str[i] ='a';

strcpy(string, str);

for(i = 0; i < 9; i++)

……

Str[9] = ‘\0’

……

没有\0结尾会导致strcpy无法结束。

三、(5分)用预处理指令#define声明一个常数,用以表明一年中有多少秒。(忽略闰年问题)

#define SECONDS_PER_YEAR (365 * 24 * 60 * 60)

四、( 5分 )写一个“标准”宏MIN , 这个宏输入两个参数并返回较小的—个。

#define MIN(a, b) (((a) < (b)) ? (a) : (b))

五、( 8分 )你怎么样用 C 编写死循环呢?

While(1)

六、( 10分 )用变量 a 给出下面的定义 :

1、一个整型数 ;int a;

2、一个指向整型数的指针 ;int *a;

3、一个指向指针的指针,它指向的指针是指向一个整型数;int **a;

4、一个有 10 个整型数的数组;int a[10];

5、一个有 10 个指针的数组,该指针是指向一个整型数的;int *a[10];

6、一个指向有 10 个整型数数组的指针;int (*a)[10];

7、一个指向函数的指针,该函数有一个整型数参数并返回一个整数;int (*a)(int);

8、一个有 10 个指针的数组 ,该指针指向一个函数,该函数有一个整型参数并返回一个整型数。int (*a[10])(int);

七、( 5分 )关键字 static 的作用是什么?

Static意为静态变量,用于控制变量的作用域和生命周期,主要应用于变量和函数。

修饰外部变量或函数时可以限定当前变量的作用域为当前文件,在函数内部定义时会延长变量的生命周期。该变量只会在第一次进入作用域时被初始化,并且在整个程序的执行过程中保持其值。

八、( 10 分 )关键字 const 有什么含意?

const用于声明常量,即一旦初始化后就不能再被修改的变量。它可以应用于多种类型的数据,包括基本类型、指针和复合类型等。用于函数形参时可以确保函数不会修改其值,用于类中的函数时该函数不能修改类中的变量。

下面的声明都是什么意思?

1)const int a;

2)int const a;

3)const int *a;

4)int *const a;

5)int const *a const;

九、( 5 分 )下面的代码输出是什么?为什么?

void foo(void)

  unsigned int a = 6;

    int b = -20;

    (a - b > 6) ? puts(">6") : puts("<=6");

 }

(a – b)是无符号数无论如何都是正数,而且非常大。所以>6

十、( 5 分 )动态分配内存可能发生的问题是什么?

内存泄漏:分配了内存但没有适时释放,导致程序占用的内存不断增加。

野指针:指向已经释放的内存的指针。使用野指针可能导致程序崩溃或未定义行为。

包括但不限于使用已释放的内存、重复释放同一内存块等。

内存越界:访问数组或其他数据结构时超出其实际大小,可能会破坏其他数据或导致程序崩溃。

分配失败:动态内存分配请求失败(如malloc返回NULL),而程序没有妥善处理这种情况。

内存碎片:多次分配与释放导致内存分割成小段,难以找到足够的连续内存空间来满足新的分配请求

十一、( 5 分 )volatile 这个关键字的作用是什么?

volatile 是易变的,volatile 的作用:

  1. 防止优化: 编译器在优化代码时可能会假设某些变量的值不会在两次访问之间发生变化。使用 volatile 关键字可以禁止这种优化,确保每次访问变量时都从内存中读取最新的值,而不是使用寄存器中缓存的值。
  2. 用于硬件交互: 在嵌入式系统或操作系统编程中,volatile 通常用于那些可能被硬件改变的变量,例如硬件寄存器、中断服务例程中的变量等。这样可以确保程序总是读取到最新的值。
  3. 应用于多线程环境: 在多线程环境中,volatile 可以用来标记那些可能被其他线程修改的变量。虽然 volatile 不能替代线程同步机制(如互斥锁),但它可以确保变量的可见性。

十二、( 8 分 )请写出下面的程序的输出结果 :

#include<stdio.h>

int main()

int a = 10, b, c, d;

b = a++;

c = ++a;

d=10*(++a);

printf(" b : %d ,c : %d , d :%d", b , c, d);

return 0;

}

b : 10 ,c : 12 , d :130

十三、(8分)进程之间进行通信的方式有几种,它们分别是什么?

管道,信号,消息队列,共享内存,信号量集,套接字等

十四、(5分)进程和线程的区别是什么?

进程是操作系统进行资源分配的基本单位,每个进程都有独立的内存空间和资源。进程之间的通信通常需要使用IPC机制。

线程是进程内的一个执行单元,同一进程内的线程共享资源。线程之间的通信相对简单,可以直接访问共享数据。创建和销毁线程的开销比进程小,上下文切换也更快。

十五、(8分)请列举四种位运算符,并说明它们一般用于什么地方。

算术运算符用于数学运算

关系运算符用于判断大小等

逻辑运算符用于与或非运算

位运算符用于二进制操作移位等等

相关文章:

三正科技笔试题

&#xff08;15题&#xff0c;45分钟&#xff0c;闭卷&#xff09; 一、( 8 分 &#xff09;请问以下程序输出什么结果&#xff1f; char *getStr(void) 。 &#xff5b; char p[] "hellow world"; return p; &#xff5d; void test(void) &#xff5b; ch…...

Selective attention improves transformer详细解读

Selective attention improves transformer Google 2024.10.3 一句话&#xff1a;简单且无需额外参数的选择性注意力机制&#xff0c;通过选择性忽略不相关信息并进行上下文剪枝&#xff0c;在不增加计算复杂度的情况下显著提升了Transformer模型的语言建模性能和推理效率。 论…...

git配置用户信息

在 Git 中配置用户信息&#xff0c;主要是设置你的用户名和电子邮件地址&#xff0c;这些信息会被 Git 用来记录提交的作者信息。以下是配置用户信息的步骤&#xff1a; 打开命令行工具。 设置你的用户名&#xff1a; git config --global user.name "你的名字"例如…...

【eNSP】路由基础与路由来源——静态路由实验

路由是数据包从源地址到目的地址的传输路径&#xff0c;静态路由是指网络管理员手动配置的路由条目&#xff0c;用于指定数据包从源地址到目的地址的固定路径。以下是关于静态路由的详细介绍。 一、路由的基础知识点 路由的定义&#xff1a; 路由是指在计算机网络中&#xff…...

Python Web 应用开发基础知识

Python Web 应用开发基础知识 引言 随着互联网的快速发展&#xff0c;Web 应用程序的需求日益增加。Python 作为一种简单易学且功能强大的编程语言&#xff0c;已经成为 Web 开发中广受欢迎的选择之一。本文将深入探讨 Python Web 开发的基础知识&#xff0c;包括常用框架、基…...

STM32 标准库函数 GPIO_SetBits、GPIO_ResetBits、GPIO_WriteBit、GPIO_Write 区别

GPIO_SetBits&#xff1a; 使用例&#xff1a; GPIO_SetBits(GPIOA, GPIO_Pin_1 | GPIO_Pin_2);意思是将GPIOA1和GPIOA2设为高电平 GPIO_SetBits(GPIOA, 0x0003);意思也是将GPIOA1和GPIOA2设为高电平 实际上当选中GPIOA时&#xff0c;它会按位遍历&#xff0c;在哪一位有1说…...

【Redis_Day4】内部编码和单线程模型

【Redis_Day4】内部编码和单线程模型 五大数据类型内部编码object encoding key1&#xff1a;查询key1对应值的内部编码 redis中的单线程模型 redis中的数据都是以键值对的方式存的&#xff0c;redis内部用哈希表组织这些键值对。 五大数据类型 站在用户角度&#xff0c; 在一…...

Vue模块化开发的理解

Vue模块化是指在Vue.js开发中&#xff0c;将代码按功能拆分成多个独立的模块&#xff0c;以提高代码的可维护性、可读性和复用性。以下是对Vue模块化的详细理解&#xff1a; 一、Vue模块化的实现方式 组件化开发&#xff1a; Vue组件是模块化的基本单元&#xff0c;每个组件封…...

在Ubuntu22.04上源码构建ROS noetic环境

Ubuntu22.04上源码构建ROS noetic 起因准备环境创建工作目录并下载源码安装编译依赖包安装ros_comm和rosconsole包的两个补丁并修改pluginlib包的CMakeLists的编译器版本编译安装ROS noetic和ros_test验证 起因 最近在研究VINS-Mono从ROS移植到ROS2&#xff0c;发现在编写feat…...

算法--解决二叉树遍历问题

第一 实现树的结构 class Node(): # 构造函数&#xff0c;初始化节点对象&#xff0c;包含数据和左右子节点 def __init__(self, dataNone): self.data data # 节点存储的数据 self.left None # 左子节点&#xff0c;默认为None self.rig…...

[刷题]入门1.矩阵转置

博客主页&#xff1a;算法歌者本篇专栏&#xff1a;[刷题]您的支持&#xff0c;是我的创作动力。 文章目录 1、题目2、基础3、思路4、结果 1、题目 链接&#xff1a;洛谷-B2106-矩阵转置 2、基础 此题目主要考察二维数组的掌控能力。 3、思路 观察&#xff0c;可知&#…...

Flutter开发之flutter_local_notifications

flutter_local_notifications 消息通知 flutter_local_notifications地址 flutter_local_notifications: ^18.0.1class NotificationHelper {//工厂模式调用该类时&#xff0c;默认调用此方法&#xff0c;将实例对象返回出去static NotificationHelper? _instance null;sta…...

Gradle和maven

大家好&#xff0c;我是风筝 作为Java 开发者&#xff0c;你平时用 Maven 还是 Gradle&#xff1f; 我一直用的都是 Maven&#xff0c;但是前几天做了一个小项目&#xff0c;用的是 Gradle&#xff0c;因为项目创建出来默认就是用的 Gradle&#xff0c;而且功能足够简单&#x…...

RabbitMQ教程:发布/订阅模式(Publish/Subscribe)(三)

文章目录 RabbitMQ教程&#xff1a;发布/订阅模式&#xff08;Publish/Subscribe&#xff09;&#xff08;三&#xff09;一、引言二、简介三、准备工作3.1 说明3.2 生成项目 四、实战4.1 交换机&#xff08;Exchanges&#xff09;4.2 临时队列&#xff08;Temporary Queues&am…...

服务器被挂马怎么办?——解决服务器被挂马的方法和步骤

服务器被挂马&#xff08;即被植入恶意软件&#xff09;是一个常见的网络安全问题&#xff0c;可能导致数据泄露、服务中断和经济损失。本文将详细介绍如何检测和清除服务器上的恶意软件&#xff0c;并提供实用的代码示例&#xff0c;帮助读者解决服务器被挂马的问题。 一、什…...

Qt 项目架构设计

在开发一个 Qt 项目时&#xff0c;合理的文件夹结构和清晰的构建流程是非常重要的。Qt 项目通常需要管理源代码、UI 文件、资源文件、构建脚本等。下面我会给出一个详细的文件夹结构示例&#xff0c;并解释每个部分的作用及如何设计 Makefile 或使用 Qt 的 qmake 来自动化构建过…...

Elasticsearch:管理和排除 Elasticsearch 内存故障

作者&#xff1a;来自 Elastic Stef Nestor 随着 Elastic Cloud 提供可观察性、安全性和搜索等解决方案&#xff0c;我们将使用 Elastic Cloud 的用户范围从完整的运营团队扩大到包括数据工程师、安全团队和顾问。作为 Elastic 支持代表&#xff0c;我很乐意与各种各样的用户和…...

高级java每日一道面试题-2024年11月07日-Redis篇-Redis有哪些功能?

如果有遗漏,评论区告诉我进行补充 面试官: Redis有哪些功能? 我回答: Redis 是一个开源的、基于键值对的 NoSQL 数据库&#xff0c;以其高性能、丰富的数据结构和多种功能而闻名。在高级 Java 面试中&#xff0c;了解 Redis 的核心功能和高级特性是非常重要的。以下是 Redi…...

实用且免费的 IP 地域查询 API 接口推荐

实用且免费的 IP 地域查询 API 接口推荐 在日常开发中&#xff0c;IP 地域查询是一个常见需求。最近无意间发现一个实用的 IP 地域查询 API&#xff0c;目前是免费的&#xff0c;未来是否收费尚不可知&#xff0c;但在当前情况下非常值得推荐。 API 地址示例&#xff1a; ht…...

STM32学习笔记----SPI协议

STM32的SPI&#xff08;串行外设接口&#xff0c;Serial Peripheral Interface&#xff09;是一种常见的同步串行通信协议&#xff0c;广泛应用于与传感器、显示屏、存储设备等外设的通信。SPI通过主从模式&#xff08;Master/Slave&#xff09;来实现数据交换&#xff0c;其中…...

FPGA开发实战:GT收发器配置避坑指南(附8B10B与64B66B编码对比)

FPGA开发实战&#xff1a;GT收发器配置避坑指南&#xff08;附8B10B与64B66B编码对比&#xff09; 在高速数字电路设计中&#xff0c;GT收发器作为FPGA与外部世界的高速数据通道&#xff0c;其配置的精确性直接决定了系统稳定性。本文将深入探讨GT收发器配置中的关键细节&#…...

从一次数据精度丢失的坑说起:详解Pandas fillna的‘静默下转型’与infer_objects的正确用法

从数据精度陷阱到稳健处理&#xff1a;Pandas类型转换的深度防御实践 1. 当.fillna(0)成为数据分析的隐形杀手 凌晨三点的办公室&#xff0c;咖啡杯早已见底。数据分析师李明盯着屏幕上诡异的报表结果——所有百分比计算结果突然变成了整齐的整数。这个看似简单的数据清洗操作…...

Xinference+tao-8k实战:快速构建文档相似度分析工具

Xinferencetao-8k实战&#xff1a;快速构建文档相似度分析工具 1. 从想法到工具&#xff1a;为什么你需要一个文档相似度分析器 想象一下这个场景&#xff1a;你手头有几百份技术文档、产品说明或者客户反馈&#xff0c;你想快速找出哪些文档在讨论同一个主题&#xff0c;或者…...

RMBG-2.0 API调用教程:Python requests调用+返回透明PNG二进制流解析

RMBG-2.0 API调用教程&#xff1a;Python requests调用返回透明PNG二进制流解析 1. 快速了解RMBG-2.0 RMBG-2.0是一款轻量级的AI图像背景去除工具&#xff0c;它能在保持高精度的同时&#xff0c;大幅降低硬件要求。无论你是开发者还是普通用户&#xff0c;都能轻松上手使用。…...

Qwen3-ASR-1.7B多说话人分离展示:会议录音自动分角色

Qwen3-ASR-1.7B多说话人分离展示&#xff1a;会议录音自动分角色 会议记录不再需要人工分辨谁说了什么&#xff0c;AI现在能帮你自动区分每个发言人 1. 引言 想象一下这样的场景&#xff1a;一场两小时的多人会议刚刚结束&#xff0c;你需要整理会议纪要。传统的做法是反复听录…...

DriverStore Explorer完全指南:免费Windows驱动管理终极教程

DriverStore Explorer完全指南&#xff1a;免费Windows驱动管理终极教程 【免费下载链接】DriverStoreExplorer Driver Store Explorer [RAPR] 项目地址: https://gitcode.com/gh_mirrors/dr/DriverStoreExplorer DriverStore Explorer是一款功能强大的Windows驱动程序管…...

利用AI改写工具,五个策略帮助论文查重率快速降至合规标准

嘿&#xff0c;大家好&#xff01;我是AI菌。今天咱们来聊聊一个让无数学生头疼的问题&#xff1a;论文重复率飙到30%以上怎么办&#xff1f;别慌&#xff0c;我这就分享5个实用降重技巧&#xff0c;帮你一次搞定&#xff0c;轻松压到合格线以下。这些方法都是我亲身试验过的&a…...

别再直接升glibc 2.25了!CentOS7下从2.17平滑升级到2.31的保姆级排雷手册

CentOS7下glibc升级避坑实战&#xff1a;从2.17到2.31的安全跃迁指南 当你在CentOS7服务器上部署最新中间件时&#xff0c;那个熟悉的报错信息又出现了——"GLIBC_2.25 not found"。作为运维老兵&#xff0c;我太了解这种被glibc版本束缚的无力感。但别急着执行yum u…...

5分钟快速上手:Rufus免费工具制作Windows启动盘终极指南

5分钟快速上手&#xff1a;Rufus免费工具制作Windows启动盘终极指南 【免费下载链接】rufus The Reliable USB Formatting Utility 项目地址: https://gitcode.com/GitHub_Trending/ru/rufus 还在为系统安装而烦恼吗&#xff1f;Rufus作为一款完全免费的USB格式化工具&a…...

foobox-cn:让foobar2000焕发新生的界面增强工具

foobox-cn&#xff1a;让foobar2000焕发新生的界面增强工具 【免费下载链接】foobox-cn DUI 配置 for foobar2000 项目地址: https://gitcode.com/GitHub_Trending/fo/foobox-cn 还在忍受foobar2000单调的默认界面吗&#xff1f;想让音乐播放体验更加赏心悦目且功能丰富…...