C C++最全【C语言每日亿题】运算符专练 · 第4日,2024年最新C C++面试简历模板

img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上C C++开发知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

如果你需要这些资料,可以戳这里获取

🍯本题考点:关系运算符

🥃解题思路:手术刀解剖法

🍹知识点12:关系运算符

🍹解题步骤

🍺012.题目难度 ⭐️⭐️⭐️

🍯本题考点:逻辑运算符与关系运算符

🥃解题思路:仔细执行法

🍹知识点13:逻辑运算符

🍹知识点9:位运算符

🍹解题步骤

📜今日作业 ⭐️⭐️⭐️

📜上期作业 ⭐️⭐️⭐️⭐️⭐️

下面代码的结果是:( )

#include <stdio.h>
int main()
{
	int a, b, c;
	a = 5;
	c = ++a;
	b = ++c, c++, ++a, a++;
	b += a++ + c;
	printf("a = %d b = %d c = %d\n:", a, b, c);
	return 0;
}

A.a = 8 b = 23 c = 8
B.a = 9 b = 23 c = 8
C.a = 9 b = 25 c = 8
D.a = 9 b = 24 c = 8

**kiko:**经过这么多天的训练 ,想必这道题你肯定能拿下吧

**小明:**那当然,手术刀解剖法我已经熟记于心了,kiko老师,我给你解剖一下这题

**kiko:**先把题从头到尾看一遍,分析一下出题人想考的一些重点有哪些~

**小明:**这题的重点分别是:运算符的优先级、结合性、逗号运算符、复合赋值运算符

**kiko:**不错,那么具体解法是什么呢?

🍹解题步骤

**前置++:**先加1,后使用,即先使用变量中内容,然后给结果加1

**后置++:**先使用变量中内容,整个表达式结束时,给变量加1

**逗号表达式:**取最后一个表达式的值作为逗号表达式运算的结果


**step1.**将常量5赋值给变量a

a = 5;

a==5


**step2.**先对a++,a变为6;再将计算后的a赋值给c,此时c=6

c = ++a; 

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。

  1. 比较两个数字时,按照数学法则比较大小并判断真假
  2. 比较两个字符时,则比较字符的ASCLL码的值
  3. 比较两字符串时,则首先比较首字符的大小关系,若不等则将首字符大小关系作为字符串的大小关系,否则比较下一个字符,直到得出大小关系
  4. 比较两个表达式的大小,则系统会先计算处两个表达式的值,之后按照上述规则比较表达式的值并判断真假,返回1或0
  5. 比较两个不同数据类型的数据的大小时,先根据一定的规则统一数据类型,之后按上述规则比较并得出返回值。

🍅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:**长的确实挺像,那你能说说他们之间的区别是什么吗?

img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上C C++开发知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

如果你需要这些资料,可以戳这里获取

没东西讲了叭?

**kiko:**你觉得我既然决定要讲这题,难道会和其他人讲的一样吗?你先看看这题的考点!

**小明:**终于看到没见过的考点了!逻辑运算符,这个我知道,就是和位运算符长的很像的那个!

**kiko:**长的确实挺像,那你能说说他们之间的区别是什么吗?

[外链图片转存中…(img-XInirVwA-1715701261692)]
[外链图片转存中…(img-PxsYnFYH-1715701261692)]

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上C C++开发知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

如果你需要这些资料,可以戳这里获取

  • 7
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值