基础练习题之函数

前言

这些题目来自与一些刷题网站,以及c primer plus,继续练习

第一题

给你一个数,让他进行巴啦啦能量,沙鲁沙鲁,小魔仙大变身,如果进行变身的数不满足条件的话,就继续让他变身。。。直到满足条件为止。

巴啦啦能量,沙鲁沙鲁,小魔仙大变身:对于一个数,把他所有位上的数字进行加和,得到新的数。

如果这个数字是个位数的话,那么他就满足条件。

给一个整数数字n(1<=n<=1e9) 输出由n经过操作满足条件的数

1分析

哎呀其实思路很简单, int 类型的大小大概可以到20亿左右

而这里的n的大小只有10亿 只需使用int类型的整型即可

那它要一个整数的各位之和,当然如果大家从来没有做过这类题目可能要斟酌一下

但是我们一眼就看出来了 使用while循环  判断条件即为该数

限制条件就是对他除10, 循环内部对它求模可以得到它的个位数大小

一次进行就可以得到它的各位之和,然而它还可以大于10之后加一个判断这个题目就出来了

2代码实现

#include <stdio.h>
int Ifbecome(int x)
{int flag=x;while(1){int a=0;while(flag){a+=flag%10;flag/=10;}if(a<10)return a;elseflag=a;}
}int main() {int a, b;while (scanf("%d", &a) != EOF) { 
printf("%d",Ifbecome(a));}return 0;
}

第二题

请统计某个给定范围[L, R]的所有整数中,数字2出现的次数

比如给定范围[2, 22],数字2在数2中出现了1次,在数12中出现1次,在数20中出现1次,在数21中出现1次,在数22中出现2次,所以数字2在该范围内一共出现了6次

输入共1行,为两个正整数L和R,之间用一个空格隔开。

输出共1行,表示数字2出现的次数。

1分析

这些题目还是很好的,用来打基础真的挺好

很明显和上个题目是有相似之处的 我们只要分别对范围内的数比较他们的各个位 数的大小与

2相判断即可 其实会上个题目 这个题目也会做

2,代码实现

#include <stdio.h>
int Count(int x)
{int a=0;while(x){if(2==x%10)a++;x/=10;}return a;
}
int main() {int a, b;while (scanf("%d%d", &a,&b) != EOF) { int i;int j=0;for(i=a;i<=b;i++){j+=Count(i);}printf("%d",j);}return 0;
}

第三题

牛牛很喜欢发短信,他所用的通讯公司的收费方法如下:

1.每条短信收费0.1元

2.每条短息的字数不超过60字,如果超过60字,将按照0.2元的价格收费。

牛牛这个月发了 n 条短信,请问牛牛一共要缴多少短信费

第一行输入一个正整数 n ,表示发送短信的条数,

第二行输入 n 个正整数,表示牛牛发送的 n 条短信中每条短信的字数

输出牛牛这个月要缴的短信费

1分析 

这个题目太简单了,简单的说一下

首先判断字数,一个if就行 然后注意得用浮点型来输出其他没什么

2代码实现

#include <stdio.h>
float Price(int x)
{if(x>60){return 0.2;}elsereturn 0.1;
}
int main() {int a, b;float c=0.0f;while (scanf("%d", &a) != EOF) {while(a){scanf("%d",&b);c+=Price(b);a--;}printf("%.1f",c);}return 0;
}

第四题

牛牛刚刚学了素数的定义:素数值指在大于1的自然数中,除了1和它本身以外不再有其他因数的自然数

牛牛想知道在 [l,r] 范围内全部素数的和

输入两个正整数 l,r 表示闭区间范围 输出 [l,r] 范围内的素数的和

1分析怎么说素数的定义都告诉我们了 我们不就是让这个区间的数一直除以非1和非本身的数

只要不被整除,那么他就是素数

当然 我们可以有优化方案

就是说,在数学中只要一直除以它的算术平方根就行了

2代码实现

#include <stdio.h>
#include<math.h>
int Iszhishu(int x)
{if(x==1)return 0;int i;for(i=2;i<=sqrt(x);i++){if(x%i==0)return 0; }return x;
}
int main() {int a, b;while (scanf("%d %d", &a, &b) != EOF) { int i;int count=0;for(i=a;i<=b;i++){count+=Iszhishu(i);}printf("%d",count);}return 0;
}

第五题

前面几个题目来自于牛客网,大家可以去那里刷题,现在来看看比较基础的

接下来看 c primer plus的题目

设计一个函数min(x,y),返回两个double类型值的较小值

基础但是,多练

直接代码实现吧

#include<stdio.h>
double Min(double a,double b)
{
return a>b?b:a;}
int main()
{
double a,b;
scanf("%lf %lf",&a,&b);
printf("%.2lf",Min(a,b));
return 0;
}

第六题

设计一个函数chline(ch,i,j)打印指定的字符i列j行

1分析这个题目很基础,没办法,题目是这样的,如果不会,建议你多多看书

2代码实现

