C语言集训-郭慧-第三次作业

147 阅读4分钟

学习笔记

运算符

1.逻辑运算符
!(非) &&(并且) ||(或)
!真 == 假
!假 == 真
真&&真 == 真
真&&假 ==假
假&&真== 假
假&&假==假 \

&&左边的表达式为假,右边的表达式肯定不会执行 ||左边的表达式为真,右边的表达式肯定不会执行 2.算术运算符
加(+)减(-)乘(*)除(/)取余数(%)
3.关系运算符
(!=)不等于、==(等于)、>、>=、<、<=

  1. 赋值运算符:
    /=、=、+=、*=、-=

2.运算符的优先级别: 算数>关系>逻辑>赋值

2.一些琐碎的运算符知识: 自增[或者自减]
1.分类:
前自增( ++i)、 后自增 (i++)
2.前自增和后自增的异同
a.相同: 最终都使i的值加1
b.不同 前自增整体表达式的值是i加1之后的值
后自增整体表达式的值是i加1之前的值
3.为什么会出现自增
代码更精练
自增的速度更快

3.什么是流程控制: 程序代码执行的顺序
if语句:

1. if最简单的用法
格式:
if(表达式)
语句
功能:
如果表达式为真,执行语句
如果表达式为假,语句不执行
2. if的范围问题
if(表达式)
语句A;
语句B;
解释:if默认只能控制语句A的执行或不执行, if无法控制语句B的执行或不执行, 或者讲:语句B一定会执行
2. if(表达式)
{
语句A;
语句B;
}
此时if可以控制语句A和语句B
由此可见:if默认只能控制一个语句的执行或不执行
如果想控制多个语句的执行或不执行
就必须把这些语句用{}括起来
3. if..else...的用法
4. if..else if...else...的用法
格式:
if (1)
A;
else if (2)
B;
else if (3)
c;
else
D; if的常见问题解析(重点)
2. if的范围问题\

1.空语句的问题
if (3 〉2);
等价于
if(3 >2);//这是一个空语句\

if(表达式1)
A;
else
B;
是正确的
if(表达式1);
A;
else
B;
是错误的\

3.if(表达式1)
A;
else if(表达式2)
B;
else if(表达式3)
c;
else
D;
即便表达式1和2都成立,也只会执行A语句

4.if(表达式1)
A;
else if (表达式2)
B;
else if (表达式3)

这样写语法不会出错,但逻辑上有漏洞

5.if(表达式1)
A;
else if (表达式2)
B;
else if (表达式3)
else(表达式4) //7行
D;
这样写是不对的,正确的写法是:
要么去掉(表达式4)
要么在else 后面加if\

6.if(表达式1)
A:
else if (表达式2)
B;
else if(表达式1)
c;
else(表达式4);

这样写语法不会出错,但逻辑上是错误的
else (表达式4);
D
等价于
else
(表达式4);
D:

for 和while的相互比较
for和while可以相互转换
for (1; 2;3)
A:
等价于
1;
while (2)
{
A:
3:
}
while和for可以相互转化
但for的逻辑性更强,更不容易出错,推荐多使用for
回文数:正着写和倒着写都一样
从键盘输入一个数字,如果该数字是回文数;
则返回yes,否则返回no
比如:121 12321 都是回文数
do...while语句
格式
do
{

} while(表达式);

do...while.并不等价于for,当然也不等价于while
主要用于人机交互
一元二次方程

break\

break如果用于循环是用来终止循环
break如果用于switch,则是用于终止switch 
break不能直接用于if,除非if属于循环内部的一个子句
例子:
for (i=0;i(3;++i)
{
if (3 >2)
break;//break虽然是if内部的语句, 但break终止的确是外部的for循环
printf("嘿嘿!\n");//永远不会输出
}
在多层循环中,break只能终止最里面包裹它的那个循环
例子:
for (i=0;i<3;++i)
{
for (j=1;j<4;++j)
break;//break只能终止距离它最近的循环
printf("同志们好!\n");
}
在多层switch嵌套中,break只能终止距离它最近的switch

相关代码

批注 2021-11-23 181727.png

  • 除法/的运算结果和运算对象的数据类型有关,两个数都是int,则商就是int,若商有小数,则截取小数部分;被除数和除数中只要有一个或两个都是浮点型数据,则商也是浮点型,不截取小数部分。
  • 取余%的运算对象必须是整数,结果是整除后的余数,其余数的符号与被除数相同 批注 2021-11-23 183723.png C语言对真假的处理:非零是真(真用1表示),零是假(假用0表示);

批注 2021-11-24 124911.png

if默认只能控制一个语句的执行或不执行,如果想控制多个语句的执行或不执行,就必须把这些语句用{}括起来。

批注 2021-11-24 223921.png else后面不能接表达式,否则就会出现下图情况:

批注 2021-11-24 224007.png完成i和j的互换:(如下图)

批注 2021-11-25 223339.png求1到100整数的和(如下图):

批注 2021-11-25 223821.png求1到100中奇数的和(注意括号为英文括号)

批注 2021-11-25 234539.png

批注 2021-11-25 235558.png求1到100内奇数的个数

批注 2021-11-26 000211.pngswitch语句(楼层代码说明):

批注 2021-11-26 001724.png

val表示存放待判断的数字