大学c语言设计,求解释程序段

kuaidi.ping-jia.net  作者:佚名   更新日期:2024-08-01
大学c语言设计,这个程序段如何理解


?表达式

#include
void main()
{ float f=555.5678,ff;
int a[10]={ 0,1,2,3,4,5,6,7,8,9 },b[10],i;
FILE *fp;
if ( fp=fopen("TEXT.dat","wb+") )
{ fwrite(&f,sizeof(float),1,fp);
for ( i=0;i<10;i++ ) fwrite(&a[i],sizeof(int),1,fp);
fclose(fp);
} else printf("无法建立文件。
"); goto ERROREND;
if ( fp=fopen("TEXT.dat","rb") )
{ fread(&ff,sizeof(float),1,fp);
for ( i=0;i<10;i++ ) fread(&b[i],sizeof(int),1,fp);
fclose(fp);
} else printf("无法打开文件。
"); goto ERROREND;
printf("%.2f ",ff); for ( i=0;i<10;i++ ) printf("%d ",b[i]); printf("
");
ERROREND:;
}

C语言提供了一种用于多分支选择的switch语句, 其一般形式为:
switch(表达式){
case 常量表达式1: 语句1;
case 常量表达式2: 语句2;

case 常量表达式n: 语句n;
default: 语句n+1;
}
其语义是:计算表达式的值。 并逐个与其后的常量表达式值相比较,当表达式的值与某个常量表达式的值相等时, 即执行其后的语句,然后不再进行判断(然后不再进行判断!!),继续执行后面所有case后的语句。如表达式的值与所有case后的常量表达式均不相同时,则执行default后的语句。
所以,当x=2时,程序就执行了case 2 后面以及default 后面的二个printf语句。而当x=1时,程序就执行了case 1 、case 2 后面以及default 后面的三个printf语句。

这恰恰反应了switch语句的一个特点。在switch语句中,“case 常量表达式”只相当于一个语句标号, 表达式的值和某标号相等则转向该标号执行,但不能在执行完该标号的语句后自动跳出整个switch 语句,所以出现了继续执行所有后面case语句的情况。 这是与前面介绍的if语句完全不同的,应特别注意。

为了避免上述情况,C语言还提供了一种break语句,专用于跳出switch语句,break 语句只有关键字break,没有参数。修改例题的程序,在每一case语句之后增加break 语句, 使每一次执行之后均可跳出switch语句,从而就可以避免输出不应有的结果。

  • 谁能解释一段C语言程序啊。。。希望详细解释 看不懂呢
    答:学C语言最重要的是能看懂程序,三种语句for while if 要学会怎么用,区别。。然后再记得一些常用的标识符的含义,就差不多了。。其他还有一些C语言的语法规定就很繁琐,看多了就会了,多看课本,看程序,争取每个程序都能理解。。。有些程序不懂就用VC6.0运行看看是什么结果。。。这东西玩久了就会...
  • 求高手帮忙解释一段C语言程序代码
    答:在union里面所有的成员公用一个地址,比如说你定义的union对象是s,那么s.a,s.b,s.c 他们的地址都是一样的。在说int, long, char的作用,这个说白了就是你的地址+1操作,实际偏移的量,比如说int,如果你s.a+1那么他偏移4个字节,如果(&s.b)+1那么他实际便宜4个字节,而s.c+1则实际...
  • 谁能给我解释这段c语言程序
    答:首先的首先……少包含一个头文件"stdlib.h"malloc的定义在这个头文件里~~正题:分析程序,通常两方面入手,变量含义,函数功能。首先,变量含义:int **a,length,k=0,l=0,i,j,number=0,turn[4]={-1,0,1,0};分别为:a:一个指向二维数组的指针,用来保存需要填充的所有整数。length:输入的...
  • C语言课程设计求解释。。。
    答:scanf(" %c",&ch);} printf("\n学生信息如下:");sort(stu,count); //调用排序函数进行排序 display(stu,count); //显示排序后的结构 stat(stu,count); //调用分析函数显示分析结果 system("PAUSE"); //我这里加了一个暂停语句,可以把结果停留在输出窗口观看 } struct student...
  • 求高手帮忙注释一段c语言程序
    答:");if (getch()=='y')deletebyphone();return;return;} else if (findmark!=0){ printf("\t\t\t没有重名信息");printf("\t\t\t没有该用户的纪录");printf("\t\t\t是否继续删除?(y/n)");if (getch()=='y')deletebyphone();return;return;} } dele(){ char choic;...
  • 一段C语言程序解读,求完整
    答:这题目我见过,不过粘贴时好像被“吃掉”了+号,照此程序的话会死循环的。中间部分应该是:void func1(int i){ printf("%c",st[i]);if(i<3){ i+=2; //此处有变化 func2(i);} } void func2(int i){ printf("%c",st[i]);if(i<3){ i+=2; //此处有变化 func1(i)...
  • 求c语言高手详解一段程序
    答:define执行的是简单替换,以你的程序为例吧 s=f(a+1);把参数a+1代替参数x,结果得到 s=f(a+1)=a+1*a+1*a+1=3+1*3+1*3+1=10 s=f((a+1))=(a+1)*(a+1)*(a+1)=4*4*4=64;也就是用(a+1)去替换x
  • 大学c语言设计,这个程序段如何理解
    答:?表达式
  • C语言问题,能否解释下这段程序?能否详细解释下,新手
    答:这段代码难在递归上 int function(int x, int y) { int ret;if (x <= 0){ printf("%d %d x<=0返回\n",x,y);return 1;} else if (y <= 0){ printf("%d %d y<=0返回\n",x,y);return 1;} ret=function(x - 1, y) + function(x, y - 1);printf("%d %d ...
  • 一段C语言程序,求结果求解析。
    答:好吧,你们老师和我一样比较无聊,喜欢show自己的语法有多好,但是啊,很明显他没有实际编译过这个代码啊,有错啊(虽然原理是很正确的)应该是main(){char *a="main(){char *a=%c%s%c;printf(a,34,a,34);}"; printf(a,34,a,34);} 写作一行,避免换行导致的error 解释起来也很简单指针a是...