1 / 19
文档名称:

学习C语言百问.doc

格式:doc   大小:81KB   页数:19页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

学习C语言百问.doc

上传人:luciferios02 2017/7/24 文件大小:81 KB

下载得到文件列表

学习C语言百问.doc

相关文档

文档介绍

文档介绍:学****C语言百问
问题1:什么是分程序(复合语句)?
分程序是指一对大括号{}之间的一段C语言程序。每一个C函数的函数体都是包括在一对大括号中,switch语句所有取值情况的列举也是包括在一对大括号中,以此可以看出分程序在C语言中使用非常广泛,用户也可以根据需要自己组织分程序(更多的是程序功能的需要),它在C程序中的功能相当于一局部程序块,其间可以定义变量,这种变量称为局部变量,只能定义在分程序的开始部分,变量的有效范围是分程序内部。如果局部变量与分程序以外的变量重名,在本分程序内部,该局部变量对外面的同名变量进行屏蔽,另外提示一点的是,一般不用分程序来保存变量,例如:
#include <>
int test=5;
void main( )
{
int test=10;
void fun1( );/*-----5----*/
fun1( );
printf(“2--%d\n”,test);/*-----10-----*/
{int test=15;
printf(“3--%d\n”,test);/*-----15-----*/
}
}
void fun1( )
{
printf(“1--%d\n”,test);
}
问题2:什么情况下用switch语句比if语句的多重嵌套更适合?
如果有两个以上基于同一个数字型变量(整型变量,字符型变量,枚举类型变量等)的条件表达式,尤其是对于作为判断的数字型变量的取值很有限,且对每一个不同的取值,其所做的处理也不一样的情况,最好使用一条switch语句,这样更易于阅读各维护。这里有两点需要注意就是,第一就是用于作为判断条件的变量一定要是数字型的,另一点就是所有的判断条件都是基于同一个数字变量,而不是多个变量。
例如:有如左下的if嵌套更适合用右下的switch语句表达。
char grade;
if(grade= =’A’) printf(“85~100\n”);
else if(grade= =’B’) printf(“70~84\n”);
else if(grade= =’C’) pritnf(“60~69\n”);
else if(grade= =’D’) printf(“<60\n”);
else printf(“error\n”);
switch(grade)
{case ‘A’: printf(“85~100\n”);break;
case ‘B’: printf(“70~84\n”);break;
case ‘C’: printf(“60~69\n”);break;
case ‘D’: printf(“<60\n”);break;
default: printf(“error”);break;}
问题3:switch语句必须包含default分支吗?
回答是否定的。但是为了逻辑上的严密性,一般应写default分支,这样在出现所有的case子句以外的取值时才不至于难以确定其错误所在,例如象上面的例子,如省略了后面的default子句,而用户如输入的是除‘A’,‘B’,‘C’,‘D’以外的其他字符时,程序不做出任何反应,而这本身是一种非法输入。
问题4:switch语句的最后一个分支可以不要break语句吗?每一个case分支后面是否必须要加break语句?
两者的答案都是“不”。大家知道,在switch 语句中,如果作为条件判断的数字表达式的值与某一个case后面的取值相等,则以该case分支语句作为入口顺序执行后续语句,如遇上break语句,则结束switch语句的处理,转而处理switch语句的后续语句,根据这个道理显然最后一个分支中的break语句可以省略,因为无论是否有break语句,此时都会结束switch语句的处理。
问题5:怎样判断循环是否提前结束?在多循环条件下,又如何知道是因为哪个条件不满足而使循环提前结束的?
解决这种问题通常是在循环语句的后面再用一个或多个判断语句检查循环变量的取值,从而确知循环是正常结束还是提前结束,如循环条件是由多个循环变量构成,则可以对各个变量分别进行判断。例如:
#include <>
void isprime(int num)
{ int s;
for(s=2;s<=sqrt(num);s++)
if(num % s = =0) flag=0;
if(s>sqrt(num)) return(1);
else return(0);
}
以上的例子用于判断给定的数是否为素数,函数中的循环语句正常结束是当s的取值大于给定数的平方根,但只要该数能够被某一个大于1而小于其平