C语言100道练习题打卡(1)
1
有1,2,3,4四个数字,能组成多少个互不相同且不重复的三位数,都是多少
#include<stdio.h>
//有1,2,3,4四个数字,能组成多少个互不相同且不重复的三位数,都是多少int main()
{int i, j, k;printf("\n");int count = 0;for (i = 1; i < 5; i++){for (j = 1; j < 5; j++){for (k = 1; k < 5; k++){if (i != k && k != j && j != k){printf("%d %d %d\n", i, j, k);count++;}}}}printf("count = %d", count);return 0;
}

2
题目:
根据企业利润计算奖金,从键盘输入利润,计算应发放奖金金客,公式如下:
1)利润低于或等于10万元时,奖金可提10%;
2)利润高于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可提成7.5%;
3)20万到40万之间时,高于20万元的部分,可提成5%;
4)40万到60万之间时高于40万元的部分,可提成3%;
5)60万到100万之间时,高于60万元的部分,可提成1.5%;
6)高于100万元时,超过100万元的部分按1%提成。
从键盘输入当月利润,求应发放奖金总数?
#include<stdio.h>
int main()
{double profit, bonus1, bonus2, bonus3, bonus4, bonus5,bonus;printf("请输入企业的利润为:");scanf_s("%lf", &profit);//计算每个利润段的奖金基数bonus1 = 100000 * 0.1;//利润低于或等于10万元时,奖金可提10%;bonus2 = bonus1 + 100000 * 0.075;//利润高于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可提成7.5%;bonus3 = bonus2 + 100000 * 0.05;//20万到40万之间时,高于20万元的部分,可提成5%;bonus4 = bonus3 + 100000 * 0.03;//40万到60万之间时高于40万元的部分,可提成3%;bonus5 = bonus4 + 100000 * 0.015;//高于100万元时,超过100万元的部分按1%提成if (profit <= 100000){bonus = profit * 0.1;}else if (profit <= 200000){bonus = bonus1 + (profit-100000) * 0.75;}else if (profit <= 400000){bonus = bonus2 + (profit - 200000) * 0.05;}else if (profit <= 600000){bonus = bonus3 + (profit - 400000) * 0.03;}else if (profit <= 1000000){bonus = bonus4 + (profit - 600000) * 0.015;}else if(profit>1000000){bonus = bonus5 + (profit - 1000000) * 0.01;}printf("提成为:bonus=%lf\n", bonus);return 0;
}

