C++程序设计实验七_参考答案
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
广东金融学院实验报告
课程名称:C++程序设计
实验编号
实验7数组与指针练习系别参考答案及实验名称
姓名学号班级
实验地点新电403实验日期2011-11-24实验时数4
指导教师曲政同组其他成员无成绩
一、实验目的及要求
1.学习C/C++数组和指针的概念和使用方法。
2.练习C++/CLI托管数组的创建方法和元素访问方法。
二、实验环境及相关情况(包含使用软件、实验设备、主要仪器及材料等)
硬件设备:联网的个人计算机
操作系统:Windows XP
编译系统:Visual Studio2005
三、实验内容及步骤(包含简要的实验步骤流程)
1.内容和步骤
⑴仔细阅读本课件的知识点和例题,努力理解其中的文字阐述和源代码,必要时可将源代码拷入Visual Studio2005生成的C++/CLR框架编译和运行,将运行结果与源代码对照,加深对C/C++数组和指针的理解。
⑵在理解本课件内容的基础上,编写C/C++程序实现下列文字描述:
a.声明一个int型变量x,并赋初值3;
b.打印x的值;
c.打印x的地址;
d.声明一个指向int的指针p,并让其指向变量x;
e.打印p所指变量的值
f.打印p的值;
g.声明一个有10个元素的一维本地整型数组A,并为其赋初值0~9;
h.在一个循环中打印A的所有元素的值;
i.打印A的值;
j.打印A的第一个元素的地址;
k.声明一个指向int的指针q,并让其指向A的第一个元素;
l.在一个循环中通过q后跟下标,打印出A的所有元素的值;
m.在一个循环中通过q加上循环变量和取值运算,打印出A的所有元素的值;
n.在一个循环中通过q的增量和取值运算,打印出A的所有元素的值;
o.在一个循环中通过q的负增量,反序打印出A的所有元素的值;
p.声明一个int型指针r,在堆中创建一个int型变量,为该变量赋初值3,并将该变量的地址赋给该指针,打印出该变量的值,然后删除该变量。
q.声明一个本地类Point(可以用包含2个int型变量和一个有参数构造函数的结构体表示)的指针s,在堆中创建一个Point类的对象,调用构造函数为该对象的两个数据成员赋初值3和4,并将该对象的地址赋给该指针,打印两个数据成员的值,然后删除该对象。
r.声明一个int型指针t,在堆中创建一个3个元素的int类型数组并将该数组的首地址赋给该指针,为三个数组元素分别赋值3、4、5,在一个循环中打印出所有元素的值,然后删除该数组。
s.声明一个本地类Point类的指针u,在堆中创建一个3个元素的Point类的对象数组(需在Point
中添加无参数构造函数)并将数组的首地址赋给该指针,为三个数组元素分别赋值(1,2)、(3,4)、(5,6),在一个循环中打印该数组所有元素分量的值,然后删除该数组。
t.用基本语法声明并创建一个10个元素的一维托管整型数组B,并在一个循环中为元素赋值0~9;
u.在另一个循环中打印B所有元素的值。
v.用初值表方式声明并创建一个10个元素的一维托管整型数组C,并为其元素赋初值10~19;
w.在一个循环中打印C所有元素的值。
x.用数组C为数组B赋值。
y.在一个循环中打印B和C所有元素的值。
2.提示和要求
⑴首先将上面的文字描述拷入Visual Studio2005生成的C++/CLR框架,在每条文字描述之前加“//”将其变为注释,并在其下留一个空行准备编写对应的程序。
⑵对应于逐条文字描述,在其下编写程序(可能是一个或一组语句),每编写一条文字描述对应的程序,就编译(运行)一次,以保证语法和算法的正确性。
⑶当全部文字描述所对应的程序编写完成,并编译、运行正确,将文字描述和源代码拷入实验报告。
⑷对C/C++的数组和指针做简要总结。
四、实验结果(源程序)
#include"stdafx.h"
#include
using namespace System;
int main(array
{
//a.声明一个int型变量x,并赋初值;
int x=3;
//b.打印x的值;
printf("x=%d\n",x);
//c.打印x的地址;
printf("&x=%x\n",&x);
//d.声明一个指向int的指针p,并让其指向变量x;
int*p=&x;
//e.打印p所指变量的值
printf("*p=%d\n",*p);
//f.打印p的值;
printf("p=%x\n",p);
//g.声明一个有个元素的一维本地整型数组A,并为其赋初值0~9;
int A[10]={0,1,2,3,4,5,6,7,8,9};
//h.在一个循环中打印A的所有元素的值;
for(int i=0;i<10;i++)
printf("A[%d]=%d\n",i,A[i]);
//i.打印A的值;
printf("A=%x\n",A);
//j.打印A的第一个元素的地址;
printf("A=%x\n",&A[0]);
//k.声明一个指向int的指针q,并让其指向A的第一个元素;
int*q=A;
//l.在一个循环中通过q后跟下标,打印出A的所有元素的值;
for(int i=0;i<10;i++)
printf("q[%d]=%d\n",i,q[i]);
//m.在一个循环中通过q加上循环变量和取值运算,打印出A的所有元素的值;
for(int i=0;i<10;i++)
printf("q+%d=%d\n",i,*(q+i));
//n.在一个循环中通过q的增量和取值运算,打印出A的所有元素的值;
for(int i=0;i<10;i++){
printf("q=%d,q++\n",*q);
q++;
}