宁夏制作网站公司,十大永久免费的软件下载,建设网上银行个人网上银行登,装饰公司网站建设流程本文结合PTA专项练习带领读者掌握指针#xff0c;刷题为主注释为辅#xff0c;在代码中理解思路#xff0c;其它不做过多叙述。 目录 6-1 删除字符串中数字字符6-2 找最大值及其下标6-3 求两数平方根之和6-4 求一组数中的最大值、最小值和平均值6-5 两个4位正整数的后两位互… 本文结合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.hvoid delnum(char *s);int main (){ char item[80];gets(item);delnum(item);printf(%s\n,item);return 0;}/* 请在这里填写答案 */输入样例
a0bcd496df
输出样例
abcddf
void delnum(char *s)
{int i0,j0;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所指的变量里函数返回最大值。 裁判测试程序样例
#includestdio.h#define N 10int fun(int *a,int *b,int n);int main(){ int a[N],i,max,p0;for(i0;iN;i) scanf(%d,a[i]);maxfun(a,p,N);printf(max%d,position%d\n,max,p);return 0;}/* 请在这里填写答案 */输入样例
2 1 5 4 8 4 5 8 9 1
输出样例
max9,position8
int fun(int *a,int *b,int n)
{int max1a[0];for(int i0;in;i){if(max1a[i]){max1a[i];*bi;}}return max1;
}6-3 求两数平方根之和
函数fun的功能是求两数平方根之和作为函数值返回。例如输入12和20输出结果是y 7.936238。 函数接口定义
double fun (double *a, double *b); 其中 a 和 b 是用户传入的参数。函数求 a 指针和 b 指针所指的两个数的平方根之和并返回和。 裁判测试程序样例
#includestdio.h#include math.h double fun (double *a, double *b); int main ( ){ double a, b, y;scanf (%lf%lf, a, b );yfun(a, b); printf (y%.2f\n, y );return 0;}/* 请在这里填写答案 */输入样例
12 20
输出样例
y7.94
double fun (double *a, double *b)
{double t1sqrt(*a);double t2sqrt(*b);return t1t2;
}6-4 求一组数中的最大值、最小值和平均值
编写函数求一组数中的最大值、最小值和平均值。 函数接口定义
float fun(int a[],int n,int *max,int *min);其中 a、n、max 和 min 都是用户传入的参数。函数求a数组中n个元素的最大值、最小值和平均值。最大值和最小值分别通过max 和 min带回函数返回平均值 。 裁判测试程序样例
#include stdio.hfloat fun(int a[],int n,int *max,int *min);int main(){int x[10],i,m,n;float p;for(i0;i10;i)scanf(%d,x[i]);pfun(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
输出样例
max9,min0,average4.50
float fun(int a[],int n,int *max,int *min)
{*max*mina[0];float sum0;for(int i0;in;i){if(*maxa[i]){*maxa[i];}if(*mina[i]){*mina[i];}suma[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;*pa1b2;*qb1a2;
}
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 rightstrlen(s)-1;//因为存在\\0 所以减一for(int left0;leftright;left){if(s[left]!s[right]){return false;}right--;}return true;
}7-1 求矩阵每行元素的和
本题要求编写程序使用指针方式求一个给定的m×n矩阵各行元素之和。 输入格式:
输入第一行给出两个正整数m和n1≤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 i0;im;i)for(int j0;jn;j)scanf(%d,a[i][j]);int b[m]{0};for(int i0;im;i){for(int j0;jn;j){b[i]a[i][j];}printf(%d\n,b[i]);}
}