C语言练习第七章 指针(必做)
题目(Description):
输入两个整数,按先大后小的顺序输出。
要求:用指针方法处理。不交换整型变量的值,而是交换两个指针变量的值。
输入(Input):
两个整数
输出(Output):
先大后小两个整数
示例(Sample):
输入(Input):
456 789
输出(Output):
789 456
2.
题目(Description):
输入两个整数,按先大后小的顺序输出。
要求:用函数处理,而且用指针类型的数据作函数参数,在函数中通过指针交换两个变量值。
输入(Input):
两个整数
输出(Output):
先大后小两个整数
示例(Sample):
输入(Input):
100 315
输出(Output):
315 100
3.
题目(Description):
输入3个整数,按由大到小的顺序输出。
要求:用函数处理,且用指针做函数参数,实现交换两个数。
输入(Input):
三个数
输出(Output):
由大到小的顺序输出
提示(Hint):
(1)定义一个交换2个变量的值的函数swap(int *pt1,int *pt2);
(2)定义将3个变量的值交换的函数exchange(int *q1,int *q2,int *q3),在该函数中多次调用swap函数
示例(Sample):
输入(Input):
1 2 3
输出(Output):
3 2 1
4.
题目(Description):
通过指针变量输出整型数组的10个元素。要求:用指针变量指向数组元素,通过改变指针变量的值,先后指向数组各元素。
输入(Input):
数组的10个整数
输出(Output):
数组的10个整数(元素之间有空格间隔,且最后一个数有空格)
示例(Sample):
输入(Input):
1 2 3 4 5 6 7 8 19 10
输出(Output):
1 2 3 4 5 6 7 8 19 10
5.
题目(Description):
输入10个整数,将其中最小的数与第一个数对换,把最大的一个数与最后一个数对换。
要求:编写三个函数:
(1)void in_num(int *x),输入10个数;
(2)void exchange(int *x),进行交换处理;
(3)void out_num(int *x),输出10个数。
输入(Input):
10个整数
输出(Output):
10个整数(最小数与第一个数对换,最大数与最后一个对换)
注意:输出的整数空格相隔,但最后一个数没有空格
提示(Hint):
程序的前缀代码已经给出,请在提交作业时注释或者去掉前缀代码。
示例(Sample):
输入(Input):
32 24 56 78 1 98 36 44 29 6
输出(Output):
1 24 56 78 32 6 36 44 29 98
6.
题目(Description):
输入3个字符串(字符串大小不超过80个字符),按由小到大的顺序输出。
要求:用函数处理,且用指针做函数参数,实现交换两个字符串:void swap(char *p1,char *p2)。
输入(Input):
三个字符串(分三行输入)
输出(Output):
由小到大的顺序输出字符串(分三行输出)
示例(Sample):
输入(Input):
happy!
eat!
play!
输出(Output):
eat!
happy!
play!
7.
题目(Description):
用指针法对10个整数按由大到小顺序排序。要求编写:
(1)函数void sort(int *p),对整数按照由大到小顺序排序
(2)函数void print(int *p),输出由大到小顺序排序的整数
输入(Input):
10个整数
输出(Output):
由大到小顺序的10个整数(元素之间空格间隔,且最后一个数有空格)
提示(Hint):
(1)可以使用选择法进行排序,参见 “函数” 一章。
(2)程序的前缀代码已经给出,请在提交作业时注释或者去掉前缀代码。
示例(Sample):
输入(Input):
1 10 3 4 5 9 7 8 6 2
输出(Output):
10 9 8 7 6 5 4 3 2 1
8.
题目(Description):
有n个整数,使其前面各数顺序向后移m个位置,最后m个数变成前面m个数(如下图)。编写一个函数实现以上功能,在主函数中输入n个整数,并输出调整后的n个数。
要求编写:
(1)函数void adjust(int n,int *p,int m),对n个整数顺序向后移m个位置
(2)函数void print(int n,int *p),输出n个由大到小顺序排序的整数
输入(Input):
整数n(不大于20)
n个整数
位置m(n>m)
输出(Output):
调整后的n个整数(整数间隔一个空格,且最后一个数有空格)
提示(Hint):
程序的前缀代码已经给出,请在提交作业时注释或者去掉前缀代码。
示例(Sample):
输入(Input):
10
1 2 3 4 5 6 7 8 9 10
4
输出(Output):
7 8 9 10 1 2 3 4 5 6
9.
题目(Description):
有n个人围成一圈,顺序排号,从第一个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来第几号的那位?。要求:使用指针编写报数程序。
输入(Input):
整数n(不大于50)
输出(Output):
留下人的号码
示例(Sample):
输入(Input):
17
输出(Output):
11
10.
题目(Description):
编写一个函数int strlength(char *p),求一个字符串的长度,在main函数中输入字符串,并输出其长度。
输入(Input):
一个字符串(不大于20)
输出(Output):
字符串的长度
提示(Hint):
程序的前缀代码已经给出,请在提交作业时注释或者去掉前缀代码。
示例(Sample):
输入(Input):
I am a student!
输出(Output):
15
11、
题目(Description):
从键盘上输入一个字符串,然后按照下面要求输出一个新字符串:新串是在原串中的每两个字符之间插入一个空格。要求按照main函数要求,编写insert函数,完成新串的产生。
void insert(char *p)
{ }
输入(Input):
原字符串
输出(Output):
新字符串(每两个字符之间插入一个空格)
示例(Sample):
输入(Input):
abcd
输出(Output):
a b c d
12.
题目(Description):
要求按照main函数要求,编写copy_string函数,完成将字符串b复制到字符串a。
void copy_string(char *s,char *t)
{ }
输入(Input):
字符串b
输出(Output):
字符串a
示例(Sample):
输入(Input):
abcd
输出(Output):
abcd
13、
题目(Description):
要求按照main函数要求,编写equal_string函数,完成比较两个字符串是否相等:如果相等则返回1,否则返回0。
int equal_string(char *s,char *t);
{ }
输入(Input):
字符串a
字符串b
输出(Output):
(1)如果相等则输出1
(2)如果不等则输出0
示例1(Sample):
输入(Input):
abcd
abcd
输出(Output):
1
示例2(Sample):
输入(Input):
abcd
abc
输出(Output):
0
14.
题目(Description):
有一字符串,包含n个字符。编写一个函数,将此字符串中从第m个字符开始的全部字符复制成为另一个字符串。
输入(Input):
一个字符串(不大于20)
m
输出(Output):
(1)如果m>n,则输出“input error!”
(2)否则,第m个字符开始的全部字符
示例1(Sample):
输入(Input):
abcdefg
5
输出(Output):
efg
示例2(Sample):
输入(Input):
ab
3
输出(Output):
input error!
15、
题目(Description):
输入一行文字,统计并输出其中大写字母,小写字母,空格,数字及其他字符的个数。要求使用指针编写程序。
输入(Input):
一个字符串(大小不超过20)
输出(Output):
大写字母个数
小写字母个数
空格个数
数字个数
其他字符个数
示例(Sample):
输入(Input):
Today is 2015/1/1.
输出(Output):
1
6
2
6
3