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

嵌入式C语言面试题 - 2024/11/18

欢迎找我进行职业规划,超值的自我投资 -> 嵌入式软件工程师一对一指导

转载请注明来源:


  1. 下边代码,x值是?

int x=10;x+ = 3+x%(3);

解析:

  1. 初始值:x = 10

  2. 计算 x % 3

    • 10 % 3 的结果是 1,因为 10 除以 3 的余数是 1。

  3. 计算 3 + x % 3

    • 3 + 1 的结果是 4

  4. 计算 x += 3 + x % 3

    • 相当于 x = x + 4

    • 当前的 x 是 10,所以 x = 10 + 4

  5. 最后,x 的结果是 14

因此,执行完 x+=3+x%(3); 后,x 的值是 14

2.下边代码输出结果是?

int **pp, *p, a=10, b=20;pp = &p;p = &a;p = &b;printf("%d,%d", *p, **pp)

解析:

  1. int **pp, *p, a=10, b=20;

    • pp 是一个指向指针的指针(即二级指针)。

    • p 是一个指向整型的指针(即一级指针)。

    • a 和 b 是整型变量,分别初始化为 10 和 20。

  2. pp = &p;

    • 这行代码将 p 的地址赋值给 pp。现在 pp 指向 p

  3. p = &a;

    • 这行代码将 a 的地址赋值给 p。现在 p 指向 a,因此 *p 的值是 10。

  4. p = &b;

    • 紧接着,这行代码将 b 的地址赋值给 p。现在 p 指向 b,因此 *p 的值变为 20。

    • 注意,此时 pp 仍然指向 p,但 p 的值已经改变,指向了 b 而不是 a

  5. printf("%d,%d", *p, **pp);

    • *p:由于 p 指向 b,所以 *p 的值是 b 的值,即 20。

    • **pppp 指向 p,而 p 指向 b,所以 **pp 相当于 *p,其值也是 b 的值,即 20。

因此,printf("%d,%d", *p, **pp); 的输出结果是 20,20

3.定义语句int *ptr [4];,下面等价的定义语句是?

A int ** ptr;

B int( * ptr) [4];

C int ptr[4];

D int * (ptr [4]);

解析:

在C语言中,int *ptr[4]; 定义了一个包含4个整型指针的数组。每个数组元素都是一个指向整型的指针。

A. int **ptr;

  • 这定义了一个指向指针的指针,而不是一个指针数组。因此,这与原定义不等价。

B. int (*ptr)[4];

  • 这定义了一个指向包含4个整数的数组的指针。虽然这里有括号和[4],但它并不表示一个指针数组,而是表示一个指向数组的指针。因此,这也与原定义不等价。

C. int ptr[4];

  • 这定义了一个包含4个整数的数组,而不是指针数组。因此,这与原定义不等价。

D. int *(ptr[4]);

  • 这实际上与int *ptr[4];是等价的。它定义了一个名为ptr的数组,该数组包含4个元素,每个元素都是指向整型的指针。这里的括号是可选的,因为[]的优先级高于*,所以int *ptr[4];int *(ptr[4]);表示的是同一种类型。

因此,与原定义int *ptr[4];等价的定义语句是D选项:int *(ptr[4]);

4.下边的代码,输出是多少?​​​​​​​

#include <stdio.h>
void foo(int b[][3]){     ++b;       b[1][1] = 9;}
int main(){      int a[3][3] = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}};      foo(a);       printf("%d", a[2][1]);}

解析:

在这个C语言程序中,有一个二维数组a和一个函数foo,该函数接收一个二维数组作为参数。

  1. 二维数组a被初始化为:

    1 2 3 4 5 6 7 8 9制代码

  2. main函数中,数组a被传递给函数foo。在C语言中,当二维数组作为参数传递给函数时,它实际上是通过指向其第一个元素(即第一个子数组)的指针来传递的。因此,foo函数中的参数b是一个指向包含3个整数的数组的指针。

  3. foo函数中,执行了++b;操作。这个操作使b指针指向了a的第二个子数组(即{4, 5, 6})。此时,b[0]指向{4, 5, 6}b[1]指向{7, 8, 9}

  4. 接下来,执行b[1][1] = 9;。由于b现在指向a的第二个子数组,所以b[1][1]实际上是指a[2][1](即原数组中的8所在的位置)。这行代码将a[2][1]的值更改为9。

  5. 回到main函数,执行printf("%d", a[2][1]);。由于a[2][1]的值在foo函数中被更改为9,所以输出将是9。

