初学嵌入式-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…...

深度学习与图像修复:ADetailer插件在Stable Diffusion中的应用
文章目录 引言ADetailer插件介绍插件安装常用模型控制提示词参数配置参数详解 实践建议 示例插件的对比:1. ADetailer插件2. Photoshop插件(如Nik Collection)3. GIMP插件(如GMIC)4. Affinity Photo插件 结语 引言 无…...

【Pytorch】topk函数
topk 是 PyTorch 中的一个函数,用于从张量中选取最大(或最小)的 k 个元素及其对应的索引。其定义如下: values, indices torch.topk(input, k, dimNone, largestTrue, sortedTrue, *, outNone)参数说明 input (Tensor): 输入张…...

使用mybatis注解和xml映射执行javaWeb中增删改查等操作
Mapper接口 使用注解执行SQL语句操作和相应的Java抽象类(对于简单的增删改查使用注解) Mapper public interface EmpMapper {// 根据id删除员工信息Delete("delete from mybatis.emp where id#{id}")public int EmpDelete(Integer id);// 查…...

SpringBoot3 响应式编程
Spring Boot 3 中的响应式编程是一个重要的特性,它允许开发者构建非阻塞、异步和基于事件的应用程序,这对于处理高并发和实时数据流的应用场景尤为重要。以下是对Spring Boot 3响应式编程的详细解析: 一、响应式编程概述 响应式编程是一种编…...

【C++ 面试 - 基础题】每日 3 题(二)
✍个人博客:Pandaconda-CSDN博客 📣专栏地址:http://t.csdnimg.cn/fYaBd 📚专栏简介:在这个专栏中,我将会分享 C 面试中常见的面试题给大家~ ❤️如果有收获的话,欢迎点赞👍收藏&…...

Modelica建模,Modelica语言的学习,技术调研工作
Modelica建模,Modelica语言的学习,技术调研工作 参考资料: 苏州同元软控信息技术有限公司 - 同元 Modelica 再探冷却 modelica学习-CSDN博客 1、 Modelica简介 Modelica是由Modelica协会维护、免费开放的物理系统面向对象的统一建模语言规…...

Oracle数据字典之——v$lock 和v$locked_object
v$lock视图 v$lock视图列出当前系统持有的或正在申请的所有锁的情况,其主要字段说明如下: 11g如下: 字段名称类型说明ADDRRAW(8)锁定状态对象的地址KADDRRAW(8)锁的地址SIDNUMBER会话(SESSION)标识;TYPE…...

solidity 以太坊(Ether) 单位(很基础)
一个字面常数可以带一个后缀 wei, gwei 或 ether 来指定一个以太坊的数量, 其中没有后缀的以太数字被认为单位是wei。 在以太坊和许多其他基于以太坊的区块链系统中,以太币(Ether)是网络中的主要加密货币。 以太可以被…...

关于elementUI 分页 table 使用 toggleRowSelection
我出现问题的前提 在table表格第一页全选 ,第二页全选 回到第一页 点击按钮 取消 第一页,第二页我不要的勾选 初始实现 this.selectedPeraonal是表格 selection-change方法返回的值 handleSelectionChange(val) {this.selectedPeraonal val || []…...

K8s部署RocketMQ
准备工作 我是win电脑,本地安装了Podman,并使用Kind创建了一个K8s本地环境,并在 win 电脑上安装了 Helm。 部署RocketMQ 1. add rocketmq helm repo 2. deploy rocketmq cluster 3. verify the rocketmq cluster 4. Create Topic by api a…...