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

这篇具有很好参考价值的文章主要介绍了【C/PTA】指针专项练习(一)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

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

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 10

int 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 20

typedef enum {false, true} bool;


bool palindrome( char *s );


int main()

{

    char s[MAXN];

    

    scanf("%s", s);

    if ( palindrome(s)==true )

        printf("Yes\n");

    else

        printf("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文章来源地址https://www.toymoban.com/news/detail-756499.html

#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]);
	}
}

到了这里,关于【C/PTA】指针专项练习(一)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【PTA-C语言】编程练习4 - 数组Ⅱ

    如果代码存在问题,麻烦大家指正 ~ ~ 有帮助麻烦点个赞 ~ ~ 作者 李民 单位 武汉理工大学 本题模拟2048游戏的规则,提供4X4个格子,输入每个格子的初始值(空白格子值为0),玩家选择向下移动,所有数字向下靠拢,相同的数字相撞时会合并。移动结束后,输出合并后的数值

    2024年02月03日
    浏览(33)
  • 【PTA-C语言】编程练习4 - 数组Ⅰ

    如果代码存在问题,麻烦大家指正 ~ ~ 有帮助麻烦点个赞 ~ ~ 作者 翁恺 单位 浙江大学 班级里要搞智力竞赛啦!同学们都踊跃参加。进入最后决赛的是10个同学,随着一道道题目的出示,有时是1号选手得分,有时是5号选手得分,每次答对者得10分,最后结果如何呢? 输入格式:

    2024年02月03日
    浏览(36)
  • 【PTA-C语言】编程练习3 - 循环结构Ⅱ

    如果代码存在问题,麻烦大家指正 ~ ~ 有帮助麻烦点个赞 ~ ~ 给定两个均不超过9的正整数a和n,要求编写程序求a+aa+aaa++⋯+aa⋯a(n个a)之和。 输入格式: 输入在一行中给出不超过9的正整数a和n。 输出格式: 在一行中按照“s = 对应的和”的格式输出。 输入样例: 输出样例:

    2024年02月03日
    浏览(43)
  • 【C/PTA】结构体进阶练习

    本文结合PTA专项练习带领读者掌握结构体,刷题为主注释为辅,在代码中理解思路,其它不做过多叙述。 “一帮一学习小组”是中小学中常见的学习组织方式,老师把学习成绩靠前的学生跟学习成绩靠后的学生排在一组。本题就请你编写程序帮助老师自动完成这个分配工作,

    2024年02月05日
    浏览(26)
  • PTA 6-8 用指针操作数组输入输出元素(指针做形参)

    从键盘输入n(n=10),n代表数组元素个数,对数组进行所有元素的输入输出,输入输出功能在fun函数中实现,主函数不要动,要求用指针法操作数组,不要用下标法。 函数接口定义: 裁判测试程序样例 输入格式: 先输入数组的元素个数,然后从键盘输入元素 输出格式: 输出数

    2024年04月10日
    浏览(28)
  • 数据结构第5章练习答案(PTA)

    2-1以下说法错误的是( A ) A.树形结构的特点是一个结点可以有多个直接前趋 B.线性结构中的一个结点至多只有一个直接后继 C.树形结构可以表达(组织)更复杂的数据 D.树(及一切树形结构)是一种\\\"分支层次\\\"结构 E.任何只含一个结点的集合是一棵树 2-2利用二叉链表存储树,则根

    2024年02月04日
    浏览(38)
  • 数据结构第6章练习答案(PTA)

    2-1具有5个顶点的有向完全图有多少条弧?( C ) A.10        B.16        C.20        D.25 2-2关于图的邻接矩阵,下列哪个结论是正确的?( B ) A.有向图的邻接矩阵总是不对称的 B.有向图的邻接矩阵可以是对称的,也可以是不对称的 C.无向图的邻接矩阵总是不对称的

    2024年02月05日
    浏览(33)
  • 团体程序设计天梯赛----pta 练习集

    这道超级简单的题目没有任何输入。 你只需要在一行中输出著名短句“Hello World!”就可以了。 解法 略 本题要求你写个程序把给定的符号打印成沙漏的形状。例如给定17个“*”,要求按下列格式打印 解法 记录一下个数就好 给定一个 k 位整数 N,请编写程序统计每种不同的个

    2024年02月13日
    浏览(30)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包