C语言第五次上机实验

目标:
1.拾遗补缺;

2.了解C语言及其语句的更多细节.

任务1:分析下面的例子,给出z和w的计算值、说明为什么?

#include<stdio.h>
int main(void)
{
	int z,w,x=2,y=5;
	z=(x+3,y++,x++);
	w=(x++,x+3,x+7);
	printf("%d\n%d\n",z,w);
}


程序运行效果截图:

C语言第五次上机实验_第1张图片

z=2    w=11

逗号运算是所有运算中最低级的,以最后的表达式的值作为该逗号表达式的值。

第一个结果为2,即x++为x=x,x=x+1,所以输出2.

由于第一个x=3,在x=x+1,所以最后为4+7=11,即为11。



------------------------------------任务分割线------------------------------------

任务2:自行设计一个程序,程序须运用switch语句。要求有一定技术含量!

我的程序:

#include<stdio.h>
#include<stdlib.h>
#include<time.h>
int main(void)
{
    char answer='y';
    while(answer=='y')
    {
     answer='n';
     int sum=0;
    while(1)
    {
        int a,b;
        printf("输入一个数(1-6):\n");
        scanf("%d",&a);
        srand(time(0));
        b=rand()%6+1;
        if(a==b)break;
        int s1=rand()%6+1;
        int s2=rand()%6+1;
        int s3=rand()%6+1;
        int s4=rand()%6+1;
        int s5=rand()%6+1;
		int s6=rand()%6+1;


        switch(a)
       {
         case 1:printf("%d分!\n",s1);sum+=s1;break;
         case 2:printf("%d分!\n",s2);sum+=s2;break;
         case 3:printf("%d分!\n",s3);sum+=s3;break;
         case 4:printf("%d分!\n",s4);sum+=s4;break;
         case 5:printf("%d分!\n",s5);sum+=s5;break;
         case 6:printf("%d分!\n",s6);sum+=s6;break;
         default:printf("输入错误!\n");break;
       }
    }
    printf("遇到炸弹!!\nGAME OVER   \n");
    printf("总分=%d\n",sum);
    printf("again?\n <y/n>");
    scanf(" %c",&answer);
    }
	return 0;
}


程序运行效果截图:

C语言第五次上机实验_第2张图片

你可能感兴趣的:(c)