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;
}

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

分享一些有趣的 Linux 命令

1、sl 会显示一辆火车穿过你的终端屏幕 2、cmatrix 在终端中显示类似于《黑客帝国》电影中的绿色数字雨效果 3、fortune 显示一个随机的名人名言或者笑话 4、cowsay 让一头牛说出你输入的话 5、toilet 在终端中将输入的文本以艺术字体的形式呈现 6、figlet 类似于 toile…

ssm051网上医院预约挂号系统+jsp

网上医院预约挂号系统设计与实现 摘 要 如今的信息时代&#xff0c;对信息的共享性&#xff0c;信息的流通性有着较高要求&#xff0c;因此传统管理方式就不适合。为了让医院预约挂号信息的管理模式进行升级&#xff0c;也为了更好的维护医院预约挂号信息&#xff0c;网上医院…

Vue入门:天不生Vue,前端万古如长夜 - Vue从入门到放弃

目录 &#x1f44b; Vue环境搭建 1.安装node.js 2.配置环境变量 3.VSCode配置 4.安装Vue CLI 5.在VS Code中打开Vue项目 6.运行Vue项目 &#x1f440; Vue基础学习 1.引入vue.js 2.数据方法 3.生命周期&#xff01; 4.模板语法 5.对象语法 6.条件渲染 7.列表渲…

简历上写熟悉Linux下常用命令?直接寄

大家写简历技术栈时&#xff0c;都觉得越多越好&#xff0c;其中一条&#xff0c;熟悉Linux下常用命令&#xff1f;其实开发中Linux不是必备考点&#xff0c;除了运维&#xff0c;真正用的多的仅仅cd ls mkdir等&#xff0c;但当面试官问到上面命令时&#xff0c;是不是就傻眼了…

Java使用OpenOffice将office文件转换为PDF

Java使用OpenOffice将office文件转换为PDF 1. 先行工作1.1 OpenOffice官网下载1.2 JODConverter官网下载1.3 下载内容 2.介绍3. 安装OpenOffice服务3.1.Windows环境3.2 Linux环境 4. maven依赖5. 转换代码 1. 先行工作 请注意&#xff0c;无论是windows还是liunx环境都需要安装…

基于深度学习的花卉检测系统(含PyQt界面)

基于深度学习的花卉检测系统&#xff08;含PyQt界面&#xff09; 前言一、数据集1.1 数据集介绍1.2 数据预处理 二、模型搭建三、训练与测试3.1 模型训练3.2 模型测试 四、PyQt界面实现参考资料 前言 本项目是基于swin_transformer深度学习网络模型的花卉检测系统&#xff0c;…

建模设计软件 Archicad 27 for mac激活版

在建筑设计领域&#xff0c;每一次技术的革新都意味着设计效率和质量的飞跃。Archicad 27 for Mac&#xff0c;就是这样一款引领行业变革的设计软件。 Archicad 27凭借出色的性能优化和强大的功能更新&#xff0c;为Mac用户带来了前所未有的建筑设计体验。它支持BIM&#xff08…

基于java的社区生活超市管理系统

开发语言&#xff1a;Java 框架&#xff1a;ssm 技术&#xff1a;JSP JDK版本&#xff1a;JDK1.8 服务器&#xff1a;tomcat7 数据库&#xff1a;mysql 5.7&#xff08;一定要5.7版本&#xff09; 数据库工具&#xff1a;Navicat11 开发软件&#xff1a;eclipse/myeclip…

低代码开发师中级实操题

目录 实操题一 1.创建空白应用 2.创建普通表单仓库库存表 3.创建客户信息表 4.创建进货登记表 5.创建出货登记表 6.设置数据联动 1&#xff09;进货登记表 2&#xff09;出货登记表数据联动 实操题二 1.提前下载好数据 2.新建空白应用 3.创建表单-员工信息录入名单…

26-51单片机-LCD12864液晶显示实验

一 主要涉及到的知识点: 1.1LCD12864 介绍: LCD12864 液晶屏结构上与 LCD1602 一样&#xff0c;只是在行列数与显示像素上区别很LCD12864&#xff0c; 以下简称 12864&#xff0c;注意区分 LCD1602 和 LCD12864。12864是 64行 128 列&#xff0c;当然也有可能会设 计成 64 列…