#include<stdio.h>
void chline(char ch, int a, int b)
{int i, j;for (i = 0; i < a; i++){for (j = 0; j < b; j++){printf("%c", ch);}printf("\n");}
}
int main()
{while (1){char ch;int ch0;int a, b;printf("输入要打印的字符\n");scanf("%c", &ch);printf("输入要打印的行列\n");scanf("%d%d", &a, &b);chline(ch, a, b);while ((ch0 = getchar()) && ch0 != '\n');}return 0;
}

3细节之处在于我们的万能清除缓存区最后一行的while中

通过这个函数可以把所有的"\n"清除防止被scanf接收到

虽然简单但是细节

我们发现这本书上的代码实践性更高

第七题

计算调和平均数先求两数的倒数,再求两个倒数的平均值,最后就算结果的倒数

直接代码实现

double Tiaohe(double x, double y)
{//return 1/((1/x+1/y)/2);这个结果没有化简return 2 / (1 / x + 1 / y);//化简后代码其实更高效
}
int main()
{double a, b;printf("请输入两个数\n");scanf("%lf %lf", &a, &b);double c=Tiaohe(a, b);printf("%.2lf", c);return 0;
}

值得注意的是,该调和平均数的算式可以化简,不要死算哦

第八题

编写一个函数,从标准输入中读取字符,直至遇到文件结尾程序得报告每个字符是否为字母

如果是还要报告字母在字母表的位置

再编写一个函数, 以一个字符为参数如果是字母返回一个数值位否则返回-1

没什么好说的代码

int Ifzimu(char ch);
void Readchar();
int main()
{Readchar();return 0;
}
void Readchar()
{char ch;while ((scanf("%c", &ch))==1){int a=Ifzimu(ch);if (a!=-1)printf("%d ", a);}
}
int Ifzimu(char ch)
{if (ch >= 'A' && ch <= 'Z'){return (int)(ch - 'A' + 1);}else if (ch >= 'a' && ch <= 'z')return (int)(ch - 'a' + 1);elsereturn -1;
}

总结

今天的题目到此为止祝大家开心

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

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

相关文章

SQLiteC/C++接口详细介绍之sqlite3类(十五)

返回目录&#xff1a;SQLite—免费开源数据库系列文章目录 上一篇&#xff1a;SQLiteC/C接口详细介绍之sqlite3类&#xff08;十四&#xff09; 下一篇&#xff1a;SQLiteC/C接口详细介绍之sqlite3类&#xff08;十六&#xff09; 47.sqlite3_set_authorizer 用法&#xff…

11.进程的同步与互斥

11.进程的同步与互斥 计数信号量及其初始化 和王道里面学的PV操作一摸一样,带个count变量,带个阻塞队列 //D:\code\x86\code\start\start\source\kernel\include\ipc\sem.h #ifndef OS_SEM_H #define OS_SEM_H#include "tools/list.h"/*** 进程同步用的计数信号量*…

BswM模块配置指导

文章目录 BswM配置的分类自动配置:通信控制Rule:CC_ComMChannel_Rx自动配置:Ecu状态处理自动配置:模块初始化其他配置总结BswM模块是基础软件的模式管理模块,模式/状态控制都是由BswM模块进行,其实现的方式是通过 “请求-仲裁-执行”三步完成。本篇基于基本Can通信所用到…

string.h主要函数汇总

大家点击蓝色的连接就可以跳转查看了&#xff1a; strcpy,strncpy strchr strncmp strcmp strcat strncat strstr

2024计算机二级6

1.基本路径测试是属于白盒测试方法且是动态测试&#xff0c;静态测试不实际运行软件&#xff0c;主要通过人工进行分析。动态测试就是通常所说的上机测试&#xff0c;通过运行软件来检验软件中的动态行为和运行结果的正确性。百合测试的主要技术有逻辑覆盖测试、基本路径测试。…

UE5.1_自定义配置文件读取

UE5.1_自定义配置文件读取 读取配置文件时常规项目都会要求考虑的一个问题,然我接触过的UE类项目还真没考虑过,最近有个想法,奈何比较费劲,利用网上的教程跟进一下试试? 先基于Actor创建c++类(应该大家都会的吧),然后就是一下代码: MyConfig.h // Fill out your c…

CSS其他属性

文章目录 1. vertical-align1.1. 概念1.2. 常用值1.3. 作用1.4. 出现的情况一1.4.1. 原因1.4.2. 解决方案 1.5. 出现情况二1.5.1. 解决方案一1.5.2. 解决方案二1.5.3. 解决方案三 1.6. 出现情况三1.6.1. 原因1.6.2. 解决方案 2. 溢出效果2.1. 作用2.2. 属性名 3. 隐藏效果3.1. …

14双体系Java学习之数组

数组 ★小贴士 数组中保存固定数量的值&#xff0c;声明数组时需要制定数组中元素的类型&#xff0c;数组的长度在创建数组时设定。 保存数据的数据结构有很多&#xff0c;Java的标准函数库中就包含了许多复杂的数据结构&#xff0c;比如map、tree和set&#xff0c;以后会讲解的…

