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

news2025/1/16 19:05:39

 

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

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

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Vulnhub-Al-Web-1.0 靶机复现完整过程

一、信息收集 1.主机发现 arp-scan -l2.端口扫描 nmap -sV -p- 192.168.200.16PORTSTATESERVICEVERSIONMAC Address80/TCPOpenhttpApache httpd00:0C:29:C4:1B:78 (VMware) 3.目录扫描 python dirsearch.py -u http://192.168.200.16扫描出来这两个文件&#xff0c;首先先…

MATLAB中./和/,.*和*,.^和^的区别

MATLAB中./和/&#xff0c;.*和*&#xff0c;.^ 和^ 的区别 MATLAB中./和/&#xff0c;.*和*&#xff0c;.^ 和^ 的区别./ 和 / 的区别.//实验实验结果 .* 和 * 的区别.**实验实验结果 .^ 和^ 的区别.^n^n实验运行结果 MATLAB中./和/&#xff0c;.和&#xff0c;.^ 和^ 的区别 …

腾讯云轻量服务器和云服务器CVM该怎么选?区别一览

腾讯云轻量服务器和云服务器CVM该怎么选&#xff1f;不差钱选云服务器CVM&#xff0c;追求性价比选择轻量应用服务器&#xff0c;轻量真优惠呀&#xff0c;活动 https://curl.qcloud.com/oRMoSucP 轻量应用服务器2核2G3M价格62元一年、2核2G4M价格118元一年&#xff0c;540元三…

gitee+picgo+typora图床搭建

giteepicgotypora图床搭建 1.安装typora 官网下载直接安装&#xff1a;https://www.typora.io/#download 2.编辑typora图像设置 打开 文件 -> 偏好设置 -> 图像设置 插入图片时 选择 上传图片设置 上传服务 为 PicGo-Core(command line) 3.为typora安装PicGo-Core 点…

怎么设置Facebook双重验证,让Facebook账号更稳定?

对于跨境电商而言&#xff0c;Facebook 账号被封是常有的事&#xff0c;原因之一可能是没有给 Facebook 设置双重验证&#xff0c;今天就和大家科普一下什么是 Facebook双重验证以及如何设置&#xff0c;另外&#xff0c;作为跨境卖家&#xff0c;我们还需要了解如何保护 Faceb…

群晖(Synology)Plex 的服务找不到文件夹

当 Plex 在搜索 NAS 上的文件夹的时候找不到文件夹中的内容。 如下图中显示的内容。 上面的 Public 文件夹中找不到我们的子文件夹&#xff0c;但是我们的子文件夹是有内容的。 问题和解决 出现上面的问题主要还是权限的问题。 选择需要访问的文件夹&#xff0c;然后在文件…

【数据结构】C语言实现单链表的基本操作

单链表基本操作的实现 导言一、查找操作1.1 按位查找1.1.1 按位查找的C语言实现1.1.2 按位查找的时间复杂度 1.2 按值查找1.2.1 按值查找的C语言实现1.2.2 按值查找的时间复杂度 二、插入操作2.1 后插操作2.2 前插操作 三、删除操作结语 导言 大家好&#xff0c;很高兴又和大家…

软件测试/测试开发丨Pytest 参数化用例

参数化 通过参数的方式传递数据&#xff0c;从而实现数据和脚本分离。并且可以实现用例的重复生成与执行。 参数化应用场景 测试登录场景 测试登录成功&#xff0c;登录失败(账号错误&#xff0c;密码错误)创建多种账号: 中⽂文账号&#xff0c;英⽂文账号 普通测试用例方法 …

隐蔽的事务失效...

&#x1f308;&#x1f308;&#x1f308;&#x1f308;&#x1f308;&#x1f308;&#x1f308;&#x1f308; 欢迎关注公众号&#xff08;通过文章导读关注&#xff09;&#xff0c;发送笔记可领取 Redis、JVM 等系列完整 pdf&#xff01; 【11来了】文章导读地址&#xff1…

Cookie的详解使用(创建,获取,销毁)

