初学嵌入式-C语言常犯错误详解
1、对于下面这道题,估计有很多人会选择B答案,但其实答案是D
2.int a=10, b=9,c=9,d; d= b++ || (a>c++),请问上述代码执行完毕后a b c d的值分别是 。
A、10 9 10 9 B、10 10 10 1 C、10 9 10 1 D、10 10 9 1
答案解释:
在C语言当中,我们会对 | | (或)和 && (与)有这样的操作
a || b || c //如果 a 为真,则不执行后面的语句
a && b && c //如果 a 为假,则不执行后面的语句
所以我们看第一题当中的B选项,看到这个程序的第一眼,我们想到的是b++=9,再去或上(a>c++),然后我们会计算c++=9,9 || 9 ==1,那么就得到B这个答案,这个就是我们说的错误思路,当我们在运用 || 运算符时,必须要考虑到第一个值是不是为真,如果为真,那么就直接不用判断后面的值,因为 真 || 假 还是真,因此后面的表达式直接跳过,程序也不会执行后面的代码,直接判断为真;同理,我们在运用 && 运算符的时候也要注意,只要第一个值为假,则不执行后面的表达式,直接判断为假
如果你理解了,那么请看下面这题:
4.设a、b、c都是整型变量如果a的值为1,b的值为2则执行c=a++ || b++语句后变量a、b的值分别是
如果结果为2,2 那么恭喜你回答正确了,成功记住了这个知识点,如果为2,3,那么请多练。
2、下面这道题,大家可能遇到的时候会选择B答案,但其实这道题选择D
10.对两个数组a和b进行如下初始化char a[]=“ABCDEF”; char b[]={ ‘A’,’B’,’C’,’D’,’E’,’F’};则以下叙述正确的是 。A、a和b数组完全相同 B、a和b长度相同 C、a和b中都存放字符串 D、a数组比b数组长度长
看题目中定义了一个char型的数组a存放字符串,一个char型的数组b存放字符;
那么从读题当中就知道,一个存的是字符串,一个存的是字符。
详细解释:在C语言当中用 " "(双引号括起来的字符表示字符串)用 ''(单引号括起来的字符表示单个字符,因此'a'表示正确;'iucga', '','qiqcqc23'表示错误)注意:在字符串中以'\0'作为结束标志char arr1[5] = {'h','e','l','l','o'};//普通字符数组,存储5个字符char arr2[6] = {'h','e','l','l','o','\0'};//在数组中存储 字符串"hello"char arr3[6] = {'h','e','l','l','o'};//字符串,部分初始化,未初始化为0,==='\0' 字符串就是存储在字符数组中的多个字符,以'\0'结尾
看了上面的解释,我们知道,在第二题中定义的数组a存了字符串,字符串当中有7个字符(包含了 '\0' )
数组b中存了字符,有6个字符,
如果你理解了,请看下面这个代码,选出合适的答案
17.有以下定义和语句,则输出结果为 。
char s1[10] = "abcd!",s2[] = "\n123";
printf("%ld%d\n",sizeof(s1),sizeof(s2));
A)6 4 B)10 5 C)10 7 D)10 4
答案是B,注意'\n'是一个字符,s1,s2是一个字符串数组,其中中有{ '\n' , '1' , '2' , '3' , '\0' }五个字符
3、下面这道题的运行结果是多少呢
2.以下程序的运行结果是
main(){
int n;
for(n=1; n<=10; n++){if(n%3 == 0) continue;printf(“%d”, n);
}}
答案是不是4、5、7、8、10,那么恭喜你,回答错误了
在C语言中,我们使用 % 时 ,如果 1%3,那么结果是商0 ....余1 ,同理2%3也是这样的结果
4、请看下一题
int x[]={10, 20, 30};
int i=0;
printf(“%d”, ++x[i]); printf(“%d”, x[++i]); 运行结果是:_____
i=0;
printf(“%d”, x[i]++); printf(“%d”, x[i++]); 运行结果是:————
好的,我先说可能出现的答案11,20,10,10 或者是 11,10,11,20
正确答案为11,20,11,12
请听详细解释
在C语言当中:i++ ;++i ;两个的运行结果是不一样的
对于i++;先把i++看成一个整体,将i的值作为i++的值,然后单独对i加1
对于++i;直接把 i 加 1 ,然后把加1之后的值作为++i这个整体的值
比如:如果i=3; i++就等于3,i 就等于4 ;如果 i =2 ; ++i就等于3,i就等于3
++ 、 --变量++ : 先把变量的值作为 自增运算的结果,然后 把变量 +1(变量 = 变量+1)先用,再加
++变量 : 先把变量 +1(变量 = 变量+1),然后再把更新后的变量值作为 自增运算的结果先加,再用
是不是理解了,然后感觉上面这道题就是小意思,那么在第四题中其实还有一个小坑,就是大家在进行++x[i]的时候,没有将这个值保存,即++x[i]:直接把x[i]加1,把x[i]的值作为++x[i]的值,即为11
那么现在数组的第一个元素x[0]的值就为11,后面的计算中在使用到x[0]时,值就为11,而不是10
5、请看
9.假设变量a,b均为整形,表达式(a=5,b=2,a>b?a++:b++,a+b)的运行结果是________.
结果为8,这是一个逗号运算符,
逗号运算符用于连接多个表达式,每个表达式 用 逗号隔开,从第一个表达式开始,一直运算到 最后一个表达式为止,把最后一个表达式的值作为 整个逗号运算符表达式的结果
通常使用逗号运算时,都需要加上()
好了,今天的常见错误就说到这里
相关文章:
初学嵌入式-C语言常犯错误详解
1、对于下面这道题,估计有很多人会选择B答案,但其实答案是D 2.int a10, b9,c9,d; d b || (a>c),请问上述代码执行完毕后a b c d的值分别是 。 A、10 9 10 9 B、10 10 10 1 C、10 9 10 1 D、10 10 9 1 答案解释: 在C语言…...

