【PTA-C语言】实验七-函数与指针I

  • 如果代码存在问题,麻烦大家指正 ~ ~
  • 有帮助麻烦点个赞 ~ ~

    目录——实验七-函数与指针I

    • 6-1 弹球距离(分数 10)
    • 6-2 使用函数输出一个整数的逆序数(分数 10)
    • 6-3 使用函数求最大公约数(分数 10)
    • 6-4 使用函数求特殊a串数列和(分数 10)
    • 6-5 使用函数求素数和(分数 10)
    • 6-6 统计各位数字之和是5的数(分数 10)
    • 6-7 多项式求值(分数 10)
    • 6-8 分类统计各类字符个数(分数 10)

6-1 弹球距离(分数 10)

作者 DS课程组
单位 浙江大学

设有一个球从高度为 h h h米的地方落下,碰到地面后又弹到高度为原来 p p p倍的位置,然后又落下,再弹起,再落下…。请编写函数求初始高度为h的球下落后到基本停下来(高度小于给定阈值TOL)时在空中所经过的路程总和。

函数接口定义:

double dist( double h, double p );

其中h是球的初始高度,p是球弹起高度与弹起前落下高度的比值;函数dist要返回球下落后到基本停下来时在空中所经过的路程总和。注意:当弹起的高度小于裁判程序定义的常数TOL时,弹起的距离不计算在内。

裁判测试程序样例:

#include <stdio.h>
#define TOL 1E-3double dist( double h, double p );int main()
{double h, p, d;scanf("%lf %lf", &h, &p);d = dist(h, p);printf("%.6f\n", d);return 0;
}/* 你的代码将被嵌在这里 */

输入样例:

1.0 0.4

输出样例:

2.331149

代码长度限制
16 KB
时间限制
400 ms
内存限制
64 MB

参考代码

double dist( double h, double p )
{if(p*h<TOL)return h;elsereturn h+p*h+dist(p*h, p);
}

6-2 使用函数输出一个整数的逆序数(分数 10)

作者 C课程组
单位 浙江大学

本题要求实现一个求整数的逆序数的简单函数。

函数接口定义:

int reverse( int number );

其中函数reverse须返回用户传入的整型number的逆序数。

裁判测试程序样例:

#include <stdio.h>int reverse( int number );int main()
{int n;scanf("%d", &n);printf("%d\n", reverse(n));return 0;
}/* 你的代码将被嵌在这里 */

输入样例:

-12340

输出样例:

-4321

代码长度限制
16 KB
时间限制
400 ms
内存限制
64 MB

参考代码

int reverse( int number ){int sum=0, result;if(number<0) {printf("-");number = -number;}while(number != 0) {result = number % 10;sum = sum * 10 + result;number /= 10;}return sum;
}

6-3 使用函数求最大公约数(分数 10)

作者 张高燕
单位 浙大城市学院

本题要求实现一个计算两个数的最大公约数的简单函数。

函数接口定义:

int gcd( int x, int y );

其中xy是两个正整数,函数gcd应返回这两个数的最大公约数。

裁判测试程序样例:

#include <stdio.h>int gcd( int x, int y );int main()
{int x, y;scanf("%d %d", &x, &y);printf("%d\n", gcd(x, y));return 0;
}/* 你的代码将被嵌在这里 */

输入样例:

32 72

输出样例:

8

感谢集美大学蓝华斌同学修正测试数据!

代码长度限制
16 KB
时间限制
400 ms
内存限制
64 MB

参考代码

int gcd(int x, int y)
{int temp;while(y){temp=x%y;x=y;y=temp;}return x;
}

6-4 使用函数求特殊a串数列和(分数 10)

作者 张高燕
单位 浙江大学

给定两个均不超过9的正整数 a a a n n n,要求编写函数求 a + a a + a a a + + ⋯ + a a ⋯ a a+aa+aaa++⋯+aa⋯a a+aa+aaa+++aaa n n n a a a)之和。

函数接口定义:

int fn( int a, int n );
int SumA( int a, int n );

其中函数fn须返回的是na组成的数字;SumA返回要求的和。

裁判测试程序样例:

#include <stdio.h>int fn( int a, int n );
int SumA( int a, int n );int main()
{int a, n;scanf("%d %d", &a, &n);printf("fn(%d, %d) = %d\n", a, n, fn(a,n));        printf("s = %d\n", SumA(a,n));    return 0;
}/* 你的代码将被嵌在这里 */

输入样例:

2 3

输出样例:

fn(2, 3) = 222
s = 246

代码长度限制
16 KB
时间限制
400 ms
内存限制
64 MB

参考代码

int fn(int a, int n)
{int sum=0, i;for(i=0; i<n; i++)sum=sum*10+a;return sum;
}
int SumA(int a, int n)
{int sum=0, i;for(i=1; i<=n; i++)sum += fn(a, i);return sum;
} 

6-5 使用函数求素数和(分数 10)

作者 张高燕
单位 浙大城市学院

本题要求实现一个判断素数的简单函数、以及利用该函数计算给定区间内素数和的函数。

素数就是只能被1和自身整除的正整数。注意:1不是素数,2是素数。

