【C语言】程序练习(二)

 

大家好,这里是争做图书馆扫地僧的小白。

个人主页:争做图书馆扫地僧的小白_-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博客笔记中剩余知识点所对应的程序练习,包含运算符的练习,含有算数运算符、自加自减运算符、关系运算符、逻辑运算符和位运算符、输入输出的函数练习以及分支控制语句的练习,本程序练习建议对应博主对应的学习笔记知识点。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/275661.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

矩阵微分笔记(1)

目录 前言1. 矩阵求导的布局形式1.1 矩阵求导的基本单元 f u n c t i o n function function 是一个标量 f u n c t i o n function function 是一个向量 f u n c t i o n function function 是一个矩阵 1.2 矩阵求导的本质1.3 矩阵求导的布局形式1.3.1 向量对标量函数的导数1.…

ASP.Net实现汽车添加查询(三层架构,含照片)

演示功能&#xff1a; 点击启动生成页面 点击搜索模糊查询 点击添加跳转新界面 此处设置文本框多行 点击Button添加 步骤&#xff1a; 1、建文件 下图是三层架构列表&#xff0c;Models里面有模拟数据库中列的类&#xff0c;DAL中有DBHelper和service,BLL中有BllManager文件…

【Java基础系列】body参数前后端不一致

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

进程

进程 进程的概念、组成与特征进程的状态与转换进程控制进程通信 进程的概念、组成与特征 程序是静态的&#xff0c;是一个存放在磁盘里的可执行文件&#xff0c;是一系列的指令集合。 进程是动态的&#xff0c;是程序的一次执行过程&#xff0c;同一个程序多次执行会对应多个进…

NFC物联网智能锁安全测试研究

针对短距离无线通信在物联网智能锁实际运用中的安全机制问题&#xff0c;通过理论分析和实际操作演示潜在的攻击流程&#xff0c;发现其存在的安全漏洞并提出可行的加固方法&#xff0c;并对加固后的通信系统进行CPN建模与安全性分析&#xff0c;对无线通信协议的安全性能提升、…

哥斯拉木马解析 + bypass 免杀代码分析+回调webshell

目录 抓包分析 测试连接 第一个包 第二个包 第三个包 进入控制台 第三个包 请求 返回 木马的解析 第一次链接 第二次链接 payload集合 run reDefSystemFunc() 自写免杀 通过文件名 构造字符 通过请求头实现 php7.3 php5.2 PHP5.3 PHP 7.0.0 这里也是跟着大…

ctf_show(web入门笔记)持续更新中

信息收集 1-2&#xff1a;查看源代码 3&#xff1a;bp抓包 4&#xff1a;robots.txt&#xff08;这个文件里会写有网站管理者不想让爬虫的页面或其他&#xff09; 5&#xff1a;网站源代码泄露index.phps 6&#xff1a;同样也是源码泄露&#xff0c;&#xff08;拿到以后还…

JMeter4.0接口测试之案例实战

在前面的知识体系中介绍了Jmeter的基本应用&#xff0c;下来通过具体的案例来看Jmeter在接口测试中的具体案例实战部分。 HTTP是基于应用层的协议&#xff0c;底层的网络传输层它不需要去关心&#xff0c;同时它是一个无状态的协议&#xff0c;它的请求流程具体可以总结为&…

【基础篇】一、认识JVM

文章目录 1、虚拟机2、Java虚拟机3、JVM的整体结构4、Java代码的执行流程5、JVM的三大功能6、JVM的分类7、JVM的生命周期 1、虚拟机 虚拟机&#xff0c;Virtual Machine&#xff0c;一台虚拟的计算机&#xff0c;用来执行虚拟计算机指令。分为&#xff1a; 系统虚拟机&#x…

Visual Studio使用——自定义代码片段 像使用IDEA一样能快捷输入