因此,程序的输出是9


未完待续,持续更新!

以防后边找不到可以点赞收藏下!

欢迎找我进行职业规划,超值的自我投资 -> 嵌入式软件工程师一对一指导

相关文章:

嵌入式C语言面试题 - 2024/11/18

欢迎找我进行职业规划&#xff0c;超值的自我投资 -> 嵌入式软件工程师一对一指导 转载请注明来源&#xff1a; 下边代码&#xff0c;x值是&#xff1f; int x10;x 3x%(3); 解析&#xff1a; 初始值&#xff1a;x 10 计算 x % 3&#xff1a; 10 % 3 的结果是 1&#…...

理解原子变量之四:可见性、memory_order_acquire与 memory_order_release

在理解原子变量之二&#xff1a;从volatile到内存序-进一步的认识-CSDN博客里的实例3里面&#xff0c;我们看到&#xff0c;如果在一个线程里修改原子变量done&#xff0c;另一个线程读取done时&#xff0c;就会看到这个变化。这就是原子变量的可见性。其实这个认识是不全面的。…...

requests的session

如果有cookie&#xff0c;能够自动关联&#xff0c;可以使用如下&#xff1a; session对象能够帮我们自动管理和传递cookie&#xff0c;但是后续的请求&#xff0c;必须使用session对象发起 session requests.session() re session.get() re session.post()或 session reque…...

MySQL面试题补

内连接和外连接的区别&#xff1a; ○1.功能和用法不同&#xff1a;内连接是连接两表都满足情况的数据&#xff1b;而外连接是以一边的表为主表&#xff0c;另一个表只显示匹配的行&#xff1b; ○2.用途&#xff1a;内连接一般是用于检索不同表需要根据共同的列值进行匹配的&a…...

Windows系统编程 - 进程遍历

文章目录 前言进程的遍历CreateToolhelp32SnapshotProcess32FirstProcess32Next进程遍历 总结 前言 各位师傅好&#xff0c;我是qmx_07&#xff0c;今天给大家讲解进程遍历的相关知识点 进程的遍历 快照&#xff1a;使用vmware虚拟机的时候&#xff0c;经常需要配置环境服务…...

从零开始创建一个 Vue3+Vite+TS+Eslint项目

一、创建一个最简单的 Vue3 项目 pnpm create vuelatest只设置项目名&#xff0c;其它任何功能都不加。 二、引入 Typescript 详见 Vue3 Vite 项目引入 Typescript 三、引入 Eslint Pritter 详见 Vue3 Vite TS 项目引入 Eslint Pritter 四、配置自动导入插件引入 El…...

Python操作neo4j库py2neo使用(一)

Python操作neo4j库py2neo使用&#xff08;一&#xff09; 安装&#xff08;只用于测试&#xff09; docker-compose .yml 文件 version: 3.8 services:neo4j:image: neo4j:5.6.0-enterprise #商业版镜像hostname: neo4jcontainer_name: neo4jports:- "7474:7474"-…...

Oracle - 多区间按权重取值逻辑 ,分时区-多层级-取配置方案(二)

Oracle - 多区间按权重取值逻辑 &#xff0c;分时区-多层级-取配置方案https://blog.csdn.net/shijianduan1/article/details/133386281 某业务配置表&#xff0c;按配置的时间区间及组织层级取方案&#xff0c;形成报表展示出所有部门方案的取值&#xff1b; 例如&#xff0…...

leetcode刷题记录(四十二)——101. 对称二叉树

&#xff08;一&#xff09;问题描述 . - 力扣&#xff08;LeetCode&#xff09;. - 备战技术面试&#xff1f;力扣提供海量技术面试资源&#xff0c;帮助你高效提升编程技能,轻松拿下世界 IT 名企 Dream Offer。https://leetcode.cn/problems/symmetric-tree/description/给你…...

AutoDL安装docker问题

