既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上C C++开发知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新
a6 ; c6
**step3.**由于逗号运算符的性质,此时优先级从高到低顺序是:++ 、 = 、 ,
①先计算 ++c,得到c=7,然后由于 = 的优先级高于",",因此先将++c的值赋值给b,b变为7
②此时 b = ++c 和后边的 c++ 、++a、a++构成逗号表达式,从左向右依次计算
③c++使 c变为8 ;++a 和 a++ 使a最后变为 8
b = ++c, c++, ++a, a++;
a8 ; b7 ; c==8
**step4.**优先级从高到低顺序是:++ 、 + 、+=
①因此先计算a++,再计算加法,由于此处是后置++,先使用a再对a++,因此先进行a+c的加法运算,此时a+c的值为16。
②进行复合赋值的运算:该值通过复合赋值给b,即b=b+16=7+16=23
③此时a的值使用完毕,最后对a+1,a的值变为9。
b += a++ + c;
a9 ; b23 ; c==8
正确答案: B
🍺011.题目难度 ⭐️⭐️⭐️
011.对于下面这段代码,a、b、c的输出值分别为()
int a,b,c;
a=b=c=10;
a=b==c;
printf("a=%d b=%d c=%d\n",a,b,c);
a=b>c>=100;
printf("a=%d b=%d c=%d\n",a,b,c);
🍯本题考点:关系运算符
🥃解题思路:手术刀解剖法
**小明:**终于看到一道没见过的考点了,关系运算符是啥呀?
**kiko:**关系运算符就是我们平时所说的比较大小的运算
**小明:**那就是 大于、小于、等于 这些运算?
**kiko:**没错!关系运算符满打满算一共只有6种
关系运算符:== != > >= < <=
**小明:**那这有什么好学的呢?
**kiko:**我们主要谈谈以下两个方面:
🍹知识点12:关系运算符
🥝关系运算符
C语言提供了6种关系运算符,它们分别是:**== 、!=、 >、 >=、 <、 <=**他们都是双目运算符,需要有2个操作数,是左结合的(自左向右运算)。
🥝关系表达式
用关系运算符将两个C语言表达式连接起来的式子称为关系表达式。关系表达式的结果只有1和0:关系表达式成立时为1,不成立时为0。
例如:若a=1,b=2,c=3;(ps:算术运算符优先级高于关系运算符) 1.a+b>c 表达式不成立,表达式的值为0 2.a+b==c 表达式成立,表达式的值为1
🍅1.关系运算符的比较规则
·使用关系运算符时,返回值只能为1或0。若判断条件为真则返回1,否则返回0。
- 比较两个数字时,按照数学法则比较大小并判断真假
- 比较两个字符时,则比较字符的ASCLL码的值
- 比较两字符串时,则首先比较首字符的大小关系,若不等则将首字符大小关系作为字符串的大小关系,否则比较下一个字符,直到得出大小关系
- 比较两个表达式的大小,则系统会先计算处两个表达式的值,之后按照上述规则比较表达式的值并判断真假,返回1或0
- 比较两个不同数据类型的数据的大小时,先根据一定的规则统一数据类型,之后按上述规则比较并得出返回值。
🍅2.关系运算符的易错点
注:在编程的过程中== 和=不小心写错,可能会导致出错
🍹解题步骤
011.对于下面这段代码,a、b、c的输出值分别为() int a,b,c; a=b=c=10; a=b==c; printf("a=%d b=%d c=%d\n",a,b,c); a=b>c>=100; printf("a=%d b=%d c=%d\n",a,b,c);
**step1.**由于赋值运算符是右结合的性质,因此10最先赋值给c,然后将c赋值给b,最后将b赋值给a,使得a、b、c均赋值为10
int a,b,c; a=b=c=10; 实质:a=(b=(c=10))
step2.由于运算符的结合性:! > 算术运算符 > 关系运算符 > && > || > 赋值运算符
因此先进行关系运算,即b==c,然后再进行赋值运算:
a=b==c; 实质:a=(b==c) printf("a=%d b=%d c=%d\n",a,b,c);
由于b、c均在前面步骤中赋值为10,因此b==c,关系表达式成立,关系表达式值为1,然后将表达式的值赋值给a,因此a的值最后为1;但b、c的值没有发生变化,还都是10。
输出:a=1 b=10 c=10;
step3.由于运算符的结合性:! > 算术运算符 > 关系运算符 > && > || > 赋值运算符
先进行关系运算,即b>c>=100,由于此时优先级相同,依靠其结合性进行运算:自左向右运算,b>c 不成立,关系表达式的值为0;然后比较 (b>c)>=100,即 0>=100 不成立,关系表达式的值为0;最后将0赋值给a,a的值为0;但b、c的值依旧没有发生变化,都是10
a=b>c>=100; 实质:a=((b>c)>=100); printf("a=%d b=%d c=%d\n",a,b,c);
输出:a=0 b=10 c=10;
正确答案:
🍺012.题目难度 ⭐️⭐️⭐️
012.试判断给定的某年year是否是闰年。
闰年的条件是符合后面两个条件之一:能被4整除,但不能被100整除;能被400整除
🍯本题考点:逻辑运算符与关系运算符
🥃解题思路:仔细执行法
**小明:**这题好简单,我之前就写过,kiko佬,你不会没东西讲了叭?
**kiko:**你觉得我既然决定要讲这题,难道会和其他人讲的一样吗?你先看看这题的考点!
**小明:**终于看到没见过的考点了!逻辑运算符,这个我知道,就是和位运算符长的很像的那个!
**kiko:**长的确实挺像,那你能说说他们之间的区别是什么吗?
**小明:**emmmm,那好像有点难说清楚😅
🍹知识点13:逻辑运算符
Q1:什么是逻辑运算?
**A1:**逻辑运算又称布尔运算,通常是用来测试真假值,“真”即事件“成立”,“假”即事件“不成立”,判断的结果只有两种情况。在C语言中用数字“1”和“0”表示真假两种状态,称这两个值 为“逻辑值”。
Q2:什么是逻辑运算符?
逻辑运算符包括逻辑非(
!
),逻辑与(&&
)和逻辑或(||
),其中! 是一元运算符,&&
和||
为二元运算符。
符号 含义 !
逻辑非:代表逻辑取反,即:把非0的数值变为0,把0变为1; && 逻辑与:所有操作数都真才真 ` #include <stdio.h> int main() { int a = 1&&0;//逻辑与,操作数全真才真,这里&&的右操作数0为假,所以为假——>0 int b = 1&&9;//逻辑与,&&的操作数都为真,因此为真——>1 int c = 1||0;//逻辑或,操作数有一个真就为真,这里||的左操作数为真,所以为真——>1 int d = 0||0;//逻辑或,||的操作数都为假,因此为假——>0 printf("%d\n",a); // 0 printf("%d\n",b); // 1 printf("%d\n",c); // 1 printf("%d\n",d); // 0 int a = 10; printf("%d\n",!0);//输出1->逻辑反运算,把0变成1 printf("%d\n",!a);//输出0->逻辑反运算,非0数值转化为0 }
**kiko:**这边再给你回顾一下我们第三日才刚刚讲过的知识点: 【C语言百炼成神】第三日·操作符
🍹知识点9:位运算符
从运算符的名字来看,不难看出位运算符是对二进制位进行运算:
- 按位与 & : 同1为1;有0则0
- 按位或 |: 有1为1;同0则0
- 按位异或 ^:相异为1;相同为0
- 注: 他们的操作数必须是整数
int main() { int a = 3;// 00000000 00000000 00000000 00000011 —3的补码 int b = -5;// 11111111 11111111 11111111 11111011 -5的补码 int c = a & b;//按位与 00000000 00000000 00000000 00000011 == 3 int d = a | b;//按位或 11111111 11111111 11111111 11111011 ==-5 int e = a ^ b;//按位异或 11111111 11111111 11111111 11111000 ==-8 printf("%d\n", c);// 3 printf("%d\n", d);// -5 printf("%d\n", e);// -8 return 0; }
**小明:**我发现了,位运算其实就是从微观的角度进行运算,对每一个二进制位进行运算,而逻辑运算那就是从宏观角度,对一串二进制位所组成的数进行逻辑运算
**kiko:**分析的不错,确实有这么一点意思
🍹解题步骤
**step1.**通过题目我们知道,只要满足两种条件之一,就可以判定为闰年;用计算机的语言来说就是:(条件1) || (条件2) ,满足其中一个为真,即可判定为闰年:
if(( 条件1)||(条件2) )
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
.**通过题目我们知道,只要满足两种条件之一,就可以判定为闰年;用计算机的语言来说就是:(条件1) || (条件2) ,满足其中一个为真,即可判定为闰年:
if(( 条件1)||(条件2) )
[外链图片转存中…(img-vRN9Tkil-1715534025678)]
[外链图片转存中…(img-VOc6uyYr-1715534025679)]
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!