H:/C语言入门/__day_2/01-变量的内存分析.c
#include <stdio.h>
/*
1.内存寻址由大到小,优先分配内存地址比较大的字节给变量
2.变量越先定义,内存地址就越大
3.取得变量的地址:&变量名
4.输出地址:%p
5.一个变量一定先进行初始化,才能使用
*/
int main()
{
// 内存寻址由大到小
int a = 10;
int b = 20;
int c;
// &是一个地址运算符,取得变量的地址
// %p用来输出地址
// 0x7fff56f09bc8
printf("a的地址是:%p\n", &a);
// 0x7fff56f09bc4
printf("b的地址是:%p\n", &b);
// 0x7fff56f09bc0
printf("c的地址是:%p\n", &c);
//由于变量c没有经过初始化,所以直接拿来使用是不对的
//int d = c + 1;
printf("c的值是%d\n", c);
return 0;
}
H:/C语言入门/__day_2/02-scanf函数的基本使用.c
#include <stdio.h>
int main()
{
// 定义一个变量,用来保存用户输入的整数
int number;
// scanf函数只接受变量的地址
// scanf函数是一个阻塞式的函数,等待用户输入
// 用户输入完毕后,就会将用户输入的值赋值给number变量
// 函数调用完毕
scanf("%d", &number);
printf("用户输入的值是%d\n", number);
return 0;
}
H:/C语言入门/__day_2/03-scanf小练习.c
/*
提示用户输入两个整数,计算并且输出两个整数的和
*/
#include <stdio.h>
int main()
{
// 1.定义2个变量,保存用户输入的整数
int num1, num2;
// 2.提示用户输入第1个整数
printf("请输入第1个整数:\n");
// 3.接收用户输入的第1个整数
scanf("%d", &num1);
// 4.提示用户输入第2个整数
printf("请输入第2个整数:\n");
// 5.接收用户输入的第2个整数
scanf("%d", &num2);
// 6.计算和,并且输出
int sum = num1 + num2;
printf("%d+%d=%d\n", num1, num2, sum);
//printf("num1=%d, num2=%d\n", num1, num2);
return 0;
}
H:/C语言入门/__day_2/04-scanf的其他用法和注意.c
#include <stdio.h>
int main()
{
/* 1.输入字符
char myc;
scanf("%c", &myc);
printf("输入的字符是%c\n", myc);
*/
/* 2.一次性输入多个数值,并且以某些符号隔开
int num1, num2;
scanf("%d#%d", &num1, &num2);
printf("num1=%d, num2=%d\n", num1, num2);
*/
/*
3.如果scanf参数中以空格隔开,实际输入可以以空格、tab、回车作为分隔符
int num1, num2;
scanf("%d %d", &num1, &num2);
printf("num1=%d, num2=%d\n", num1, num2);
*/
/*
4.scanf中不能写\n
int a;
scanf("%d\n", &a); // 错误写法
printf("a的值是%d\n", a);
*/
return 0;
}
H:/C语言入门/__day_2/05-算数运算符.c
#include <stdio.h>
int main()
{
/*1.算数运算符的基本使用
int a = 10 + 1 + 2 - 3 + 5;
int b = -10;
int c = 10 * b;
int d = 10 / 2;
// 取余运算(模运算)
// %两边都是整数
// %取余结果的正负性只跟%左边的数值有关
int e = 10 % -3;
printf("%d\n", e);
*/
/*
// 自动类型转换(double->int)
int a = 10.8;
// 强制类型转换(double->int)
int b = (int) 10.5;
printf("%d\n", a);
*/
// 自动类型提升(int->double)
double c = 10.6 + 6;
double d = 1 / 3;
double e = (double)3/2;
printf("e的值是%f\n", e);
return 0;
}
H:/C语言入门/__day_2/06-算数运算符练习.c
#include <stdio.h>
/*
提示用户输入一个时间的秒数,比如500秒就输入500,然后输出对应的分钟和秒,比如500s就是8分钟20秒
*/
int main()
{
/*
// 将c的值固定在10以内
int a = 96546546;
int c = a % 10;
*/
// 1.提示用户输入时间
printf("请输入一个时间值(秒):\n");
// 2.接收用户输入的时间
int time;
scanf("%d", &time);
// 3.转换成对应的分钟和秒
int minute = time / 60; // 分钟
int second = time % 60; // 秒
printf("%d秒 = %d分钟%d秒\n", time, minute, second);
return 0;
}
H:/C语言入门/__day_2/07-赋值运算符.c
#include <stdio.h>
int main()
{
int a = 10;
// a = a + 5;
// 复合赋值运算符
a += 5; // a = a + 5;
a *= 5; // a = a * 5;
a += 5 + 6 + 4; // a = a + (5 + 6 + 4);
/*
1.
*/
a = 5 + 6 * 5 + 8;
printf("a的值是%d\n", a);
return 0;
}
H:/C语言入门/__day_2/08-自增自减.c
#include <stdio.h>
int main()
{
/*
int a = 10;
a = a + 1; // 11
a += 1; // 12
a++; // 13
++a; // 14
a--; // a -= 1; a = a - 1; 13
*/
// printf("a的值是%d\n", a);
int b;
int a = 10;
// b = 10 + 12;
//b = (a++) + (++a);
// b = 11 + 11;
b = (++a) + (a++);
// a -> 11
// a : 12
printf("b=%d, a=%d\n", b, a);
return 0;
}
H:/C语言入门/__day_2/09-sizeof.c
#include <stdio.h>
int main()
{
//int size = sizeof(10);
//int size = sizeof 10.9;
int a = 10;
//int size = sizeof(a);
//int size = sizeof a;
int size = sizeof(char);
// int size = sizeof char; // 错误的
printf("size=%d\n", size);
return 0;
}
H:/C语言入门/__day_2/10-关系运算.c
#include <stdio.h>
int main()
{
/*
int a = 10;
int b = 11;
// 条件成立就返回1,真
// 条件不成立就返回0,假
int result = b >= a;
printf("%d\n", result);
*/
//int a = 2>3==1;
//int a = 3+4 > 8-2;
int a = 5 != 4 + 2 * 7 > 3 == 10;
printf("%d\n", a);
return 0;
}
H:/C语言入门/__day_2/11-逻辑运算.c
#include <stdio.h>
int main()
{
//逻辑与 条件1 && 条件2
// int a = 10>3 && 7<6;
//int a = 0 && 10;
//printf("a=%d\n", a);
/*
int a = 10;
int b = 10;
//int c = (a>5) && (++b>=11);
int c = (a<5) && (++b>=11);
// a = 10
// b = 10
// c = 0
printf("a=%d, b=%d, c=%d\n", a, b, c);*/
// 逻辑或 条件1 || 条件2
//int a = 0 || 11;
/*
int a = 10;
int b = 10;
int c = (a<5) || (b++ - 10);
// a = 10
// b = 11
// c = 0
printf("a=%d, b=%d, c=%d\n", a, b, c);*/
// 逻辑非 !条件
// 如果条件成立,就返回0;如果条件不成立,就返回1
//int a = !(10>8);
//int a = !-10;
//int a = !10>8;
/*
int a = !!10;
printf("a=%d\n", a);
*/
return 0;
}
H:/C语言入门/__day_2/12-三目运算符.c
// 三目运算符 条件 ? 数值1 : 数值2
//int a = !100 ? 9 : 89;
//printf("a=%d\n", a);
#include <stdio.h>
int main()
{
/* 计算2个整数之间的最大值
int a = 10;
int b = 99;
int c = a>b ? a : b;
printf("c is %d\n", c);
*/
// 计算3个整数之间的最大值
int a = 10;
int b = 999999;
int c = 1000;
// 求出a、b的最大值
int abMax = (a > b) ? a : b;
// 求出最终的最大值
int d = (abMax > c) ? abMax : c;
//int d = (((a > b) ? a : b) > c) ? ((a > b) ? a : b) : c;
printf("d is %d\n", d);
return 0;
}
H:/C语言入门/__day_2/13-if.c
/*
1.if的第1种结构
if(条件)
{
语句1;
语句2;
......
}
2.if的第2种结构
if(条件1)
{
语句1;
语句2;
......
}
else
{
}
3.if的第3种结构
if(条件1)
{
语句1;
语句2;
......
}
else if(条件2)
{
}
else if(条件3)
{
}
else if(条件4)
{
}
else
{
}
4.if的第4种结构
if (条件)
语句1;
*/
#include <stdio.h>
int main()
{
/*
// 人数
int count = 40;
if ( count >= 50 )
{
printf("开班!!!\n");
printf("准备机器!!!\n");
}
else
{
printf("不开班!!!\n");
printf("不准备机器!!!\n");
}*/
/*
int a = 6;
if (a++ > 10) // a == 7
{
printf("A\n");
}
else if (a++ > 5) // a == 8
{
printf("B\n");
}
else if (a++ > 3)
{
printf("C\n");
}
else
{
printf("D\n");
}
printf("a的值是%d\n", a);
*/
int a = -10;
if (a>1)
printf("A\n");
printf("B\n");
return 0;
}
H:/C语言入门/__day_2/14-if使用注意.c
#include <stdio.h>
int main()
{
/*
if (0)
{
printf("A\n");
}
else
{
printf("B\n");
}*/
/*
int a = 1044343;
比较大小时,常量值放左边,变量放右边
//if (a = 0)
if (0 == a)
{
printf("a等于0\n");
}
else
{
printf("a不等于0\n");
}*/
/*
int a = 10;
// 注意赋值运算符,不要写成两个=
a = 15;
printf("%d\n", a);
*/
/* if语句后面不要写;
if ( 5>6 );
{
printf("A\n");
}*/
/*
if (10 > 6)
{
int a = 5;
}
printf("%d\n", a);
*/
// 下面的代码是错误的:作用域不明确
if (10 > 6)
int a = 5;
// 如果要在if后面的语句中定义新的变量,必须用大括号{}
//printf("%d\n", a);
/*
书写格式
int a = 10;
if (a>10) {
} else if (a>5) {
} else {
}
if ()
{
}
else if ()
{
}
else
{
}*/
return 0;
}
H:/C语言入门/__day_2/15-if练习.c
/*
输入一个整数score代表分数,根据分数输出等级(A-E)(用两种方式)
A:90~100
B:80~89
C:70~79
D:60~69
E:0~60
*/
#include <stdio.h>
int main()
{
// 1.提示输入
printf("请输入分数值:\n");
// 2.接收输入
int score;
scanf("%d", &score);
// 3.判断等级 (性能最高)
if (score>=90 && score<=100) { // [90, 100]
printf("A\n");
} else if (score>=80) { // [80, 89]
printf("B\n");
} else if (score>=70) { // [70, 79]
printf("C\n");
} else if (score>=60) { // [60, 69]
printf("D\n");
} else { // (-∞, 59]
printf("E\n");
}
/* 性能中等
if (score>=90 && score<=100) { // [90, 100]
printf("A\n");
} else if (score>=80 && score<=89) { // [80, 89]
printf("B\n");
} else if (score>=70 && score<=79) { // [70, 79]
printf("C\n");
} else if (score>=60 && score<=69) { // [60, 69]
printf("D\n");
} else { // (-∞, 59]
printf("E\n");
}*/
/* 性能最差
if (score>=90 && score<=100) { // [90, 100]
printf("A\n");
}
if (score>=80 && score<=89) { // [80, 89]
printf("B\n");
}
if (score>=70 && score<=79) { // [70, 79]
printf("C\n");
}
if (score>=60 && score<=69) { // [60, 69]
printf("D\n");
}
if (score<=59) { // (-∞, 59]
printf("E\n");
}*/
return 0;
}
H:/C语言入门/__day_2/16-switch.c
#include <stdio.h>
/*
if (条件)
{
}
switch (数值)
{
case 数值1:
语句1;
break;
case 数值2:
语句2;
break;
default :
语句3;
break;
}
*/
int main()
{
//int a = 10;
// break:退出整个switch语句
// 如果case后面没有break,就会执行后面所有case中的语句,直到遇到break为止
/*
int b = 10;
switch (a)
{
case 10:
printf("A\n");
b++;
case 5:
printf("B\n");
b++;
case 0:
printf("C\n");
b++;
break;
default:
printf("D\n");
break;
}
printf("b的值是%d\n", b);*/
char c = '+';
int a = 10;
int b = 20;
// 如果要在case后面定义新的变量,必须用大括号{}包住
switch (c) {
case '+':
{
int sum = a + b;
printf("和是%d\n", sum);
break;
}
case '-':
{
int minus = a - b;
printf("差是%d\n", minus);
break;
}
}
return 0;
}
H:/C语言入门/__day_2/17-switch练习.c
/*
输入一个整数score代表分数,根据分数输出等级(A-E)(用两种方式)
A:90~100 score/10 == 9、10
B:80~89 score/10 == 8
C:70~79 score/10 == 7
D:60~69 score/10 == 6
E:0~60
*/
#include <stdio.h>
int main()
{
int score = 100;
switch (score/10) {
case 10: // 100
case 9: // 90+
printf("A\n");
break;
case 8: // 80+
printf("B\n");
break;
case 7: // 70+
printf("C\n");
break;
case 6: // 60+
printf("D\n");
break;
default:
printf("E\n");
break;
}
/*
if和switch
1> if语句能完成的功能,switch并不一定能完成
int a = 10;
if (a>100)
{
}
2> 在有些情况下,if语句和switch语句可以互换
3> switch能完成的功能,if语句都能完成
*/
return 0;
}