实验报告_实验3 指针(3)(1540707103_周家尧) 下载本文

内容发布更新时间 : 2024/5/4 2:26:56星期一 下面是文章的全部内容请认真阅读。

实验报告_实验3 指针(3)(1540707103_周家尧)

一、实验目的:

1、熟悉指针变量引用字符串的方法,掌握字符指针变量作函数参数的使用方法; 2、熟悉函数指针的基本用法:

3、熟悉指针数组的基本用法和字符串的排序算法; 4、能够用指针解决一些实际问题。

二、实验内容

1、(基础题)以下程序的功能是:在主函数中定义一个int型4行5列的数组并初始化,然后调用print_array()、change_values()来输出、修改数组元素的值,请根据题意填写所缺代码,再运行程序,体会数组元素的不同访问方法。程序运行结果如下所示:

填写所缺程序代码:

(1) : print_array(a, 4);

(2) : change_values(*a, 20); (3) : print_array(a, 4); //代码段1 : for(i=0;i

//代码段2 : for (i=0; i

2、(基础题)自己编写一个类似于strcat()的字符串连接函数,并在主函数中调用,输出连接后的内容。补充程序所缺代码,使程序运行输出如下所示结果:

填写所缺程序代码:

(1) :void my_strcat(char * str1,char * str2) (2) :my_strcat(str, p); //代码段 : while(*str1 != '\\0') str1++; str1--; while(*str2 != '\\0') { *(++str1) = *str2; str2++; }

;

3、(基础题)函数指针的应用:sin(x)、cos(x)、tan(x)都是三角函数,形参、函数返回结果都是double类型,它们的声明、定义已包含在math.h中。请编写编程实现如下功能:根据输入的整数(1、2、3)分别调用sin(x)、cos(x)、tan(x),x的值也需要输入,请补充程序所缺代码:

填写所缺程序代码:

(1) : double (*p)(double z) = NULL; (2) : fun(p, x, n); //代码段 : if( n == 1 ) p = sin; else if( n == 2) p = cos; else if( n == 3) p = tan; else printf(\输入的数据有误,不能调用任何函数!\\n\ printf(\结果 = %f\\n\

4、(基础题)指针数组的应用:学院现有10系2部,建立一个char型指针数组指向这些单位名称,之后用冒泡排序法排序,并输出排序后的单位名称,如下图所示:

填写所缺程序代码:

(1) : bubble_sort(dept,12); (2) : print(dept, 12); //代码段1 : char str[30]; char *temp; int i,j; for (i=0;i<12;i++) for(j=0;j<12-i-1;j++) { if(strcmp(name[j], name[j+1])>0) { temp = name[j]; name[j] = name[j+1]; name[j+1] = temp; } }

//代码段2 : int i; for(i=0;i