上一题下一题
跳转到
 
 
  世界如此多姿,发展如此迅速,窥一斑未必还能知全豹。但正如万花筒一样,每一个管窥都色彩斑斓。  
 
 
  知识通道 | 学习首页 | 教师首页 | PK首页 | 知识创造首页 | 企业首页 | 登录
 
本文对应知识领域
实验四 选择结构程序设计
作者:未知 申领版权
2012年01月24日 共有 1118 次访问 【添加到收藏夹】 【我要附加题目
受欢迎度:

    实验四 选择结构程序设计
    【目的与要求】
          1.了解C语句表示逻辑量的方法(以0代表“假”以1代表“真”);
           2.学会正确使用逻辑运算符和逻辑表达式;
           3. 熟练掌握if语句和switch语句。
    【上机内容】
    【一般示例】
    【例1】 已知三个数a,b,c,找出最大值放于max中。
    分析:由已知可得在变量定义时定义四个变量a,b,c和max,a,b,c是任意输入的三个数,max是用来存放结果最大值的。第一次比较a和b,把大数存入max中,因a,b都可能是大值,所以用if语句中if——else 形式。第二次比较max和c,把最大数存入max中,用if语句的第一种形式if形式。Max即为a,b,c中的最大值。
    #include "stdio.h"
    main()
    {    
    int a,b,c,max;          /*定义四个整型变量*/
    scanf(“a=%d,b=%d,c=%d”,&a,&b,&c);
    if (a>=b)
    max=a;              /*a>=b*/
    else
      max=b;              /*a<b*/
    if (c>max)
      max=c;              /*c是最大值*/
    printf("max=%d",max);
    }
      若输入下列数据,分析程序的执行顺序并写出运行结果
    (1)a=1,b=2,c=3   
    (2)a=2,b=1,c=3 
    (3)a=3,b=2,c=1 
    (4)a=3,b=1,c=2  
    (5)a=3,b=3,c=2 
    (6)a=2,b=1,c=2 
    【例2】输入某学生的成绩,经处理后给出学生的等级,等级分类如下:
           90分以上(包括90): A
           80至90分(包括80):B
           70至80分(包括70):C
           60至70分(包括60):D
           60分以下:           E
    方法一:(用if嵌套`)
    分析:
    由题意知如果某学生成绩在90分以上,等级为A;否则,如果成绩大于80分,等级为B;否则,如果成绩大于70分,等级为C;否则,如果成绩大于60分为D;否则,如果成绩小于60分,等级为E;但当我们输入成绩时也可能输错,出现小于0或大于100,这时也要做处理,输出出错信息。因此,再用if嵌套前,应先判断输入的成绩是否在0~100之间。
    #include"stdio.h"
    main()
    {
     int  score;
     char  grade;
     printf("\nplease input a student score:");
     scanf("%f",&score);
     if(score>100||score<0)
      printf("\ninput error!");
     else
      { if(score>=90)
        grade='A';
       else
        { if(score>=80)
          grade='B';
         else
          {if(score>=70)
                grade='C';
           else
              { if(score>=60)
                grade='D';
               else grade='E';
              }
          }
        }
      printf("\nthe student grade:%c",grade);
     }
    }      
    输入测试数据,调试程序。测试数据要覆盖所有路径,注意临界值,例如此题中得100分,60分,0分以及小于0和大于100的数据。
     
    方法二:用switch语句
    分析:
    switch 语句是用于处理多分支的语句。注意,case后的表达式必须是一个常量表达式,所以在以用switch语句之前,必须把0~100之间的成绩分别化成相关的常量。所有A(除100以外),B,C,D类的成绩的共同特点是十位数相同,此外都是E类。则由此可得把score除十取整,化为相应的常数。
    #include"stdio.h"
    main()
    {
    int g,s;
    char ch;
    printf("\ninput a student grade:");
    scanf("%d",&g);
    s=g/10;
    if(s<0||s>10)
     printf("\ninput error!");
    else
        { switch (s)
        { case 10:
         case 9:  ch='A';  break;
         case 8:  ch='B';  break;
         case 7:  ch='C';  break;
         case 6:  ch='D';  break;
         default: ch='E';
         }
        printf("\nthe student scort:%c",ch);
     }
    }                       
    输入测试数据,同方法一一样调试程序并写出结果。
    【例3】有一函数:

    
y=  
x x<1
2x-1 1=<x<10
3x-11 x>=10

用scanf函数输入x的值(分别为x<1,1~10,>=10三种情况),求y值。
    分析:y是一个分段表达式。要根据x的不同区间来计算y的值。所以应使用If语句。
    main()
    {
    int x,y;
    printf(“please input x :”);
    scanf(“%d”,&x);
    if (x<1)
    {
    y=x;
    printf(“y=%d\n”,y);
    }
    else if (x<10)
           {
             y=2*x-1;
    printf(“y=%d\n”,y);
    }
    else
    {
    y=3*x-11;
    printf(“y=%d\n”,y);
    }
     
    【作业】
    1.       c语言如何表示“真”与“假”?系统如何判断一个量的“真”与“假”?
    2.       写出下面各逻辑表达式的值。设a=3,b=4,c=5
    (1)    a b>c&&b= =c
    (2)    a||b c&&b-c
    (3)    !(a>b)&&!c||1
    (4)    !(x=a)&&(y=b)&&0
    (5)    !(a b) c-1&&b c/2
    3.       有3个整数a、b、c,由键盘输入,输出其中最大的数。
    4.有一函数:

    
y=  
x x<1
2x-1 1=<x<10
3x-11 x>=10

写一程序,输入x, 输出y。
    5.给出一百分制成绩,要求输出成绩等级A、B、C、D、E。90分以上为A,80~89为B,  70~79分为C,60~69分为D,60分以下为E。
    6. 给一个不多于5位的正整数,要求:
    a.       求出它是几位数;
    b.       分别打出每一位数字;
    c.       按逆序打出各位数字,例如原数为321,应输出123。
    7.输入4个整数,要求按由小到大的顺序输出。

    

 

相关新闻

成为运营大牛(数据二):数据使用的三测
成为运营大牛(数据一):运营中的那些数据
成为运营大牛(结构四):一图览运营
成为运营大牛(结构三):一张图看清活动运营
成为运营大牛(结构二):一张图看清内容运营
成为运营大牛(结构一): 运营的基础结构
选择的困惑
选择 (3)
选择 (2)
选择 (1)

您可能对这些感兴趣  

第7讲 综合分析BIM在运用与推广中的障碍问题
考核学生质量的困难
日本福岛核电站事故初步分析
论科技异化与科技人化
中国科技计划项目管理现状与对策
财政科技资金的审计重点和内容
软科学研究机构在政府决策中的功效、困境及对策研究
打造超级DOS系统(下)
DOS命令基础应用(6)
打造超级DOS系统(上)

题目筛选器
日期:
类型:
状态:
得分: <=
分类:
作者:
职业:
关键字:
搜索

 
 
 
  焦点事件
 
  知识体系
 
  职业列表
 
 
  最热文章
 
 
  最多引用文章
 
 
  最新文章
 
 
 
 
网站介绍 | 广告服务 | 招聘信息 | 保护隐私权 | 免责条款 | 法律顾问 | 意见反馈
版权所有 不得转载
沪ICP备 10203777 号 联系电话:021-54428255
  帮助提示    
《我的太学》是一种全新的应用,您在操作中遇到疑问或者问题,请拨打电话13564659895,15921448526。
《我的太学》