目录 引出Visual Studio使用自定义代码片段 Idea安装和使用0.Java下载 和 IDEA工具1.首次新建项目2.隐藏文件不必要显示文件3.目录层级设置4.Settings设置选择idea的场景提示代码不区分大小写 取消git的代码作者显示 总结 引出 Visual Studio使用——自定义代码片段 & 像使…

字节跳动 MapReduce - Spark 平滑迁移实践

摘要&#xff1a;本文整理自字节跳动基础架构工程师魏中佳在本次 CommunityOverCode Asia 2023 中的《字节跳动 MapReduce - Spark 平滑迁移实践》主题演讲。 随着字节业务的发展&#xff0c;公司内部每天线上约运行 100万 Spark 作业&#xff0c;与之相对比的是&#xff0c;线…

Python可视化之Matplotlib

文章目录 Matplotlib与可视化分析简单图形的绘制pylot的高级功能添加图例与注释 Matplotlib与可视化分析 我们之前对数据的处理与分析&#xff0c;其实最终还是要利用可视化工具进行更加直观的输出 我们开业通过 pip install matplotlib命令来安装对应的模块 简单图形的绘制…

带你从数据手册了解CAN 电平参数

CAN终端电阻功率应该选多大&#xff1f; can的中断电阻大家都知道是120R&#xff1b; 这个电阻功率应该选多大呢&#xff1f; 晚上有说0603 封装的&#xff0c;有说0805封装的&#xff0c;有说1206封装的。。。。 那到底该选多少&#xff1f; P U*U/R&#xff1b; 只要知…

C++ DAY1 作业

1.定义自己的命名空间myspace&#xff0c;并在myspace中定义一个字符串&#xff0c;并实现求字符串长度 #include <iostream>using namespace std; namespace myspace {string str;int length_fun(){getline(cin,str);int i 0;while(str[i] ! \0){i;}return i;}} using…

Mathematica中的有理数与浮点数

在Mathematica中如果使用了小数&#xff0c;软件会按照浮点数计算&#xff0c;从而导致不准确的结果。 例如下面的例子&#xff0c;计算下面两个相同式子的拉氏反变换得到的结果会不同&#xff1a; 代码如下 InverseLaplaceTransform[323/(56182 p 323 p^2 1000 p^3), p, t…

基于DS1302的日历时钟

#include<reg51.h> //包含单片机寄存器的头文件 #include<intrins.h> //包含_nop_()函数定义的头文件 /*********************************************************************** 以下是DS1302芯片的操作程序 *******************************************…

记录使用minikube部署web程序,并灰度发布不同版本

1. 安装软件 1.1安装docker desktop 下载地址 重点&#xff1a;配置镜像加速 1.2 安装k8s&minikube 这里参考阿里社区的配置 minikube1.24.0版本下载地址 重点&#xff1a;安装版本问题【因为后面要用阿里云的服务来获取所需Docker镜像&#xff0c;一直不成功使用的高版…

牛客网SQL训练5—SQL大厂真题面试

文章目录 一、某音短视频1.各个视频的平均完播率2.平均播放进度大于60%的视频类别3.每类视频近一个月的转发量/率4.每个创作者每月的涨粉率及截止当前的总粉丝量5.国庆期间每类视频点赞量和转发量6.近一个月发布的视频中热度最高的top3视频 二、用户增长场景&#xff08;某度信…

mysql原理--MySQL基于规则的优化

设计 MySQL 的大叔依据一些规则&#xff0c;竭尽全力的把一些很糟糕的语句转换成某种可以比较高效执行的形式&#xff0c;这个过程也可以被称作 查询重写 &#xff08;就是人家觉得你写的语句不好&#xff0c;自己再重写一遍&#xff09;。 1.条件化简 我们编写的查询语句的搜…

子类能继承父类的那些内容

子类能继承父类的那些内容 子类不能继承父类的构造方法。 package oop.Extends.a02oopextendsdemo02; public class Test {public static void main(String[] args) {}class Fu{String name;int age;public Fu() {}public Fu(String name, int age) {this.name name;this.ag…