【C/PTA】指针专项练习(二)

本文结合PTA专项练习带领读者掌握指针,刷题为主注释为辅,在代码中理解思路,其它不做过多叙述。

目录

    • 6-1 鸡兔同笼问题
    • 6-2 冒泡排序
    • 6-3 字符串反正序连接
    • 6-4 计算最长的字符串长度
    • 6-5 查找星期
    • 7-1 C程序设计 实验5-7 数组指针作函数参数
    • 7-2 查找奥运五环色的位置

6-1 鸡兔同笼问题

《孙子算经》记载:“今有雉兔同笼,上有三十五头,下有九十四足,问雉兔各几何?”
函数原型

int ChickenRabbit(int *chicken, int *rabbit, int head, int foot);

说明:head 和 foot 为头和脚的数量,chicken 和 rabbit 为指示鸡和兔数量的指针。若问题有解,则将鸡和兔的数量保存到 chicken 和 rabbit 所指示的变量中,函数值为 1(真);否则不改变 chicken 和 rabbit 所指示的变量,函数值为 0(假)。
裁判程序

#include <stdio.h>int ChickenRabbit(int *chicken, int *rabbit, int head, int foot);int main(){int h, f, c, r;scanf("%d%d", &h, &f);if (ChickenRabbit(&c, &r, h, f)){printf("%d %d\n", c, r);}else{puts("None");}return 0;}/* 你的提交代码将被嵌在这里 */

输入样例1

35 94

输出样例1

23 12

输入样例2

30 71

输出样例2

None

int ChickenRabbit(int *chicken, int *rabbit, int head, int foot)
{for(int i=0;i<=head;i++){int j=head-i;if(i*2+j*4==foot){*chicken=i;*rabbit=j;return 1;}}return 0;
}//简单判断即可

6-2 冒泡排序

输入n(1<=n<=10)个整数,将它们从小到大排序后输出,要求编写函数bubble()实现冒泡排序算法。
函数接口定义:

void bubble (int a[ ], int n);

其中 a为数组,n为数据个数。
裁判测试程序样例:

#include <stdio.h>void bubble (int a[ ], int n);int main(void){    int n, a[10];int i;scanf("%d", &n);for (i=0; i<n;i++)scanf("%d",&a[i]);bubble(a,n);for (i=0; i<n; i++)printf("%d ",a[i]);printf("\n");return 0;}/* 请在这里填写答案 */

输入样例:

8
7 3 66 3 -5 22 -77 2

输出样例:

-77 -5 2 3 3 7 22 66

void bubble (int a[ ], int n)
{for(int i=0;i<n-1;i++){for(int j=0;j<n-i-1;j++){if(a[j]>a[j+1]){int t=a[j+1];a[j+1]=a[j];a[j]=t;}}}
}

6-3 字符串反正序连接

先将在字符串s中的字符按逆序存放到t串中,然后把s中的字符按正序连接到t串的后面。
函数接口定义:

void fun (char *s, char *t);

其中s和 t 都是用户传入的参数。函数先将在字符串s中的字符按逆序存放到t串中,然后把s中的字符按正序连接到t串的后面。

裁判测试程序样例:

#include <stdio.h>void fun (char *s, char *t);int main(){ char s[100], t[100];scanf("%s", s);fun(s, t);printf("%s\n", t);return 0;}/* 请在这里填写答案 */

输入样例:

abcd

输出样例:

dcbaabcd

void fun (char *s, char *t)
{int j=0;//计算长度int l=0;while(s[l]!='\0')l++;for(int i=l-1;i>=0;i--){t[j]=s[i];j++;}int p=j;for(int i=0;i<l;i++){t[p]=s[i];p++;}t[p]='\0';
}

6-4 计算最长的字符串长度

本题要求实现一个函数,用于计算有n个元素的指针数组s中最长的字符串的长度。
函数接口定义:

int max_len( char *s[], int n );

其中n个字符串存储在s[]中,函数max_len应返回其中最长字符串的长度。
裁判测试程序样例:

