金陵科技学院实验报告
实验项目名称: 高级程序设计 实验学时: 6 同组学生姓名: 实验地点: 实验日期: 实验成绩: 批改教师: 批改时间:
21
金陵科技学院实验报告
实验3 高级程序设计
一、实验目的和要求
(1)理解C语言中指针的本质,区分指针与指针变量,掌握有关指针的应用; (2)熟练掌握字符串常量和字符串的存储及字符串处理函数的使用; (3)掌握字符指针的定义、使用等; (4)掌握向函数传递字符串的方法;
二、实验仪器和设备
奔腾以上计算机,装有windows XP以上版本操作系统和Visual C++ 6.0软件。
三、实验内容与过程
1、程序调试 (1) main()
{ int a=10,b=20,x,*pa,*pb; pa=&a;pb=&b;
printf(“%d,%d,%d,%d”,a,b,*pa,*pb); x=*pa;*pa=*pb;*pb=x;
printf(“%d,%d,%d,%d”,a,b,*pa,*pb); } (2) main()
{ int a=10,b=20,*p,*pa=&a,*pb=&b; printf(“%d,%d,%d,%d”,a,b,*pa,*pb);
p=pa;pa=pb;pb=p;
printf(“%d,%d,%d,%d”,a,b,*pa,*pb); }
(3) int *swap(int *a,int *b)
{ int *p; p=a; a=b; b=p; return(a); } main()
{int x=3,y=4,z=5; swap(swap(&x,&y),&z); printf(“%d,%d,%d”,x,y,z); }
思考:上面程序中函数swap()预将两个数的值相互交换,但结果为什么没有交换? 2、程序改错
22
金陵科技学院实验报告
要求:1、改错时,只允许修改现有语句中的一部分内容,不允许添加和删除语句。 2、提示行下一行为错误行。
(1)功能:为一维数组输入10个整数;将其中最小的数与第一个数对换,将最大的数与最后一个数对换,输出数组元素。
#include
void input(int *arr,int n) {
int *p,i; p=arr;
printf(\ for(i=0;i /**********ERROR**********/ scanf(\} void max_min(int *arr,int n) { int *min,*max,*p,t; min=max=arr; for(p=arr+1;p /**********ERROR**********/ if(*p<*max) max=p; else if(*p<*min) min=p; t=*arr;*arr=*min;*min=t; /**********ERROR**********/ if(max=arr) max=min; t=*(arr+n-1); *(arr+n-1)=*max; *max=t; } void output(int *arr,int n) { int *p,i; p=arr; printf(\ /**********ERROR**********/ while(i=0;i main() { int a[10]; input(a,10); 23 金陵科技学院实验报告 max_min(a,10); output(a,10); } (2)功能:将s所指字符串的反序和正序进行连接形成一个新串放在t所指的数组中。 例如:当s所指的字符串的内容为\时,t所指数组中的内容为\。 #include /**********FOUND**********/ void fun (char s, char t) { int i, d; /**********FOUND**********/ d = len(s); /**********FOUND**********/ for (i = 1; i t[i] = s[d - 1 - i ]; for (i = 0; i /**********FOUND**********/ t[2*d] = '/0'; } main() { char s[100], t[100]; printf(\ scanf(\ fun(s, t); printf(\} 3、程序设计 说明,所有题目均需添加main(),在main()中调用子函数并设计完整的输入输出才可调试通过。 (1) 功能:请编写一个函数 int fun(int *s, int t, int *k),用来求出数组的最大元素在数组中的下标, 用k返回。 例如: 输入如下整数:876 675 896 101 301 401 980 431 451 777 则输出结果为: 6, 980 (2) 功能:编写函数void len_cat(char c1[],char c2[])将第二个串连接到第一个串之后,不允许使用strcat函数 (3) 功能:编写函数long fun ( char *p),将一个数字字符串转换为一个整数(不得调用C语言提供的将字符串转换为整数的函数)。 例如:若输入字符串\,则函数把它转换为整数值 -1234。 24

