对c语言的初步认识

​ 1.声明变量是创建变量的过程,它告诉编译器变量的名称和数据类型。数据类型决定了变量可以存储什么类型的数据(例如整数、浮点数、字符等),以及可以对这些数据执行哪些操作。

​ 下面举些例子:

1
2
3
4
int age;            // 声明一个整型变量age
float height; // 声明一个浮点型变量height
char word; // 声明一个字符型变量word
double length; // 声明一个双精度浮点型变量length

​ 其中,前一个为数据类型,后一个为变量名。

​ 2.函数是一组执行特殊任务的语句集合,包括返回类型、函数名、参数列表(可能为空)以及函数体。

​ 函数分为库函数和用户自定义函数。

​ 下面举一个自定义函数的例子:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <stdio.h>
void sum(int begin,int end);//函数声明
int main() {
sum(1, 10);
sum(20, 40);
sum(80, 100);
return 0;
}
void sum(int begin,int end) {//函数调用
int sum=0;
for (int i=begin;i<=end;i++) {
sum+=i;
}
printf("%d到%d的和是%d\n",begin,end,sum);
}

​ 3.c语言中简单if语句的基本结构如下:

1
2
3
4
if(表达式)
{
执行代码块;
}

​ 其语义是:如果表达式的值为真,则执行其后的语句,否则不执行该语句。

​ 还可以进行扩展:

1
2
3
4
5
6
7
8
if(表达式)
{
执行代码块1
}
else
{
执行代码块2
}

​ 还不够(╬▔皿▔)‌:

1
2
3
4
5
6
7
8
9
10
11
12
13
if(表达式1)
{
执行代码块1
}
else if(表达式2)
{
执行代码块2
}
......
else
{
执行代码块n;
}

​ 注意:当某一条件为真的时候,则不会向下执行该分支结构的其他语句。

​ 当然,if-else语句还可以作嵌套,可以举例了(成绩评级):

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() {
int score;
printf("请输入学生的成绩(0-100):");
scanf("%d", &score);
if (score >= 0 && score <= 100) {
if (score >= 90) {
printf("优秀\n");
} else if (score >= 80) {
printf("良好\n");
} else if (score >= 70) {
printf("中等\n");
} else if (score >= 60) {
printf("及格\n");
} else {
printf("不及格\n");
}
} else {
printf("输入的成绩无效,请输入0-100之间的整数。\n");
}
return 0;
}

​ 4.c语言中switch语句的基本结构:

1
2
3
4
5
6
7
8
9
10
11
12
switch (表达式) {
case 常量1:
// 代码块1
break;
case 常量2:
// 代码块2
break;
// 可以有任意数量的case语句
...
default:
// 如果没有匹配的case,执行此代码块
}

​ 注意:

*在case后的各常量表达式的值不能相同,否则会出现错误。

*在case子句后如果没有break;会一直往后执行**一直到遇到break;**才会跳出switch语句。

switch后面的表达式语句只能是整型或者字符*类型。

*在case后,允许有多个语句,**可以不用{}**括起来。

*各case和default子句的先后顺序可以变动,而不会影响程序执行结果。

*default子句可以省略不用。

​ 举例:

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
#include <stdio.h>

int main() {
int mood;

printf("请输入你的心情(打分1~5,分数越高越开心):");
scanf("%d", &mood);

switch (mood) {
case 5:
printf("哇,你今天心情真好,");//省去break
case 4:
printf("希望你以后能一直保持一个好心情!\n");
break;
case 3:
printf("你的心情一般,可以尝试做些新的事情来提升心情。\n");
break;
case 2:
printf("你的心情有点低落,不妨和朋友聊聊。\n");
break;
case 1:
printf("你的心情很糟糕,需要找些开心的事情来做!\n");
break;
default:
printf("无效的心情输入,请输入1~5之间的数字。\n");
return 1; // 非正常退出程序
}
return 0;
}c

​ 5.c语言中while循环一般形式:

1
2
3
while (表达式) {
执行代码块;
}

​ while语句的语义是:计算表达式的值,当值为真(非0)时, 执行循环体代码块。

​ 注意:

*一定要记着在循环体中改变循环变量的值,否则会出现死循环(无休止的执行)。

*循环体如果包括有一个以上的语句,则必须用{}括起来,组成复合语句。

​ 还有一种do-while循环,你可以看作至少要执行一次循环语句的while循环:

1
2
3
do {
执行代码块;
} while (表达式);//注意这里有分号

​ 举例做加法(好困(。•́︿•̀。)好累哦):

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

int main() {
int i = 1;
int sum = 0;
while (i <= 100) {
sum += i;
i++;
}
printf("Sum = %d\n", sum);
return 0;
}

​ 6.c语言中for循环一般形式:

1
2
3
4
for(表达式1;表达式2;表达式3)
{
执行代码块;
}

​ 在for循环中:

*表达式1是一个或多个赋值语句,它用来控制变量的初始值;

*表达式2是一个关系表达式,它决定什么时候退出循环;

*表达式3是循环变量的步进值,定义控制循环变量每循环一次后按什么方式变化。

*这三部分之间用分号 ; 分开。

​ 注意:

*for循环中的“表达式1、2、3”均可不写为空,但两个分号(;;)不能缺省。

*省略“表达式1(循环变量赋初值)”,表示不对循环变量赋初始值。

*省略“表达式2(循环条件)”,不做其它处理,循环一直执行(死循环)。

*省略“表达式3(循环变量增减量)”,不做其他处理,循环一直执行(死循环)。

*表达式1可以是设置循环变量的初值的赋值表达式,也可以是其他表达式。

*表达式1和表达式3可以是一个简单表达式也可以是多个表达式以逗号分割。

*表达式2一般是关系表达式或逻辑表达式,但也可是数值表达式或字符表达式,只要其值非零,就执行循环体。

*各表达式中的变量一定要在for循环之前定义。

*在知道循环次数的情况下更适合使用for循环。

​ 举个例吧:固定人数,求平均年龄。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include<stdio.h>
int main()
{
int n, age=0,sum=0;
double average;
scanf("%d", &n);
for (int i = 0; i < n; i++)
{
scanf("%d", &age);
sum = sum + age;
}
average = (double)sum / n;
printf("%.2lf", average);
return 0;

​ 7.goto语句是一种无条件分支语句,使用格式为:

goto 语句标号;

​ 相当于一个传送门就是了。

​ 尽管不建议使用,但还是可以很好地代替接力break。

​ 举例(只举一种方法凑硬币):

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include<stdio.h
int main ()int main(){
int x = 0;
scanf("%d", &x);
int one, two, five;
for(one=1; one<x*10; one++){
for(two=1; two<x*10/2; two++){
for(five=1; five<x*10/5; five++){
if(one+two*2+five*5 == x*10){
printf("%d张1角+%d张2角+%d张5角=%d元\n", one, two, five, x);
goto out;
}
}
}
}
out:
return 0;
}

​ ok了,不想再写了,就这样吧。

参考链接:https://blog.csdn.net/qq_23079443/article/details/81108901