C语言程序设计实验答案数组、指针与字符串 .doc
《C语言程序设计实验答案数组、指针与字符串 .doc》由会员分享,可在线阅读,更多相关《C语言程序设计实验答案数组、指针与字符串 .doc(15页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、实验06 数组、指针与字符串(4学时)(第6章 数组、指针与字符串)一、实验目的(1) 学习使用数组数据对象。(2) 学习字符串数据的组织和处理。(3) 学习标准C+库的使用。(4) 掌握指针的使用方法。(5) 练习通过调试功能观察指针的内容及其所指的对象的内容。(6) 练习通过动态内存分配实现动态数组,并体会指针在其中的作用。(7) 分别使用字符数组和标准C+库练习处理字符串的方法。二、实验任务6_1(习题6-25)编写并测试33矩阵转置函数,使用数组保存33矩阵。6_2(习题6-26)使用动态内存分配生成动态数组来重新完成上题(n阶方阵),使用指针实现函数的功能。6_3 编程实现两字符串的
2、连接。要求使用字符数组保存字符串,不要使用系统函数。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 name11、编号char number7、性别ch
3、ar sex3、生日birthday、身份证号char id16。其中“出生日期”声明为一个“日期”类内嵌子对象。用成员函数实现对人员信息的录入和显示。要求包括:构造函数和析构函数、拷贝构造函数、内联成员函数、聚集。在测试程序中声明people类的对象数组,录入数据并显示。三、实验步骤1.(编程,习题6-25)编写矩阵转置函数,输入参数为33整型数组。使用循环语句实现矩阵元素的行列对调,注意在循环语句中究竟需要对哪些元素进行操作,编写main()函数实现输入输出。程序名:lab6_1.cpp。参考运行结果: 程序及运行结果:/lab6_1.cpp#include using namespace
4、 std;void move(int matrix3)int temp;for(int i=0;i3;i+)for(int j=0;ji;j+)temp=matrixij;matrixij=matrixji;matrixji=temp;void main()int i,j,mat33;cout输入33矩阵endl;for(i=0;i3;i+)cout第i+1行:;for(j=0;jmatij;coutn输入的33矩阵为:endl;for(i=0;i3;i+)for(j=0;j3;j+)coutmatij ;coutendl;move(mat);cout转置后的矩阵为:endl;for(i=0;
5、i3;i+)for(j=0;j3;j+)cout*(*(mat+i)+j) ;/指针形式coutendl;2.(编程,习题6-26)编写nn阶矩阵转置函数,参数为整型指针。使用指针对数组元素进行操作,在main()函数中使用new操作符分配内存生成动态数组。通过调试功能观察指针的内容及其所指的对象中的内容。程序名:lab6_2.cpp。注:可使用一维动态数组,或二维动态数组。 程序及运行结果:(1) 使用一维动态数组表示方阵。/lab6_2.cpp#include #include using namespace std;void move(int *matrix,int n)/矩阵为整型指针
6、,对应一维数组int temp;for(int i=0;in;i+)for(int j=0;ji;j+)temp=matrixi*n+j;matrixi*n+j=matrixj*n+i;matrixj*n+i=temp;void main()int i,j,n,*mat;coutn;mat=new intn*n;cout输入nn矩阵endl;for(i=0;in;i+)cout第i+1行:;for(j=0;jmati*n+j;/数组形式coutn输入的矩阵为:endl;for(i=0;in;i+)for(j=0;jn;j+)coutsetw(4)mati*n+j;coutendl;move(m
7、at,n);cout转置后的矩阵为:endl;for(i=0;in;i+)for(j=0;jn;j+)coutsetw(4)*(mat+i*n+j);/指针形式coutendl;delete mat;(2) 使用二维动态数组表示方阵。(参考实验提示)/lab6_2.cpp#include #include using namespace std;void move(int *matrix,int n)/矩阵为指向整型指针的指针,对应二维数组int temp;for(int i=0;in;i+)for(int j=0;ji;j+)temp=matrixij;matrixij=matrixji;m
8、atrixji=temp;void main()int i,j,n,*mat;coutn;mat=new int*n;for(i=0;in;i+) mati=new intn;cout输入nn矩阵endl;for(i=0;in;i+)cout第i+1行:;for(j=0;jmatij;/数组形式coutn输入的矩阵为:endl;for(i=0;in;i+)for(j=0;jn;j+)coutsetw(4)matij;coutendl;move(mat,n);cout转置后的矩阵为:endl;for(i=0;in;i+)for(j=0;jn;j+)coutsetw(4)*(*(mat+i)+j)
9、;/指针形式coutendl;delete mat;3.(编程)实现两字符串的连接。声明字符数组保存字符串,在程序中提示用户输入两个字符串,实现两个字符串的连接,最后用cout语句显示输出。程序名:lab6_3.cpp。用cin实现输入,注意,字符串的结束标志是ASCII码0,使用循环语句进行字符串间的字符拷贝。/ 字符串的结束标志0参考运行结果: 程序及运行结果:/lab6_3.cpp#include using namespace std;void strLL(char *a,char *b,char *c);void main()int i;char a10,b10,c20;couta;
10、cout显示内存中的字符串a:; for(i=0;i10;i+)if(ai) coutai; /ai不为0elsecout0;/转义break;coutendl;coutb;cout显示内存中的字符串b:; coutb0endl;strLL(a,b,c);coutn显示内存中的连接字符串c:; for(i=0;i20;i+)if(ci)coutci;else cout0; break; coutendl;void strLL(char *a,char *b,char *c)int i,j;for(i=0;ai;i+) ci=ai;/循环直到ai为0for(j=0;bj;i+,j+) ci=bj
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C语言程序设计实验答案数组、指针与字符串 语言程序设计 实验 答案 数组 指针 字符串
限制150内