笔记
This commit is contained in:
70
C/指针练习.md
Normal file
70
C/指针练习.md
Normal 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到最后的字符移动到字符串的前部。例如,字符串中原由的内容为:ABCDEFGHIJK,m的值为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个数,求剩余数据的平均值
|
||||
|
||||
Reference in New Issue
Block a user