文章目录 Cookie的详解使用&#xff08;创建&#xff0c;获取&#xff0c;销毁&#xff09;1、Cookie是什么2、cookie的常用方法3、cookie的构造和获取代码演示SetCookieServlet.javaGetCookieServlet.javaweb.xml运行结果如下 4、Cookie的销毁DestoryCookieServletweb.xml运行…

postman进阶使用

前言 对于postman的基础其实很容易上手实现&#xff0c;也有很多教程。 对于小编我来说&#xff0c;也基本可以实现开发任务。 但是今年我们的高级测试&#xff0c;搞了一下postman&#xff0c;省去很多工作&#xff0c;让我感觉很有必要学一下 这篇文章是在 高级测试工程师ht…

Python从入门到熟练

文章目录 Python 环境Python 语法与使用基础语法数据类型注释数据类型介绍字符串列表元组集合字典 类型转换标识符运算符算数运算符赋值运算符复合运算符 字符串字符串拼接字符串格式化 判断语句bool 类型语法if 语句if else 语句if elif else 语句 循环语句while循环for 循环r…

12.27重构二叉树,插入排序,队列(股票,模拟),后缀表达式求值,括号匹配,验证栈序列,选择题部分

重构二叉树 误 string in, post; struct node {char a;node* lchild, * rchild;node(char x\0) :a(x), lchild(nullptr), rchild(nullptr) {} }; void so(node* r, int il, int ir, int pl, int pr) {if (il > ir)return;int root;for (root il; root < ir; root) {if…

C++day2作业

把课上strcut的练习&#xff0c;尝试着改成class #include <iostream>using namespace std; class Stu { private:int age;string sex;int hign; public:int soce;void get_information();void set_information(); }; void Stu::set_information() {static Stu s1;cout …

C语言KR圣经笔记 5.1指针和地址 5.2指针和函数参数

第五章 指针和数组 指针是包含变量地址的变量。在 C 语言中&#xff0c;指针被大量使用&#xff0c;部分原因是有时只能用指针来表达某种计算&#xff0c;而部分原因是相比其他方式&#xff0c;指针通常能带来更紧凑和高效的代码。指针和数组是紧密关联的&#xff1b;本章也讲…

抓包工具Charles安装及使用

Charles 介绍 Charles 是在 Mac 下常用的网络封包截取工具&#xff0c;在做 移动开发时&#xff0c;我们为了调试与服务器端的网络通讯协议&#xff0c;常常需要截取网络封包来分析。 Charles 通过将自己设置成系统的网络访问代理服务器&#xff0c;使得所有的网络访问请求都…

VScode——下载、安装、配置C/C++环境(windows)

一.快速下载 还在因为vscode官方下载慢而头疼嘛&#xff0c;按这个步骤来直接起飞兄弟萌 首先进入vscode官方网站然后选择对应版本下载然后进入浏览器下载页面复制下载链接粘贴到地址栏 将地址中的/stable前换成vscode.cdn.azure.cn 即可实现超速下载 下面是一个国内镜像的下…

删除数据后, redis 内存占用还是很高怎么办?

现象&#xff1a; reids 做了数据删除&#xff0c;数据量不大&#xff0c;使用 top 命令看&#xff0c;发现还是占用大量内存 原因&#xff1a; 1.redis 底层内存根据内存分配器分配&#xff0c;不会立刻释放 2.redis 释放的内存空间不是连续的&#xff0c;存在碎片 内存碎…

DP进阶之路——整数拆分

343. 整数拆分 给定一个正整数 n &#xff0c;将其拆分为 k 个 正整数 的和&#xff08; k > 2 &#xff09;&#xff0c;并使这些整数的乘积最大化。 返回 你可以获得的最大乘积 。 示例 1: 输入: n 2 输出: 1 解释: 2 1 1, 1 1 1。 示例 2: 输入: n 10 输出: 36 解释…

YOLOv8训练自定义数据集和运行参数解读

1、YOLOv8深度学习环境搭建及安装 1.1. Yolov8介绍 设置操作类型 YOLOv8模型可用于各种任务&#xff0c;包括检测、分割和分类。这些任务的不同之处在于它们产生的输出类型和它们要解决的特定问题。 **检测:**检测任务涉及识别和定位图像或视频中感兴趣的对象或区域。YOLO模…