#include <stdio.h>#include <string.h>#include <stdlib.h>#define MAXN 10#define MAXS 20int max_len( char *s[], int n );int main(){int i, n;char *string[MAXN] = {NULL};scanf("%d", &n);for(i = 0; i < n; i++) {string[i] = (char *)malloc(sizeof(char)*MAXS);scanf("%s", string[i]);}printf("%d\n", max_len(string, n));return 0;}/* 你的代码将被嵌在这里 */

输入样例:

4
blue
yellow
red
green

输出样例:

6

6-5 查找星期

本题要求实现函数,可以根据下表查找到星期,返回对应的序号。
序号 星期
0 Sunday
1 Monday
2 Tuesday
3 Wednesday
4 Thursday
5 Friday
6 Saturday
函数接口定义:

int getindex( char *s );

函数getindex应返回字符串s序号。如果传入的参数s不是一个代表星期的字符串,则返回-1。
裁判测试程序样例:

#include <stdio.h>#include <string.h>#define MAXS 80int getindex( char *s );int main(){int n;char s[MAXS];scanf("%s", s);n = getindex(s);if ( n==-1 ) printf("wrong input!\n");else printf("%d\n", n);return 0;}/* 你的代码将被嵌在这里 */

输入样例1:

Tuesday

输出样例1:

2

输入样例2:

today

输出样例2:

wrong input!

int getindex( char *s )
{if(strcmp(s,"Sunday")==0)return 0;if(strcmp(s,"Monday")==0)return 1;if(strcmp(s,"Tuesday")==0)return 2;if(strcmp(s,"Wednesday")==0)return 3;    if(strcmp(s,"Thursday")==0)return 4;    if(strcmp(s,"Friday")==0)return 5;    if(strcmp(s,"Saturday")==0)return 6;return -1;
}

7-1 C程序设计 实验5-7 数组指针作函数参数

数组指针作函数参数
输入m个学生(最多30人)n门课程(最多5门)的成绩,然后计算并打印每个学生各门课的总分和平均分。其中,m和n的值由用户从键盘输入。
输入格式:

输入顺序如下:

学生个数m 课程数n
学生1课程1分数 学生1课程2分数 ... 学生1课程n分数
学生2课程1分数 学生2课程2分数 ... 学生2课程n分数
...
学生m课程1分数 学生m课程2分数 ... 学生m课程n分数

输出格式:

每个学生总分(整数) 平均分(实数,保留1位小数)
输入样例:

在这里给出一组输入。例如:

2 3
61 62 70
75 82 90

输出样例:

在这里给出相应的输出。例如:

193 64.3
247 82.3

#include <stdio.h>
int main()
{int m,n;scanf("%d%d",&m,&n);int a[n];for(int i=0;i<m;i++){double sum=0;double aver;for(int j=0;j<n;j++){scanf("%d",&a[j]);sum+=a[j];}aver=sum/n;printf("%.0f %.1f\n",sum,aver);}}

7-2 查找奥运五环色的位置

奥运五环的5种颜色的英文单词按一定顺序排列{“red”, “blue”, “yellow”, “green”, “black” },定义指针数组并初始化,输入任意一个颜色的英文单词,从已有颜色中查找并输出该颜色的位置值,若没有找到,则输出"Not Found"。
输入格式:

输入一个代表颜色的单词。
输出格式:

输出单词对应的位置值,如果未找到,输出Not Found。
输入样例:

yellow

输出样例:

3

#include <stdio.h>
#include <string.h>
int main()
{char* colors[]={"red","blue","yellow","green","black"};char color[100];int flag=-1;scanf("%s",color);for(int i=0;i<5;i++){if(strcmp(color,colors[i])==0){flag=i;break;}}if(flag!=-1)printf("%d",flag+1);elseprintf("Not Found");
}

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

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

相关文章

使用glBlitFramebuffer将2D多采样纹理转换为2D普通纹理的教程

