大家好,这里是争做图书馆扫地僧的小白。
个人主页:争做图书馆扫地僧的小白_-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.11
double 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 11
int m = 10;
int n = m++;
printf("m = %d n = %d\n", m, n);//11 10
return 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);//A
putchar('B');
putchar('\n');
//可以传一个表达式
putchar('A'+3);//D
return 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博客笔记中剩余知识点所对应的程序练习,包含运算符的练习,含有算数运算符、自加自减运算符、关系运算符、逻辑运算符和位运算符、输入输出的函数练习以及分支控制语句的练习,本程序练习建议对应博主对应的学习笔记知识点。