在AutoDL上租了卡&#xff0c;安装docker遇到一些问题&#xff1a; 1.执行 sudo docker run hello-world 报错 docker: Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running? 解决方法 先查看docker有没有启动&#xff0c;…...

C++头文件大全(要是还有请帮忙)

以下是 C 中常见的各类头文件分类列举&#xff08;但实际远不止这些&#xff0c;随着标准库扩充及第三方库使用会有更多&#xff09;&#xff1a; 输入 / 输出流相关头文件 <iostream>&#xff1a;用于标准输入输出&#xff0c;定义了 cin、cout 等对象。<fstream>…...

深度学习实战人脸识别

文章目录 前言一、人脸识别一般过程二、人脸检测主流算法1. MTCNN2. RetinaFace3. CenterFace4. BlazeFace5. YOLO6. SSD7. CascadeCNN 三、人脸识别主流算法1.deepface2.FaceNet3.ArcFace4.VGGFace5.DeepID 四、人脸识别系统实现0.安装教程与资源说明1. 界面采用PyQt5框架2.人…...

oracle排查长时间没提交的事务造成的阻塞案例

一 问题描述 开发同事反馈生产环境某个接口慢&#xff0c;一个普通的按主键更新的update竟然需要5分钟&#xff0c;而我手动执行秒返回&#xff0c;猜测是发生了阻塞&#xff0c;需要排查出阻塞源。 有时&#xff0c;一个事务里会包含多个sql&#xff0c;有的还包含上传附件等…...

React第七节 组件三大属性之 refs 的用法注意事项

1、定义 React 中refs 是允许我们操作DOM 访问组件实例的一种方案。开发人员可以直接使用 refs 访问操作DOM&#xff0c;而不用自身的数据状态&#xff0c;这种方案在实际开发过程中是有必要的&#xff0c;但是不建议通篇使用refs操作DOM&#xff0c;如果是这样&#xff0c;那…...

工程企业需要什么样的物资管理系统?为什么需要物资管理系统?

一、背景与意义 在工程项目的建设中&#xff0c;无论是高楼大厦的拔地而起&#xff0c;还是高速公路的绵延铺展&#xff0c;物资都是最基础的要素之一。从钢筋水泥到施工机械&#xff0c;任何一种物资的管理不善都可能导致项目延误、成本超支&#xff0c;甚至质量问题。然而&a…...

基于网页的大语言模型聊天机器人

代码功能 用户交互界面&#xff1a; 包括聊天历史显示区域和输入框&#xff0c;用户可以输入消息并发送。 消息发送和显示&#xff1a; 用户输入消息后点击“Send”按钮或按下回车键即可发送。 消息发送后显示在聊天记录中&#xff0c;并通过异步请求与后端 AI 模型通信&am…...

深入理解索引(一)

1.引言 在数据库和数据结构中&#xff0c;索引&#xff08;Index&#xff09;是一种用于提高数据检索速度的重要机制。本文将详细深入介绍索引。 2. 索引的分类 2.1 B - 树索引&#xff08;B - Tree Index&#xff09; 2.1.1 结构细节 树状结构&#xff1a;B - 树索引是一…...

动态规划子数组系列一>最长湍流子数组

1.题目&#xff1a; 解析&#xff1a; 代码&#xff1a; public int maxTurbulenceSize(int[] arr) {int n arr.length;int[] f new int[n];int[] g new int[n];for(int i 0; i < n; i)f[i] g[i] 1;int ret 1;for(int i 1; i < n-1; i,m. l.kmddsfsdafsd){int…...

MATLAB矩阵元素的修改及删除

利用等号赋值来进行修改 A ( m , n ) c A(m,n)c A(m,n)c将将矩阵第 m m m行第 n n n列的元素改为 c c c&#xff0c;如果 m m m或 n n n超出原来的行或列&#xff0c;则会自动补充行或列&#xff0c;目标元素改为要求的&#xff0c;其余为 0 0 0 A ( m ) c A(m)c A(m)c将索引…...

对 TypeScript 中函数如何更好的理解及使用?与 JavaScript 函数有哪些区别?

TypeScript 中函数的理解 在 TypeScript 中&#xff0c;函数本质上与 JavaScript 中的函数类似&#xff0c;但是它增强了类型系统的支持&#xff0c;使得我们可以对函数的参数和返回值进行更严格的类型检查。这样可以有效减少类型错误&#xff0c;提高代码的可维护性和可读性。…...

