c语言经典基础编程题

c语言经典基础编程题

  • 一、输出输出
    • 1.1温度输出
    • 1.2排齐数据
    • 1.3进制转换
  • 二、选择分支
    • 2.1求最大值
    • 2.2成绩评定
    • 2.3分段函数求值
    • 2.4 利润计算
    • 2.5判断闰年
    • 2.6二次方程根
  • 三、循环结构
    • 3.1倒数求和
    • 3.2最大数
    • 3.3判断素数
    • 3.4判断完全数
    • 3.5打印菱形🚀🚀🚀
    • 3.6复读机
    • 3.7算对了吗
    • 3.8 堵车问题

😍适合考研复试,期末考试,小白学习…超绝!!!(自用版)👍
在这里插入图片描述

一、输出输出

1.1温度输出

在这里插入图片描述
答案:

#include<stdio.h>
int main(){double c,F;scanf("%lf",&F);c=5*(F-32)/9;printf("c=%.2lf",c);return 0;
}

注意:注意:如果c,F是float类型,为了保证精度,中间运算编译器还是会隐含的转化为double类型进行运算。

1.2排齐数据

在这里插入图片描述
答案:

#include<stdio.h>
int main(){char love;int year,height;int age;scanf("%c,%d,%d",&love,&year,&height);age=2025-year;printf("love:%-8cage:%-8dheight:%-8d",love,age,height);return 0;
}

%-md:-代表左对齐,m是最少占用多少列。

1.3进制转换

在这里插入图片描述
答案:

#include<stdio.h>
int main(){int x;scanf("%d",&x);printf("十进制:%d 八进制:%o 十六进制:%x 指数形式:%e",x,x,x,(float)x);return 0;
}

注意:仅需制定相应的格式化输出符,编译器会自动完成进制准换。
指数形式是浮点数的表示形式之一,所以要进行强制类型转换成float类型。

二、选择分支

2.1求最大值

在这里插入图片描述
答案: 🎈前两项和后两项分别取大者,然后这两个大者再取更大者。

#include<stdio.h>
int main(){int a,b,c,d;int temp;scanf("%d%d%d%d",&a,&b,&c,&d);if(a<b){temp=a,a=b,b=temp;}if(c<d){temp=c,c=d,d=temp;}if(a<c){temp=a,a=c,c=temp;}printf("%d",a);return 0;	
}

2.2成绩评定

在这里插入图片描述
答案:

#include<stdio.h>
int main(){int grade;scanf("%d",&grade);if(grade<60){printf("E");}else{switch(grade/10){case 6: printf("D"); break;case 7: printf("C"); break;case 8: printf("B"); break;case 9: case 10:printf("A"); break;}}return 0;	
}

2.3分段函数求值

在这里插入图片描述
答案:

#include<stdio.h>
int main(){int x,y;scanf("%d",&x);if (x<1){y=x;}else if(x<=1&&x<10){y=2*x-1;}else{y=3*x-11;}printf("%d",y);return 0;
}

2.4 利润计算

在这里插入图片描述
答案:

#include <stdio.h>int main() {int profit;double bonus;scanf("%d", &profit);if (profit <= 100000) {bonus = profit * 0.1;} else if (profit <= 200000) {bonus = 100000 * 0.1 + (profit - 100000) * 0.075;} else if (profit <= 400000) {bonus = 100000 * 0.1 + 100000 * 0.075 + (profit - 200000) * 0.05;} else if (profit <= 600000) {bonus = 100000 * 0.1 + 100000 * 0.075 + 200000 * 0.05 + (profit - 400000) * 0.03;} else if (profit <= 1000000) {bonus = 100000 * 0.1 + 100000 * 0.075 + 200000 * 0.05 + 200000 * 0.03 + (profit - 600000) * 0.015;} else {bonus = 100000 * 0.1 + 100000 * 0.075 + 200000 * 0.05 + 200000 * 0.03 + 400000 * 0.015 + (profit - 1000000) * 0.01;}printf("%d", (int)bonus);return 0;
}

2.5判断闰年

在这里插入图片描述
答案:

#include <stdio.h>int main() {int year;scanf("%d",&year);if((year%4==0&&year%100!=0)||(year%400==0)){printf("0");  //闰年}else{printf("1");}return 0;
}

2.6二次方程根

在这里插入图片描述

