内容发布更新时间 : 2024/11/16 21:40:23星期一 下面是文章的全部内容请认真阅读。
for (i=0;i cout<<\} 方法三 (数组方式,指针变量的数组形式,用 p[i]访问元素) #include { float a[N],sum,*p=a; int i; cout<<\ for (i=0;i for (i=0;i cout<<\} 方法四 (指针方式,数组名+位移,用 *(a+i)访问元素) #include cout<<\ for (i=0;i for (i=0;i cout<<\} 程序运行结果: Input data: 10 20 30 40 50 60 70 80 90 100 average=55 (2) #include { float a[3][3],sum=0; int i,j; cout<<\ for (i=0;i<3;i++) for (j=0;j<3;j++) cin>>*(a[i]+j); //用行首地址+位移,即a[i]+j for (i=0;i<3;i++) for (j=0;j<3;j++) if (i==j||i+j==2) sum+=*(a[i]+j); cout<<\} 程序运行结果: Input Data: 10 25 90 80 70 35 65 40 55 sum=290 (3) # include int str_cmp(char *p1,char *p2) { while(*p1==*p2) {p1++; p2++; } if (*p1>*p2) return 1; else if (*p1==*p2) return 0; else return -1; } void str_cat(char *p1,char *p2) //将p2所指的字符串连接到p1所指的字符串串末尾 { while(*p1++); p1--; while(*p2!=0) *p1++=*p2++; *p1=0; } int str_len(char *p) { int length=0; while(*p!=0) { p++; length++; } return length; } void main(void) { char s1[20],s2[40]; cout<<\ cin>>s1; cout<<\ cin>>s2; if (str_cmp(s1,s2)==1) cout<<\ else if (str_cmp(s1,s2)== -1) cout<<\ else cout<<\ str_cat(s1,s2); cout<<\ cout<<\} 程序运行结果: Input String1: Visual C++ Input String2: Visual Basic String1>String2 String1+String2 =Visual C++ Visual Basic String1 Length=23 (4) #include void sort1( int a[ ],int n) { int i,j,k,temp; for (i=0;i for (j=i+1;j { temp=a[i]; a[i]=a[k]; a[k]=temp; } } } void sort2( int *p,int n) { int i,j,k,temp; for (i=0;i for (j=i+1;j if (*(p+k)<*(p+j)) k=j; //形参为数组名 //形参为指针 if (k!=i) { temp=*(p+i); *(p+i)=*(p+k); *(p+k)=temp; } } } void sort3( int a[ ],int n) //形参为数组名 { int i,j,k,temp; for (i=0;i for (j=i+1;j { temp=*(a+i); *(a+i)=*(a+k); *(a+k)=temp; } } } void sort4( int *p,int n) // 形参为指针 { int i,j,k,temp; for (i=0;i for (j=i+1;j { temp=p[i]; p[i]=p[k]; p[k]=temp; } } } void main( void) { int a1[10]={1,3,2,5,4,6,7,8,9,10},a2[10],a3[10],a4[10],*pi,i; cout<<\ for (i=0;i<10;i++) { cin>>a1[i]; a2[i]=a3[i]=a4[i]=a1[i]; } sort1(a1,10); //实参为数组名,形参为数组 sort2(a2,10); //实参为数组名,形参为指针变量 pi=a3; sort3(pi,10) ; //实参为指针变量,形参为数组 pi=a4; sort4(pi,10) ; //实参为指针变量,形参指针变量 cout<<\ for (i=0;i<10;i++) cout< for (i=0;i<10;i++) cout< for (i=0;i<10;i++) cout< for (i=0;i<10;i++) cout< 程序运行结果: input 10 number: 10 25 90 80 70 35 65 40 55 5 a1[0~9]={ 90 80 70 65 55 40 35 25 10 5} a2[0~9]={ 90 80 70 65 55 40 35 25 10 5} a3[0~9]={ 90 80 70 65 55 40 35 25 10 5} a4[0~9]={ 90 80 70 65 55 40 35 25 10 5} 实验八 1.实验目的 (1)初步学会指针数组的定义与使用方法。 (2)了解指向一维数组的指针变量的概念,能用指向一维数组的指针变量按行处理二维数组的问题。 (3)理解返回指针值函数的概念、定义格式,学会用返回指针值函数处理字符串问题。 (4)理解函数指针与函数指针变量的概念,学会用函数指针变量处理不同函数数学计算问题。 2.实验要求 (1)编写实验程序 (2)在VC++运行环境中,输入源程序; (3)编译运行源程序; (4)输入测试数据进行程序测试; (5)写出实验输入数据与运行结果。 3.实验内容 (1)定义一个二维字符数组s[3][80]及指针数组p[3],用cin.getline(s[i],80) 输入3个字符串到二维数组3行中,然后用指针数组p对字符串进行降序排列(要求用擂台法),最后用指针数组p输出排序后的结果,用字符数组s输出排序前的三个字符串。 实验数据:\,\,\ (2)输入一个二维数组a[3][3],设计一个函数,用指向一维数组的指针变量和二维数组的行数作为函数的参数,求出平均值、最大值和最小值,并输出。 实验数据:10,25,90,80,70,35,65,40,55 (3)设计程序,用函数指针变量完成两个操作数的加、减、乘、除、取余运算。 实验数据:10 + 20 10 - 5 10 * 15 10 / 2 10 % 3 (4)设计一个用梯形法求定积分的通用函数,被积函数的指针、积分的上限、积分的下限