某某科技笔试题

(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分)请列举四种位运算符,并说明它们一般用于什么地方。

算术运算符用于数学运算

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

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

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

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

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

相关文章

Excel使用-弹窗“此工作簿包含到一个或多个可能不安全的外部源的链接”的发生与处理

文章目录 前言一、探讨问题发生原因1.引入外部公式2.引入外部数据验证二、问题现象排查及解决1.排查公式2.排查数据验证3.特殊处理方式总结前言 作为一种常用的办公软件,Excel被大家所熟知。尽管使用了多年,有时候在使用Excel时候也会发生一些不太常见的现象,需要用心核查下…

跨越网络边界:IPv6与零信任架构的深度融合

2024年&#xff0c;工信部发布了《关于开展“网络去NAT”专项工作 进一步深化IPv6部署应用的通知》&#xff0c;加速了国内网络由IPv4向IPv6的转型步伐。未来&#xff0c;各行各业将逐步去NAT&#xff0c;逐步向IPv6迁移。在此过程中&#xff0c;网络安全解决方案和产品能力将面…

从大数据到大模型:现代应用的数据范式

作者介绍&#xff1a;沈炼&#xff0c;蚂蚁数据部数据库内核负责人。2014年入职蚂蚁&#xff0c;承担蚂蚁集团的数据库架构职责&#xff0c;先后负责了核心链路上OceanBase&#xff0c;OceanBase高可用体系建设、NoSQL数据库产品建设。沈炼对互联网金融、数据库内核、数据库高可…

华为eNSP:MSTP

一、什么是MSTP&#xff1f; 1、MSTP是IEEE 802.1S中定义的生成树协议&#xff0c;MSTP兼容STP和RSTP&#xff0c;既可以快速收敛&#xff0c;也提供了数据转发的多个冗余路径&#xff0c;在数据转发过程中实现VLAN数据的负载均衡。 2、MSTP可以将一个或多个VLAN映射到一个Inst…

MATLAB绘制克莱因瓶

MATLAB绘制克莱因瓶 clc;close all;clear all;warning off;% clear all rand(seed, 100); randn(seed, 100); format long g;% Parameters u_range linspace(0, 2*pi, 100); v_range linspace(0, pi, 50); [U, V] meshgrid(u_range, v_range);% Parametric equations for t…

2、 家庭网络发展现状