答案:

#include <stdio.h>
#include <math.h>
int main() {double a,b,c,delta;scanf("%lf%lf%lf",&a,&b,&c);delta=b*b-4*a*c;if(delta>1e-6){printf("x1=%.3lf x2=%.3lf",((-b+sqrt(delta))/2/a),((-b-sqrt(delta))/2/a));}else if(fabs(delta)<=1e-6){printf("x1=%.3lf x2=%.3lf",(-b/2/a), (-b/2/a));}else{printf("x1=%.3lf+%.3lfi x2=%.3lf-%.3lfi",(-b/2/a),(sqrt(-delta)/2/a),(-b/2/a),(sqrt(-delta)/2/a));}return 0;
}

在判断判别式与 0 的关系时,由于浮点数在计算机中存储存在精度问题,直接用 == 判断浮点数等于 0 可能不准确,所以有时会引入一个极小值(如 1e-6 )来进行近似判断。

三、循环结构

3.1倒数求和

在这里插入图片描述
答案:

#include <stdio.h>
int main() {int n;double sum=0.0;//不可以忘记赋初值scanf("%d",&n);for(int i=1;i<=n;i++){sum+=1/(double)i; //注意这里的类型转换}printf("%.4lf",sum);return 0;
}

3.2最大数

在这里插入图片描述
答案:

#include <stdio.h>
int main() {int x,max=0;scanf("%d",&x);while(x!=0){if(x>max){max=x;}scanf("%d",&x);}printf("%d",max);return 0;}

tips:我们键盘输入到控制台中的数据,并不会直接输出,一开始都放到键盘的缓冲区中,按回车后才会发送出去!🚗

3.3判断素数

在这里插入图片描述
答案:

#include <stdio.h>
int isPrime(int n) {if (n <= 1)return 0;  // 不是素数for (int i = 2; i * i <= n; i++)if (n % i == 0) {return 0;  // 不是素数}return 1;  // 是素数,注意是等到整个循环结束后
}int main() {int n;scanf("%d", &n);if (isPrime(n)) {printf("yes\n");} else {printf("no\n");}return 0;
}

3.4判断完全数

在这里插入图片描述
答案:

