0%

01test_04day

===================================
2022-7-5
===================================

一.温故知新

    变量
    1.变量的含义
    变量就是用来存储数据
    2.变量的定义
    数据类型	变量名	;
    基本数据类型
        整型		有符号/无符号	short int long
        实型		有符号		float double
        字符型	有符号/无符号	char
    sizeof是一个运算符,不是函数
        sizeof(数据类型/变量名),以字节为单位
    /usr/include/limits.h
    变量名
    
    3.变量的初始化
    数据类型	变量名	=	数值	;
    int		a		=	100	;
    float	f		=	3.14;

    4.变量的使用规则
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
-----------------------------
scanf
scanf("", );
-----------------------------
运算符
算术运算符 + - * / %(取余 取模)
关系运算符 > < == >= <= !=
逻辑运算符 && || !
a b c
a + b > c && a + c > b && b + c > a
a * a + b * b == c * c || a * a + c * c == b * b ||
b * b + c * c == a * a
a == b || a == c || b == c
a == b && a == c
赋值运算符 = += -= *= /= ...
作业 1.把今天讲过的内容完整的复习一遍 2.使用条件运算符和分支语句各解决一遍求闰年问题 3.输入三个值判断这三个值是否构成三角形 (是否是直角 等腰 等边 普通 不能) 4.输入三个整数x,y,z,请把这三个数由从小到大输出 5.输入相应的字符打印相应的语句(默认不区分大小写) 输入a,打印 钟薛高18块钱 输入b,打印 梦龙8块钱 输入c,打印 老冰棒1块钱 输入d,打印 雪莲0.5块钱 ================================ 录入成绩 0 ~ 59 打印 不及格 60 ~ 69 打印 及格 70 ~ 79 打印 中 80 ~ 89 打印 良 90 ~ 100 打印 优秀

赋值运算符

    = += -= *= /= %= <<= >>= &= |=
    int a;
    a = 9527;
先把赋值运算符右边的项进行计算,再赋值给赋值运算符左边的项
        左边的项也叫做(左值)
具有存储能力的都可以做左值(变量\指针\数组成员...)
常量(整数\字符\字符串...)不能做左值

设x为int型变量,则执行以下语句后
x = 10;
x += x -= x - x;
x = x + (x -= x - x)
x = x + (x = x - (x - x))
x的值为?20

1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <stdio.h>

