初学嵌入式-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…...
定时器任务——若依源码分析
分析util包下面的工具类schedule utils: ScheduleUtils 是若依中用于与 Quartz 框架交互的工具类,封装了定时任务的 创建、更新、暂停、删除等核心逻辑。 createScheduleJob createScheduleJob 用于将任务注册到 Quartz,先构建任务的 JobD…...
【Web 进阶篇】优雅的接口设计:统一响应、全局异常处理与参数校验
系列回顾: 在上一篇中,我们成功地为应用集成了数据库,并使用 Spring Data JPA 实现了基本的 CRUD API。我们的应用现在能“记忆”数据了!但是,如果你仔细审视那些 API,会发现它们还很“粗糙”:有…...
大学生职业发展与就业创业指导教学评价
这里是引用 作为软工2203/2204班的学生,我们非常感谢您在《大学生职业发展与就业创业指导》课程中的悉心教导。这门课程对我们即将面临实习和就业的工科学生来说至关重要,而您认真负责的教学态度,让课程的每一部分都充满了实用价值。 尤其让我…...
【开发技术】.Net使用FFmpeg视频特定帧上绘制内容
目录 一、目的 二、解决方案 2.1 什么是FFmpeg 2.2 FFmpeg主要功能 2.3 使用Xabe.FFmpeg调用FFmpeg功能 2.4 使用 FFmpeg 的 drawbox 滤镜来绘制 ROI 三、总结 一、目的 当前市场上有很多目标检测智能识别的相关算法,当前调用一个医疗行业的AI识别算法后返回…...
学习STC51单片机32(芯片为STC89C52RCRC)OLED显示屏2
每日一言 今天的每一份坚持,都是在为未来积攒底气。 案例:OLED显示一个A 这边观察到一个点,怎么雪花了就是都是乱七八糟的占满了屏幕。。 解释 : 如果代码里信号切换太快(比如 SDA 刚变,SCL 立刻变&#…...
智能分布式爬虫的数据处理流水线优化:基于深度强化学习的数据质量控制
在数字化浪潮席卷全球的今天,数据已成为企业和研究机构的核心资产。智能分布式爬虫作为高效的数据采集工具,在大规模数据获取中发挥着关键作用。然而,传统的数据处理流水线在面对复杂多变的网络环境和海量异构数据时,常出现数据质…...
论文笔记——相干体技术在裂缝预测中的应用研究
目录 相关地震知识补充地震数据的认识地震几何属性 相干体算法定义基本原理第一代相干体技术:基于互相关的相干体技术(Correlation)第二代相干体技术:基于相似的相干体技术(Semblance)基于多道相似的相干体…...
回溯算法学习
一、电话号码的字母组合 import java.util.ArrayList; import java.util.List;import javax.management.loading.PrivateClassLoader;public class letterCombinations {private static final String[] KEYPAD {"", //0"", //1"abc", //2"…...
Vue ③-生命周期 || 脚手架
生命周期 思考:什么时候可以发送初始化渲染请求?(越早越好) 什么时候可以开始操作dom?(至少dom得渲染出来) Vue生命周期: 一个Vue实例从 创建 到 销毁 的整个过程。 生命周期四个…...
Python竞赛环境搭建全攻略
Python环境搭建竞赛技术文章大纲 竞赛背景与意义 竞赛的目的与价值Python在竞赛中的应用场景环境搭建对竞赛效率的影响 竞赛环境需求分析 常见竞赛类型(算法、数据分析、机器学习等)不同竞赛对Python版本及库的要求硬件与操作系统的兼容性问题 Pyth…...