#include <stdio.h>
int main() {int n,sum=0;scanf("%d",&n);for(int i=1;i<=n;i++){sum=0;  //注意这个归0位置for(int j=1;j<=i/2;j++){ //注意边界=i/2 这个因子if(i%j==0){sum+=j;}	}if(sum==i){  //注意放在内层for循环的外部,不然这会使得在还没有遍历完所有因子时就进行判断printf("%d ",i);}}return 0;
}

3.5打印菱形🚀🚀🚀

在这里插入图片描述
在这里插入图片描述
答案:

#include <stdio.h>
int main() {int n;scanf("%d",&n);for(int i=1;i<=n/2+1;i++){ //打印高度n/2+1的上三角for(int j=i;j<=n/2;j++){ //前4行空格数 3 2 1 0printf(" ");}for(int j=1;j<=2*i-1;j++){ //前4行*数 1 3 5 7printf("*");}printf("\n");}for(int i=1;i<=n/2;i++){ //打印高度n/2的上三角for(int j=1;j<=i;j++){ //后3行空格数 1 2 3printf(" ");}for(int j=1;j<=n-2*i;j++){ //后3行*数 5 3 1printf("*");}printf("\n");}return 0;
}

先打印上三角,再打印下三角,结合具体情况弄清空格和*的个数关系,来处理边界情况。

3.6复读机

在这里插入图片描述
答案:

#include <stdio.h>
int main() {char c;while((c=getchar())!='#'){putchar(c);}return 0;
}

3.7算对了吗

在这里插入图片描述
答案:

#include <stdio.h>
#include <string.h>int main(){char input[100];int correct_answers = 0;while (1){gets(input);if (input[0] == '#')break;int a, b, c;char op;//从字符数组中解析字符sscanf(input, "%d%c%d=%c", &a, &op, &b, &c);if (op == '+'){if (c != '?' && c == (a + b))correct_answers++;}else if (op == '-'){if (c != '?' && c == (a - b))correct_answers++;}}printf("%d", correct_answers);return 0;
}

3.8 堵车问题

在这里插入图片描述
答案:

#include <stdio.h>
int main(){int n, count = 0;scanf("%d", &n);for (int small = 0; small <= n; small++)for (int middle = 0; middle <= n/2; middle++)for (int large = 0; large <= n/3; large++)if (small + 2*middle + 3*large == n)count++;printf("%d",count);return 0;
}

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

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

相关文章

java数据处理:Map<String, Object>、Map<String, List<Room>>、Map<String, Integer>

已知数据都存在WargameConfig.HallMap里。 一、Map<String, Integer> 需求:按照scenarioName进行分类,统计每种scenarioName下的Room对象有多少; 思路:统计一个名为WargameConfig.HallMap的集合中,每个不同场景名称(scenarioName)出现的次数。返回一个键值对映射…

安全的实现数据备份和恢复

&#x1f4d5;我是廖志伟&#xff0c;一名Java开发工程师、《Java项目实战——深入理解大型互联网企业通用技术》&#xff08;基础篇&#xff09;、&#xff08;进阶篇&#xff09;、&#xff08;架构篇&#xff09;清华大学出版社签约作家、Java领域优质创作者、CSDN博客专家、…

TCP网络协议

TCP粘包 1. TCP在接收数据时&#xff0c;多包数据粘在了一起 2. 原因&#xff1a; 1. TCP发送数据时&#xff0c;没有及时发走&#xff0c;会根据缓冲区数据的情况进行重新组包&#xff1b; 2. TCP接收方&#xff0c;没有及时读走缓冲区数据&#xff0c;导致缓冲区大量数…

ES6回顾:闭包->(优点:实现工厂函数、记忆化和异步实现)、(应用场景:Promise的then与catch的回调、async/await、柯里化函数)

闭包讲解 ES6回顾&#xff1a;闭包->(优点&#xff1a;实现工厂函数、记忆化和异步实现&#xff09;、&#xff08;应用场景&#xff1a;Promise的then与catch的回调、async/await、柯里化函数&#xff09; 以下是与 JavaScript 闭包相关的常见考点整理&#xff0c;结合 Pro…

OpenMCU(三):STM32F103 FreeRTOS移植

概述 本文主要描述了STM32F103移植FreeRTOS的简要步骤。移植描述过程中&#xff0c;忽略了Keil软件的部分使用技巧。默认读者熟练使用Keil软件。本文的描述是基于OpenMCU_RTOS这个工程&#xff0c;该工程已经下载放好了移植STM32F103 FreeRTOS的所有文件 OpenMCU_RTOS工程的愿景…

生成对抗网络(GAN)原理与应用

目录 一、引言 二、GAN的基本原理 &#xff08;一&#xff09;生成器&#xff08;Generator&#xff09;的工作机制 &#xff08;二&#xff09;判别器&#xff08;Discriminator&#xff09;的工作机制 &#xff08;三&#xff09;对抗训练的过程 三、GAN在AIGC生图中的应…

STM32 内置的通讯协议

数据是以帧为单位发的 USART和UART的区别就是有没有同步功能 同步是两端设备有时钟连接&#xff0c;异步是没时钟连接&#xff0c;靠约定号的频率&#xff08;波特率&#xff09;接收发送数据 RTS和CTS是用来给外界发送已“可接收”或“可发送”信号的&#xff0c;一般用不到…

ES 使用geo point 查询离目标地址最近的数据

需求描述&#xff1a;项目中需要通过经纬度坐标查询目标地所在的行政区。 解决思路大致有种&#xff0c;使用es和mysql分别查询。 1、使用es进行查询 将带有经纬度坐标的省市区数据存入es中&#xff0c;mappings字段使用geo point类型&#xff0c;索引及查询dsl如下。 geo p…

Appium等待机制--强制等待、隐式等待、显式等待

书接上回&#xff0c;Appium高级操作--其他操作-CSDN博客文章浏览阅读182次&#xff0c;点赞6次&#xff0c;收藏7次。书接上回Appium高级操作--从源码角度解析--模拟复杂手势操作-CSDN博客。https://blog.csdn.net/fantasy_4/article/details/146162851主要讲解了Appium的一些…

【架构艺术】Go语言微服务monorepo的代码架构设计

近期因为项目架构升级原因&#xff0c;笔者着手调研一些go项目monorepo的代码架构设计&#xff0c;目标是长期把既有微服务项目重要的部分都转移到monorepo上面&#xff0c;让代码更容易维护&#xff0c;协作开发更加方便。虽然经验不多&#xff0c;但既然有了初步的调研&#…

深入解析 JVM —— 从基础概念到实战调优的全链路学习指南

文章目录 一、为什么要学习 JVM&#xff1f;1. 面试必备与技能提升2. 性能优化与问题诊断3. 编写高质量代码 二、JVM 基础概念与体系结构1. JVM 简介2. JDK、JRE 与 JVM 三、JVM 内存模型1. 线程私有区2. 线程共享区 四、类加载机制与双亲委派1. 类加载过程2. 双亲委派模型3. 动…

前端及后端实现csv文件下载功能

方法一、 前端内容&#xff1a; const url window.URL.createObjectURL(new Blob([res.data])); const link document.createElement(a); link.href url; const fileNameDateTime getFormattedDateTime(); const filename "用户提现列表"fileNameDateTime.csv…

QT中委托QStyledItemDelegate的使用

目录 一、子类化委托 二、委托方法实现 1)createEditor 2)setEditorData 3)setModelData 4)updateEditorGeometry 三、委托使用 四、总结 Qt的数据容器控件采用模型/视图(model/view)架构设计。模型用于存放控件的数据,视图则用于显示编辑数据,而委托则是…