visual studio 2022更改主题为深色

visual studio 2022更改主题为深色 点击visual studio 上方的 工具-> 选项 在选项窗口中&#xff0c;选择 环境 -> 常规 &#xff0c;将其中的颜色主题改成深色 点击确定&#xff0c;更改完成...

【第二十一章 SDIO接口(SDIO)】

第二十一章 SDIO接口 目录 第二十一章 SDIO接口(SDIO) 1 SDIO 主要功能 2 SDIO 总线拓扑 3 SDIO 功能描述 3.1 SDIO 适配器 3.2 SDIOAHB 接口 4 卡功能描述 4.1 卡识别模式 4.2 卡复位 4.3 操作电压范围确认 4.4 卡识别过程 4.5 写数据块 4.6 读数据块 4.7 数据流…...

PAN/FPN

import torch import torch.nn as nn import torch.nn.functional as F import mathclass LowResQueryHighResKVAttention(nn.Module):"""方案 1: 低分辨率特征 (Query) 查询高分辨率特征 (Key, Value).输出分辨率与低分辨率输入相同。"""def __…...

LangChain知识库管理后端接口:数据库操作详解—— 构建本地知识库系统的基础《二》

这段 Python 代码是一个完整的 知识库数据库操作模块&#xff0c;用于对本地知识库系统中的知识库进行增删改查&#xff08;CRUD&#xff09;操作。它基于 SQLAlchemy ORM 框架 和一个自定义的装饰器 with_session 实现数据库会话管理。 &#x1f4d8; 一、整体功能概述 该模块…...

Golang——9、反射和文件操作

反射和文件操作 1、反射1.1、reflect.TypeOf()获取任意值的类型对象1.2、reflect.ValueOf()1.3、结构体反射 2、文件操作2.1、os.Open()打开文件2.2、方式一&#xff1a;使用Read()读取文件2.3、方式二&#xff1a;bufio读取文件2.4、方式三&#xff1a;os.ReadFile读取2.5、写…...

leetcode73-矩阵置零

leetcode 73 思路 记录 0 元素的位置&#xff1a;遍历整个矩阵&#xff0c;找出所有值为 0 的元素&#xff0c;并将它们的坐标记录在数组zeroPosition中置零操作&#xff1a;遍历记录的所有 0 元素位置&#xff0c;将每个位置对应的行和列的所有元素置为 0 具体步骤 初始化…...

麒麟系统使用-进行.NET开发

文章目录 前言一、搭建dotnet环境1.获取相关资源2.配置dotnet 二、使用dotnet三、其他说明总结 前言 麒麟系统的内核是基于linux的&#xff0c;如果需要进行.NET开发&#xff0c;则需要安装特定的应用。由于NET Framework 是仅适用于 Windows 版本的 .NET&#xff0c;所以要进…...

标注工具核心架构分析——主窗口的图像显示

&#x1f3d7;️ 标注工具核心架构分析 &#x1f4cb; 系统概述 主要有两个核心类&#xff0c;采用经典的 Scene-View 架构模式&#xff1a; &#x1f3af; 核心类结构 1. AnnotationScene (QGraphicsScene子类) 主要负责标注场景的管理和交互 &#x1f527; 关键函数&…...

Qt学习及使用_第1部分_认识Qt---Qt开发基本流程

前言 学以致用,通过QT框架的学习,一边实践,一边探索编程的方方面面. 参考书:<Qt 6 C开发指南>(以下称"本书") 标识说明:概念用粗体倾斜.重点内容用(加粗黑体)---重点内容(红字)---重点内容(加粗红字), 本书原话内容用深蓝色标识,比较重要的内容用加粗倾…...

day51 python CBAM注意力

目录 一、CBAM 模块简介 二、CBAM 模块的实现 &#xff08;一&#xff09;通道注意力模块 &#xff08;二&#xff09;空间注意力模块 &#xff08;三&#xff09;CBAM 模块的组合 三、CBAM 模块的特性 四、CBAM 模块在 CNN 中的应用 一、CBAM 模块简介 在之前的探索中…...