导图社区 九条语句
C语言的结构语句之九条语句总结,包括程序的构成和执行、条件语句、循环语句、控制语句、程序错误分析等等。
编辑于2022-11-20 11:04:04 河南九条语句
程序的构成和执行
程序的构成
数据结构+算法
数据结构:数据在内存中的存放形式
编程之前,先写流程图,再编程
程序的执行
编辑:用文本编辑器编写程序 .c
编译:检查程序的错误
链接:生成可执行文件 .exe .out
执行
条件语句
if--else
三种格式
1,if(条件) { 语句; }
如果条件为真,则先执行大括号里边的语句,再顺序执行后边的程序,否则直接执行后边的程序
输入数字,打印对应的语句
1 #include 2 3 int main(void) 4 { 5 int num=0; 6 printf("请输入一个整数\n"); 7 scanf("%d",&num); 8 if(num == 5) 9 { 10 printf("输入的数字是5\n"); 11 } 12 printf("程序结束\n"); 13 return 0; 14 }
2,if(条件) { 语句1; } else { 语句2; }
如果条件为真,则执行语句1,再执行后边的程序;否则执行语句2,再执行后边的语句
输入数字,打印相应的语句
1 #include 2 3 int main(void) 4 { 5 int num=0; 6 printf("请输入一个整数\n"); 7 scanf("%d",&num); 8 if(num == 5) 9 { 10 printf("输入的数字是5\n"); 11 } 12 else 13 { 14 printf("输入的数字不是5\n"); 15 } 16 printf("程序结束\n"); 17 return 0; 18 }
3,if(条件1) { 语句1; } esle if(条件2) { 语句2; } . . else if(条件n) { 语句n; } else { 语句n+1; }
先判断条件1,如果满足执行语句1, 如果不满足判断条件2,满足执行语句2, 不满足判断语句3..... 当所有条件都不满足时,执行else语句。
例程:输入学生成绩,输出对应评价(优、良、中,及格,不及格)
1 #include 2 3 int main(void) 4 { 5 float score = 0; 6 printf("请输入学生成绩\n"); 7 scanf("%f",&score); 8 if(score100) 9 { 10 printf("输入错误\n"); 11 } 12 else if(score>=90) 13 { 14 printf("优秀\n"); 14 printf("优秀\n"); 15 } 16 else if(score>=80) 17 { 18 printf("良好\n"); 19 } 20 else if(score>=70) 21 { 22 printf("中等\n"); 23 } 24 else if(score>=60) 25 { 26 printf("及格\n"); 27 } 28 else 29 { 30 printf("不及格\n"); 31 } 32 printf("程序结束\n"); 33 34 return 0; 35 }
switch
格式
switch(变量) { case 常量1:语句1;break; case 常量2:语句2;break; ... default:语句n;break; }
变量等于常量1,执行语句1,等于常量2,执行语句2...都不相等执行default语句
例程:输入数字,输出对应周几
1 #include 2 3 int main(void) 4 { 5 int num = 0; 6 printf("请输入一个1到7整数\n"); 7 scanf("%d",&num); 8 switch(num) 9 { 10 case 1:printf("星期一\n");break; 11 case 2:printf("星期二\n");break; 12 case 3:printf("星期三\n");break; 13 case 4:printf("星期四\n");break; 14 case 5:printf("星期五\n");break; 15 case 6:printf("星期六\n");break; 16 case 7:printf("星期天\n");break; 17 default:printf("输入错误\n"); 18 } 19 return 0; 20 }
循环语句
起始条件,循环条件,条件修正
for()
格式
for(起始条件;循环条件;条件修正) { 循环体; }
从起始条件开始,判断循环条件,如果不满足结束循环,满足执行循环体,执行结束后执行条件修正,重新判断循环条件..
例程
打印0~9,9~0,0~9的偶数
1 #include 2 3 int main(void) 4 { 5 int i = 0; 6 for(i=0;i 7 { 8 printf("%d ",i); 9 } 10 printf("\n"); 11 for(i=9;i>=0;i--) 12 { 13 printf("%d ",i); 14 } 15 printf("\n"); 16 for(i=0;i 17 { 18 if(i%2==0) 19 printf("%d ",i); 20 } 21 printf("\n"); 22 return 0; 23 }
特殊情况
for(;;)//死循环 { 循环体; }
while()
格式
起始条件 while(循环条件) { 循环体; 条件修正 }
例程
打印0~9
1 #include 2 3 int main(void) 4 { 5 int i; 6 7 i = 0; 8 while(i 9 { 10 printf("%d ",i); 11 i++; 12 } 13 printf("\n"); 14 return 0; 15 }
特殊情况
while(1)//死循环 { 循环体; }
do...while()
格式
起始条件 do { 循环体; 条件修正; }while(循环条件);
先执行循环体,再判断循环条件
例程
打印0~9
1 #include 2 3 int main(void) 4 { 5 int i; 6 7 i = 0; 8 do 9 { 10 printf("%d ",i); 11 i++; 12 }while(i 13 printf("\n"); 14 return 0; 15 }
for循环和while循环区别
for循环适用于循环次数已知的情况
while循环适用于循环次数不定的情况
while和do...while的区别
while先判断循环条件,再执行循环体,如果循环条件不满足要求,直接结束循环。
do...while先执行一次循环体,再判断循环条件,即使循环条件不满足,也会执行一次循环体
1 #include 2 3 int main(void) 4 { 5 int i; 6 7 i = 0; 8 do 9 { 10 printf("%d ",i); 11 i++; 12 }while(i>9); 13 printf("\n"); 14 return 0; 15 }
控制语句
break
跳出循环或者switch语句
跳出循环例程:使用死循环打印0~9
1 #include 2 3 int main(void) 4 { 5 int i = 0; 6 while(1) 7 { 8 printf("%d ",i); 9 i++; 10 if(i==10) 11 { 12 printf("\n"); 13 break; 14 } 15 } 16 return 0; 17 }
跳出switch语句例程:
输入数字,输出对应星期几(使用break)
1 #include 2 3 int main(void) 4 { 5 int num = 0; 6 printf("请输入一个1到7整数\n"); 7 scanf("%d",&num); 8 switch(num) 9 { 10 case 1:printf("星期一\n");break; 11 case 2:printf("星期二\n");break; 12 case 3:printf("星期三\n");break; 13 case 4:printf("星期四\n");break; 14 case 5:printf("星期五\n");break; 15 case 6:printf("星期六\n");break; 16 case 7:printf("星期天\n");break; 17 default:printf("输入错误\n"); 18 } 19 return 0; 20 }
输入数字,输出对应星期几(不使用break)
1 #include 2 3 int main(void) 4 { 5 int num = 0; 6 printf("请输入一个1到7整数\n"); 7 scanf("%d",&num); 8 switch(num) 9 { 10 case 1:printf("星期一\n"); 11 case 2:printf("星期二\n"); 12 case 3:printf("星期三\n"); 13 case 4:printf("星期四\n"); 14 case 5:printf("星期五\n"); 15 case 6:printf("星期六\n"); 16 case 7:printf("星期天\n"); 17 default:printf("输入错误\n"); 18 } 19 return 0; 20 }
continue
结束本层循环,继续下一次循环
例程:使用一个循环打印0~4,6~9
1 #include 2 3 int main(void) 4 { 5 int i; 6 for(i=0;i 7 { 8 if(i==5) 9 { 10 continue; 11 } 12 printf("%d ",i); 13 } 14 printf("\n"); 15 return 0; 16 }
return
结束函数并且返回值给上一级函数
例程:写一个加法函数,实现任意两个整数相加
1 #include 2 3 int add(int a,int b); 4 5 int main(void) 6 { 7 int a,b,sum = 0; 8 printf("请输入两个整数,用空格隔开\n"); 9 scanf("%d %d",&a,&b); 10 sum = add(a,b); 11 printf("%d+%d = %d\n",a,b,sum); 12 return 0; 13 } 14 15 int add(int a,int b) 16 { 17 return (a+b); 18 }
goto
程序跳转到指定位置执行
例程:输入学生成绩,显示等级,若输入的成绩错误,则提示错误信息,并且重新输入。
1 #include 2 3 int main(void) 4 { 5 float score = 0; 6 start: 7 printf("请输入学生成绩\n"); 8 scanf("%f",&score); 9 if(score100) 10 { 11 printf("输入错误,请重新输入!!\n"); 12 goto start; 13 } 14 else if(score>=90) 15 { 16 printf("优秀\n"); 17 } 18 else if(score>=80) 19 { 20 printf("良好\n"); 21 } 22 else if(score>=70) 23 { 24 printf("中等\n"); 25 } 26 else if(score>=60) 27 { 28 printf("及格\n"); 29 } 30 else 31 { 32 printf("不及格\n"); 33 } 34 printf("程序结束\n"); 35 36 return 0; 37 }
使用标号指定文件位置,标号随便写,但是要遵守C语言命名规则,标号后边要加上:
程序错误分析
不能出现中文字符
scanf函数使用加&
int a; a = 3; int b; b = a;//c89标准(错误) c99标准(正确)
/*相同的程序,在Linux下的gcc编译器编译没有问题,在windows下的vc++编译器编译出错*/ 1 #include 2 3 int main(void) 4 { 5 int a; 6 a = 3; 7 int b; 8 b = a; 9 printf("a = %d,b = %d\n",a,b); 10 return 0; 11 }
示例
穷举法
标志位
循环嵌套
判断循环条件,如果满足,执行循环体,不满足结束循环