创建个栏目吧,就叫期末90+,就看这个栏目了。可在网上售卖该笔记,售卖题库给大一上学期的。
C语言是结构化的程序设计语言。这里的结构是指:顺序结构、选择结构、循环结构。?
我们可以使用if、switch实现分支结构;使用for、while、do while实现循环结构。
语法形式
if(表达式)
语句
表达式为真,则语句执行;表达式为假,则语句不执行。在C语言中,零为假,非零表示真。
当表达式为假时,就执行语句2
语法形式
if(表达式)
语句1
else
语句2
直接上例子
//输入一个人的年龄,然后分区间打印不同的结果。
//按照最初始的理论我们应该会写出如下代码
#include<stdio.h>
int main()
{
int age = 0;
scanf("%d", &age);
if (age < 18)
{
printf("少年\n");
}
else
{
if (age <= 44)
{
printf("青年");
}
else
{
if (age < 90)
{
printf("老年");
}
else
printf("老寿星");
}
}
return 0;
我们会发现如果这样写,我们的程序就很乱,不够简洁。
所以我们改写为:
#include<stdio.h>
int main()
{
int age = 0;
scanf("%d", &age);
if (age < 18)
printf("少年\n");
else if (age <= 44) //注意这里我们不用age>=18 && age<=44岁来表示,在这里默认为age>=18
printf("青年");
else if (age < 90)
printf("老年");
else
printf("老寿星");
return 0;
}
else总是跟最接近的且未匹配的if语句匹配
直接看例题:
#include<stdio.h>
int main()
{
int a = 0, b = 2;
if (a == 1)
if (b == 2)
printf("hehe\n");
else
printf("haha\n");
return 0;
}
宝子们思考觉得它会输出什么结果?其实什么都不输出。
这里的缩进有错误,但如果把这段代码拷贝到vs上,vs会自动改变缩进
其实是这样的:
#include<stdio.h>
int main()
{
int a = 0, b = 2;
if (a == 1)
{
if (b == 2)
printf("hehe\n");
else
printf("haha\n");
}
return 0;
}
如果确实是想要else和第一个if匹配的话,可以合理的利用大括号
为了防止这种错误,可以写成
if(3==a)
i<j<k
这个表达式表达的意思为: I小于J返回0或1,所以最终是0或1与变量K进行比较
即
(i<j)<k
条件操作符也叫做三目操作符,因为有三个操作数,形式如下
exp1 ? exp2 : exp3
他的计算逻辑是:如果exp1为真,exp2计算,计算的结果是整个表达式的结果 ; 如果exp1为假,exp3计算,计算的结果则是整个表达式的结果
看段代码吧
//输出两数之间的最大者
#include<stdio.h>
int main()
{
int a = 0, b = 0;
scanf("%d%d", &a,& b);
int m = a > b ? a : b;
printf("%d", m);
return 0;
}
看个例题就明白啦
//闰年的判断。闰年:能被4整除并且不能被100整除或者能被400整除
int main() {
int year;
printf("请输入年份:");
scanf("%d", &year);
if (year % 4 == 0 && (year % 100 != 0 || year % 400 == 0))
{
printf("%d是闰年。\n", year);
}
else
{
printf("%d不是闰年。\n", year);
}
return 0;
}
if(month >= 3 && month <= 5)
&&运算符是有假则假的
如果&&的左操作数的结果为0时,右边操作数就不再执行
if(month ==11 || month==1 || month ==3)
||运算符是有真则真的
如果第一个表达式month==11为1时,那么右边的操作数都不再执行
这种仅仅根据左操作数的结果就能知道整个表达式的结果,不再对右操作数进行计算的运算称为短路求值
#include<stdio.h>
int main()
{
int i = 0, a = 0, b = 2, c = 3, d = 4;
i = a++ && ++b && d++;
printf("a=%d\n b=%d\n c=%d\n d=%d\n", a, b, c, d);
return 0;
}
//请问输出的是什么
基本形式
switch (expression)
{
case value1:statement
case value2:statement
default:statement
}
#include<stdio.h>
int main()
{
int n = 0;
scanf("%d", &n);
switch (n % 3)
{
case 0:
printf("整数,余数为0.");
break;
case 1:
printf("余数为1");
break;
case 2:
printf("余数为2");
break;
}
return 0;
}
#include<stdio.h>
int main()
{
int n = 0;
scanf("%d", &n);
switch (n % 3)
{
case 0:
printf("整数,余数为0\n");
case 1:
printf("余数为1\n");
break;
case 2:
printf("余数为2\n");
break;
}
return 0;
}
//输出
6
整数,余数为0
余数为1