背景
现在进入C语言的控制结构,这篇完成后,C语言的基础操作也就算完结了。控制语句主要分为选择控制语句和循环控制语句。
1、选择控制结构
选择控制语句主要包括if else 结构,以及switch结构。这里我就不再多说,下面点出一些容易出错的地方。
-
if—else
-
一个if子句后面可以没有else子句(构成单分支if语句),也可以有else子句(构成双分支if语句),但所有的if-else if语句无论有几个else if子句都应该以else子句结尾(建议)。
-
浮点判断
-
switch
switch(表达式)
{
case 值1:语句1;【break; 】
case 值2:语句2;【break; 】
[default:语句;【break;】]
}
注意switch后面圆括号内的“表达式”的值只能是整数或字符值,不允许是实数和布尔值。
同一个switch语句的所有case的“值”必须互不相同
2、面试例题
说出输出结果
#include <stdio.h>
int main()
{
int a,b,c,abc=0;
a=b=c=40;
if(c)
{
int abc;
abc=a*b+c;
}
printf("%d,%d\n",abc,c);
return 0;
}
注意在符合语句中定义的abc变量(不同于前面的abc变量)的作用域仅仅为该符合语句,当退出复合语句后,当退出复合语句后,abc指的是前面值为0的abc变量,所以程序的输出为0,40
3、循环控制语句
循环控制语句主要包括有while、do while 和for语句
do while语句是先执行循环体,然后再判断“表达式”的值,所以无论一开始“表达式”的值是真是假,都至少执行循环体一次,这一点和while语句是有区别的。因此while语句比do while语句更加高效。
for语句一般格式如下:
for(表达式1;表达式2;表达式3)
语句;
表达式1表示给变量赋予初值;可以省略;
表达式2表示条件满足则继续执行;可以省略,在语句里面用break退出;
表达式3表示变量的变化;可以省略;
break能够英语循环语句和switch语句中,它跳出所在的那一层循环语句或者switch语句
continue只能用于循环语句中,它跳出所在的那一轮循环,继续下一轮循环。
4、面试题
以下程序的输出的是()
#include<stdio.h>
#define A 100
void main()
{
int i=0,sum=0;
do
{
if(i==(i/2)*2) continue;
sum+=i;
}while(++i<A);
printf("%d\nn",sum);
}
解释:看到这种题,一定要灵活一点,看看他想要输出的结果,而不是像计算器一样,一步一步地去找规律
很明显,此题是为了求sum为1~100中的所有奇数之和,即sum=(1+99)*50/2=2500