网站有版权吗,昆明信息港官网,泛站群,上海网站关键词排名本文结合PTA专项练习带领读者掌握指针#xff0c;刷题为主注释为辅#xff0c;在代码中理解思路#xff0c;其它不做过多叙述。 目录 6-1 鸡兔同笼问题6-2 冒泡排序6-3 字符串反正序连接6-4 计算最长的字符串长度6-5 查找星期7-1 C程序设计 实验5-7 数组指针作函数参数7-2 查… 本文结合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.hint 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 i0;ihead;i){int jhead-i;if(i*2j*4foot){*chickeni;*rabbitj;return 1;}}return 0;
}//简单判断即可6-2 冒泡排序
输入n1n10个整数将它们从小到大排序后输出要求编写函数bubble()实现冒泡排序算法。 函数接口定义
void bubble (int a[ ], int n);其中 a为数组n为数据个数。 裁判测试程序样例
#include stdio.hvoid bubble (int a[ ], int n);int main(void){ int n, a[10];int i;scanf(%d, n);for (i0; in;i)scanf(%d,a[i]);bubble(a,n);for (i0; in; 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 i0;in-1;i){for(int j0;jn-i-1;j){if(a[j]a[j1]){int ta[j1];a[j1]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.hvoid 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 j0;//计算长度int l0;while(s[l]!\0)l;for(int il-1;i0;i--){t[j]s[i];j;}int pj;for(int i0;il;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 i0;im;i){double sum0;double aver;for(int j0;jn;j){scanf(%d,a[j]);suma[j];}aversum/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 i0;i5;i){if(strcmp(color,colors[i])0){flagi;break;}}if(flag!-1)printf(%d,flag1);elseprintf(Not Found);
}