3 一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少
#include<stdio.h>/*分析:一个整数,它加上100后是一个完全平方数
再加上168又是一个完全平方数,请问该数是多少
设该数为x
1,x+100=n*n;x+100+168=m*m
2,m*m-n*n=(m+n)(m-n)=168
3,设m+n=i;m-n=j,则i*j=168,那么i和j都是偶数
4,m=(i+j)/2,n=(i-j)/2,i和j均是大于2的偶数
6,由于i*j=168,j>=2,得到1<i<168/2+1
接下来将i的所有数字循环计算即可*/int main()
{int i, j, n, m,x;for (i = 1; i < 168 / 2 + 1; i++){if (168 % i == 0){j = 168 / i;if (i > j && (i + j) % 2 == 0 && (i - j) % 2 == 0)//m,n均是偶数{m = (i + j) / 2;n = (i - j) / 2;x = n * n - 100;printf("%d\n", x);printf("%d+100 = %d*%d\n", x, n, n);printf("%d+168 = %d*%d\n", x, m, m);}}}return 0;
}

4 题目:输入某年某月某日,判断这一天是这一年的第几天
#include<stdio.h>/*分析:
输入某年某月某日,判断这一天是这一年的第几天
年:判断是否是闰年,
月:闰年的2月有28天
天:一个月有30或31天
设这一天为这一年的第x天以3月5日为例,应该把前两个月的天数相加后,加上五天,即为本年的第几天
特殊情况:闰年且输入月份大于3时需要考虑多加一天*/int main()
{int day, year, month, sum, leap;printf("请输入日期:格式为:年,月,日\n");scanf_s("%d,%d,%d", &year, &month, &day);switch (month){case 1:sum = 0;break;case 2:sum = 31;break;case 3:sum = 59;break;case 4:sum = 90;break;case 5:sum = 120;break;case 6:sum = 151;break;case 7:sum = 181;break;case 8:sum = 212;break;case 9:sum = 243;break;case 10:sum = 273;break;case 11:sum = 304;break;case 12:sum = 334;break;default:printf("请重新输入");break;}sum = sum + day;//某月加上某天//判断是不是闰年if ((year % 400 == 0) || (year % 4 == 0 && year % 100 == 0)){leap = 1;}else{leap = 0;}//如果是闰年且月份大于2,总天数应该加一天if (leap == 1 && month > 2){sum++;}printf("这是这一年中的第%d天", sum);return 0;
}

5 题目:输入三个整数x,y,z,请把这三个数由小到大输出
方法一:
#include<stdio.h>
int main()
{int x, y, z;printf("请输入三个整数: \n");scanf_s("%d,%d,%d", &x, &y, &z);printf("从小到大排序:\n");if (x < y){if (y < z){printf("%d,%d,%d", x, y, z);}else{printf("%d,%d,%d", x, z, y);}}else if (y < x){if (x < z){printf("%d,%d,%d", y, x, z);}else{printf("%d,%d,%d", y, z, x);}}return 0;
}
方法二:
#include<stdio.h>
int main()
{int x, y, z,t;printf("请输入三个整数: \n");scanf_s("%d,%d,%d", &x, &y, &z);if (x > y){t = x;x = y; y = t;}if (x > z){t = z;z = x;x = t;}if (y > z){t = y;y = z;z = t;}printf("从小到大排序:%d %d %d\n", x, y, z);return 0;
}

6 用*号输入字母C的图案
#include<stdio.h>
int main()
{int i, j, k;int n = 5;for (i = 0; i < n; i++){for (j = 0; j < 5; j++){if ((i == 0 || i == n - 1) || (j == 0 && i != n / 2) || (j == n - 1 &&i!= n / 2)){printf("*");}else{printf(" ");}}printf("\n");}return 0;
}
7 输出九九乘法表
#include<stdio.h>
int main()
{//九九乘法表,i控制行,j控制列int i, j, result;for (i = 0; i < 10; i++){for (j = 1; j <= i; j++){result = i * j;printf("%d * %d = % -3d ", j, i, result);}printf("\n");}return 0;
}

8 输出象棋棋盘
#include<stdio.h>
/*分析:
国际想起棋盘由64个黑白相间的格子组成,分为8行8列。
用i控制行,j控制列,根据i+j的和的变化来控制输出黑方格或白方格
*/int main()
{int i, j;for (i = 0; i < 8; i++){for (j = 0; j < 8; j++){if ((i + j) % 2 == 0){printf("%c%c", '*', '*');//**表示黑方格}else{printf(" ");}}printf("\n");}return 0;
}

9 打印楼梯图形 和笑脸
题目:打印楼梯,同时在楼梯上方打印两个笑脸
//题目:打印楼梯,同时在楼梯上方打印两个笑脸
//用11来表示两个笑脸;用i控制行,用j控制列
//j根据i的变化来控制输出黑方格的个数
#include<stdio.h>
int main()
{int i, j;printf("11\n");//用11来表示两个笑脸for (i = 1; i < 11; i++){for (j = 1; j <= i; j++){printf("%c%c", 70, 70);}printf("\n");}return 0;
}

10 兔子生崽
方法1:
#include<stdio.h>
/*有一对兔子,从出生后第3个月都圣一对兔子,小兔子长到第三个月后又生一对兔子,
假如兔子都不死,问每个月的兔子总数为多少?(输出前40个月即可)*//*分析:兔子的个数规律为数列1,1,2,3,5,8,13,21....,即下个月是上两个月之和*/
int main()
{int f1 = 1, f2 = 1, i;for (i = 1; i <= 20; i++){printf("%12d%12d", f1, f2);if (i % 2 == 0)printf("\n");f1 = f1 + f2;f2 = f1 + f2;}return 0;
}

这让我想起来青蛙跳台阶的案例,我们再来回顾一下吧
题目:一只青蛙要从第一级台阶开始,每次可以跳上一级或者两级,直到跳完所有的台阶。我们需要找出青蛙有多少种跳法
方法1;
int Fib(int x)
{int i = 1;int j = 1;int z = 1;while (x > 0){z = i + j;i = j;j = z;x--;}return z;
}
int main()
{int n = 0;printf("青蛙跳的台阶数为:\n");scanf_s("%d", &n);int ret = Fib(n);printf("青蛙跳台阶的方法有%d种", ret);return 0;
}
方法2:
利用递归方式
int Fib(int x)
{if (x == 1)return 1;else if (x == 2)return 2;elsereturn Fib(x - 1) + Fib(x - 2);
}
int main()
{int n = 0;printf("青蛙跳的台阶数为:\n");scanf_s("%d", &n);int ret = Fib(n);printf("青蛙跳台阶的方法有%d种", ret);return 0;
}

11 判断101到200之间的素数
#include<stdio.h>/*分析:
判断素数的方法:
用一个数分比如取出2到sqrt(这个数),如果能被整除,则表明此数不是素数
*/int main()
{int i,j;int count = 0;for (i = 101; i <= 200; i++){for (j = 2; j < i; j++){//如果j能被i整除再跳出循环if (i % j == 0){break;}}//判断循环是否提前跳出,如果j<i说明在2~j之间,i有可整除的数if (j >= i){count++;printf("%d ", i);//每五个数换行if (count % 5 == 0)printf("\n");}}return 0;
}

12 水仙花数
打印水仙花数,所谓水仙花数是指一个三位数,其各位数字立方和等于该数本身。
例如:153是一个水仙花数,因为153 = 1的三次方+5的三次方+3的三次方
#include<stdio.h>
/*
利用for循环控制100~999个数,每个数分解出个位,十位,百位
*/int main()
{int x, y, z, i;for (i = 100; i < 1000; i++){x = i % 10;y = i / 10 % 10;z = i / 100 % 10;if (i == (x * x * x + y * y * y + z * z * z)){printf("%d\n", i);}}return 0;
}

相关文章:
C语言100道练习题打卡(1)
1 有1,2,3,4四个数字,能组成多少个互不相同且不重复的三位数,都是多少 #include<stdio.h> //有1,2,3,4四个数字,能组成多少个互不相同且不重复的三位数ÿ…...
5G-A有何能耐?5G-A三载波聚合技术介绍
2024年被称作5G-A元年。5G-A作为5G下一阶段的演进技术,到底有何能耐呢? 三载波聚合(3CC)被认为是首个大规模商用的5G-A技术,将带来手机网速的大幅提升。 █ 什么是3CC 3CC,全称叫3 Component Carriers…...
理解Go语言中上下文
开发人员有时会误解context.Context类型,尽管它是Go语言的关键概念之一,也是Go中并发代码的基础之一。接下来让我们看看这个概念,并确保我们理解为什么乃如何有效地使用它。 根据官方文档: 上下文(context)携带最后期限、取消信号和其他跨API边界的值。 下面让我们来看下这…...
[MySQL]数据库原理8——喵喵期末不挂科
希望你开心,希望你健康,希望你幸福,希望你点赞! 最后的最后,关注喵,关注喵,关注喵,大大会看到更多有趣的博客哦!!! 喵喵喵,你对我真的…...
【算法基础】插入排序与二分查找、升级二分查找
文章目录 1. 插入排序1.1 插入排序的思想1.2 插入排序的实现 2. 普通二分查找2.1 普通二分查找的思想2.2 普通二分查找的实现 3. 升级二分查找3.1 升级二分查找思想3.2 升级二分查找实现 1. 插入排序 1.1 插入排序的思想 插入排序很类似于已有一副有序的扑克牌,不断…...
在Vue3中如何使用H.265视频流媒体播放器EasyPlayer.js?
H5无插件流媒体播放器EasyPlayer属于一款高效、精炼、稳定且免费的流媒体播放器,可支持多种流媒体协议播放,可支持H.264与H.265编码格式,性能稳定、播放流畅,能支持WebSocket-FLV、HTTP-FLV,HLS(m3u8&#…...
基于51单片机的PM2.5监测系统设计—环境监测仪
基于51单片机的PM2.5监测系统 (仿真+程序+原理图+PCB+设计报告) 功能介绍 具体功能: 1.PM2.5传感器模块检测信息给单片机处理; 2.LCD1602实时显示PM2.5浓度和PM2.5报警阈值&#x…...
【C语言】指针篇-初识指针(1/5)
🌈个人主页:是店小二呀 🌈C语言笔记专栏:C语言笔记 🌈C笔记专栏: C笔记 🌈喜欢的诗句:无人扶我青云志 我自踏雪至山巅 文章目录 **内存和地址(知识铺垫(了解即可))**如何理解编址**指针变量*…...
【御控物联】物联网平台设备接入-JSON数据格式转化(场景案例四)
文章目录 一、背景二、解决方案三、在线转换工具四、技术资料 一、背景 物联网平台是一种实现设备接入、设备监控、设备管理、数据存储、消息多源转发和数据分析等能力的一体化平台。南向支持连接海量异构(协议多样)设备,实现设备数据云端存…...
stack和queue模拟实现
前言 上一期我们介绍了stack和queue的使用,本期我们来模拟实现一下他们! 本期内容介绍 容器适配器 deque介绍 为什么stack和queue的底层选择deque为默认容器? stack 模拟现实 queue 模拟实现 什么是容器适配器? 适配器是一种设…...
docker操作
1、容器生命周期管理命令 docker run docker run --name tomcat8 -d -p 28080:8080 tomcat:8.5.38 docker run -i --name hausf --network bridge --ip 172.17.0.10 ubuntu:20.04 /bin/bash docker run -d --name hausf --net host ubuntu:20.04 /bin/bash docker run…...
分布式锁介绍
引言 分布式锁是一种用于协调不同进程或线程对共享资源的访问控制的机制。在分布式系统中,由于多个节点可能同时访问或修改同一资源,因此需要一个中心化的协调机制来确保资源的访问是有序的,避免数据不一致的问题。 分布式锁的特性…...
Unity 获取RenderTexture像素颜色值
拿来吧你~ 🦪功能介绍🌭Demo 🦪功能介绍 💡不通过Texture2D 而是通过ComputerShader 提取到RenderTexture的像素值,效率有提升哦! 💡通过扩展方法调用,方便快捷:xxxRT.G…...
Tomcat以服务方式启动,无法访问网络共享目录问题
关于“Tomcat以服务方式启动,无法访问网络共享目录问题”解决方式如下: 1、通过doc命令【services.msc】打开本地服务找到,找到tomcat服务所在位置 2、右键打开Tomcat服务的属性 3、选择 登陆选项卡 4、选择“此账户”选项,并…...
SVN的介绍
首先SVN是什么: Apache下的一个开源的项目Subversion,通常缩写为 SVN,是一个版本控制系统。 版本控制系统是一个软件,它可以伴随我们软件开发人员一起工作,让我们编写代码的完整的历史保存下来。 目前它的各个版本的…...
ZYNQ-700呼吸灯
参考野火例程 实现呼吸灯即要调整led亮的占比时间,完成视觉上看起来由灭到亮或者由亮到灭的过程。 如果主频为50MHz,理论上一秒钟我们可以控制50_000_000次led的亮和灭,肉眼不可能分辨出来每一次亮灭,如果这50M我们设定为间隔一…...
UE5学习日记——制作多语言版本游戏,同时初步学习UI制作、多语言化、控制器配置、独立进程测试、打包配置和快速批量翻译等
所有的文本类,无论变量还是控件等都能实现本地化,以此实现不同语言版本。 在这里先将重点注意标注一下: 所有文本类的变量、控件等都可以多语言;本地化控制板中收集、编译时,别忘了编译这一步;支持批量复制…...
电脑重启后word文档空白或打不开,word无法自动修复,如何拯救
最近编辑word文档,写了好几个星期的内容随着电脑重启的一瞬间,灰飞烟灭,让我简直痛不欲生! 好在,天无绝人之路,以下两个方法拯救了地球 第一,普通的文档word自动修复不好使的时候,…...
MVC和MVVM这两种设计模式的区别
一、MVC和MVVM是什么? MVC是Model-View-Controller的简写,Model就是模型,对应后端数据,View就是视图对应用户界面,Controller就是控制器,对应页面的业务逻辑。 MVC的工作机制原理就是,用户操作…...
淘宝app端商品详情数据采集(商品价格,商品库存,商品销量,商品优惠券)
在淘宝App端采集商品详情数据,包括商品价格、库存、销量以及优惠券信息,可以通过多种方式实现。以下是几种常见的方法: 使用淘宝开放平台API: 淘宝开放平台提供了一系列API接口,这些接口允许开发者获取淘宝商品的详细…...
Python|GIF 解析与构建(5):手搓截屏和帧率控制
目录 Python|GIF 解析与构建(5):手搓截屏和帧率控制 一、引言 二、技术实现:手搓截屏模块 2.1 核心原理 2.2 代码解析:ScreenshotData类 2.2.1 截图函数:capture_screen 三、技术实现&…...
第19节 Node.js Express 框架
Express 是一个为Node.js设计的web开发框架,它基于nodejs平台。 Express 简介 Express是一个简洁而灵活的node.js Web应用框架, 提供了一系列强大特性帮助你创建各种Web应用,和丰富的HTTP工具。 使用Express可以快速地搭建一个完整功能的网站。 Expre…...
synchronized 学习
学习源: https://www.bilibili.com/video/BV1aJ411V763?spm_id_from333.788.videopod.episodes&vd_source32e1c41a9370911ab06d12fbc36c4ebc 1.应用场景 不超卖,也要考虑性能问题(场景) 2.常见面试问题: sync出…...
【android bluetooth 框架分析 04】【bt-framework 层详解 1】【BluetoothProperties介绍】
1. BluetoothProperties介绍 libsysprop/srcs/android/sysprop/BluetoothProperties.sysprop BluetoothProperties.sysprop 是 Android AOSP 中的一种 系统属性定义文件(System Property Definition File),用于声明和管理 Bluetooth 模块相…...
Module Federation 和 Native Federation 的比较
前言 Module Federation 是 Webpack 5 引入的微前端架构方案,允许不同独立构建的应用在运行时动态共享模块。 Native Federation 是 Angular 官方基于 Module Federation 理念实现的专为 Angular 优化的微前端方案。 概念解析 Module Federation (模块联邦) Modul…...
BCS 2025|百度副总裁陈洋:智能体在安全领域的应用实践
6月5日,2025全球数字经济大会数字安全主论坛暨北京网络安全大会在国家会议中心隆重开幕。百度副总裁陈洋受邀出席,并作《智能体在安全领域的应用实践》主题演讲,分享了在智能体在安全领域的突破性实践。他指出,百度通过将安全能力…...
【学习笔记】深入理解Java虚拟机学习笔记——第4章 虚拟机性能监控,故障处理工具
第2章 虚拟机性能监控,故障处理工具 4.1 概述 略 4.2 基础故障处理工具 4.2.1 jps:虚拟机进程状况工具 命令:jps [options] [hostid] 功能:本地虚拟机进程显示进程ID(与ps相同),可同时显示主类&#x…...
Mysql中select查询语句的执行过程
目录 1、介绍 1.1、组件介绍 1.2、Sql执行顺序 2、执行流程 2.1. 连接与认证 2.2. 查询缓存 2.3. 语法解析(Parser) 2.4、执行sql 1. 预处理(Preprocessor) 2. 查询优化器(Optimizer) 3. 执行器…...
Modbus RTU与Modbus TCP详解指南
目录 1. Modbus协议基础 1.1 什么是Modbus? 1.2 Modbus协议历史 1.3 Modbus协议族 1.4 Modbus通信模型 🎭 主从架构 🔄 请求响应模式 2. Modbus RTU详解 2.1 RTU是什么? 2.2 RTU物理层 🔌 连接方式 ⚡ 通信参数 2.3 RTU数据帧格式 📦 帧结构详解 🔍…...
客户案例 | 短视频点播企业海外视频加速与成本优化:MediaPackage+Cloudfront 技术重构实践
01技术背景与业务挑战 某短视频点播企业深耕国内用户市场,但其后台应用系统部署于东南亚印尼 IDC 机房。 随着业务规模扩大,传统架构已较难满足当前企业发展的需求,企业面临着三重挑战: ① 业务:国内用户访问海外服…...
