C语言练习第七章 指针(必做)

1.

题目(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个数。

C语言练习第七章 指针(必做)

要求编写:

(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