5-51单片机-蜂鸣器实验

一 主要涉及到的知识点: 1. 对系统默认的数据类型进行重定义,u8,u16; 2.延时函数,主要是将传过来的整数进行减减实现延时; 3.还用到了while()循环; 二 代码分析: 1. 首次定义一个变量,主要是为了延时蜂鸣器响亮的时长; 2.通过while()循环,使得Buzzer_Port产生脉冲信号,从而使蜂…

python-numpy(3)-线性代数

一、方程求解 参考资料 对于Ax b 这种方程&#xff1a; np.linalg.inv(A).dot(B)np.linalg.solve(A,b) 1.1 求解多元一次方程一个直观的例子 # AXB # X A^(-1)*B A np.array([[7, 3, 0, 1], [0, 1, 0, -1], [1, 0, 6, -3], [1, 1, -1, -1]]) B np.array([8, 6, -3, 1]…

嵌入式单片机 TTL电平、232电平、485电平的区别和联系

一、简介 TTL、232和485是常见的串口通信标准&#xff0c;它们在电平和通信方式上有所不同&#xff0c; ①一般情况下TTL电平应用于单片机外设&#xff0c;属于MCU/CPU等片外外设&#xff1b; ②232/485电平应用于产品整体对外的接口&#xff0c;一般是片外TTL串口转232/485…

【C语言】每日一题,快速提升(1)!

调整数组使奇数全部都位于偶数前面 题目&#xff1a; 输入一个整数数组&#xff0c;实现一个函数 来调整该数组中数字的顺序使得数组中所有的奇数位于数组的前半部分 所有偶数位于数组的后半部分 解题思路&#xff1a; 给定两个下标left和right&#xff0c;left放在数组的起始…

Linux三剑客-sed、awk、egrep(上)

一、知识梗概 二、正则表达式 定义&#xff1a;正则表达式是一种强大的文本处理工具&#xff0c;用于在文本中搜索符合特定模式的字符串。它由一系列特殊字符和普通字符组成&#xff0c;可以定义复杂的搜索模式。正则表达式被广泛应用于各种编程语言和文本处理工具中。 简单来…

webpack-(plugin,本地服务器,路径别名,安装vue)

安装vue npm i vue-loader -D npm i vue 编写一个vue文件&#xff1a; 在index.html中设置 一个id为app的div 将vue文件挂载到app中 vue比较特殊&#xff0c;除了使用loader外&#xff0c;还使用了plugin const path require("path"); const { VueLoaderPlugin …

涂层翅片铝箔的主要技术指标

涂层铝箔是在非涂层铝箔的基础上进行表面处理后形成的&#xff0c;除了需要具备非涂层铝箔要求的化学成分、机械性能和几何尺寸等性能指标外&#xff0c;还应具备良好的板型和涂层性能。 1、铝箔的板型 涂层铝箔的生产工艺要求铝箔要有良好的板型&#xff0c;这是涂层铝箔生产…

Go语言入门|包、关键字和标识符

目录 Go语言 包文件 规则 关键字 规则 标识符 规则 预定义标识符 Go语言 Go语言是一种静态类型、编译型和并发型的编程语言&#xff0c;由Google开发。Go的源代码文件以.go为扩展名&#xff0c;文件名通常与包名保持一致。一个Go文件可以包含多个顶级声明&#xff0c;…

做一个后台项目的架构

后台架构的11个维度 架构1&#xff1a;团队协助基础工具链的选型和培训架构2&#xff1a;搭建微服务开发基础设施架构3&#xff1a;选择合适的RPC框架架构4&#xff1a;选择和搭建高可用的注册中心架构5&#xff1a;选择和搭建高可用的配置中心架构6&#xff1a;选择和搭建高性…

(七)C++自制植物大战僵尸游戏关卡数据加载代码讲解

植物大战僵尸游戏开发教程专栏地址http://t.csdnimg.cn/xjvbb 打开LevelData.h和LevelData.cpp文件。文件位置如下图所示。 LevelData.h 此头文件中定义了两个类&#xff0c;分别是OpenLevelData、LevelData&#xff0c;其中OpenLevelData用于加载文件数据。LevelData解析数据…