单片机C语言编程实践
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

3.7 实践3

3.7.1 实验任务

1.会使用关系表达式和逻辑表达式。

2.会使用scanf语句和printf语句。

3.会熟练使用if语句和switch语句。

3.7.2 实践设备要求

装有Keil C51 uvision3集成开发环境的计算机。

3.7.3 实践步骤

1.下面程序利用条件语句,比较3个数的大小,分析怎样修改求出3个数中的最小值?Keil C51下仿真验证。

      main()
      { int a,b,c,max,t;
        printf("input a,b,c: ");
        scanf("%d,%d, %d",&a,&b,&c);
        t=(a>b)? a : b;
        max=(t>c)?t : c;
        printf("max=%d",max);
      }

2.下面程序为输入3个整数,按值从大到小的顺序输出它们。先运行程序,再将它改为能够对4个整数进行由小到大的顺序输出。

      main()
      { int x, y, z, temp;
        printf("Enter x, y, z.\n");
        scanf("%d%d%d", &x, &y, &z);
        if (x <y) { temp = x; x = y; y = temp;}  // 使x >= y
        if (x <z) { temp = x; x = z; z = temp;}  // 使x >= z
        if (y <z) { temp = y; y = z; z = temp;}  // 使y >= z
        printf("%d\t%d\t%d\n", x, y, z);
      }

3.分析下面程序的执行结果,然后再上机运行,结果是否一致。

      main()
      {  int x,y=1,z;
        if(y!=0) x=5;
        printf("x=%d\t",x);
        if(y==0) x=3;
        else x=5;
        printf("x=%d\t\n",x);
        x=1;
        if(z<0)
        if(y>0) x=3;
        else x=5;
        printf("x=%d\t\n",x);
        if(z=y<0) x=3;
        else if(y==0) x=5;
        else x=7;
        printf("x=%d\t",x);
        printf("z=%d\t\n",z);
        if(x=z=y) x=3;
        printf("x=%d\t",x);
        printf("z=%d\t\n",z);
      }

4.下面程序求函数输出值,试全部用if重新遍写,Keil C51下仿真验证。

      main()
      { int x,y,t;
        printf("input x=:");
        scanf("%d",&x);
        if(x<10) t=0;
        if(x>=100) t=10;
        else t=x/10;
        switch(t){
          case 0: y=x; break;
          case 1:
          case 2:
          case 3:
          case 4: y=3*x–2; break;
          case 5:
          case 6:
          case 7:
          case 8:
          case 9: y=4*x+1; break;
          case 10: y=5*x;
              }
        printf("y=%d",y);
      }

成绩评定