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

    C 程序设计基础之三
    关系运算符和表达式
    在程序中经常需要比较两个量的大小关系, 以决定程序下一步的工作。比较两个量的运算符称为关系运算符。 在C语言中有以下关系运算符:
    < 小于
    <= 小于或等于
    > 大于
    >= 大于或等于
    == 等于
    != 不等于
    关系运算符都是双目运算符,其结合性均为左结合。 关系运算符的优先级低于算术运算符,高于赋值运算符。 在六个关系运算符中,<,<=,>,>=的优先级相同,高于==和!=,==和!=的优先级相同。
    关系表达式
    关系表达式的一般形式为: 表达式 关系运算符 表达式 例如:a b>c-d,x>3/2,'a' 1(b>c),a!=(c==d)等。关系表达式的值是“真”和“假”,用“1”和“0”表示。
    如: 5>0的值为“真”,即为1。(a=3)>(b=5)由于3>5不成立,故其值为假,即为0。
    void main(){
    char c='k';
    int i=1,j=2,k=3;
    float x=3e 5,y=0.85;
    printf("%d,%d\n",'a' 5=k 1);
    printf("%d,%d\n",1  printf("%d,%d\n",i j k==-2*j,k==j==i 5);
    }
    char c='k';
    int i=1,j=2,k=3;
    float x=3e 5,y=0.85;
    printf("%d,%d\n",'a' 5=k 1);
    printf("%d,%d\n",1printf("%d,%d\n",i j k==-2*j,k==j==i 5);
    在本例中求出了各种关系运算符的值。 字符变量是以它对应的ASCII码参与运算的。对于含多个关系运算符的表达式,如k==j==i 5,根据运算符的左结合性,先计算k==j,该式不成立,其值为0,再计算0==i 5,也不成立,故表达式值为0。
    逻辑运算符和表达式
    逻辑运算符C语言中提供了三种逻辑运算符 && 与运算  || 或运算  ! 非运算 与运算符&&和或运算符||均为双目运算符。具有左结合性。 非运算符!为单目运算符,具有右结合性。逻辑运算符和其它运算符优先级的关系可表示如下:
    按照运算符的优先顺序可以得出:
    a>b && c>d等价于(a>b) && (c>d)
    !b==c||d    a b>c && x yc) && ((x y)
    
    switch语句
    C语言还提供了另一种用于多分支选择的switch语句, 其一般形式为:
    switch(表达式){
    case常量表达式1: 语句1;
    case常量表达式2: 语句2;
    …
    case常量表达式n: 语句n;
    default : 语句n 1;
    } 
    其语义是:计算表达式的值。 并逐个与其后的常量表达式值相比较,当表达式的值与某个常量表达式的值相等时, 即执行其后的语句,然后不再进行判断,继续执行后面所有case后的语句。 如表达式的值与所有case后的常量表达式均不相同时,则执行default后的语句。
    void main(){
    int a;
    printf("input integer number: ");
    scanf("%d",&a);
    switch (a){
    case 1:printf("Monday\n");
    case 2:printf("Tuesday\n");
    case 3:printf("Wednesday\n");
    case 4:printf("Thursday\n");
    case 5:printf("Friday\n");
    case 6:printf("Saturday\n");
    case 7:printf("Sunday\n");
    default:printf("error\n");
    }  
    }
    本程序是要求输入一个数字,输出一个英文单词。但是当输入3之后,却执行了case3以及以后的所有语句,输出了Wednesday 及以后的所有单词。这当然是不希望的。为什么会出现这种情况呢?这恰恰反应了switch语句的一个特点。在switch语句中,“case 常量表达式”只相当于一个语句标号, 表达式的值和某标号相等则转向该标号执行,但不能在执行完该标号的语句后自动跳出整个switch 语句,所以出现了继续执行所有后面case语句的情况。 这是与前面介绍的if语句完全不同的,应特别注意。为了避免上述情况, C语言还提供了一种break语句,专用于跳出switch语句,break 语句只有关键字break,没有参数。在后面还将详细介绍。修改例题的程序,在每一case语句之后增加break 语句, 使每一次执行之后均可跳出switch语句,从而避免输出不应有的结果。
    void main(){
    int a;
    printf("input integer number: ");
    scanf("%d",&a);
    switch (a){
    case 1:printf("Monday\n");break;
    case 2:printf("Tuesday\n"); break;
    case 3:printf("Wednesday\n");break;
    case 4:printf("Thursday\n");break;
    case 5:printf("Friday\n");break;
    case 6:printf("Saturday\n");break;
    case 7:printf("Sunday\n");break;
    default:printf("error\n");
    }
    }
    在使用switch语句时还应注意以下几点:
    1.在case后的各常量表达式的值不能相同,否则会出现错误。
    2.在case后,允许有多个语句,可以不用{}括起来。
    3.各case和default子句的先后顺序可以变动,而不会影响程序执行结果。
    4.default子句可以省略不用。程序举例
    输入三个整数,输出最大数和最小数。
    void main(){
    int a,b,c,max,min;
    printf("input three numbers: ");
    scanf("%d%d%d",&a,&b,&c);
    if(a>b)
    {max=a;min=b;}
    else
    {max=b;min=a;}
    if(max    max=c;
    else
    if(min>c)
    min=c;
    printf("max=%d\nmin=%d",max,min);
    }
    本程序中,首先比较输入的a,b的大小,并把大数装入max, 小数装入min中,然后再与c比较,若max小于c,则把c赋予max;如果c小于min,则把c赋予min。因此max内总是最大数,而min内总是最小数。最后输出max和min的值即可。 计算器程序。用户输入运算数和四则运算符, 输出计算结果。
    void main(){
    float a,b,s;
    char c;
    printf("input expression: a (-,*,/)b \n");
    scanf("%f%c%f",&a,&c,&b);
    switch(c){
    case ' ': printf("%f\n",a b);break;
    case '-': printf("%f\n",a-b);break;
    case '*': printf("%f\n",a*b);break;
    case '/': printf("%f\n",a/b);break;
    default: printf("input error\n");
    }
    }
    float a,b,s;
    char c;
    printf("input expression: a (-,*,/)b \n");
    scanf("%f%c%f",&a,&c,&b);
    switch(c){
    case ' ': printf("%f\n",a b);break;
    case '-': printf("%f\n",a-b);break;
    case '*': printf("%f\n",a*b);break;
    case '/': printf("%f\n",a/b);break;
    default: printf("input error\n");
    }
    本例可用于四则运算求值。switch语句用于判断运算符, 然后输出运算值。当输入运算符不是 ,-,*,/时给出错误提示。
    
    

 

相关新闻

testtest
上善制度的炼成
新时代呼唤管理理论创新——大卫�梯斯与动态能力理论
创业的不变逻辑
创新管理需要回答的5个问题
十一、弥离
十、转院
九、生机
八、传染
七、求血

您可能对这些感兴趣  

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

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

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