Golang 语法入门
Golang 语法入门 Hello World package mainimport "fmt"func main() {fmt.Println("hello world") }变量 package mainimport "fmt"// 全局变量 var ans 123 var cnt intfunc main() {// 单个局部变量a : 114514// 多个局部变量b, c : 114, …...

Filebeat+Kafka+ELK
架构: 部署: #配置nginx,部署filebeat systemctl stop firewalld setenforce 0 systemctl restart nginx#解压filebeat tar -xf filebeat-6.7.2-linux-x86_64.tar.gz mv filebeat-6.7.2-linux-x86_64 filebeat#日志收集 cd firebeat vim fil…...

Python 为Excel单元格设置填充\背景色 (纯色、渐变、图案)
在使用Excel进行数据处理和分析时,对特定单元格进行背景颜色填充不仅能够提升工作表的视觉吸引力,还能帮助用户快速识别和区分不同类别的数据,增强数据的可读性和理解性。 本文将通过以下三个示例详细介绍如何使用Python在Excel中设置不同的单…...

家里浮毛粉尘到处飞?宠物空气净化器出动帮你解决
由于家里收养的十几只流浪猫咪夏季掉毛非常严重,整个房子弥漫着猫毛,而且这十几只里面有七八只还是长毛的品种,掉落的毛发都因为太长而直接掉落成毛团,而短毛的那几只也在掉毛,这十几只掉下的浮毛,家里已经…...

计算机网络ISO七层网络模型及TCP
思维导图(通俗理解) 首先,先用最通俗的话来描述ISO七层模型,思维导图结构如下: ISO七层网络模型概念 应用层(Application Layer):应用层是OSI模型的最高层,直接与用户交…...

机器学习知识点全面总结
一、机器学习基础概念 1、什么是机器学习 机器学习是一种人工智能技术,通过对数据的学习和分析,让计算机系统自动提高其性能。简而言之,机器学习是一种从数据中学习规律和模式的方法,通过数据来预测、分类或者决策。 机器学习的本…...

