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

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

目录

    • 6-1 删除字符串中数字字符
    • 6-2 找最大值及其下标
    • 6-3 求两数平方根之和
    • 6-4 求一组数中的最大值、最小值和平均值
    • 6-5 两个4位正整数的后两位互换
    • 6-6 判断回文字符串
    • 7-1 求矩阵每行元素的和

6-1 删除字符串中数字字符

删除一个字符串中的所有数字字符。
函数接口定义:

void delnum(char *s);

其中 s 是用户传入的参数。 函数的功能是删除指针 s 所指的字符串中的所有数字字符。
裁判测试程序样例:

#include "stdio.h"void delnum(char *s);int main (){ char item[80];gets(item);delnum(item);printf("%s\n",item);return 0;}/* 请在这里填写答案 */

输入样例:

a0bc+d496df

输出样例:

abc+ddf

void delnum(char *s)
{int i=0,j=0;while(s[i]!='\0'){//删除难以处理,那就转换思路,筛选不为数字的字符if(s[i]<'0'||s[i]>'9'){s[j]=s[i];j++;}i++;}s[j]='\0';
}

6-2 找最大值及其下标

在一维整型数组中找出其中最大的数及其下标。
函数接口定义:

int fun(int *a,int *b,int n);

其中形参a 、b、n 都是用户传入的参数。函数fun的功能是在指针a所指向的一维数组中找出其中最大的数及其下标,下标存到指针b所指的变量里,函数返回最大值。
裁判测试程序样例:

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

输入样例:

2 1 5 4 8 4 5 8 9 1

输出样例:

max=9,position=8

int fun(int *a,int *b,int n)
{int max1=a[0];for(int i=0;i<n;i++){if(max1<a[i]){max1=a[i];*b=i;}}return max1;
}

6-3 求两数平方根之和

函数fun的功能是:求两数平方根之和,作为函数值返回。例如:输入12和20,输出结果是:y = 7.936238。
函数接口定义:

double fun (double *a, double *b); 

其中 a 和 b 是用户传入的参数。函数求 a 指针和 b 指针所指的两个数的平方根之和,并返回和。
裁判测试程序样例:

#include<stdio.h>#include <math.h> double fun (double *a, double *b); int main ( ){ double a, b, y;scanf ("%lf%lf", &a, &b );y=fun(&a, &b); printf ("y=%.2f\n", y );return 0;}/* 请在这里填写答案 */

输入样例:

12 20

输出样例:

y=7.94

double fun (double *a, double *b)
{double t1=sqrt(*a);double t2=sqrt(*b);return t1+t2;
}

6-4 求一组数中的最大值、最小值和平均值

编写函数,求一组数中的最大值、最小值和平均值。
函数接口定义:

float fun(int a[],int n,int *max,int *min);

其中 a、n、max 和 min 都是用户传入的参数。函数求a数组中n个元素的最大值、最小值和平均值。最大值和最小值分别通过max 和 min带回,函数返回平均值 。
裁判测试程序样例:

#include <stdio.h>float fun(int a[],int n,int *max,int *min);int main(){int x[10],i,m,n;float p;for(i=0;i<10;i++)scanf("%d",&x[i]);p=fun(x,10,&m,&n);printf("max=%d,min=%d,average=%.2f\n",m,n,p);return 0;}/* 请在这里填写答案 */

输入样例:

2 5 4 8 6 9 1 3 7 0

输出样例:

max=9,min=0,average=4.50

float fun(int a[],int n,int *max,int *min)
{*max=*min=a[0];float sum=0;for(int i=0;i<n;i++){if(*max<a[i]){*max=a[i];}if(*min>a[i]){*min=a[i];}sum+=a[i];}return sum/n;
}

6-5 两个4位正整数的后两位互换

将输入的任意两个4位正整数的后两位互换,例如输入1234和5678,交换之后输出1278和5634。
函数接口定义:

 void fun(int *p,int *q);

其中p和 q 是用户传入的参数。函数将指针p所指整数与指针q所指的整数的后两位互换。
裁判测试程序样例:

 void fun(int *p,int *q);int main(){int a,b;scanf("%d%d",&a,&b);fun(&a,&b);printf("%5d%5d\n",a,b);return 0;}/* 请在这里填写答案 */

输入样例:

1234 5678

输出样例:

1278 5634

void fun(int *p,int *q)
{int a1=*p/100*100;int b1=*q/100*100;int a2=*p%100;int b2=*q%100;*p=a1+b2;*q=b1+a2;
}

6-6 判断回文字符串

本题要求编写函数,判断给定的一串字符是否为“回文”。所谓“回文”是指顺读和倒读都一样的字符串。如“XYZYX”和“xyzzyx”都是回文。
函数接口定义:

bool palindrome( char *s );

函数palindrome判断输入字符串char *s是否为回文。若是则返回true,否则返回false。
裁判测试程序样例:

#include <stdio.h>#include <string.h>#define MAXN 20typedef enum {false, true} bool;bool palindrome( char *s );int main(){char s[MAXN];scanf("%s", s);if ( palindrome(s)==true )printf("Yes\n");elseprintf("No\n");printf("%s\n", s);return 0;}/* 你的代码将被嵌在这里 */

输入样例1:

thisistrueurtsisiht

输出样例1:

Yes
thisistrueurtsisiht

输入样例2:

thisisnottrue

输出样例2:

No
thisisnottrue

bool palindrome( char *s )
{int right=strlen(s)-1;//因为存在'\\0' 所以减一for(int left=0;left<=right;left++){if(s[left]!=s[right]){return false;}right--;}return true;
}

7-1 求矩阵每行元素的和

本题要求编写程序,使用指针方式求一个给定的m×n矩阵各行元素之和。
输入格式:

输入第一行给出两个正整数m和n(1≤m,n≤6),再输入m行数据,每行n个整数,每个整数之间用空格分隔。
输出格式:

输出m个整数,每行1个数。
输入样例:

2 3
1 2 3
4 5 6

输出样例:

6
15

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

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

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

相关文章

HuggingFace学习笔记--Tokenizer的使用

1--AutoTokenizer的使用 官方文档 AutoTokenizer() 常用于分词&#xff0c;其可调用现成的模型来对输入句子进行分词。 1-1--简单Demo 测试代码&#xff1a; # 分词器测试Demo from transformers import AutoTokenizerif __name__ "__main__":checkpoint "…

数据增强让模型更健壮

在做一些图像分类训练任务时,我们经常会遇到一个很尴尬的情况,那就是: 明明训练数据集中有很多可爱猫咪的照片,但是当我们给训练好的模型输入一张戴着头盔的猫咪进行测试时,模型就不认识了,或者说识别精度很低。 很明显,模型的泛化能力太差,难道戴着头盔的猫咪就不是猫…

线性分类器--数据处理

数据集划分 通常按照 70%&#xff0c;20% &#xff0c;10% 来分数据集 数据处理 斯坦福的线性分类器体验 http://vision.stanford.edu/teaching/cs231n-demos/linear-classify/

找工作面试技巧

问题描述&#xff1a;找工作时&#xff0c;不知道如何回答问题怎么办。 问题解决&#xff1a;可以尝试使用STAT原则来回答问题。具体如下。 "STAR" 原则是一种常用于回答面试问题的方法&#xff0c;特别是在描述个人经验、解决问题或展示技能和能力时。"STAR&q…

【解决视觉引导多个位置需要标定多个位置的问题】

** 以下只针对2D定位&#xff0c;就是只有X、Y、Rz三个自由度的情况。** 假设一种情况&#xff0c;当视觉给机器人做引导任务时&#xff0c;零件有多个&#xff0c;分布在料框里&#xff0c;视觉需要走多个位置去拍&#xff0c;那么只需要对第一个位置确定拍照位&#xff0c;确…

QContextMenuEvent 是 Qt 框架中的一个类,用于表示上下文菜单事件

QContextMenuEvent 是 Qt 框架中的一个类&#xff0c;用于表示上下文菜单事件。 上下文菜单事件&#xff08;Context Menu Event&#xff09;在用户右击部件时触发&#xff0c;通常用于显示上下文菜单。这些菜单可以包含与所选部件相关的操作和选项。 QContextMenuEvent 类提…

C语言重点编程题——1-10

目录 1.编一个程序,输入10个整数,统计并输出其中正数、负数和零的个数。 2.编程序,按下列公式计算e的值(精度为1e-6)e=1+1/1!+1/2!+1/3!.......1/n! 3.编程,输入n个整数,求这n个数的偶数平均值,并输出。 4.若一个3位整数的各位数字的立方和等于这个整数,则称之为“水…

美SEC与贝莱德,对比特币现货ETF申购方式产生分歧!

比特币现货ETF的通过时间是市场投资者密切关注的议题。虽然SEC最近推迟了Hashdex、富兰克林邓普顿&#xff08;Franklin Templeton&#xff09;和GlobalX申请的决议时间&#xff0c;但彭博ETF分析师James Seyffart对明年一月通过的机率持乐观态度&#xff0c;认为其通过的机会能…

Java - Stream Filter 多条件筛选过滤

Java Stream流中Filter用于通过设置的条件过滤出元素 &#xff0c;示例如下&#xff1a; List strings Arrays.asList(“abc”, “”, “bc”, “efg”, “abcd”,"", “jkl”);List filtered strings.stream().filter(string -> !string.isEmpty()).collect(C…

Java编译过程中的JVM

流程 源代码编写&#xff1a; 首先&#xff0c;开发者使用Java编程语言编写源代码。这些源代码通常保存在扩展名为.java的文件中。 编译源代码&#xff1a; 使用Java编译器&#xff08;例如javac&#xff09;&#xff0c;这些.java文件被编译成Java字节码。字节码是一种中间形…

eclipse - jee 建立项目后没有 web.xml

eclipse -- jee 建立项目后没有 web.xml 处理它的方法是&#xff0c;点 File - New - Dynamic Web Project , 此时起一个项目名如M4 然后next 然后next 出现如此所示:

基于springboot实现农机电招平台系统项目【项目源码+论文说明】计算机毕业设计

基于springboot实现农机电招平台系统演示 摘要 随着农机电招行业的不断发展&#xff0c;农机电招在现实生活中的使用和普及&#xff0c;农机电招行业成为近年内出现的一个新行业&#xff0c;并且能够成为大群众广为认可和接受的行为和选择。设计农机电招平台的目的就是借助计算…

论文阅读:“Model-based teeth reconstruction”

文章目录 AbstractIntroductionTeeth Prior ModelData PreparationParametric Teeth Model Teeth FittingTeeth Boundary Extraction Reference Abstract 近年来&#xff0c;基于图像的人脸重建方法日趋成熟。这些方法可以捕捉整个面部或面部特定区域&#xff08;如头发、眼睛…

HarmonyOS共享包以及跨模块引用

跨模块引用文件时遇到了一个问题&#xff1a; Importing ArkTS files to JS and TS files is not allowed. <ArkTSCheck>参照官方文档使用&#xff1a;Index.ets作为导出配置文件&#xff0c;在另一个库中使用遇到此问题 重读官方文档得到解决方法&#xff1a;重新创建:…

CAN总线星型连接器及特点

CAN总线星型连接特点 CAN总线是一种广泛应用于汽车、工业自动化、家庭等领域的现场总线技术。它具有高速度、高可靠性、灵活性等特点&#xff0c;被广泛应用于汽车电子、工业自动化、家庭自动化等领域。在CAN总线的实际应用中&#xff0c;其连接方式可以是星型或菊花型。本文将…

Android WMS——客户端输入事件处理(十九)

前面的文章我们介绍了 WMS 中的输入服务的启动及事件处理,这一篇我们来看一下客户端对输入事件的处理。 一、事件初始化 事件的初始化就是在添加窗口的过程。 1、ViewRootImpl 源码位置:/frameworks/base/core/java/android/view/ViewRootImpl.java public void setView(…

Leetcode—160.相交链表【简单】

2023每日刷题&#xff08;四十一&#xff09; Leetcode—160.相交链表 算法思想 两个链表的节点之和是相等的 如果两个链表相交&#xff0c;那么相交点之后的长度是相同的 我们需要做的事情是&#xff0c;让两个链表从同距离末尾同等距离的位置开始遍历。这个位置只能是较短…

Linux系统编程:文件系统总结

目录和文件 获取文件属性 获取文件属性有如下的系统调用&#xff0c;下面逐个来分析。 stat:通过文件路径获取属性&#xff0c;面对符号链接文件时获取的是所指向的目标文件的属性 从上图中可以看到stat函数接收一个文件的路径字符串&#xff08;你要获取哪个文件的属性&a…

并行查询的超时时间设置

众所周知&#xff0c;并行查询可以提高程序运行效率。主线程需要等待所有子线程把数据查询出结果&#xff0c;如果没有设置超时时间&#xff0c;就需要主线程就会一直阻塞到那里&#xff0c;从而占用服务器资源&#xff0c;那么如何设置超时时间呢? 1.在SpringBoot项目中引入线…

第二十三章 解析PR曲线、ROC曲线、AUC、AP(工具)

混淆矩阵Confusion Matrix 混淆矩阵定义 混淆矩阵是机器学习中总结分类模型预测结果的情形分析表&#xff0c;以矩阵形式将数据集中的记录按照真实的类别与分类模型预测的类别判断两个标准进行汇总。其中矩阵的行表示真实值&#xff0c;矩阵的列表示预测值&#xff0c;下面我…