这是我自己整理的c语言笔记(包括链表)因为考研要用,所以整理的非常简洁。希望大家喜欢。
常用的算数运算符
++i 在使用i之前,先使i的值加1
i++ i-- 在使用i之后,使i的值加1
类型转换
强制类型转换运算符:(类型名)(表达式)
计算机向显示器输出一个字符 : putchar(c);
向计算机输入一个字符:getchar();
选择结构和条件判断
if语句的一般形式: if(表达式1) 语句1
else if(表达式2) 语句2
else 语句n+1
//输入两个实数,按由小到大的顺序输出这两个数。 #includeint main() { float a,b,t; scanf("%f,%f",&a,&b); if(a>b) { //将a和b的值互换 t=a; a=b; b=t; } printf("%5.2f,%5.2f\n",a,b); return 0; }
条件运算符和条件表达式
max=(a>b) ? a : b; 表达式 1 ? 表达式 2 : 表达式 3
关系表达式
关系表达式的值是一个逻辑值,即“真”或“假”。
在C的逻辑运算中,以“1”代表“真”,以“0”代表“假”。
若a=3,b=2,c=1,则: d=a>b,由于a>b为真,因此关系表达式a>b的值为1,所以赋值后d的值为1。 f=a>b>c,则f的值为0。因为“>”运算符是自左至右的结合方向,先执行“a>b”得值为1, 再执行关系运算“1>c”,得值0,赋给f,所以f的值为0
逻辑运算符及其优先次序
运算符 | 含义 | 举例 | 说明 |
---|---|---|---|
! | 逻辑非(NOT) | !a | 如果a为假,则!a为真;如果a为真,则!a为假 |
&& | 逻辑与(AND) | a && b | 如果a和b都为真,则结果为真,否则为假 |
|| | 逻辑或(OR) | a || b | 如果a和b有一个以上为真,则结果为真,二者都为假时,结果为假 |
判别year表示的某一年是否闰年:(year % 4 == 0 && year % 100 != 0) ‖ year % 400 == 0;
switch语句实现多分支选择结构
switch(表达式) 花括号内是一个复合语句,内包含多个以关键字case开头的语句。
{ case后面跟一个常量(或常量表达式),它们起标号作用,用来标志一个位置。
case 常量 1 : 语句 1 执行switch语句时,先计算switch后面的“表达式”的值,然后将它与各case标号比较
case 常量 2 : 语句 2 如果与某一个case标号中的常量相同,流程就转到此case标号后面的语句。
⋮ ⋮ ⋮ 如果没有与switch表达式相匹配的case常量,流程转去执行default标号后面的语句。
case 常量 n : 语句 n
default : 语句 n+1}
//要求按照考试成绩的等级输出百分制分数段,A等为85分以上,B等为70~84分, //C等为60~69分,D等为 60分以下。成绩的等级由键盘输入。 #includeint main() { void action1(int,int),action2(int,int); //函数声明 char ch; int a=15,b=23; ch=getchar(); switch(ch) { case 'a': case 'A': action1(a,b);break; //调用action1函数,执行A操作 case 'b': case 'B': action2(a,b);break; //调用action2函数,执行B操作 ⋮ default: putchar('\a'); //如果输入其他字符,发出警告 } return 0; }
while( 表达式 ) 语句
只要当循环条件表达式为真(即给定的条件成立),就执行循环体语句
//求1+2+3+…+100,即∑_(=1)^100▒ #includeint main() { int i=1,sum=0; //定义变量i的初值为1,sum的初值为0 while(i<=100) //当i>100,条件表达式i<=100的值为假,不执行循环体 { //循环体开始 sum=sum+i; //第1次累加后,sum的值为1 i++; //加完后,i的值加1,为下次累加做准备 } //循环体结束 printf("sum=%d\n",sum); //输出1+2+3…+100的累加和 return 0; }
用do⋯while语句实现循环
do{
语句
}while( 表达式 );
#includeint main() { int i=1,sum=