C语言回顾 二 BOOL 关系运算符 条件运算符 enum

来源:互联网 发布:Linux中find的exec 编辑:程序博客网 时间:2024/06/05 20:15
BOOL类型:表示非真即假,用于判断,主要应用在分支结构中,表示的的值是YES NO,进行打印输出的时候YES的值会替换成1,NO的值会替换成0;关系运算符 >  >= < <= == !=主要用于比较运算,比较的结果只有真假两种情况,结果值用BOOL类型变量存储;注意: 判断两个数是否相等,用==(双等号);    BOOL l = 2/3;    printf("%d\n",l);    BOOL l1 = 4 >=6;//l1存放的是表达式4》=6的结果    BOOL l2 = 2 !=2;//l2存放的是表达式2!=2的结果    printf("%d,%d\n",l1,l2);  逻辑运算符   &&逻辑与  ||逻辑或   !逻辑非    逻辑与&&两边同时为真时为整个表达式的值为真,否则为假;    BOOL l = 2 < 4 && 3 >+ 5;    printf("%d\n",l);    短路现象 前面的表达式为假,后面的不执行;    int a = 3;    BOOL l1 = a < 5 && a++;    printf("a=%d,l1=%d",a,l1);       逻辑或 || 注意: 两边表达式都为假的时候,整个表达式为假;    BOOL l = 2 < 4 || 4 == 6;    printf("l=%d\n",l);    短路现象;前一个人表达式的值为真,后一个表达式不执行;    int a = 3;    BOOL l1 = a > 1 || --a;    printf("a=%d,l1=%d",a,l1);    逻辑非 !表达式的值取反,    BOOL l = !(3>5);    printf("%d\n",l);    int a = 3;    BOOL  l1 =!(a++ || --a);    printf("%d, l1=%d\n",a,l1);    if 语句的三种形式     if (条件表达式) {    语句;     } 语句2 ;        char a = '0';    printf("请输入一个字符:");    scanf("%c",&a);    if ('m'==a) {        printf("输出为男性");}   判断一年是否为闰年    int year = 0;    printf("请输入一个年份:");    scanf("%d",&year);    if(year%400==0||(year%4==0 && year%100!=0)){        printf("是闰年");    }else {        printf("不是闰年");    }   输入一个字符,    char a = '0';    printf("请输入一个字符:");    scanf("%c",&a);    if (a >= 48 && a <= 57) {        printf("This is digitai");    }else if (a >= 65 && a <= 90){        printf("This is capital letter");    }else if (a >= 97 && a <= 122){        printf("This is letter");    }else        printf("other");          条件运算符(三目运算符)    条件表达式 ? 表达式1 :表达式2    如果条件表达式为真,整个表达式的值为表达式1的值;    如果条件表达式为假,整个表达式的值为表达式2的值;    int a = 3, b = 5;    int c = a < b ? a++ : b;    printf("a=%d,b=%d,c=%d\n",a,b,c); switch...case    break用于switch。。case中结束某个case,然后执行switch之外的语句;    switch语句和if-else级联式比较,switch语句往往比级联        是更容易阅读,更直观;    switch——开关, case——情况,  开关决定发生的情况;    case后面的标签只能是整型常量或者整型常量的表达式,不能用变量作为case的标签;    整个default语句都可以舍掉;    多个case可以运行一个语句块;    case中定义变量需要加{};    int a = 0;    printf("请输入一数值:");    scanf("%d",&a);    switch (a) {        case 1:            printf("case1\n");            break;        case 2:            printf("case2\n");            break;        case 3:            printf("case3\n");            break;        default:            printf("default\n");            break;           } 枚举类型 enum 枚举名{枚举值表};    类型 enum 枚举名    enum season{        spring,// 默认值为0,后面一次加1        summer = 6,        autumn,        winter    };//分号不要丢    //定义一个变量    int a = 0;    //提示输入一个数    printf("请输入一个数字");      scanf("%d",&a);    //switch  (case对应的是season的枚举值)    switch (a) {        case spring:            printf("出去春游\n");            break;        case summer:            printf("出去游泳\n");            break;        case autumn:            printf("去爬香山\n");            break;        case winter:            printf("去滑雪\n");            break;        default:            printf("别想了,先敲代码吧");            break; }    //从控制台输入1——7的数,输出星期一到星期日(借助枚举类型)    enum week{        monday=1,        tuesday,        wedensday,        thursday,        friday,        staturday,        sunday    };    int a = 0;    printf("从控制台输入1--7的数:");    scanf("%d",&a);    switch (a) {        case monday:            printf("星期一"); break;        case tuesday:            printf("星期二"); break;        case wedensday:            printf("星期三"); break;        case thursday:            printf("星期四"); break;        case friday:            printf("星期五"); break;        case staturday:            printf("星期六"); break;        case sunday:            printf("星期日"); break;        default:            printf("不是正确的日期"); break;}.编写整型值数组排序程序(冒泡排序、选择排序、快速排序-¬-¬升序) int a[] = {3,-¬9,32,77,63,-¬24,14,0,21,45};选择排序    int a[] = {3, -9, 32, 77, 63, -24, 14, 0, 21, 45};    for (int i = 0; i < 9; i++) {        int min = i;        for (int j = i + 1; j < 10; j++) {            if (a[min] > a[j]) {                min = j;}        }        if (min != i) {            int temp = a[i];            a[i] = a[min];            a[min] = temp;        }        printf("%d ", a[i]);    }printf("\n");6.输入生日,输出年龄(周岁)和星座    int c1 = 0, c2 = 0, c3 = 0;    int age = 0;    printf("输入你的生日:");    scanf("%d.%d.%d", &c1, &c2, &c3);    age = 2015 - c1;    printf("%d周岁\n", age);    if ((c2 == 3 && c3 >=21) || (c2 == 4 && c3 <= 19) ) {        printf("白羊座\n");    } else if ((c2 == 4 && c3 >= 20) || (c2 == 5 && c3 <= 20)) {        printf("金牛座\n");    } else if ((c2 == 5 && c3 >= 21) || (c2 == 6 && c3 <= 21)) {        printf("双子座\n");    } else if ((c2 == 6 && c3 >= 22) || (c2 == 7 && c3 <= 22)) {        printf("巨蟹座\n");    } else if ((c2 == 7 && c3 >= 23) || (c2 == 8 && c3 <= 22)) {        printf("狮子座\n");    } else if ((c2 == 8 && c3 >= 23) || (c2 == 9 && c3 <= 22)) {        printf("处女座\n");    } else if ((c2 == 9 && c3 >= 23) || (c2 == 10 && c3 <= 23)) {        printf("天秤座\n");    } else if ((c2 == 10 && c3 >= 24) || (c2 == 11 && c3 <= 22)) {        printf("天蝎座\n");    } else if ((c2 == 11 && c3 >= 23) || (c2 == 12 && c3 <= 21)) {        printf("射手座\n");    } else if ((c2 == 12 && c3 >= 22) || (c2 == 1 && c3 <= 19)) {        printf("摩羯座\n");    } else if ((c2 == 1 && c3 >= 20) || (c2 == 2 && c3 <= 18)) {        printf("水瓶座\n");    } else {        printf("双鱼座\n");7.查找ASCII码表,分别用%d输出字符,用%c输出整数      int e = 0;  char g = 'a';    printf("请输入一个字符:\n");    scanf("%c", &g);    printf("转化为整数:%d\n", g);    printf("请输入一个整数:");    scanf("%d", &e);    printf("转换为字符:%c\n",e);第一题  输入一个整数,判断奇偶,并输出“某某是奇数”或者“某某是偶数”    int a = 0;    printf("请输入一个整数:");    scanf("%d",&a);    if(0 == a%2){        printf("是偶数");    }  printf("是奇数");    第二题  输入一个数,判断符号。如果大于 0,输出“正数”;如果小于 0,输 出“负数”;如果等于 0,输出“0”     int a = 0;    printf("请输入一个数:");    scanf("%d",&a);    if (a>0) {        printf("整数");    } else  if(a<0){        printf("负数");    }else if (a==0){        printf("0");    }  第三题  编程判断3人中谁的年龄最大,并打印最大者的年龄    int age1 = 0, age2 = 0, age3 = 0;    int max = 0;    printf("输入三个年龄:");    scanf("%d %d %d",&age1,&age2,&age3);    if (age1>age2 && age1 > age3) {        max = age1;        printf("年龄最大:%d",max);    }else if (age2>age1 && age2> age3) {        max = age2;        printf("年龄最大:%d",max);    }else if (age3>age1 && age3> age2) {        max = age3;        printf("年龄最大:%d",max);    }第四题  铁路托运行李规定:行李重不超过 50 公斤的,托运费按 0.15 元每 公斤计算,如果超过 50 公斤,超出部分每公斤加收 0.1 元。编程实现上述功能   float a = 0;  float b = 0;    printf("输入重量:");    scanf("%f",&a);    if (a<=50) {        b = a * 0.15;        printf("收费:%.2f",b);    } else {        float c = 0;        float d = 0;        c = a - 50;        d = c * 0.25;        b = 50 * 0.15 + d;        printf("收费%.2f",b);    }第五题   写一段程序,输入 x,输出 y 值,如果x<1 的时候,y = x;如果1<=x<10 的时候,y=2x-1; 如果x>=10 的时候,y=3x-11。最后输出x,y的值。    int x = 0, y = 0;    printf("输入:");    scanf("%d%d",&x,&y);    if (x<1) {        x = x;        y = x;        printf("输出:x=%d y=%d",x,y);    } else if(x>=1&&x<10){        x = x;        y = 2 * x - 1;        printf("输出:x=%d y=%d",x,y);    }else if(x>=10){        y = 3 * x - 11;        printf("输出:x=%d y=%d",x,y);    }第六题  编制一个完成两个数四则运算程序。如:用户输入 34+56 则输出结 果为 90.00,要求运算结果保留 2 位有效小数,用户输入时将 2 个运算数以及运算符都输入,根据运算符求结果    float a = 0, b = 0;     char f = '0';     printf("请输入正确的运算符和运算数:");     scanf("%f%c%f",&a,&f,&b);     switch (f){     case '+':     printf("运算结果:%.2f",a+b);     break;     case '-':     printf("运算结果:%.2f",a-b);     break;     case '*':     printf("运算结果:%.2f",a*b);     break;     case '/':{     if (0 == b){     printf("除数不能为0");     }else     {printf("运算结果:%.2f",a/b);     }break;}     default:     printf("请输入正确的格式");     break;     }printf("\n");    //第七题  输入 3 个数,判断是否能构成三角形    float a = 0, b = 0, c = 0;    printf("输入三个数:");    scanf("%f%f%f",&a,&b,&c);    if (a+b>c && (a-b<c && a-c<b)) {        printf("能构成三角形");    }else if(a+c>b && (a-c<b && a-b<c)){        printf("能构成三角形");    }else if(b+c>a && (b-c<a && b-a<c)){        printf("能构成三角形");    }else  printf("不能构成三角形"); 第八题输入三个数,用两种方法打印出中间值(即第二大值) 提示:第一种,先求最大最小;第二种,只使用条件运算符    第一种 三目运算符    float a = 0, b = 0, c = 0;    float max = 0, min = 0, sum = 0, r = 0;    printf("请输入三个数:");    scanf("%f%f%f", &a, &b, &c);    max = a >= b ? a : b;    max = max >= c ? max : c;    min = a <= b ? a : b;    min = min <= c ? min : c;    sum = a + b + c;    r = sum - max - min;    printf("mid = %.2f\n", r);第二种  float a = 0, b = 0, c = 0;    printf("请输入三个数:");    scanf("%f%f%f", &a, &b, &c);    if ((a > b && a < c) || (a < b && a > c)) {        printf("%.2f为中间数\n", a);    } else if ((b > a && b < c) || (b < a && b > c )){        printf("%.2f为中间数\n", b);    } else { printf("%.2f为中间数\n", c);    第九题  使用for循环打印1-10    int i = 0;    for (i=1; i<11; i++) {        printf("%d",i);    }         return 0;}

0 0
原创粉丝点击