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

初学嵌入式-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、对于下面这道题&#xff0c;估计有很多人会选择B答案&#xff0c;但其实答案是D 2.int a10, b9,c9,d; d b || (a>c)&#xff0c;请问上述代码执行完毕后a b c d的值分别是 。 A、10 9 10 9 B、10 10 10 1 C、10 9 10 1 D、10 10 9 1 答案解释&#xff1a; 在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

架构&#xff1a; 部署&#xff1a; #配置nginx&#xff0c;部署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进行数据处理和分析时&#xff0c;对特定单元格进行背景颜色填充不仅能够提升工作表的视觉吸引力&#xff0c;还能帮助用户快速识别和区分不同类别的数据&#xff0c;增强数据的可读性和理解性。 本文将通过以下三个示例详细介绍如何使用Python在Excel中设置不同的单…...

家里浮毛粉尘到处飞?宠物空气净化器出动帮你解决

由于家里收养的十几只流浪猫咪夏季掉毛非常严重&#xff0c;整个房子弥漫着猫毛&#xff0c;而且这十几只里面有七八只还是长毛的品种&#xff0c;掉落的毛发都因为太长而直接掉落成毛团&#xff0c;而短毛的那几只也在掉毛&#xff0c;这十几只掉下的浮毛&#xff0c;家里已经…...

计算机网络ISO七层网络模型及TCP

思维导图&#xff08;通俗理解&#xff09; 首先&#xff0c;先用最通俗的话来描述ISO七层模型&#xff0c;思维导图结构如下&#xff1a; ISO七层网络模型概念 应用层&#xff08;Application Layer&#xff09;&#xff1a;应用层是OSI模型的最高层&#xff0c;直接与用户交…...

机器学习知识点全面总结

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

【研发日记】嵌入式处理器技能解锁(三)——TI C2000 DSP的C28x内核

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

LeetCode.27.移除元素

题目描述&#xff1a; 给你一个数组 nums 和一个值 val&#xff0c;你需要 原地 移除所有数值等于 val 的元素。元素的顺序可能发生改变。然后返回 nums 中与 val 不同的元素的数量。 假设 nums 中不等于 val 的元素数量为 k&#xff0c;要通过此题&#xff0c;您需要执行以…...

redis面试(十二)可重入锁总结

可重入锁总结 从实现原理以及源码的层面&#xff0c;真正剖析和了解到了redis分布式锁的企业级的实现&#xff0c;这个分布式锁实现的还是非常漂亮的&#xff0c;麻雀虽小&#xff0c;五脏俱全&#xff0c;分布式的可重入锁&#xff0c;总结一下流程 &#xff08;1&#xff0…...

软件测试知识点3

063、一份测试计划应该包括哪些内容? 背景、项目简介、目的、测试范围、测试策略、人员分工、资源要求、进度计划、参考文档、常用术语、提交文档、风险分析。 065、如何定位测试用例的作用? 组织性&#xff1a;编写、组织性、功能覆盖、重复性、跟踪、测试确认 066、什么…...

WPF Treeview开启虚拟化后如何找到TreeViewItem

用VirtualizingStackPanel的BringIndexIntoViewPublic方法就好&#xff0c;没必要像微软给的例子那样还要继承一个VirtualizingStackPanel /// <summary> /// Recursively search for an item in this subtree. /// </summary> /// <param name"container…...

给python初学者的一些建议

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

【Python学习手册(第四版)】学习笔记17-作用域

个人总结难免疏漏&#xff0c;请多包涵。更多内容请查看原文。本文以及学习笔记系列仅用于个人学习、研究交流。 本文介绍Python作用域&#xff0c;介绍了变量名解析的LEGB原则&#xff0c;以及内置作用域&#xff0c;全局作用域global语句&#xff0c;嵌套作用域及nonlocal语…...

大语言模型(LLM)文本预处理实战

大语言模型&#xff08;LLM&#xff09;文本预处理实战 文章目录 大语言模型&#xff08;LLM&#xff09;文本预处理实战2.1 理解词嵌入2.2 文本分词2.3 将 token 转换为 token ID2.4 添加特殊上下文 token2.5 字节对编码 (BytePair Encoding, BPE)2.6 使用滑动窗口进行数据采样…...

宠物健康新守护:智能听诊器的家庭应用

宠物已成为我们情感的寄托和生活的一部分&#xff0c;为宠物的健康守护带来了科技的温度。 科技与关怀结合 这款智能听诊器&#xff0c;以其科技感和关怀精神&#xff0c;为宠物的健康监测提供了全新的视角。 家庭友好设计&#xff1a;考虑到家庭使用环境&#xff0c;智能听…...

六、go函数

