extern :声明一个变量 没有储存空间 无法存值
const :常量 不能修改
volatile :防止编译器优化代码
reigister :定义寄存器变量(cpu有没有空闲寄存器)
‘a’ :字符号常量 “a”:字符串常量 (找到\0为止)
printf附加格式:
%-5d是左对齐 %5d右对齐(数字是整体的宽度 如果没有全用就会用空格补全)
0将输出的前面补上0直到占满列宽
putchar
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
int main()
{
char ch='a';
//printf("%c\n", ch);
//输出字符 可以是变量 字符 数字 转义字符
putchar(ch);
putchar('7');
putchar('\n');
system("pause");
return 0;
}
scanf
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
int main()
{
//char ch;
int a, b;
//scanf("%c", &ch);
scanf("%3d%d", &a,&b);
//putchar(ch);
printf("%d\t%d", a, b);
system("pause");
return 0;
}
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
int main(void)
{
char ch;
//getchar接收键盘获取字符
ch=getchar();
putchar(ch);
//暂时停留界面
getchar();
return 0;
}
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
int main(void)
{
int a;
scanf("%d\n", &a);//这里不要加\n不然就跳不出去了!!!
printf("%d\n", a);
getchar();
return 0;
}
算术运算符
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
int main(void)
{
//int a = 10;
//int b = 3;;
//printf("%d\n", a / b);//整型所以四舍五入
/*int a = 10;
int b = 7;
printf("%d\n", a / b);*/
/*int a = 10;
int b = 0;
printf("%d\n", a / b);会崩溃!!!*/
//取余只能对整型
int a = 10;
//a = a + 1;//11
//a++;后自增(就是表达式计算之后再进行自增)
//++a;前自增;
//int b = ++a * 10;
int c = a++ * 10;
printf("%d\n", c);
//printf("%d\n", b);
printf("%d\n", a);
system("pause");
return EXIT_SUCCESS;
}
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
int main(void)
{
int a = 10;
//a--;
//建议++和--都用在前面(因为有二义性)int b = ++a + --a + a++;
printf("%d\n", a);
printf("%d\n", b);
system("pause");
return EXIT_SUCCESS;
}
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
int main(void)
{
int a = 10;
//a = a + 5;
//a += 5;//a=+5 有歧义所以是a+=5
a %= 8;//(就是取余)
printf("%d\n", a);
system("pause");
return EXIT_SUCCESS;
}
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
int main(void)
{
int a = 10;
int b = 5;
a *= --b;//a=a*(--b)
printf("%d\n", a);
system("pause");
return EXIT_SUCCESS;
}
逻辑运算符
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
int main(void)
{
int a = 10;
int b = 20;
int c = 10;
printf("%d\n", a == b);
printf("%d\n", a != b);
printf("%d\n", a >= b);
printf("%d\n", a <= b);
printf("%d\n", a >= b);
//返回值为0/1就是表示值得假/真
printf("%d\n", c = ++a <= b * 2);
system("pause");
return EXIT_SUCCESS;
}
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
int main(void)
{
//所有!0的数都是真值
//!非真为假 非假为真
//int a = 10;
//printf("%d\n", !!!!!!a);
int a = 10;
int b = 20;
//printf("%d\n", !a&&b);//(单目运算符要高于双目运算符)
&&与 同真为真 其余为假
printf("%d\n", a || b);
//||或同假为假 其余为真
system("pause");
return EXIT_SUCCESS;
}
运算符优先级别
1.()
2.++.- -.!sizeof (强制类型转换) 结核性从右到左 单目运算符
3../.%
4.+.-
6.>.>=.<.<=
7.==.!=
11.&&
12.||
14.=.+=.-=.=./=
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
int main(void)
{
int a = 10;
int b = 20;
int c = (a, b);
printf("%d\n",c);
system("pause");
return EXIT_SUCCESS;
}
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
int main()
{
int score;
scanf("%d", &score);
//如果表达式结果为真,执行{}里面的
if (score > 700)
{
printf("我就不上清华上北大\n");
if (score > 720)
{
printf("我可以上清华的计算机\n");
}
else if (score > 710)
{
printf("我要学考古\n");
}
else
{
printf("我还是学挖掘机把");
}
}
else
{
printf("想上北大分不够啊\n");
}
system("pause");
return 0;
}
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
int main()
{
int a, b, c;
printf("输入三只兔子的体重:\n");
scanf("%d%d%d", &a,&b,&c);//如果想要12,56,78这样输入值得话应该变成scanf("%d,%d,%d",&a,&b,&c);
if (a > b)
{
if (a > c)
{
printf("a最重就吃它吧\n");
}
else
{
printf("c最重还是吃它吧");
}
}
else if (b > c)
{
printf("b最重还是吃它吧\n");
}
else
{
printf("c最重还是吃它吧\n");
}
system("pause");
return 0;
}
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
#define MAX(a,b) (a)>(b)?(a):(b)
int main()
{
int a = 10;
int b = 20;
printf("最大值为%d\n", MAX(a, b));
system("pause");
return 0;
}
int main0()
{
int a = 10;
int b = 20;
int c;
//表达式1?表达式2:表达式3
c=a > b ? a : b;
printf("最大值为%d\n", c);
//if (a > b)
//{
// printf("a大\n");
//}
// else
// {
// printf("b大\n");
// }
system("pause");
return 0;
}
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
#define MAX(a,b) (a)>(b)?(a):(b)
int main()
{
int score;
scanf("%d", &score);
switch (score / 10)
{
case 10:
printf("优秀\n");
break;
case 9:
printf("优秀\n");
break;
case 8:
printf("良好\n");
break;
case 7:
printf("及格\n");
break;
case 6:
printf("及格\n");
break;
default:
printf("不及格\n");
break;
}
system("pause");
return 0;
}
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
#define MAX(a,b) (a)>(b)?(a):(b)
int main()
{
int score;
printf("请输入1到7:\n");
scanf("%d", &score);
switch (score)
{
case 1:
printf("星期一\n");
break;
case 2:
printf("星期二\n");
break;
case 3:
printf("星期三\n");
break;
case 4:
printf("星期四\n");
break;
case 5:
printf("星期五\n");
break;
case 6:
printf("星期六\n");
break;
case 7:
printf("星期七\n");
break;
default:
printf("WARNING!!!BOOM SHA KA LA KA!!!\n");
break;
}
system("pause");
return 0;
}
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
#define MAX(a,b) (a)>(b)?(a):(b)
int main()
{
int score;
printf("请输入1到7:\n");
scanf("%d", &score);
switch (score)
{
case 1:
printf("星期一\n");
break;
case 2:
printf("星期二\n");
break;
case 3:
printf("星期三\n");
break;
case 4:
printf("星期四\n");
break;
case 5:
printf("星期五\n");
break;
case 6:
printf("星期六\n");
break;
case 7:
printf("星期七\n");
break;
default:
printf("WARNING!!!BOOM SHA KA LA KA!!!\n");
break;
}
system("pause");
return 0;
}
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
int main()
{
int i = 1;
while (i<=10000)
{
if (i % 2 == 0)
{
printf("%d\n", i);
}
i++;
}
system("pause");
return 0;
}
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
int main(void)
{
int i = 1;
while (i<100)
{
//7的倍数 || 个位带7的 || 十位带7的
if (i % 7 == 0||i%10==7||i/10==7)
{
printf("敲桌子\n");
}
else
{
printf("%d\n", i);
}
i++;
}
system("pause");
return 0;
}
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
int main(void)
{
int i = 0;
do
{
printf("%d\n", i);
++i;
} while (i < 10);
system("pause");
return 0;
}
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
//水仙花 从100-999各个位数的立方和相加等于本身就是一个水仙花数
int main(void)
{
int i = 100;
do
{
//个位数
int a = i % 10;
//十位数
int b = i / 10 % 10;
//百位数
int c = i / 100;
if (pow(a,3) + pow(b, 3) + pow(c, 3)==i)//if (a^)
{
printf("%d\n", i);
}
i++;
} while (i <= 999);
system("pause");
return 0;
}
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
int main(void)
{
//int i;gcc -o hello.out hello.c (-std=c99)
int j = 5;
for (int i = 0; i < 10,j<10;i++,j+=5)
{
printf("%d\n", i);
}
system("pause");
return 0;
}
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
int main(void)
{
int i = 0;
for (; ;)
{
if(i>=10)
//在循环语句中遇到break表示结束循环
break;
}
printf("%d\n", i);
i++;
system("pause");
return 0;
}
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
int main(void)
{
//差生随机数
//1.导入头文件 time.h stdlib.h
//2.添加随机数种子
//3.获取随机数
srand((unsigned int)time(NULL));//每次随机数不一样
//int value=rand()%10;//0~9
for (int i = 0; i < 10; i++)
{
int value = rand() % 10;
printf("%d\n", value);
break;
}
system("pause");
}
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<math.h>
#include<time.h>
int main(void)
{
srand((unsigned int)time(NULL));//每次随机数不一样
int value=rand()%100;//0-99
int num;
//for (;;)
while(1)
{
printf("请输入数字:\n");
scanf("%d", &num);
if (value > num)
{
printf("您输入的数太小了\n");
}
else if (value < num)
{
printf("您输入的数太大了\n");
}
else
{
printf("恭喜你,猜对了\n");
break;
}
}
system("pause");
return 0;
}
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<math.h>
#include<time.h>
int main(void)
{
//外层执行一次,内层执行一周
for (int i = 0; i < 5; i++)
{
for ( int j= 0; j < 5; j++)
{
printf("i=%d,j=%d\n", i, j);
}
}
system("pause");
return 0;
}
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<math.h>
#include<time.h>
#include<windows.h>
int main(void)
{
for (int s = 0; s < 24; s++)
{
for ( int f= 0; f < 60; f++)
{
for (int m = 0; m < 60; m++)
{
printf("%d:%d:%d\n", s, f, m);
Sleep(900);
system("cls");
}
}
}
system("pause");
return 0;
}
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
#include<string.h>
#include<time.h>
#define SIZE 10
int main()
{
//一维数据类型 数组名[元素个数]=[值1,值2~]
//多维数据类型 数组名[行][列]
//{
//{值1,值2}
//{值3,值4}
//};
int a[2][3] =//{{1,2,3},{4,5,6}};
{
{1,2,3},
{4,5,6},
};
//a[1][2]=20;//改变的是6的值
for (int i = 0; i < 2; i++)
{
for (int j = 0; j < 3; j++)
{
printf("%d", a[i][j]);
}
printf("\n");
}
printf("二维数组大小:%d\n", sizeof(a));
printf("二维数组一行大小%d\n", sizeof(a[0]));
printf("二维数组元素大小%d", sizeof(a[0][0]));
printf("二维数组行数:%d\n", sizeof(a) / sizeof(a[0]));
printf("二维数组列数:%d\n", sizeof(a[0]) / sizeof(a[0][0]));
system("pause");
return 0;
}
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
#include<string.h>
#include<time.h>
#define SIZE 10
int main()
{
int a[2][3]=
{
{1,2,3},
{4,5,6}
};
//二维数组首地址
//printf("%p\n", a);
//printf("%p\n", a[0]);
//printf("%p\n", &a[0][0]);
//printf("%p\n", &a[0][1]);
for (int i = 0; i < 2; i++)
{
for (int j = 0; j < 3; j++)
{
printf("%p\n",& a[i][j]);
}
}
system("pause");
return 0;
}
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
#include<string.h>
#include<time.h>
#define SIZE 10
int main()
{
//int a[2][3] = { 1,2,3,4,5,6 };
//int a[][3]={1,2,3,4,5,6,7};会自动补零
int a[][3] = {1,2,3};
for (int i = 0; i < 2; i++)
{
for (int j = 0; j < 3; j++)
{
printf("%d",a[i][j]);
}
printf("\n");
}
system("pause");
return 0;
}
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
#include<string.h>
#include<time.h>
#define SIZE 10
int main()
{
int sum=0;
int pingjun=0;
int a[5][3] = {44,55,66,77,55,66,11,55,44,66,88,44,88,77,11};
for (int i = 0; i < 5; i++)
{
sum = 0;
for (int j = 0; j < 3; j++)
{
sum+= a[i][j];
}
printf("学生总成绩是%d\n",sum);
pingjun += sum;
}
printf("学生成绩平均等于%d\n", pingjun / 5);
system("pause");
return 0;
}
.
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
#include<string.h>
#include<time.h>
#define SIZE 10
int main()
{
int sum=0;
int pingjun=0;
int a[5][3] = {44,55,66,77,55,66,11,55,44,66,88,44,88,77,11};
for (int i = 0; i < 3; i++)
{
sum = 0;
for (int j = 0; j < 5; j++)
{
sum+= a[j][i];
}
printf("各科成绩是%d\n",sum);
pingjun += sum;
}
printf("各科成绩平均等于%d\n", pingjun / 3);
system("pause");
return 0;
}
int main(void)
{
//一维数组定义
//数据类型 数组名[元素个数]
//二维数组定义
//数据类型 数组名[行][列]
//三维数组
//数据类型 数组名 [层][行][列]
int a[2][3][4] =
{
{
{1,2,3,4},
{4,5,6,7},
{7,8,9,9}
},
{
{ 1,2,3,4 },
{ 4,5,6,7 },
{ 7,8,9,9 }
}
};
for (int i = 0; i < 2; i++)
{
for (int j = 0; j < 3; j++)
{
for (int k = 0; k < 4; k++)
{
printf("%d\t", a[i][j][k]);
}
printf("\n");
}
}
printf("三维数组大小:%d\n",sizeof(a));
printf("三维数组一层大小:%d\n",sizeof(a[0]));
printf("三维数组一行大小:%d\n",sizeof(a[0][0]));
printf("三维数组元素大小:%d\n",sizeof(a[0][0][0]));
system("pause");
return 0;
}
int main(void)
{
//一维数组定义
//数据类型 数组名[元素个数]
//二维数组定义
//数据类型 数组名[行][列]
//三维数组
//数据类型 数组名 [层][行][列]
int a[2][3][4][5] = { 1,2,3 };
for (int i = 0; i < 2; i++)
{
for (int j = 0; j < 3; j++)
{
for (int k = 0; k < 4; k++)
{
for (int z = 0; z < 5; z++)
{
printf("%d\t", a[i][j][k][z]);
}
}
printf("\n");
}
}
system("pause");
return 0;
}
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
#include<string.h>
#include<time.h>
int main()
{
//定义字符数组
//char a[5] = { 'a','b','c','d','e' };
//字符
//char a='a';
//字符串 字符串结束标志为\0,数字0等同于\0,但是不等同意'0'
//char*a="hello\0";
//char ch[] = "hello";
char a[] = { 'h','e','l','l','o','\0' };
for (int i = 0; i < sizeof(a); i++)
{
printf("%c", a[i]);
}
printf("%d\n", sizeof(a));
system("pause");
return 0;
}
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
#include<string.h>
#include<time.h>
int main()
{
//定义字符数组存储字符串
char ch[10];
scanf("%s", ch);//空格或者回车表示结束!!
printf("%s", ch);
system("pause");
return 0;
}
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
#include<string.h>
#include<time.h>
int main()
{
//字符串 的拼接操作
char ch1[] = "hello";
char ch2[] = "world";
char ch3[30];
int i = 0;
int j = 0;
while (ch1[i] !='\0')
{
ch3[i] = ch1[i];
i++;
}
while (ch2[j] !='\0')
{
ch3[i + j] = ch2[j];
j++;
}
ch3[i + j + 1] = '\0';
printf("%s", ch3);
system("pause");
return 0;
}
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
#include<string.h>
#include<time.h>
int main()
{
//字符串是一个特殊性的char数组
//如果没有数字0的话就不是字符串
char a[] = { "hello" };
printf("%s", a);//可以%9s限定输出的个数
system("pause");
return 0;
}
getchar putchar 基于字符 gets 和puts 基于字符串
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
#include<string.h>
#include<time.h>
int main()
{
char a[100];
//gets(a);//接收字符串可以带空格
scanf("%[^\n]", a);//通过正则表达式接受空格
printf("%s\n", a);
system("pause");
return 0;
}
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
#include<string.h>
#include<time.h>
int main()
{
char a[10];
//"fgets自带的\n\0; hello\n\0"
//gets(a);//接收字符串可以带空格
//fgts也可以接收空格
//fgets获取字符串少于元素个数会有\n(自动加);大于等于的时候没有
//这个是安全的哦不会溢出
fgets(a, sizeof(a), stdin);
printf("%s", a);
system("pause");
return 0;
}
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
#include<string.h>
#include<time.h>
int main()
{
char a[] = "hello world";
//puts自带换行
//puts(a);
//printf("%s", a);
puts("hello\0 world");//会在\0停止
//可以把puts("");当成换行
system("pause");
return 0;
}
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
#include<string.h>
#include<time.h>
int main()
{
char a[] = "hello world";
fputs(a,stdout);
system("pause");
return 0;
}