C 语言程序设计实验答案_数组、指针与字符串解析

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验06 数组、指针与字符串(4学时)

(第6章数组、指针与字符串)

一、实验目的

二、实验任务

6_1(习题6-25)编写并测试3×3矩阵转置函数,使用数组保存3×3矩阵。

6_2(习题6-26)使用动态内存分配生成动态数组来重新完成上题(n阶方阵),使用指针实现函数的功能。

6_3 编程实现两字符串的连接。要求使用字符数组保存字符串,不要使用系统函数。

6_4 使用string类声明字符串对象,重新实现上一小题。

6_5(习题6-27)声明一个Employee类。

其中包括姓名、街道地址、城市和邮编等属性,以及change_name()和display()等函数。display()显示姓名、街道地址、城市和邮编等属性,change_name()改变对象的姓名属性,实现并测试这个类。

6_6(习题6-27)声明包含5个元素的对象数组,每个元素都是Employee 类型的对象。

6_7 修改实验4中的people(人员)类。

具有的属性如下:姓名char name[11]、编号char number[7]、性别char sex[3]、生日birthday、身份证号char id[16]。其中“出生日期”声明为一个“日期”类内嵌子对象。

用成员函数实现对人员信息的录入和显示。

要求包括:构造函数和析构函数、拷贝构造函数、内联成员函数、聚集。

在测试程序中声明people类的对象数组,录入数据并显示。

三、实验步骤

1.(编程,习题6-25)编写矩阵转置函数,输入参数为3×3整型数组。

使用循环语句实现矩阵元素的行列对调,注意在循环语句中究竟需要对哪些元素进行操作,编写main()函数实现输入输出。程序名:lab6_1.cpp。

参考运行结果:

★程序及运行结果:

//lab6_1.cpp

#include

using namespace std;

void move(int matrix[][3]){

int temp;

for(int i=0;i<3;i++)

for(int j=0;j

temp=matrix[i][j];

matrix[i][j]=matrix[j][i];

matrix[j][i]=temp;

}

}

void main(){

int i,j,mat[3][3];

cout<<"输入3×3矩阵"<

for(i=0;i<3;i++){

cout<<"第"<

for(j=0;j<3;j++) cin>>mat[i][j];

}

cout<<"\n输入的3×3矩阵为:"<

for(i=0;i<3;i++){

for(j=0;j<3;j++)

cout<

cout<

}

move(mat);

cout<<"转置后的矩阵为:"<

for(i=0;i<3;i++){

for(j=0;j<3;j++)

cout<<*(*(mat+i)+j)<<" ";//指针形式

cout<

}

}

2.(编程,习题6-26)编写n×n阶矩阵转置函数,参数为整型指针。

使用指针对数组元素进行操作,在main()函数中使用new操作符分配内存生成动态数组。通过调试功能观察指针的内容及其所指的对象中的内容。程序名:lab6_2.cpp。

注:可使用一维动态数组,或二维动态数组。

★程序及运行结果:

(1) 使用一维动态数组表示方阵。

//lab6_2.cpp

#include

#include

using namespace std;

void move(int *matrix,int n){//矩阵为整型指针,对应一维数组

int temp;

for(int i=0;i

for(int j=0;j

temp=matrix[i*n+j];

(2) 使用二维动态数组表示方阵。(参考实验提示)

//lab6_2.cpp

#include

#include

using namespace std;

void move(int **matrix,int n){//矩阵为指向整型指针的指针,对应二维数组int temp;

for(int i=0;i

for(int j=0;j

temp=matrix[i][j];

matrix[i][j]=matrix[j][i];

matrix[j][i]=temp;

}

}

void main(){

int i,j,n,**mat;

cout<<"输入方阵的阶数:";

cin>>n;

mat=new int*[n];

for(i=0;i

cout<<"输入"<

for(i=0;i

cout<<"第"<

相关文档
最新文档