函数接口定义:

int prime( int p );
int PrimeSum( int m, int n );

其中函数prime当用户传入参数p为素数时返回1,否则返回0;函数PrimeSum返回区间[m, n]内所有素数的和。题目保证用户传入的参数mn

裁判测试程序样例:

#include <stdio.h>
#include <math.h>int prime( int p );
int PrimeSum( int m, int n );int main()
{int m, n, p;scanf("%d %d", &m, &n);printf("Sum of ( ");for( p=m; p<=n; p++ ) {if( prime(p) != 0 )printf("%d ", p);}printf(") = %d\n", PrimeSum(m, n));return 0;
}/* 你的代码将被嵌在这里 */

输入样例:

-1 10

输出样例:

Sum of ( 2 3 5 7 ) = 17

代码长度限制
16 KB
时间限制
400 ms
内存限制
64 MB

参考代码

int prime(int p){int i;if(p<2)return 0;else if(p==2)return 1;elsefor(i=2; i<=sqrt(p); i++)if(p%i==0)return 0;return 1;
}
int PrimeSum( int m, int n )
{int i, sum=0;for(i=m; i<=n; i++)if(prime(i)==1)sum += i;return sum;
}

6-6 统计各位数字之和是5的数(分数 10)

作者 颜晖
单位 浙江大学

本题要求实现两个函数:一个函数判断给定正整数的各位数字之和是否等于5;另一个函数统计给定区间内有多少个满足上述要求的整数,并计算这些整数的和。

函数接口定义:

int is( int number );
void count_sum( int a, int b );

函数is判断number的各位数字之和是否等于5,是则返回1,否则返回0

函数count_sum利用函数is统计给定区间[a, b]内有多少个满足上述要求(即令is返回1)的整数,并计算这些整数的和。最后按照格式

count = 满足条件的整数个数, sum = 这些整数的和

进行输出。题目保证0<ab≤10000。

裁判测试程序样例:

#include <stdio.h>int is( int number );
void count_sum( int a, int b );int main()
{int a, b;scanf("%d %d", &a, &b);if (is(a)) printf("%d is counted.\n", a);if (is(b)) printf("%d is counted.\n", b);count_sum(a, b);return 0;
}/* 你的代码将被嵌在这里 */

输入样例:

104 999

输出样例:

104 is counted.
count = 15, sum = 3720

代码长度限制
16 KB
时间限制
400 ms
内存限制
64 MB

参考代码

int is( int number)
{int s=0, t;while(number!=0) {t = number%10;number /= 10;s += t;}if(s==5)return 1;else return 0;
}
void count_sum( int a, int b )
{int sum=0, count=0, i;for(i=a; i<=b; i++)if(is(i)){count++;sum += i;}printf("count = %d, sum = %d\n", count, sum);
}

6-7 多项式求值(分数 10)

作者 陈越
单位 浙江大学

本题要求实现一个函数,计算阶数为n,系数为a[0]a[n]的多项式
https://img-blog.csdnimg.cn/direct/b823b7406fe14e029c576cdddae2755a.png
x点的值。

函数接口定义:

double f( int n, double a[], double x );

其中n是多项式的阶数,a[]中存储系数,x是给定点。函数须返回多项式f(x)的值。

裁判测试程序样例:

#include <stdio.h>#define MAXN 10double f( int n, double a[], double x );int main()
{int n, i;double a[MAXN], x;scanf("%d %lf", &n, &x);for ( i=0; i<=n; i++ )scanf("%lf", &a[i]);printf("%.1f\n", f(n, a, x));return 0;
}/* 你的代码将被嵌在这里 */

输入样例:

2 1.1
1 2.5 -38.7

输出样例:

-43.1

代码长度限制
16 KB
时间限制
400 ms
内存限制
64 MB

参考代码

double f( int n, double a[], double x )
{double sum=0, t=1.0;for(int i=0; i<=n; i++) {sum += a[i]*t; t *= x;}return sum;
}

6-8 分类统计各类字符个数(分数 10)

作者 C课程组
单位 浙江大学

本题要求实现一个函数,统计给定字符串中的大写字母、小写字母、空格、数字以及其它字符各有多少。

函数接口定义:

void StringCount( char *s );

其中 char *s 是用户传入的字符串。函数StringCount须在一行内按照

大写字母个数 小写字母个数 空格个数 数字个数 其它字符个数

的格式输出。

裁判测试程序样例:

#include <stdio.h>
#define MAXS 15void StringCount( char *s );
void ReadString( char *s ); /* 由裁判实现,略去不表 */int main()
{char s[MAXS];ReadString(s);StringCount(s);return 0;
}/* Your function will be put here */

输入样例:

aZ&*?
093 Az

输出样例:

2 2 1 3 4

代码长度限制
16 KB
时间限制
400 ms
内存限制
64 MB

参考代码

void StringCount( char *s ){int i, n=strlen(s), up=0, low=0, blo=0, num=0, els=0;for(i=0; i<n; i++)if('A'<=s[i] && s[i]<='Z')up++;else if('a'<=s[i] &&s [i]<='z')low++;else if(s[i]==' ')blo++;else if('0'<=s[i] && s[i]<='9')num++;elseels++;printf("%d %d %d %d %d", up, low, blo, num, els);
}

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

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

