大家好,这里是争做图书馆扫地僧的小白。
个人主页:争做图书馆扫地僧的小白_-CSDN博客
目标:希望通过学习技术,期待着改变世界。
目录
前言
一、运算符练习
1 算术运算符
1.1 练习题:
2 自加自减运算符
3 关系运算符
4 逻辑运算符
4.1 逻辑与
4.2 逻辑或
4.3 逻辑非
5 位运算符
6 条件运算符
7 练习题
二、常用的输入输出的函数练习
1.putchar/getchar
1.1putchar
1.2getchar
2.puts/gets
2.1puts
2.2gets
二、分支控制语句的练习
1.练习题
2.练习题
3.练习题
前言
本系列的程序练习,是对应本人C语言专栏里面的学习笔记的相关程序,本篇将包含运算符的练习,含有算数运算符、自加自减运算符、关系运算符、逻辑运算符和位运算符、输入输出的函数练习以及分支控制语句的练习。具体的知识点请看C语言学习笔记(上)-CSDN博客,对应知识点使用本篇练习效果更好。
提示:以下是本篇文章正文内容,下面案例可供参考
一、运算符练习
1 算术运算符
注意: %(模除要求左右操作必须为整数)
#include <stdio.h>int main()
{int m = 5;int n = 2;printf("m + n = %d\n", m + n);printf("m - n = %d\n", m - n);printf("m * n = %d\n", m * n);printf("m / n = %lf\n", (double)m / (double)n);printf("m %% n = %d\n", m % n); double a = 5.11double b = 3.45;printf("a + b = %lf\n", a + b);printf("a - b = %lf\n", a - b);printf("a * b = %lf\n", a * b);printf("a / b = %lf\n", a / b);return 0;
}
1.1 练习题:
从终端输入1个三位数 [100,999]
输出 个位+十位+百位 求和的结果,
如:输入:135
则输出:1 + 3 + 5 = 9
代码如下,仅供参考:
#include <stdio.h>
int main(){int num = 0;printf("请输入一个三位数:");scanf("%d", &num);int g = num % 10;//个位int s = num % 100 / 10;//十位int b = num / 100;//百位printf("%d + %d + %d = %d\n", b, s, g, b+s+g);return 0;
}
2 自加自减运算符
注意:自增自减运算符,++在前和在后,结果是不一样的。
#include <stdio.h>int main()
{int a = 10;int b = ++a;printf("a = %d b = %d\n", a, b);//11 11int m = 10;int n = m++;printf("m = %d n = %d\n", m, n);//11 10return 0;
}
3 关系运算符
#include <stdio.h>int main()
{int a = 0;int b = 0;scanf("%d%d", &a, &b);if(a > b){printf("a>b\n");}else{printf("a<=b\n");}return 0;
}
4 逻辑运算符
4.1 逻辑与
#include <stdio.h>int main()
{int a = 0;int b = 0;scanf("%d%d", &a, &b);//逻辑与if(a >= 0 && b >= 0){printf("yes\n");}else{printf("no\n");}return 0;
}
4.2 逻辑或
#include <stdio.h>int main(int argc, const char *argv[])
{int a = 0;int b = 0;scanf("%d%d", &a, &b);//逻辑或if(a >= 0 || b >= 0){printf("yes\n");}else{printf("no\n");}return 0;
}
4.3 逻辑非
#include <stdio.h>int main()
{int a = 0;int b = 0;scanf("%d%d", &a, &b);//逻辑非if( !(a>b) ){printf("yes\n");}else{printf("no\n");}return 0;
}
5 位运算符
运算符的符号与运算逻辑:
& 按位与 按位运算
| 按位或 按位运算
^ 按位异或 按位运算
~ 按位取反 按位运算
>> 按位右移 整个数据向右移动 高位补0 舍弃低位
#include <stdio.h>int main()
{unsigned char a = 0xb5;unsigned char b = 0xa3;unsigned char c = 0;//按位与c = a & b;printf("a & b = %#x\n", c);//按位或c = a | b;printf("a | b = %#x\n", c);//按位异或c = a ^ b;printf("a ^ b = %#x\n", c);//按位取反c = ~a;printf("~a = %#x\n", c);//按位左移c = a<<3;printf("a<<3 = %#x\n", c);//按位右移c = a>>3;printf("a>>3 = %#x\n", c);return 0;
}
6 条件运算符
C语言中唯一一个三目运算符
#include <stdio.h>int main()
{int a = 10;int b = 20;int c = 0;c = (a<b ? ++a : ++b);printf("c = %d a = %d b = %d\n", c, a, b);return 0;
}
7 练习题
如何交换两个变量的值
#include <stdio.h>int main()
{int a = 1;int b = 2;#if 0//方法1:int temp = a;a = b;b = temp;
#endif#if 0//方法2: 通过加减的方式实现a = a+b;b = a-b;a = a-b;
#endif//方法3:三次异或实现两个数的交换 没有溢出的风险,a = a ^ b;b = a ^ b;a = a ^ b;printf("a = %d, b = %d\n", a, b);return 0;
}
二、常用的输入输出的函数练习
1.putchar/getchar
1.1putchar
#include <stdio.h>int main()
{putchar(65);//Aputchar('B');putchar('\n');//可以传一个表达式putchar('A'+3);//Dreturn 0;
}
1.2getchar
注意:垃圾字符就是我们不想从终端获取的回车、空格等
#include <stdio.h>int main()
{//当多个getchar连续使用时 要注意清理垃圾字符char a1=0, v2=0, a3=0;a1 = getchar();getchar();a2 = getchar();getchar();a3 = getchar();getchar();printf("a1 = [%d] [%c]\n", a1, a1);printf("a2 = [%d] [%c]\n", a2, a2);printf("a3 = [%d] [%c]\n", a3, a3);return 0;
}
2.puts/gets
2.1puts
#include <stdio.h>int main()
{//直接输出字符串常量puts("hello");//输出保存字符串的数组char str[32] = "beijing";puts(str);//输出指向字符串的指针char *p = "nihao";puts(p);//puts遇到 '\0' 就停止了后面的字符 不再继续输出puts("abcd\0efg");return 0;
}
2.2gets
注意:使用gets要保证用来保存字符串的数组足够大,否则会出现越界访问
#include <stdio.h>
int main()
{char s1[32] = {0};gets(s1);puts(s1);return 0;
}
二、分支控制语句的练习
1.练习题
从终端输入一个字符
①如果输入的是小写字母则转换成大写输出
②如果输入的是大写字母则转换成小写输出
③如果输入'0'--'9'则都输出数字0
④其他字符 都输出 #
#include <stdio.h>int main()
{int a = 0;a = getchar();if(a >= 65 && a <= 90){a = a+32;printf("%c\n", a);}else if(a >= 'a' && a <= 'z'){a = a+'A'-'a';printf("%c\n", a);}else if(a >= '0' && a <= '9'){a -= '0';printf("%d\n", a);}else{printf("#\n");}return 0;
}
2.练习题
在终端输入一个成绩 [0,100]
输出成绩对应的等级
[90, 100] A
[80, 90) B
[70, 80) C
[60, 70) D
[0, 60) 不及格
#include <stdio.h>int main(){int score = 0;scanf("%d", &score);if(score>=90 && score<=100){printf("A\n");}else if(score>=80 && score<90){printf("B\n");}else if(score>=70 && score<80){printf("C\n");}else if(score>=60 && score<70){printf("D\n");}else{printf("不及格\n");}return 0;
}
3.练习题
输入一个年份,输出这一年是平年还是闰年
闰年:能被4整除且不能被100整除 或者 能被400整除
#include <stdio.h>int main(){int year = 0;scanf("%d", &year);if((year%4==0 && year%100 != 0) || year%400==0){printf("闰年\n");}else{printf("平年\n");}return 0;
}
总结
这些就是C语言学习笔记(上)-CSDN博客笔记中剩余知识点所对应的程序练习,包含运算符的练习,含有算数运算符、自加自减运算符、关系运算符、逻辑运算符和位运算符、输入输出的函数练习以及分支控制语句的练习,本程序练习建议对应博主对应的学习笔记知识点。