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;
}
C语言回顾 二 BOOL 关系运算符 条件运算符 enum
最新推荐文章于 2024-01-19 13:21:02 发布