c++实验答案 下载本文

内容发布更新时间 : 2024/12/23 20:55:57星期一 下面是文章的全部内容请认真阅读。

for (i=0;i

cout<<\}

方法三 (数组方式,指针变量的数组形式,用 p[i]访问元素) #include #define N 10 void main(void)

{ float a[N],sum,*p=a; int i;

cout<<\ for (i=0;i>p[i]; sum=0;

for (i=0;i

cout<<\}

方法四 (指针方式,数组名+位移,用 *(a+i)访问元素) #include #define N 10 void main(void) { float a[N],sum; int i;

cout<<\ for (i=0;i>*(a+i); sum=0;

for (i=0;i

cout<<\}

程序运行结果:

Input data: 10 20 30 40 50 60 70 80 90 100 average=55 (2)

#include void main(void)

{ 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 #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)设计一个用梯形法求定积分的通用函数,被积函数的指针、积分的上限、积分的下限