介绍&#xff1a; 在计算机图形编程中&#xff0c;有时你可能需要将2D多采样纹理转换为普通2D纹理。这种转换在实现不需要多采样的后处理效果时非常有用。OpenGL中的glBlitFramebuffer函数为高效实现此转换提供了便捷的方法。本教程将指导你如何使用glBlitFramebuffer从多采样…

【数据结构】哈夫曼树(Huffman Tree)和哈夫曼编码(Huffman Coding)

哈夫曼树&#xff08;Huffman Tree&#xff09;和哈夫曼编码&#xff08;Huffman Coding&#xff09;是数据压缩领域常用的技术。哈夫曼树是一种特殊的二叉树&#xff0c;用于构造哈夫曼编码&#xff0c;而哈夫曼编码则是一种变长编码&#xff0c;用于压缩数据。 在解释哈夫曼…

文心一言 VS 讯飞星火 VS chatgpt (147)-- 算法导论12.2 2题

二、用go语言&#xff0c;写出 TREE-MINIMUM 和 TREE-MAXIMUM 的递归版本。 灵捷3.5 。 文心一言&#xff1a; 以下是用 Go 语言编写的树的最大值和最小值的递归版本代码&#xff1a; package main import ( "fmt" ) type TreeNode struct { Val int Le…

【tower-boot 系列】MybatisPlus 集成

Mybatis、MybatisPlus 简单介绍 MybatisPlus 集成 一、pom 依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-jdbc</artifactId><exclusions><exclusion><groupId>com.zaxxer…

docker-compose命令

&#xff08;1&#xff09;定义 compose是用于定义和运行多容器docker应用程序的工具。 通过compose&#xff0c;使用yml文件来配置应用程序需要的所有服务。然后&#xff0c;使用一个命令&#xff0c;就可以从yml文件配置中创建并启动所有服务。 &#xff08;2&#xff09;模板…

将Linux 标准输出,错误输出重定向到文件

将Linux 标准输出&#xff0c;错误输出重定 1.想要把make输出的全部信息&#xff0c;输出到某个文件中&#xff0c;最常见的办法就是&#xff1a; make xxx > build_output.txt 此时默认情况是没有改变2stderr的输出方式&#xff0c;还是屏幕&#xff0c;所以&#xff0c…

opencv学习一:namedWindow()创建和显示窗口

文章目录 opencv图像视频的加载和显示一、namedWindow()创建和显示窗口&#xff08;一&#xff09;函数1.namedWindow()创建命名窗口2.imshow() 显示窗口3.destroyAllwindws()摧毁窗口4.resizeWindow() 改变窗口大小5.waitKey() 等待用户输入 &#xff08;二&#xff09;代码 o…

python简单进阶之web框架:fastapi使用教程

原文&#xff1a;python简单进阶之web框架&#xff1a;fastapi使用教程 - 知乎 这是简单进阶教程系列第四篇&#xff0c;本系列文章主要介绍那些可以很快上手的进阶库。 我其实学过一段时间Django框架&#xff0c;但是半途而废了&#xff0c;我觉得可能还是简单一点的框架比较适…

智能优化算法应用:基于象群算法无线传感器网络(WSN)覆盖优化 - 附代码

智能优化算法应用&#xff1a;基于象群算法无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用&#xff1a;基于象群算法无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.象群算法4.实验参数设定5.算法结果6.参考文献7.MATLAB…

JavaScript 一只青蛙想要过河

一只青蛙想要过河。 假定河流被等分为若干个单元格&#xff0c;并且在每一个单元格内都有可能放有一块石子&#xff08;也有可能没有&#xff09;。 青蛙可以跳上石子&#xff0c;但是不可以跳入水中。 给你石子的位置列表 stones&#xff08;用单元格序号 升序 表示&#xf…

什么是堆内存?参数如何设置?

文章目录 什么是堆内存&#xff1f;参数如何设置&#xff1f; 栈和队列&#xff0c;举个使用场景例子&#xff1f; 什么是堆内存&#xff1f;参数如何设置&#xff1f; 堆内存是指由程序代码自由分配的内存&#xff0c;与栈内存作区分。 在 Java 中&#xff0c;堆内存主要用于…