电脑那个部件坏了或者是哪个软件需要修复来看价钱

电脑维修价格表是多少&#xff1f; 价格取决于计算机的哪个部分损坏或哪个软件需要修复。 由于电脑中的部件非常多&#xff0c;而且会以各种奇怪的方式出现问题&#xff0c;下面我们就来看看具体的充电方法。 电脑维修价格表&#xff1a; 1. 重新安装系统。 安装XP系统通常需…

uniapp sqlite时在无法读取到已准备好数据的db文件中的数据

问题 {“code”:-1404,“message”:“android.database.sqlite.SQLiteException: no such table: user (Sqlite code 1): , while compiling: select * from user, (OS error - 2:No such file or directory),http://ask.dcloud.net.cn/article/282”} at pages/index/index.vu…

行走的机器人

题目描述 Bob 对机器人进行了编程&#xff0c;让它在平面迷宫中行走。 迷宫有一些障碍。 空单元格由字符"."表示&#xff0c;障碍物由"#"表示。 迷宫中只有一个机器人。 它的起始位置用字符"S"表示。 这个位置没有任何障碍。 迷宫中也只有一个…

<Linux> 线程的同步与互斥

目录 前言&#xff1a; 一、资源共享问题 &#xff08;一&#xff09;多线程并发访问 &#xff08;二&#xff09;临界资源与临界区 &#xff08;三&#xff09;“锁” 是什么 二、多线程抢票场景 &#xff08;一&#xff09;并发抢票 &#xff08;二&#xff09;并发访…

Segment Routing IPv6简介

定义 SRv6&#xff08;Segment Routing IPv6&#xff0c;基于IPv6转发平面的段路由&#xff09;是基于源路由理念而设计的在网络上转发IPv6数据包的一种协议。SRv6通过在IPv6报文中插入一个路由扩展头SRH&#xff08;Segment Routing Header&#xff09;&#xff0c;在SRH中压…

Ubuntu下安装microk8s用代理解决无法拉取镜像问题

首先安装microk8s: sudo snap install microk8s --classic得到输出&#xff1a; microk8s (1.28/stable) v1.28.7 from Canonical✓ installed设置 K8s 命令别名&#xff08;alias&#xff09; MicroK8s 支持的命令中&#xff0c;我们会相对高频的使用 microk8s.kubectl 这个…

渗透测试与HTTP中的PUT请求

PUT 请求用于向服务器更新指定资源&#xff0c;可以理解为对服务器上的资源进行修改操作。使用 PUT 请求方式会覆盖原有的资源内容&#xff0c;因此需要谨慎使用。 在渗透测试中&#xff0c;有可能服务端会暴露PUT请求的api&#xff0c;如修改用户权限的api&#xff0c;例如HT…

蓝桥杯练习系统(算法训练)ALGO-971 比较

资源限制 内存限制&#xff1a;256.0MB C/C时间限制&#xff1a;1.0s Java时间限制&#xff1a;3.0s Python时间限制&#xff1a;5.0s 问题描述 给出一个n长的数列&#xff0c;再进行m次询问&#xff0c;每次询问询问两个区间[L1,R1]&#xff0c;[L2,R2]&#xff0c;  …

HarmonyOS NEXT应用开发—Grid和List内拖拽交换子组件位置

介绍 本示例分别通过onItemDrop()和onDrop()回调&#xff0c;实现子组件在Grid和List中的子组件位置交换。 效果图预览 使用说明&#xff1a; 拖拽Grid中子组件&#xff0c;到目标Grid子组件位置&#xff0c;进行两者位置互换。拖拽List中子组件&#xff0c;到目标List子组件…

数据可视化-ECharts Html项目实战(1)

在之前的文章中&#xff0c;我们学习了如何安装Visual Studio Code并下载插件&#xff0c;想了解的朋友可以查看这篇文章。同时&#xff0c;希望我的文章能帮助到你&#xff0c;如果觉得我的文章写的不错&#xff0c;请留下你宝贵的点赞&#xff0c;谢谢。 安装 Visual Studio…

一个服务出现fullgc正常吗 少量的fullgc会影响系统的稳定性吗

在Java应用的运行过程中&#xff0c;发生Full GC是正常的&#xff0c;因为它是JVM垃圾回收机制的一部分。Java虚拟机会定期进行垃圾回收以回收不再被使用的对象所占用的内存。然而&#xff0c;频繁的Full GC或者过长的GC暂停时间是不理想的&#xff0c;因为它会导致应用程序在垃…

网络管理基础

Linux网络管理 1.网络管理概念 网络接口和名称 &#xff1a;网卡 ip地址 网关 主机名称 路由2.管理工具 net-tools: #安装包 ifconfig netstat 准备要废掉了。iproute: #安装包 ip #提供ip命令3.认识网卡 lo网卡 :本地回环网卡&#xff0c;本机上的服务自己访问自…