第4次上机作业

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

华中科技大学

《计算机基础与程序设计(C++)》

实验报告

实验名称:第四次上机实验实验学时:

姓名:学号:班级:

实验日期:教师批阅签字:

一、实验目的

●掌握一维数组的定义、输入、输出和基本操作。

●掌握二维数组的定义、输入、输出和基本操作。

●掌握字符串的存储和访问。

●使用数组处理解决实际问题的能力。

●动态数组的访问

二、实验内容

1.阅读程序

1)#include

#include

using namespace std;

int main()

{ int n=5;

int i,a[n];

for(i=0;i

{ cin>>a[i];

cout<

}

return 0;

}

运行上述的程序,改正其中的错误,并解释错误原因。

正确代码:

#include

#include

using namespace std;

int main()

{

int i;

int a[5];

for(i=0;i<5;i++)

{ cin>>a[i];

cout<

}

return 0;

}

调试错误:

Subscript requires array or pointer type.

原因:数组元素个数不能是实数?

2)#include

#include

using namespace std;

int main()

{ int i,a[5]={0,1,2,3,4};

for(i=0;i<=5;i++)

cout<

return 0;}

运行上述的程序,其结果是否正确,如不确请修改正确,并解释原因。

正确代码:

#include

#include

using namespace std;

int main()

{

int i,a[5]={0,1,2,3,4};

for(i=0;i<=5;i++)

cout<

return 0;

}

3)#include

using namespace std;

int main( )

{

char rstr[10 ]="abcdefgh",dstr[10];

int i;

for(i=0; rstr[i]!='\0'; i++) //循环条件可以写成rstr[i]!=0; 或rstr

dstr[i]=rstr[i];

cout<<"输出字符串dstr:"<

return 0;

}

上述程序的功能是将字符串rstr复制到目标串dstr中,运行该程序结果是否正确,如不正确请修改正确,并解释原因。

#include

using namespace std;

int main( )

{

char rstr[10]="abcdefgh",dstr[10];

int i;

for(i=0; rstr[i]!='\0';i++) //循环条件可以写成rstr[i]!=0; 或rstr

dstr[i]=rstr[i];

dstr[i]='\0';

cout<<"输出字符串dstr:"<

return 0;

}

解释原因:

因为赋值时原串的’\0’并没有赋值给目标串,所以循环结束后一定要加上语句dstr[i]='\0';否则程序运行会出现异常。

4)#include

using namespace std;

int main( )

{

char name1[]={'a','b','c','d'};

char name2[]=”abcd”;

for(i=0;i<4;i++)

cout<

cout<

cout<

cout<

return 0;

}

运行上述程序,比较三种输出的异同,并解释原因。

输出1和输出2:字符数组name1的处理与数值型数组没有差异,因为结尾没有’\0’,没有构成c++字符串,若用输出2语句“cout<

输出3:输出的是字符串,初始化时直接用字符串常量赋值。

5)#include

using namespace std;

int main( )

{int a=10, b=20,*p=&a,*q;

cout<

cout<<*p<

*p=b;

cout<

cout<<*p<

相关文档
最新文档