#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int global = 2022;//全局变量
int main()
{
int local = 2021;//局部变量
printf("local = %d\n", local);
printf("global = %d\n", global);
int global = 2023;//局部变量
printf("global = %d\n", global);
return 0;
}
运行结果
总结
当局部变量和全局变量同名的时候,局部变量优先使用。
4.2变量的使用
通过变量的操作我们可以初步实现一个简单的加法操作。
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int main()
{
//定义三个数
int num1 = 0;
int num2 = 0;
int sum = 0;
printf("输入两个操作数:>");
scanf("%d %d", &num1, &num2);
sum = num1 + num2;
printf("sum = %d\n", sum);
return 0;
}
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
//switch语句
int main()
{
int date;
scanf("%d", &date);
//判断今天星期几
switch (date)
{
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("输入错误!\n");
break;
}
return 0;
}
结果一
结果二
从上面我们可以看到,输入数字几程序就会给出相应的星期几,这里是有 break 结束的结果。
示例2
接下来判断输入的数是工作日还是休息日。
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
//switch语句
int main()
{
int date;
scanf("%d", &date);
//判断今天星期几
switch (date)
{
case 1:
case 2:
case 3:
case 4:
case 5:
printf("工作日\n");
break;
case 6:
case 7:
printf("休息日\n");
break;
default:
printf("输入错误!\n");
break;
}
return 0;
}
示例3
当输入的值不在 case 预设中时,会得到 default 执行语句 中的结果。
9 循环语句
有的事情需要重复的反复的做,使用循环语句可以帮助我们快速完成。
在C语言中有三种循环语句:
while
for
do…whlie
循环能用来做什么呢?可以按顺序输出一连串有序数字,也还可以快速输入试错。
9.1 for 语句
for 语句的使用
for( 循环条件1;循环条件2;循环条件3 ) // 这三个循环条件需要依据情况而定
{
执行语句;
}
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
//for语句
int main()
{
int a = 1;
int i = 0;
int j = 0;
//打印10个1
for (i = 0; i < 10; i++)
{
printf("%d ", a);
}
printf("\n");
//打印1~10
for (j = 1; j <= 10; j++)
{
printf("%d ", j);
}
return 0;
}
打印10个1和打印1~10
9.2 while语句
while 虽然括号中只能存放一个循环条件语句,但也需要一些其他循环条件的辅助,在下面的代码中已经给标注出来了。
while语句的使用
while( 循环条件 )
{
执行语句;
}
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int main()
{
int password=0;
int word = 100;//循环条件1
printf("请设置三位数的密码:>\n");
scanf("%d", &password);
while (word < 1000)//循环条件2
{
if (word == password)
{
printf("正确密码为:%d\n",word);
}
word++;//循环条件3
}
return 0;
}
9.3 do…while语句
do…while 循环是 先执行 再判断 是否满足循环条件的循环语句。
do…while语句的使用
do{
执行语句;
}while( 循环条件 );
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
//do while语句
int main()
{
int input;
do {
printf("0.Epit\n");
printf("1.Begin\n");
printf("Please Input:>");
scanf("%d", &input);
} while (input);
return 0;
}
10 函数
10.1 函数是什么
函数是一组一起执行一个任务的语句。函数声明告诉编译器函数的名称、返回类型和参数。函数定义提供了函数的实际主体。每个 C 程序都至少有一个函数,即主函数 main()。函数又大致分成两类:一类是库函数,另一类是自定义函数。
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main()
{
int num1 = 0;
int num2 = 0;
int sum = 0;
printf("输入两个操作数:>");
scanf("%d %d", &num1, &num2);
sum = num1 + num2;
printf("sum = %d\n", sum);
return 0;
}
示例一结果
示例二
接下来把以上代码给改写成行函数的形式。
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int add(int x, int y)
{
int z = x + y;
return z;
}
int main()
{
int num1 = 0;
int num2 = 0;
int sum = 0;
printf("输入两个操作数:>");
scanf("%d %d", &num1, &num2);
sum = add(num1, num2);
printf("sum = %d\n", sum);
return 0;
}
11 数组
C语言中给了数组的定义:一组相同类型元素的集合
11.1 数组定义
定义:数据类型 + 数组名 [ 数组大小 ] = { 数组元素1 , …… , 数组元素n };
//定义一个整形数组,最多放10个元素
int arr[10] = {1,2,3,4,5,6,7,8,9,10};
11.2 数组的下标
C语言规定:数组的每个元素都有一个下标,下标是从0开始的。 数组可以通过下标来访问的
int arr1[10] = {1,2,3,4,5,6,7,8,9,10};
int arr2[10] = {0};
这连个数组有10个元素,下标的范围是0-9,每个下标里面都有相应的值。
监视窗口
11.3 数组的使用
想要对数组里面进行操作,就得需要使用到循环来帮助我们进行操作。
无论是打印还是输出,都需要找到相应的下标,像操作变量那样,对其进行操作。
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
//打印
void Print(int arr[])
{
int i = 0;
for (i = 0; i < 10; i++){
printf("%d ", arr[i]);
}
}
int main()
{
//数组的定义
int arr1[10] = { 1,2,3,4,5,6,7,8,9,10 };
int arr2[10] = { 0 };
//输入
printf("请输入10个数字:>");
for (int i = 0; i < 10; i++){
scanf("%d", &arr2[i]);
}
//打印
printf("打印arr1:");
Print(arr1);
printf("\n");
printf("打印arr2:");
Print(arr2);
return 0;
}
C语言提供了丰富的关键字,这些关键字都是语言本身预先设定好的,在定义的时候不能义他们为名,这样做会造成重命名。 auto break case char const continue default do double else enum extern float for goto if register int long return short signed sizeof static struct switch typedef union unsigned void volatile while