实验九1 下载本文

姓名 学号

实验九 指针(一)

实验内容:

编程序并上机调试运行以下程序(都要求用指针处理)

(1)输入3个整数,按由小到大的顺序输出,然后将程序改为:输入3个字符串,按由小到大顺序输出。 ①先编写一个程序,以处理输入3个整数,按由小到大的顺序输出。运行此程序,分析结果。 ②把程序改为能处理输入3个字符串,按由小到大的顺序输出。运行此程序,分析结果。 ③比较以上两个程序,分析处理整数与处理字符串有什么不同?例如: (a)怎样得到指向整数(或字符串)的指针。 (b)怎样比较两个整数(或字符串)的大小。 (c)怎样交换两个整数(或字符串)。

(2)将一个3*3的整型二维数组转置,用一函数实现之。 在主函数中用scanf函数输入以下数组元素:

1 3 5 7 9 11 13 15 19

将数组0行0列元素的地址作为函数实参,在执行函数的过程中实现行列互换,函数调用结束后再主函数中输出已转置的二维数组。

请思考:

①二维数组的指针,某一行的指针、某一元素的指针各代表什么含义?应该怎样表示? ②怎样表示i行j列元素及其地址。

(3)将n个数按输入时的顺序的逆序排列,用函数实现。 ①在调用函数时用数组名作为函数实参。

②函数实参改为用指向数组首元素的指针,形参不变。

③分析以上两者的异同。

(4)写一函数,求一字符串的长度。在main函数中输入字符串,并输出其长度。 (5)分别在程序中按以下两种情况处理: ①函数形参用指针变量。 ②函数形参用数组名。 作分析比较,掌握其规律。