函数在任何语言中并不难理解&#xff0c;但是不论是有几年开发经验的人&#xff0c;真正想要写好一个函数并不是那么容易的 1、go语言中函数结构 func main() {fmt.Println(isEven(2)) } func isEven(x int) bool {return x%2 0 }&#xff08;这里我写了一个简单的判断是否是…...

高原型垂直起降高速无人机技术详解

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

Selenium + Python 自动化测试10(unittest概念)

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

大数据-67 Kafka 高级特性 分区 分配策略 Ranger、RoundRobin、Sticky、自定义分区器

点一下关注吧&#xff01;&#xff01;&#xff01;非常感谢&#xff01;&#xff01;持续更新&#xff01;&#xff01;&#xff01; 目前已经更新到了&#xff1a; Hadoop&#xff08;已更完&#xff09;HDFS&#xff08;已更完&#xff09;MapReduce&#xff08;已更完&am…...

PHP和Node.js哪个更爽?

先说结论&#xff0c;rust完胜。 php&#xff1a;laravel&#xff0c;swoole&#xff0c;webman&#xff0c;最开始在苏宁的时候写了几年php&#xff0c;当时觉得php真的是世界上最好的语言&#xff0c;因为当初活在舒适圈里&#xff0c;不愿意跳出来&#xff0c;就好比当初活在…...

java 实现excel文件转pdf | 无水印 | 无限制

文章目录 目录 文章目录 前言 1.项目远程仓库配置 2.pom文件引入相关依赖 3.代码破解 二、Excel转PDF 1.代码实现 2.Aspose.License.xml 授权文件 总结 前言 java处理excel转pdf一直没找到什么好用的免费jar包工具,自己手写的难度,恐怕高级程序员花费一年的事件,也…...

【第二十一章 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 数据流…...

HTML前端开发:JavaScript 常用事件详解

作为前端开发的核心&#xff0c;JavaScript 事件是用户与网页交互的基础。以下是常见事件的详细说明和用法示例&#xff1a; 1. onclick - 点击事件 当元素被单击时触发&#xff08;左键点击&#xff09; button.onclick function() {alert("按钮被点击了&#xff01;&…...

html css js网页制作成品——HTML+CSS榴莲商城网页设计(4页)附源码

目录 一、&#x1f468;‍&#x1f393;网站题目 二、✍️网站描述 三、&#x1f4da;网站介绍 四、&#x1f310;网站效果 五、&#x1fa93; 代码实现 &#x1f9f1;HTML 六、&#x1f947; 如何让学习不再盲目 七、&#x1f381;更多干货 一、&#x1f468;‍&#x1f…...

HarmonyOS运动开发:如何用mpchart绘制运动配速图表

##鸿蒙核心技术##运动开发##Sensor Service Kit&#xff08;传感器服务&#xff09;# 前言 在运动类应用中&#xff0c;运动数据的可视化是提升用户体验的重要环节。通过直观的图表展示运动过程中的关键数据&#xff0c;如配速、距离、卡路里消耗等&#xff0c;用户可以更清晰…...

Python Ovito统计金刚石结构数量

大家好,我是小马老师。 本文介绍python ovito方法统计金刚石结构的方法。 Ovito Identify diamond structure命令可以识别和统计金刚石结构,但是无法直接输出结构的变化情况。 本文使用python调用ovito包的方法,可以持续统计各步的金刚石结构,具体代码如下: from ovito…...

TSN交换机正在重构工业网络,PROFINET和EtherCAT会被取代吗?

在工业自动化持续演进的今天&#xff0c;通信网络的角色正变得愈发关键。 2025年6月6日&#xff0c;为期三天的华南国际工业博览会在深圳国际会展中心&#xff08;宝安&#xff09;圆满落幕。作为国内工业通信领域的技术型企业&#xff0c;光路科技&#xff08;Fiberroad&…...

协议转换利器,profinet转ethercat网关的两大派系,各有千秋

随着工业以太网的发展&#xff0c;其高效、便捷、协议开放、易于冗余等诸多优点&#xff0c;被越来越多的工业现场所采用。西门子SIMATIC S7-1200/1500系列PLC集成有Profinet接口&#xff0c;具有实时性、开放性&#xff0c;使用TCP/IP和IT标准&#xff0c;符合基于工业以太网的…...

上位机开发过程中的设计模式体会(1):工厂方法模式、单例模式和生成器模式

简介 在我的 QT/C 开发工作中&#xff0c;合理运用设计模式极大地提高了代码的可维护性和可扩展性。本文将分享我在实际项目中应用的三种创造型模式&#xff1a;工厂方法模式、单例模式和生成器模式。 1. 工厂模式 (Factory Pattern) 应用场景 在我的 QT 项目中曾经有一个需…...