This commit is contained in:
2025-08-23 15:15:57 +08:00
commit b5fbaa9db5
167 changed files with 2087 additions and 0 deletions

70
C/指针练习.md Normal file
View File

@ -0,0 +1,70 @@
1.指针-判定子串
编写一个程序,判定一个字符串是否是另一个字符串的子串,若是,则返回子串在主串中的位置。要求不能使用系统函数。
2.指针-删除字符
编写一个函数删除一个字符串中的指定字符函数原型Void delStr(char str,char ch)
3.指针-数组移动元素
编写一个程序, 输入一个整形数组array将该数组的最后一个元素移到第0个位置其它元素后移一个位置。在main中将该数组输出。不要定义辅助数组。
4.指针-数组交换元素
从键盘上输入10个整数存放到一维数组中将其中最小的数与第一个数对换最大的数与最后一个数对换。要求进行数据交换的处理过程编写成一个函数函数中对数据的处理要用指针方法实现。输入数据为35,20,94-23,39-56,100,87,49,12.
5.指针-移动字符串内容
编写一个函数函数的功能是移动字符串中的内容。移动的规则如下把第1到第m个字符平移到字符串的最后再把第m+1到最后的字符移动到字符串的前部。例如字符串中原由的内容为ABCDEFGHIJKm的值为3则移动后字符串中的内容应该是DEFGHIJKABC。在主函数中输入一个长度不大于20的字符串和平移的值m调用函数完成字符串的平移。要求用指针方法处理字符串。
6.指针-字符串复制
输入一个长度不大于30的字符串将此字符串中从第m个字符开始的剩余全部字符复制成为另一个字符串并将这个新字符串输出。要求用指针方法处理字符串。
7.数组或指针-移动元素
将一个5x5的矩阵中最大的元素放在中心,4个角分别放4个最小的元素(顺序为从左到右,从上到下依次从小到大存放),写一函数实现之。用main函数调用
8.指针-复制部分字符串
有一个字符串包含n个字符。写一函数将此字符串中从第m个字符开始的全部字符复制成为另一个字符串复制操作在子函数中实现并用指针传递
9.数组和指针-排序
编写一个程序在主函数中建立数组并输入n个数调用自定义函数对这n个数进行排序然后显示排序的结果。要求用指针作为函数参数进行传递
10.指针-查找集合中的字符
请编写函数,在一个字符串中进行搜索,查找所有在一个给定字符集合中出现的字符。
接口如下: char find_char (char const source, char const * chars)
例如souce = “ABCDEF”, chars = "XYZ"或者"JURY"就返回NULL
如果chars = “XRCQEF” 返回指向C字符的指针
11.指针-删除子串
编写函数删除字符串的一部分如果substr是str的子串就删除掉str中substr部分
例如str = “ABCDEFG” substr=“CDE” 那么删除后str="ABFG"并且函数返回1
如果不是子串就不修改str函数返回-1
int del_substr(char str, char const substr)
12.指针-字符替换
编制一个字符替换函数实现将已知字符串str中所有ch指定的字符都用ch2指定的字符代替。函数原型void replace (char str,char ch,char ch2)
13.指针-比较字符串
自己编写一个函数比较两个字符串是否相等函数原型为int Compare (char str1, char str2)
14***.指针-使用指针判断回文数***
一个正数如果顺着和反过来都是一样的比如12321反过来也是12321那么就称为回文数。回文数不能以0开头回文数从1开始。使用指针实现回文数判断。
15.指针-找出最大的字符串
用指针法编程从键盘上输入多个字符串每个串不超过5个字符且没有空格用””作为输入结束的标记。从所输入的若干字符串中找出一个最大的串并输出该串。要求串的输入以及最大串的查找通过调用编写的函数实现。
16.数组-报数出圈
有n个人围成一圈顺序排号。从第1个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来第几号的那位。
17.数组-使用函数输出一个整数的逆序数
18.循环或递归-皮球掉落
皮球从某给定高度自由落下触地后反弹到原高度的一半再落下再反弹……如此反复。问皮球在第n次落地时在空中一共经过多少距离第n次反弹的高度是多少
19.指针-指向函数的指针
用函数和指针完成下述程序功能有两个整数a和b由用户输入1,2或3。如输入1程序就给出a和b中大者输入2就给出a和b中小者输入3则求a与b之和。
练习20.1
输入一个整数n定义一个长度为n的动态数组输入n个数字输出这n个数中仅出现一次的数。
例如:输入 12 36 72 36 87 99 87 12 35 12
输出 72 99 35
练习20.2
输入一个整数n定义一个长度为n的动态数组输入n个数字去掉其中最大的2个数和最小的2个数求剩余数据的平均值