intmain(int argc, char *argv[]) { int a = 0, b = 0;
scanf("%d-%d", &a, &b);
printf("a = %d b = %d\n", a, b); //通过某种方法交换a和b的值 /* int tmp = 0; tmp = a; a = b; b = tmp; a = a + b; b = a - b; a = a - b; */ a = a ^ b;//a = 1101 ^ 0111 = 1010 b = a ^ b;//b = 1010 ^ 0111 = 1101 a = a ^ b;//a = 1010 ^ 1101 = 0111 printf("a = %d b = %d\n", a, b);
return0; }
1 2 3 4 5 6 7 8 9 10 11 12 13
#include<stdio.h> #include<stdlib.h>
intmain(int argc, char *argv[]) { int a = 10, sum = 0;
#include<stdio.h> #include<stdlib.h> //求3位数字的水仙花数 //百位数字的3次方 + //十位数字的3次方 + //个位数字的3次方 == 3位数 intmain(int argc, char *argv[]) { int i = 0; int b = 0, s = 0, g = 0;
for(i = 100; i < 1000; i++)//[100 ~ 999]所有三位数 { b = i / 100;//取三位数的百位 s = i / 10 % 10;//取三位数的十位 g = i% 10;//取三位数的个位 if(i == b*b*b + s*s*s + g*g*g) printf("i = %d\n", i); }
+ 加法
- 减法
* 乘法
/ 除法(取商)
% 除法(取余/取模)
注意 :
除法运算中,除数不能为0
int a = 13, b = 7, sum = 0;
sum = a + b;
sum = a - b;
sum = a * b;
sum = a / b;//a所在的位置是被除数,b所在的位置是除数
sum = a % b;//a所在的位置是被除数,b所在的位置是除数
如果在除法运算中,被除数 小于 除数, 商是0, 余数是被除数本身
sum = 7 / 13;// sum = 0
sum = 7 % 13;// sum = 7
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
#include<stdio.h> #include<stdlib.h>
intmain(int argc, char *argv[]) { int a = 7, b = 13;
printf("a + b = %d\n", a + b); printf("a - b = %d\n", a - b); printf("a * b = %d\n", a * b); printf("a / b = %d\n", a / b); printf("a %% b = %d\n", a % b);
&& 逻辑与 表达式1 && 表达式2
全真才为真,有假就是假
|| 逻辑或 表达式1 || 表达式2
全假才为假,有真就是真
! 逻辑非 !(表达式)
真假互换
表达式1 && 表达式2
如果表达式1为真,会执行表达式2的内容
如果表达式1为假,不会执行表达式2的内容
表达式1 || 表达式2
如果表达式1为真,不会执行表达式2的内容
如果表达式1为假,会执行表达式2的内容
-----------------------
1.罗列一下判断是否是闰年的条件
(能被4整除但是不能被100整除 或者 能被400整除)
(year % 4 == 0 && year % 100 != 0) || (year%400==0)
2.罗列三角形的条件(普通 直角 等腰 等边)
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 5 6 7 8
#include<stdio.h> #include<stdlib.h>
intmain(int argc, char *argv[]) {
return0; }
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
# 赋值运算符 = += -= *= /= %= <<= ... 会把赋值运算符右边的项先进行计算, 再赋值给赋值运算符左边的项(左值) a += 1; // a = a + 1; int a = 10; a *= 2 + 3;// a = a * (2 + 3); a = 50 ```C #include<stdio.h> #include<stdlib.h> int main(int argc, char *argv[]) { return0; }
1.编辑器
vim
命令模式
光标的定位
h j k l gg G 3G /string(n N)
文本的编辑
yy p P dd u ctrl+r r x D
模式的切换
iIoOaA
:
v
V
ctrl + v
编辑模式
文本的补齐
ctrl + p
命令行模式
w q wq q! wqa
3,6 s/srcname/destname/
g %
可视模式
代码格式的调整
可视行模式
可视块模式
块插入
块删除
块替换
替换模式
2.编译器
gcc->cc
a.out
gcc hello.c -o hello
gcc -Wall
3.用户管理
sudo useradd 用户名
sudo passwd 用户名
sudo userdel 用户名
-r
4.权限管理
基本权限和特殊权限
符号 数字 含义 对于普通文件的影响 对于目录文件的影响
r 4 可读 是否可以读取文件内容 是否可以列出子文件
w 2 可写 是否可以修改文件内容 是否可以创建或删除子文件
x 1 可执行 是否可以执行文件内容 是否可以访问该目录
windows Linux
500G
C D E F /(根目录)
4棵树 1棵树
/(根目录)
bin 存放的是二进制的文件(命令)
boot 存放的是用来引导内核的文件
dev 存放的是各种设备文件
etc 存放的是配置文件
home 存放的是普通用户的家目录
lib 存放的是各种库文件(动态库和静态库)
media 用来挂载存储介质或者媒体介质的文件
mnt 系统默认可以使用的挂载的目录
proc 动态的目录(不能用于存储文件)
(系统内核的信息\进程的信息\内存映射的信息)
root 超级用户的家目录
sbin 存放系统的二进制文件
sys 存放系统的文件
usr 存放的是应用程序\头文件