上一篇我们讲了了解家庭网络历史(https://blog.csdn.net/xld_hung/article/details/143639618?spm1001.2014.3001.5502),感兴趣的同学可以看对应的文章&#xff0c;本章我们主要讲家庭网络发展现状。 关于家庭网络发展现状&#xff0c;我们会从国内大户型和小户型的网络说起&…

Vue3 -- 项目配置之eslint【企业级项目配置保姆级教程1】

下面是项目级完整配置1➡eslint&#xff1a;【吐血分享&#xff0c;博主踩过的坑你跳过去&#xff01;&#xff01;跳不过去&#xff1f;太过分了给博主打钱】 浏览器自动打开项目&#xff1a; 你想释放双手吗&#xff1f;你想每天早上打开电脑运行完项目自动在浏览器打开吗&a…

【SQL】E-R模型(实体-联系模型)

目录 一、介绍 1、实体集 定义和性质 属性 E-R图表示 2. 联系集 定义和性质 属性 E-R图表示 一、介绍 实体-联系数据模型&#xff08;E-R数据模型&#xff09;被开发来方便数据库的设计&#xff0c;它是通过允许定义代表数据库全局逻辑结构的企业模式&#xf…

LLM - 计算 多模态大语言模型 的参数量(Qwen2-VL、Llama-3.1) 教程

欢迎关注我的CSDN&#xff1a;https://spike.blog.csdn.net/ 本文地址&#xff1a;https://spike.blog.csdn.net/article/details/143749468 免责声明&#xff1a;本文来源于个人知识与公开资料&#xff0c;仅用于学术交流&#xff0c;欢迎讨论&#xff0c;不支持转载。 影响 (…

基于Java Springboot成都旅游网

一、作品包含 源码数据库设计文档万字PPT全套环境和工具资源部署教程 二、项目技术 前端技术&#xff1a;Html、Css、Js、Vue、Element-ui 数据库&#xff1a;MySQL 后端技术&#xff1a;Java、Spring Boot、MyBatis 三、运行环境 开发工具&#xff1a;IDEA/eclipse 数据…

css 使用图片作为元素边框

先看原始图片 再看效果 边框的四个角灭有拉伸变形,但是图片的中部是拉伸的 代码 border-style: solid;/* 设置边框图像的来源 */border-image-source: url(/static/images/mmwz/index/bk_hd3x.png);/* 设置如何切割图像 */border-image-slice: 66;/* 设置边框的宽度 */border…

【阅读记录-章节1】Build a Large Language Model (From Scratch)

目录 1. Understanding large language models1.1 What is an LLM?补充介绍人工智能、机器学习和深度学习的关系机器学习 vs 深度学习传统机器学习 vs 深度学习&#xff08;以垃圾邮件分类为例&#xff09; 1.2 Applications of LLMs1.3 Stages of building and using LLMs1.4…

【WSL+Ubuntu】默认用户被意外变更为 root 后切回原来的默认用户

引言 在使用 Windows Subsystem for Linux (WSL) Ubuntu 时&#xff0c;在 ~ 目录下使用 ls 命令&#xff0c;发现所有文件都消失了&#xff0c;让我误以为文件被清空了。实际上是因为WSL Ubuntu的默认用户被意外地改变为了 root。那么&#xff0c;如何恢复并切回原来的默认用…

模式:每个服务一个数据库

Pattern: Database per service。 背景 如用微服务架构模式开发一个在线商店应用程序。大多数服务需要在某种数据库中持久化数据。如&#xff0c;订单服务存储订单信息&#xff0c;而客户服务存储客户信息。 问题 微服务应用程序中的数据库架构是什么&#xff1f; 驱动力…

Acme PHP - Let‘s Encrypt

Lets Encrypt是一个于2015年三季度推出的数字证书认证机构&#xff0c;旨在以自动化流程消除手动创建和安装证书的复杂流程&#xff0c;并推广使万维网服务器的加密连接无所不在&#xff0c;为安全网站提供免费的SSL/TLS证书。 使用PHP来更新证书&#xff1a; Acme PHP | Rob…

如何实现主备租户的无缝切换 | OceanBase应用实践

对于DBA而言&#xff0c;确保数据库的高可用性、容灾等能力是其日常工作中需要持续思考和关注的重要事项。一方面&#xff0c;可以利用数据库自身所具备的功能来实现这些目标&#xff1b;若数据库本身不提供相应功能&#xff0c;DBA则需寻找其他工具来增强数据库的高可用性和容…

超越GPT-4o-mini | 北大开源「国产o1」大模型,{多阶段自主推理}让小模型也能“放大招“!

01、LLaVA-o1背景简介 以OpenAI o1为代表的大型语言模型展示了强大的推理能力&#xff0c;这充分的验证了语言模型推理时间缩放的有效性。然而&#xff0c;视觉对于使模型能够充分理解世界并扩展其认知能力同等重要。因此&#xff0c;开发一个融合语言和视觉的多模态模型&#…

Unity类银河战士恶魔城学习总结(P126 Item ToolTip物品提示)

【Unity教程】从0编程制作类银河恶魔城游戏_哔哩哔哩_bilibili 教程源地址&#xff1a;https://www.udemy.com/course/2d-rpg-alexdev/ 本章节实现了把鼠标放到物品上面就会显示物品属性 UI_ItemTooltip.cs 功能实现&#xff1a;该脚本的核心功能是展示和隐藏物品的工具提示…

11.13机器学习_线性回归

十 集成学习方法之随机森林 机器学习中有一种大类叫集成学习&#xff08;Ensemble Learning&#xff09;&#xff0c;集成学习的基本思想就是将多个分类器组合&#xff0c;从而实现一个预测效果更好的集成分类器。集成算法可以说从一方面验证了中国的一句老话&#xff1a;三个…

【机器学习】数学知识:欧式距离(Euclidean Distance)和曼哈顿距离(Manhattan Distance)

欧式距离和曼哈顿距离是两种常用的距离度量方法&#xff0c;用于衡量两点之间的相似性或差异性。它们在几何分析、数据挖掘、机器学习等领域有广泛应用。 1. 欧式距离 概念 欧式距离&#xff08;Euclidean Distance&#xff09;是最常见的直线距离度量方法&#xff0c;源于欧…