【研发日记】嵌入式处理器技能解锁(三)——TI C2000 DSP的C28x内核
文章目录 前言 背景介绍 C28x内核 浮点单元(FPU) 快速整数除法单元(FINTDIV) 三角数学单元(TMU) VCRC单元 CPU总线 指令流水线 总结 参考资料 前言 见《【研发日记】嵌入式处理器技能解锁(一)——多任务异步执行调度的三种方法》 见《【研发日记】嵌入式处理器技能解…...

LeetCode.27.移除元素
题目描述: 给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素。元素的顺序可能发生改变。然后返回 nums 中与 val 不同的元素的数量。 假设 nums 中不等于 val 的元素数量为 k,要通过此题,您需要执行以…...
redis面试(十二)可重入锁总结
可重入锁总结 从实现原理以及源码的层面,真正剖析和了解到了redis分布式锁的企业级的实现,这个分布式锁实现的还是非常漂亮的,麻雀虽小,五脏俱全,分布式的可重入锁,总结一下流程 (1࿰…...
软件测试知识点3
063、一份测试计划应该包括哪些内容? 背景、项目简介、目的、测试范围、测试策略、人员分工、资源要求、进度计划、参考文档、常用术语、提交文档、风险分析。 065、如何定位测试用例的作用? 组织性:编写、组织性、功能覆盖、重复性、跟踪、测试确认 066、什么…...
WPF Treeview开启虚拟化后如何找到TreeViewItem
用VirtualizingStackPanel的BringIndexIntoViewPublic方法就好,没必要像微软给的例子那样还要继承一个VirtualizingStackPanel /// <summary> /// Recursively search for an item in this subtree. /// </summary> /// <param name"container…...

给python初学者的一些建议
写在开篇 关于Python,可以这么说,这几年借着数据科学、机器学习与人工智能的东风,Python 老树开新花,在风口浪尖上居高不下。 Python 之所以这么受大家的青睐,是因为它语言简洁,上手容易,让非…...

【Python学习手册(第四版)】学习笔记17-作用域
个人总结难免疏漏,请多包涵。更多内容请查看原文。本文以及学习笔记系列仅用于个人学习、研究交流。 本文介绍Python作用域,介绍了变量名解析的LEGB原则,以及内置作用域,全局作用域global语句,嵌套作用域及nonlocal语…...

大语言模型(LLM)文本预处理实战
大语言模型(LLM)文本预处理实战 文章目录 大语言模型(LLM)文本预处理实战2.1 理解词嵌入2.2 文本分词2.3 将 token 转换为 token ID2.4 添加特殊上下文 token2.5 字节对编码 (BytePair Encoding, BPE)2.6 使用滑动窗口进行数据采样…...
宠物健康新守护:智能听诊器的家庭应用
宠物已成为我们情感的寄托和生活的一部分,为宠物的健康守护带来了科技的温度。 科技与关怀结合 这款智能听诊器,以其科技感和关怀精神,为宠物的健康监测提供了全新的视角。 家庭友好设计:考虑到家庭使用环境,智能听…...
六、go函数
函数在任何语言中并不难理解,但是不论是有几年开发经验的人,真正想要写好一个函数并不是那么容易的 1、go语言中函数结构 func main() {fmt.Println(isEven(2)) } func isEven(x int) bool {return x%2 0 }(这里我写了一个简单的判断是否是…...

高原型垂直起降高速无人机技术详解
1. 技术概述 高原型垂直起降高速无人机(High-Altitude Vertical Take-off and Landing High-Speed Unmanned Aerial Vehicle, HAVTHS UAV)是针对高原复杂环境设计的一种先进无人机系统。它结合了垂直起降的灵活性与高速飞行的能力,能够克服高…...

Selenium + Python 自动化测试10(unittest概念)
我们的目标是:按照这一套资料学习下来,大家可以独立完成自动化测试的任务。 上几篇我们讨论了元素的定位方法、操作方法以及一些特殊元素的操作。 在实际的测试项目组中每个模块会写多条案例,如第一条用例那里我们的登录。登录的话就可以有多…...

大数据-67 Kafka 高级特性 分区 分配策略 Ranger、RoundRobin、Sticky、自定义分区器
点一下关注吧!!!非常感谢!!持续更新!!! 目前已经更新到了: Hadoop(已更完)HDFS(已更完)MapReduce(已更完&am…...
RestClient
什么是RestClient RestClient 是 Elasticsearch 官方提供的 Java 低级 REST 客户端,它允许HTTP与Elasticsearch 集群通信,而无需处理 JSON 序列化/反序列化等底层细节。它是 Elasticsearch Java API 客户端的基础。 RestClient 主要特点 轻量级ÿ…...
React 第五十五节 Router 中 useAsyncError的使用详解
前言 useAsyncError 是 React Router v6.4 引入的一个钩子,用于处理异步操作(如数据加载)中的错误。下面我将详细解释其用途并提供代码示例。 一、useAsyncError 用途 处理异步错误:捕获在 loader 或 action 中发生的异步错误替…...
【杂谈】-递归进化:人工智能的自我改进与监管挑战
递归进化:人工智能的自我改进与监管挑战 文章目录 递归进化:人工智能的自我改进与监管挑战1、自我改进型人工智能的崛起2、人工智能如何挑战人类监管?3、确保人工智能受控的策略4、人类在人工智能发展中的角色5、平衡自主性与控制力6、总结与…...

【大模型RAG】Docker 一键部署 Milvus 完整攻略
本文概要 Milvus 2.5 Stand-alone 版可通过 Docker 在几分钟内完成安装;只需暴露 19530(gRPC)与 9091(HTTP/WebUI)两个端口,即可让本地电脑通过 PyMilvus 或浏览器访问远程 Linux 服务器上的 Milvus。下面…...
镜像里切换为普通用户
如果你登录远程虚拟机默认就是 root 用户,但你不希望用 root 权限运行 ns-3(这是对的,ns3 工具会拒绝 root),你可以按以下方法创建一个 非 root 用户账号 并切换到它运行 ns-3。 一次性解决方案:创建非 roo…...

Java-41 深入浅出 Spring - 声明式事务的支持 事务配置 XML模式 XML+注解模式
点一下关注吧!!!非常感谢!!持续更新!!! 🚀 AI篇持续更新中!(长期更新) 目前2025年06月05日更新到: AI炼丹日志-28 - Aud…...

Linux-07 ubuntu 的 chrome 启动不了
文章目录 问题原因解决步骤一、卸载旧版chrome二、重新安装chorme三、启动不了,报错如下四、启动不了,解决如下 总结 问题原因 在应用中可以看到chrome,但是打不开(说明:原来的ubuntu系统出问题了,这个是备用的硬盘&a…...
GitHub 趋势日报 (2025年06月08日)
📊 由 TrendForge 系统生成 | 🌐 https://trendforge.devlive.org/ 🌐 本日报中的项目描述已自动翻译为中文 📈 今日获星趋势图 今日获星趋势图 884 cognee 566 dify 414 HumanSystemOptimization 414 omni-tools 321 note-gen …...
Unit 1 深度强化学习简介
Deep RL Course ——Unit 1 Introduction 从理论和实践层面深入学习深度强化学习。学会使用知名的深度强化学习库,例如 Stable Baselines3、RL Baselines3 Zoo、Sample Factory 和 CleanRL。在独特的环境中训练智能体,比如 SnowballFight、Huggy the Do…...

以光量子为例,详解量子获取方式
光量子技术获取量子比特可在室温下进行。该方式有望通过与名为硅光子学(silicon photonics)的光波导(optical waveguide)芯片制造技术和光纤等光通信技术相结合来实现量子计算机。量子力学中,光既是波又是粒子。光子本…...