当前位置: 首页 > 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;其中…...

零基础转行信息安全,老师傅来支招

现在这个环境下&#xff0c;转行做信息安全的人已经越来越少了&#xff0c;但还是有热爱这一行的人。 今天&#xff0c;我们以零基础入行为例&#xff0c;按照下面的成长路径&#xff0c;来分析分析从2025年的招聘数据来看&#xff0c;需要哪些能力。 对零基础转行的人来说&a…...

B站缓存视频转换全攻略:3分钟学会m4s转MP4无损转换

B站缓存视频转换全攻略&#xff1a;3分钟学会m4s转MP4无损转换 【免费下载链接】m4s-converter 一个跨平台小工具&#xff0c;将bilibili缓存的m4s格式音视频文件合并成mp4 项目地址: https://gitcode.com/gh_mirrors/m4/m4s-converter 你是否曾遇到过这样的情况&#x…...

C++ Lambda表达式实战指南:从捕获策略到现代C++最佳实践

1. Lambda表达式基础&#xff1a;从语法到核心概念 第一次接触C Lambda表达式时&#xff0c;我被它奇怪的方括号语法弄得一头雾水。直到在真实项目中用它简化了回调函数&#xff0c;才真正体会到它的威力。Lambda本质上就是个"即用即扔"的函数对象&#xff0c;特别适…...

XUnity Auto Translator:3分钟为Unity游戏添加多语言支持的终极方案

XUnity Auto Translator&#xff1a;3分钟为Unity游戏添加多语言支持的终极方案 【免费下载链接】XUnity.AutoTranslator 项目地址: https://gitcode.com/gh_mirrors/xu/XUnity.AutoTranslator 你是否曾经因为语言障碍而无法畅玩心爱的Unity游戏&#xff1f;或者作为游…...

古典戏曲研究新范式,NotebookLM+《牡丹亭》原始刻本实测:自动生成曲牌-情感-舞台调度三维映射表

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;NotebookLM戏剧研究辅助的范式革命 传统戏剧研究长期依赖人工文本细读、跨剧目比对与历史语境重建&#xff0c;耗时冗长且易受主观经验局限。NotebookLM 的引入&#xff0c;标志着从“线性阅读—笔记摘…...

Unity3D LineRenderer 从入门到精通:手把手教你绘制炫酷动态轨迹(附完整C#脚本)

Unity3D LineRenderer 动态轨迹绘制实战指南 在游戏开发中&#xff0c;动态轨迹效果是提升视觉体验的重要元素之一。无论是魔法技能的飞行路径、赛车游戏的轮胎痕迹&#xff0c;还是数据可视化中的动态连线&#xff0c;流畅且富有表现力的线条渲染都能显著增强场景的沉浸感。Un…...

基于ESP32-S2与电子墨水屏的低功耗物联网设备开发实践

1. 项目概述&#xff1a;打造一个会“思考”的本地果蔬日历每次去超市&#xff0c;看着货架上那些跨越了半个地球、反季节出现的果蔬&#xff0c;心里总会有点矛盾。一方面&#xff0c;现代物流的便利性让人惊叹&#xff0c;冬天也能吃到夏天的水果&#xff1b;另一方面&#x…...

3分钟掌握Joy-Con Toolkit:让你的Switch手柄焕然一新的终极指南

3分钟掌握Joy-Con Toolkit&#xff1a;让你的Switch手柄焕然一新的终极指南 【免费下载链接】jc_toolkit Joy-Con Toolkit 项目地址: https://gitcode.com/gh_mirrors/jc/jc_toolkit 还在为单调的Joy-Con手柄配色而烦恼吗&#xff1f;Joy-Con Toolkit为你带来了一键改变…...

Gemini3.1Pro评估ViT平移不变性:4周MVP路线图

利用 Gemini 3.1 Pro 评估视觉 Transformer 的平移不变性&#xff1a;从机制刻画、对照验证到门控降级与4周MVP路线图“平移不变性&#xff08;Translation Invariance&#xff09;”是视觉 Transformer&#xff08;ViT 等&#xff09;稳健性的核心指标之一&#xff1a;当图像在…...

RStudio 2026最新版下载:一键直达官网,解锁数据分析新体验

RStudio免费版安装包下载地址&#xff1a;RStudio安装包 RStudio 是 R 语言专用的集成开发环境&#xff0c;简单说就是 R 语言的 “超级工作台”。它不替代 R 语言&#xff0c;而是必须搭配 R 语言使用&#xff0c;负责把 R 语言的能力可视化、流程化、高效化。 RStudio 的核心…...