OpenCV实现视频背景提取

在计算机视觉领域&#xff0c;背景减除&#xff08;Background Subtraction&#xff09;是一种常用的技术&#xff0c;用于从视频序列中提取前景对象。 背景减除的核心思想是通过建模背景&#xff0c;然后将当前帧与背景模型进行比较&#xff0c;从而分离出前景对象。 OpenCV…

NFS实验配置笔记

NFS NFS服务 nfs&#xff0c;最早是Sun这家公司所发展出来的&#xff0c;它最大的功能就是可以透过网络&#xff0c;让不同的机器&#xff0c;不同的操作系统&#xff0c;进行实现文档的共享。所以你可以简单的将他看做是文件服务器。 实验准备 ①先准备一个服务器端的操作…

C语言【数据结构】:理解什么是数据结构和算法(启航)

引言 启航篇&#xff0c;理解什么是数据结构和算法 在 C 语言编程领域&#xff0c;数据结构和算法是两个核心且紧密相关的概念 一、数据结构 定义 数据结构是指相互之间存在一种或多种特定关系的数据元素的集合&#xff08;比如数组&#xff09;&#xff0c;它是组织和存储数…

Vue.js 3 的设计思路:从声明式UI到高效渲染机制

目录 一、声明式UI与虚拟DOM的灵活性 二、渲染器&#xff1a;虚拟DOM到真实DOM的桥梁 三、组件的本质与实现 四、编译与运行时的协同优化 五、性能与可维护性的权衡 总结 Vue.js 3 作为新一代前端框架&#xff0c;其设计理念在声明式UI描述、虚拟DOM优化、组件化架构…

深度学习|MAE技术全景图:自监督学习的“掩码魔法“如何重塑AI基础

一、引言&#xff1a;深度学习的困境与自监督的曙光 深度学习&#xff08;Deep Learning&#xff09;无疑是当今人工智能领域基础中的基础。从图像识别到自然语言处理&#xff08;NLP&#xff09;&#xff0c;它在无数任务中展现了卓越性能。例如&#xff0c;在安防监控中&…

深度学习正则化技术之权重衰减法、暂退法(通俗易懂版)

一、影响模型泛性的因素有&#xff1f;什么是正则化技术&#xff1f;有什么用&#xff1f; 通常&#xff0c;影响模型泛化能力的因素有&#xff1a; 可调节参数的个数&#xff1a;可调节的参数过少&#xff0c;会造成模型过于简单&#xff0c;欠拟合&#xff1b;过多&#xf…

爬虫逆向:Unicorn 详细使用指南

文章目录 1. Unicorn 介绍1.1 Unicorn 的特点1.2 Unicorn功能2. 安装 Unicorn2.1 安装 Python 绑定2.2 安装 Unicorn 核心库3. Unicorn 的基本使用3.1 初始化模拟器3.2 映射内存3.3 写入代码3.4 设置寄存器3.5 执行代码3.6 读取寄存器4. Unicorn 的高级功能4.1 钩子函数4.2 异常…