相关文章

Flink Job 执行流程

Flink On Yarn 模式 ​ 基于Yarn层面的架构类似 Spark on Yarn模式&#xff0c;都是由Client提交App到RM上面去运行&#xff0c;然后 RM分配第一个container去运行AM&#xff0c;然后由AM去负责资源的监督和管理。需要说明的是&#xff0c;Flink的Yarn模式更加类似Spark on Ya…

数据资产入表之——数据确权

关注WX公众号&#xff1a; commindtech77&#xff0c; 获得数据资产相关白皮书下载地址 1. 回复关键字&#xff1a;数据资源入表白皮书 下载 《2023数据资源入表白皮书》 2. 回复关键字&#xff1a;光大银行 下载 光大银行-《商业银行数据资产会计核算研究报告》 3. 回复关键字…

一文掌握Java注解之@SpringBootApplication知识文集(1)

&#x1f3c6;作者简介&#xff0c;普修罗双战士&#xff0c;一直追求不断学习和成长&#xff0c;在技术的道路上持续探索和实践。 &#x1f3c6;多年互联网行业从业经验&#xff0c;历任核心研发工程师&#xff0c;项目技术负责人。 &#x1f389;欢迎 &#x1f44d;点赞✍评论…

【sql】MyBatis Plus中,sql报错LIKE “%?%“:

文章目录 一、报错详情&#xff1a;二、解决&#xff1a;三、扩展&#xff1a; 一、报错详情&#xff1a; 二、解决&#xff1a; 将LIKE “%”#{xxx}"%"改为LIKE CONCAT(‘%’, #{xxx}, ‘%’) 三、扩展&#xff1a; MyBatis Plus之like模糊查询中包含有特殊字符…

CycleGAN 是如何工作的?

一、说明 CycleGAN即循环对抗网络&#xff0c;是图像翻译成图像的模型&#xff1b;是Pix2Pix模型的扩展&#xff0c;区别在于&#xff0c;Pix2Pix模型需要输入图像和目标图像成对给出训练&#xff0c;CycleGAN则不需要&#xff0c;例如&#xff1a;从 SAR 生成 RGB 图像、从 RG…

在STM32上使用DMA进行UART通信

本文将介绍如何在STM32上使用DMA&#xff08;Direct Memory Access&#xff09;进行UART通信&#xff0c;以提高数据传输效率。我们将介绍STM32的DMA和UART模块的基本概念和使用方法&#xff0c;并给出相关的示例代码和注意事项。DMA&#xff08;Direct Memory Access&#xff…

Spark中的数据加载与保存

Apache Spark是一个强大的分布式计算框架&#xff0c;用于处理大规模数据。在Spark中&#xff0c;数据加载与保存是数据处理流程的关键步骤之一。本文将深入探讨Spark中数据加载与保存的基本概念和常见操作&#xff0c;包括加载不同数据源、保存数据到不同格式以及性能优化等方…

Python pycharm编辑器修改代码字体

在pycharm编辑器下修改代码字体&#xff0c;可以按照以下步骤&#xff1a; 点开上图所示的菜单&#xff0c; 再点击File->Settings&#xff0c;进入设置页面。 我们找到Editor下的Font并点选&#xff0c;然后我们就可以在右侧修改字体相关配置了。 这里建议使用等宽字体&…

C++面试宝典第13题:计算餐厅账单

题目 假如你是一家餐厅的收银员,需要编写一个程序来计算顾客的账单。程序应该能够接受顾客点的菜品和数量,并根据菜品的单价计算出总价。另外,程序还应该能够处理折扣和优惠券,并输出最终的账单金额。 解析 这道题主要考察应聘者使用面向对象的设计方法来解决实际问题的能力…

2023年“中银杯”四川省职业院校技能大赛“云计算应用”赛项样题卷②

2023年“中银杯”四川省职业院校技能大赛“云计算应用”赛项&#xff08;高职组&#xff09; 样题&#xff08;第2套&#xff09; 目录 2023年“中银杯”四川省职业院校技能大赛“云计算应用”赛项&#xff08;高职组&#xff09; 样题&#xff08;第2套&#xff09; 模块…

【数据结构】栈和队列(队列的基本操作和基础知识)

&#x1f308;个人主页&#xff1a;秦jh__https://blog.csdn.net/qinjh_?spm1010.2135.3001.5343&#x1f525; 系列专栏&#xff1a;《数据结构》https://blog.csdn.net/qinjh_/category_12536791.html?spm1001.2014.3001.5482 ​ 目录 前言 队列 队列的概念和结构 队列的…

分布式IO在工业自动化中的应用

传统的自动化产线及物流系统主要是利用PLC来处理数据&#xff0c;并将这些数据保存在PC当中。但是随着互联网技术的迅速发展&#xff0c;越来越多的系统集成商利用分布式IO模块&#xff0c;实现从控制器到自动化最底层之间的IO通信。 分布式IO在工业自动化中的应用 分布式IO是用…