网络类型解析(基础):探索通信世界的多样面貌

在当今数字化时代&#xff0c;网络已经成为人们生活和工作中不可或缺的一部分。从个人设备之间的直接通信到全球范围的数据传输&#xff0c;不同类型的网络为我们提供了多种连接方式和通信选择。透过对这些网络类型的解析&#xff0c;我们将更好地理解它们的特点、优势和适用场…

JMX的使用

1. 定义和意义 JMX是Java Management Extention的缩写&#xff0c;出发点是让外部通过属性/方法来读取或设置程序状态。对于提供对外服务的程序来说&#xff0c;天生就有这样的能力&#xff0c;Web程序通过HTTP接口对外暴露&#xff0c;RPC应用通过RPC接口暴露。不过带来的问…

ESP32-Web-Server编程- 使用表格(Table)实时显示设备信息

ESP32-Web-Server编程- 使用表格&#xff08;Table&#xff09;实时显示设备信息 概述 上节讲述了通过 Server-Sent Events&#xff08;以下简称 SSE&#xff09; 实现在网页实时更新 ESP32 Web 服务器的传感器数据。 本节书接上会&#xff0c;继续使用 SSE 机制在网页实时显…

如何优化 Elasticsearch 以获得更好的搜索性能

当今世界&#xff0c;数据大量生成&#xff0c;为了利用数据进行生产&#xff0c;需要对提取的数据进行转换、存储、维护、管理和分析。这些过程只有通过大数据工具所基于的分布式架构和并行处理机制才能实现。Elasticsearch 是最流行的开源数据存储之一&#xff0c;可以满足大…

邻接表表示图进行深度优先搜索,广度优先搜索,最小生成树

图的邻接表定义 下面用邻接表实现图的深度优先搜索和广度优先搜索&#xff0c;用邻接矩阵来实现最小生成树。 图的邻接表&#xff1a;首先定义一个图的邻接表的类&#xff0c;里面包括图的顶点数&#xff0c;图的边数&#xff0c;顶点表数组。由于顶点表数组里存放的都是图的…

P2880 [USACO07JAN] Balanced Lineup G 题解

文章目录 题目描述输入格式输出格式样例样例输入样例输出 数据范围与提示完整代码 题目描述 For the daily milking, Farmer John’s N cows (1 ≤ N ≤ 50,000) always line up in the same order. One day Farmer John decides to organize a game of Ultimate Frisbee with…

从兔子说起:了解RabbitMQ消息的多样化【RabbitMQ 二】

&#x1f38f;&#xff1a;你只管努力&#xff0c;剩下的交给时间 &#x1f3e0; &#xff1a;小破站 从兔子说起&#xff1a;了解RabbitMQ消息的多样化 第一&#xff1a;消息的可靠性与持久性第二&#xff1a;消息交换机与队列第三&#xff1a;消息确认与拒绝第四&#xff1a;…

深度学习手势识别 - yolo python opencv cnn 机器视觉 计算机竞赛

文章目录 0 前言1 课题背景2 卷积神经网络2.1卷积层2.2 池化层2.3 激活函数2.4 全连接层2.5 使用tensorflow中keras模块实现卷积神经网络 3 YOLOV53.1 网络架构图3.2 输入端3.3 基准网络3.4 Neck网络3.5 Head输出层 4 数据集准备4.1 数据标注简介4.2 数据保存 5 模型训练5.1 修…

2023年全国职业院校技能大赛“ 信息安全管理与评估” 测试题2

一.单选题 1、下列不属于口令安全威胁的是&#xff1f;&#xff08; &#xff09; A、 弱口令 B、 明文传输 C、 MD5 加密 D、 多账户共用一个密码 2、在学校或单位如果发现自己的计算机感染了病毒,应首先采取什么措施 ( )。 A、断开网络 B、告知领导 C、杀毒 D、重…