int main(void)
{
int a = 100;

printf("a = %d\n", a);

a += 2;// => 等价于 a = a + 2

printf("a = %d\n", a);

return 0;
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <stdio.h>

int main(void)
{
int a = 100;

printf("a = %d\n", a);

a *= 2 + 3;
/*
a = a * (2 + 3);
*/

printf("a = %d\n", a);

return 0;
}

条件运算符(? :)

    也是C语言中唯一的一个三目运算符
    part.1 ? part.2 : part.3;
    如果part.1为真,则会执行part.2的内容,略过part.3
    如果part.1为假,则会执行part.3的内容,略过part.2
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <stdio.h>

int main(void)
{
int a = 0, b = 0;
int max = 0;

scanf("%d-%d", &a, &b);

max = a > b ? a : b;

printf("max = %d\n", max);

return 0;
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <stdio.h>

int main(void)
{
int a = 0, b = 0;
int max = 0;

scanf("%d-%d", &a, &b);

max = a>b?printf("a = %d\n", a):printf("b = %d\n", b);
/*
如果a > b为真, max = printf("a = %d\n", a);
如果a > b为假, max = printf("b = %d\n", b);
注意:max获取的并不是变量的值,而是printf函数的返回值

max = a > b ? a : b;
如果a > b为真, max = a;
如果a > b为假, max = b;
*/
printf("max = %d\n", max);

return 0;
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#include <stdio.h>

int main(void)
{
int a = 0, b = 0, c = 0;
int max = 0, max1 = 0;

scanf("%d-%d-%d", &a, &b, &c);
//max = a > b ? a : b;
//使用条件运算符求三个变量中的最大值

max = (a > b) ? (a>c?a:c) : (b>c?b:c);

/*
max1 = a > b ? a : b;
max = max1 > c ? max1 : c;

max = a > b ? a : b;
max = max > c ? max : c;
*/

printf("max = %d\n", max);

return 0;
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <stdio.h>

int main(void)
{
int year = 0;

scanf("%d", &year);
//通过条件运算符判断year是闰年还是平年
/*
能被4整除但是不能被100整除或者能被400整除
就是闰年
2022 2020 2000 1900(平年)
*/

return 0;
}

强制类型转换运算符

    (数据类型)
    可以把目标的数据类型临时的转换成你想转换的数据类型
注意 : 强制类型转换运算符并不会修改本身的数据类型
注意 : 尤其是以后转换指针时使用比较多

1
2
3
4
5
6
7
8
9
10
#include <stdio.h>

int main(void)
{
float f = 3.14;

printf("f = %d\n", (int)f);

return 0;
}

自增自减运算符

    ++ --
无论是自增还是自减,所改变的数量级都是1
注意 : 
    如果自增的运算自己为独立的一条语句,
        那么a++和++a没有任何区别,都是自增1
    
    如果自增的运算和别的语句一起来使用,那么就有区别了
        a++ : 先使用a的值做操作,再自增
        ++a : 先自增,再使用a的值做操作
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <stdio.h>

int main(void)
{
int a = 0;

printf("a++ = %d\n", a++);
printf("做完a++之后a的值是%d\n", a);

a = 0;

printf("++a = %d\n", ++a);
printf("做完++a之后a的值是%d\n", a);

return 0;
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <stdio.h>

int main(void)
{
int a = 0, b = 0;

//a++ && b++ ? printf("Hello\n") : printf("World\n");
//a++ && ++b ? printf("Hello\n") : printf("World\n");
//++a && ++b ? printf("Hello\n") : printf("World\n");
++a || b++ ? printf("Hello\n") : printf("World\n");

printf("a = %d b = %d\n", a, b);

return 0;
}

分支语句->if

1.if是C语言的关键字
2.if的结构
语句1
if(条件)
{
    语句2
}
语句3
语句1->条件的判断(真)->语句2->语句3->结束
            |
            (假)->语句3->结束
3.if...else的结构
语句1
if(条件)
{
    语句2
}
else
{
    语句3
}
语句4
语句1->条件的判断(真)->语句2->语句4->结束
            |
            (假)->语句3->语句4->结束
4.多分支结构
语句1
if(条件1)
{
    语句2
}
else if(条件2)
{
    语句3
}
else if(条件3)
{
    语句4
}
else
{	
    语句5
}
语句6
语句1->条件1的判断(真)->语句2->语句6->结束
        |
        (假)->条件2的判断(真)->语句3->语句6->结束
                |
                (假)->条件3的判断(真)->语句4->语句6->结束
                        |
                        (假)->语句5->语句6->结束
注意
1.if else都是C语言的关键字
2.if关键字之后必须要加小括号,小括号内部必须要写条件,不能空者
3.在if(条件)之后可以加分号
    if(0);
    {
        printf("Hello World!\n");
    }
    等价于
    if(0)
    {
        ;
    }
    {
        printf("Hello World!\n");
    }
4.在if(条件)之下可以不写大括号
(以后写代码即使if的语句只有一条,也要加上大括号)
    if(0)
        printf("Hello\n");
        printf("World!\n");
    等价于
    if(0)
    {
        printf("Hello\n");
    }
    printf("World!\n");

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <stdio.h>

int main(void)
{
int i = 0;

scanf("%d", &i);

if(i < 100)
{

printf("Hello World!\n");
}

return 0;
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <stdio.h>

int main(void)
{
int i = 0;

scanf("%d", &i);

//if(i % 2 == 0)//!(i % 2)
if(!(i % 2))
{
printf("%d这个值是偶数!\n", i);
}

return 0;
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <stdio.h>

int main(void)
{
int i = 0;

scanf("%d", &i);

//if(i % 2 == 0)//!(i % 2)
if(!(i % 2))
{
printf("%d这个值是偶数!\n", i);
}
else
{
printf("%d这个值是奇数!\n", i);
}

return 0;
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <stdio.h>

int main(void)
{
int year = 0;

scanf("%d", &year);

if((year%4==0 && year%100!=0) || (year%400==0))
//2022 2020 2000 1900
{
printf("%d这一年是闰年!\n", year);
}
else
{
printf("%d这一年是平年!\n", year);
}

return 0;
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <stdio.h>

int main(void)
{
int a = 0, b = 0;

scanf("%d-%d", &a, &b);

if(a > b)
{
printf("Hello World!\n");
}
else if(a < b)
{
printf("Hello Beijing!\n");
}
else
{
printf("Hello Changping!\n");
}

return 0;
}
1
2
3
4
5
6
7
8
9
10
#include <stdio.h>

int main(void)
{
if(0)
printf("Hello\n");
printf("World!\n");

return 0;
}
练习 键入一个整数x, 如果小于3则执行x+3操作, 如果大于等于3则执行3*x+9 如果大于9则执行9*x-10
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#include <stdio.h>

int main(void)
{
int x = 0;

scanf("%d", &x);
if(x < 3)
{
printf("x + 3 = %d\n", x + 3);
}
else if(x > 9)
{
printf("9 * x - 10 = %d\n", 9 * x - 10);
}
else
{
printf("3 * x + 9 = %d\n", 3 * x + 9);
}
/*
if(x < 3)
{
printf("x + 3 = %d\n", x + 3);
}
else if(x >= 3 && x <= 9)
{
printf("3 * x + 9 = %d\n", 3 * x + 9);
}
else
{
printf("9 * x - 10 = %d\n", 9 * x - 10);
}
*/
return 0;
}
输入三个值判断这三个值是否构成三角形 (是否是直角 等腰 等边 普通 不能)
1
2
3
4
5
6
7
#include <stdio.h>

int main(void)
{

return 0;
}