1 / 16
文档名称:

华中科技大学c++第4次上机作业.doc

格式:doc   大小:153KB   页数:16页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

华中科技大学c++第4次上机作业.doc

上传人:简爱 2022/11/30 文件大小:153 KB

下载得到文件列表

华中科技大学c++第4次上机作业.doc

相关文档

文档介绍

文档介绍:该【华中科技大学c++第4次上机作业 】是由【简爱】上传分享,文档一共【16】页,该文档可以免费在线阅读,需要了解更多关于【华中科技大学c++第4次上机作业 】的内容,可以使用淘豆网的站内搜索功能,选择自己适合的文档,以下文字是截取该文章内的部分文字,如需要获得完整电子版,请下载此文档到您的设备,方便您编辑和打印。工程施工资料
工程施工资料
工程施工资料
华中科技大学
《计算机基础与程序设计(C++)》
实验报告
实验名称:第四次上机实验实验学时:4
姓名:学号:班级:电气
实验日期:2017。:
一、实验目的
掌握一维数组的定义、输入、输出和基本操作.
掌握二维数组的定义、输入、输出和基本操作。
掌握字符串的存储和访问.
使用数组处理解决实际问题的能力。
动态数组的访问
二、实验内容

1)#include〈iostream>
#include〈cmath>
usingnamespacestd;
intmain()
{intn=5;
inti,a[n];
for(i=0;i〈n;i++)
{cin〉>a[i];
cout<<a[i];
}
return0;
}
运行上述的程序,改正其中的错误,并解释错误原因。
错误:。

修改后的程序:
#include〈iostream〉
#include<cmath〉
工程施工资料
工程施工资料
工程施工资料
usingnamespacestd;
intmain()
{intn=5;
inti,a[5];
for(i=0;i<n;i++)
{cin>〉a[i];
cout〈〈a[i];
}
return0;
}
2)#include<iostream〉
#include<cmath〉
usingnamespacestd;
intmain()
{inti,a[5]={0,1,2,3,4};
for(i=0;i<=5;i++)
cout〈<a[i];
return0;}
运行上述的程序,其结果是否正确,如不确请修改正确,并解释原因。
错误:1。定义变量时的逗号为中文。

正确的程序:
#include<iostream〉
#include<cmath〉
usingnamespacestd;
intmain()
{inti,a[5]={0,1,2,3,4};
for(i=0;i<=4;i++)
cout〈〈a[i];
return0;}
3)#include<iostream〉
usingnamespacestd;
intmain()
{
工程施工资料
工程施工资料
工程施工资料
charrstr[10]="abcdefgh",dstr[10];
inti;
for(i=0;rstr[i]!=’\0';i++)//循环条件可以写成rstr[i]!=0;或rstr
dstr[i]=rstr[i];
cout〈<”输出字符串dstr:”<〈dstr〈<endl;
return0;
}
上述程序的功能是将字符串rstr复制到目标串dstr中,运行该程序结果是否正确,如不正确请修改正确,并解释原因。
不正确.
原因:在dstr[10]数组中,未说明在何时dstr[10]输出结束
程序默认输出到最后,导致出现问题.
修改后的程序:
#include<iostream>
usingnamespacestd;
intmain()
{
charrstr[10]=”abcdefgh",dstr[10];
inti;
for(i=0;rstr[i]!=’\0’;i++)
dstr[i]=rstr[i];
dstr[i+1]=’\0';
cout<<”输出字符串dstr:”<〈dstr<<endl;
return0;
}
程序截图:
4)#include<iostream〉
usingnamespacestd;
intmain()
{
charname1[]={'a’,’b’,'c’,’d’};
charname2[]=”abcd”;
for(i=0;i〈4;i++)
cout<<name1[i];
cout<<endl;
工程施工资料
工程施工资料
工程施工资料
cout<<name1<〈endl;
cout<<name2<<endl;
return0;
}
运行上述程序,比较三种输出的异同,并解释原因。
①程序存在错误未定义i的类型.
②原因:
第一个输出:输出了数组的前四个字符,即abcd。
第二个输出:输出了数组的前四个字符后没有结束的标志故继续输出后续的内容,由于未进行定义故输出的为如图所示
第三个输出:name2[]在定义时前四个字符为abcd,第五个字符为\0结束标志,如图所示
故输出全部时只会输出结束标志之前的内容。
5)#include<iostream>
usingnamespacestd;
intmain()
{inta=10,b=20,*p=&a,*q;
cout<〈a〈<endl;
cout〈〈*p〈〈endl;
*p=b;
cout〈〈a<〈endl;
cout〈〈*p〈〈endl;
*q=b;
cout<〈b<〈endl;
cout<<*q<〈endl;
return0;
}
编译调试上述程序,如有错误请修改,并解释原因。
编译未出现错误但程序会终止
原因:
工程施工资料
工程施工资料
工程施工资料
*q初始时未定义其位置,所以*q可能为程序关键位置,修改后会导致程序异常,只能执行这个语句之前的语句。
改正后的程序:
#include〈iostream〉
usingnamespacestd;
intmain()
{inta=10,b=20,c,*p=&a,*q=&c;
cout<〈a<〈endl;
cout〈〈*p〈〈endl;
*p=b;
cout〈〈a<<endl;
cout〈〈*p〈<endl;
*q=b;
cout<〈b〈〈endl;
cout<〈*q<<endl;
return0;
}
5)inta[5]={1,2,3,4,5};
int*p=a;
在上述语句的基础上,
#include<iostream>
usingnamespacestd;
intmain()
{inta[5]={1,2,3,4,5};
int*p=a,i;
for(i=0;i<=4;i++)
{
cout〈<a[i];
}
cout<<endl;
for(i=0;i〈=4;i++)
工程施工资料
工程施工资料
工程施工资料
cout〈〈*(p+i);
cout<<endl;
for(i=0;i<=4;i++)
cout<〈*(a+i);
cout<<endl;
for(i=0;i〈=4;i++)
cout<〈p[i];
cout〈〈endl;
for(i=0;i<=4;i++)
cout〈<*(p++);
cout〈<endl;
return0;
}
编程题
1)定义包含10个元素的一维数组,输入输出各元素的值,然后求出最大值将其与第一个数交换位置后再输出。
要求:
程序原代码。(直接粘贴在此)
#include<iostream>
usingnamespacestd;
intmain()
{
inta[10],i,j,c,flag;
cout〈〈"请输入数组的各个元素的值”<<endl;
for(i=0;i〈=9;i++)
cin〉〉a[i];
cout〈<endl;
for(i=0;i<=9;i++)
cout<〈a[i]<<’’;
cout<<endl;
for(i=0;i〈=9;i++)
{flag=1;
工程施工资料
工程施工资料
工程施工资料
for(j=0;j〈=9;j++)
{
if(a[i]〈a[j])
flag=0;
}
if(flag)
{ c=a[0];
a[0]=a[i];
a[i]=c;
}
}
for(i=0;i<=9;i++)
cout〈<a[i]<<’’;
cout<〈endl;
}
解决本题的算法思路描述
定义数组,输入输出数组。
通过for循环找出最大的数并进行交换
输出交换后的数组
调试过程的记载(包括出现的错误,以及修改过程)
寻找最大的数值时出现错误
通过借助一个flag变量最终解决
归纳本题应用的知识点或算法
For循环
一维数组
2)编写一个程序,定义5行4列二维数组,并对前4行4列的元素赋值,计算二维数组前4行各列之和,且将每列之和放于各列最后一行的位置,然后输出该二维数组(按行列的格式输出).
要求:
程序原代码.(直接粘贴在此)
#include〈iostream〉
usingnamespacestd;
intmain()
{
工程施工资料
工程施工资料
工程施工资料
inta[5][4],i,j;
for(i=0;i〈=3;i++)
for(j=0;j〈=3;j++)
cin>>a[i][j];
for(j=0;j〈=3;j++)
a[4][j]=a[0][j]+a[1][j]+a[2][j]+a[3][j];
for(i=0;i<=4;i++)
for(j=0;j<=3;j++)
{
cout<<a[i][j]〈<’’;
if(j==3)
cout〈〈endl;
}
return0;
}
解决本题的算法思路描述
定义二维数组
求各个列的和
输出二维数组的结果
调试过程的记载(包括出现的错误,以及修改?)
for语句循环条件错误
归纳本题应用的知识点或算法
For循环
二维数组
3)编程输出10行的杨辉三角形。(使用二维数组并利用每个系数等于其上两系数之和,要求按等腰三角形的格式输出)
要求:
程序原代码。(直接粘贴在此)
#include<iostream>
#include<iomanip>
usingnamespacestd;
intmain()
{
inta[10][10];
inti,j,k;
for(i=0;i<10;i++)
{
a[i][0]=1;a[i][i]=1;
}
for(i=2;i<10;i++)
for(j=1;j<i;j++)
a[i][j]=a[i—1][j—1]+a[i-1][j];
for(i=0;i<10;i++)
工程施工资料
工程施工资料
工程施工资料
{
for(k=i;k<=9;k++)
cout<<"”;
for(j=0;j<=i;j++)
{
cout<<setw(4)〈〈a[i][j];
}
cout〈〈endl;

}
return0;
}
解决本题的算法思路描述
定义二维数组
把值为1的数字确定
运用杨辉三角的相关规律进行计算
调整输出格式
调试过程的记载(包括出现的错误,以及修改)
最开始输出格式不对,调整输出的空格数量后正常
归纳本题应用的知识点或算法
二维数组
For语句循环
Setw()的用法
4)编程将一个字符串插入另一个字符串的指定位置。(位置由用户输入)
要求:
程序原代码。(直接粘贴在此)
#include〈iostream〉
usingnamespacestd;
intmain()
{
charaa[100],bb[100],c[100],g;
intd,e,f;
工程施工资料
工程施工资料
工程施工资料
cout<〈"请输入字符串”〈<endl;
(aa,100);
cout<<"请输入需要插入的字符串"〈<endl;
cin〉〉bb;
cout<<"请输入需要插入的位置”<<endl;
cin〉>d;
e=d;f=d;
g=bb[0];
for(;d〈=100;d++)
{
c[d]=aa[d];

}
aa[e]=’\0';
bb[0]=g;
for(d=0;bb[d];e++,d++)
{
aa[e]=bb[d];

}
cout〈<bb[0]〈<endl;
for(;e〈=100;e++,f++)
{
aa[e]=c[f];

}

cout〈<aa;
return0;
}
解决本题的算法思路描述
定义字符串数组
在所给的位置,将其以后的部分赋值给另外一个数组c
将要插入的数组与原数组从给定位置连接
连接完的数组与数组c再连接得出结果
调试过程的记载(包括出现的错误,以及修改)
归纳本题应用的知识点或算法
字符数组的应用
For语句循环
编程产生10个互不相同的100~200范围内的随机数。
要求:
程序原代码.(直接粘贴在此)

最近更新

简单一点房屋租赁合同 6页

校内面包房项目融资方案 42页

校内手抓饼项目融资方案 37页

汉泰语中动物词语的比较研究的中期报告 2页

机电系大学生项目融资计划书 37页

永宁中学体育校本课程开发中融入民间手狮舞初.. 2页

演讲稿之企业演讲比赛策划书 10页

物业管理会议发言稿 7页

2024年智能一体化电源系统投资申请报告代可行.. 61页

民营企业政治关联与企业绩效的关系研究——以.. 2页

鼓形齿联轴器设计 34页

高考数学总复习教师用书第9章第4讲直线与圆圆.. 2页

高考励志名言名句2020 5页

桥群河段并建桥的“巷道效应”分析研究的中期.. 2页

高低压配电室设施接管验收表一 1页

高二后进生学生评语 10页

高中语文小课题研究计划书 4页

高中英语倒装句练习试题7720 8页

标签的生成、排序算法研究的中期报告 2页

柳泉广场房地产项目市场分析及营销策略研究的.. 2页

装备承制单位资格审查申请表及附件优质资料 40页

冯耘先生著作家乐赢钱公式 29页

(word完整版)英语四级4500词汇高度浓缩为400个.. 6页

最新gb50003-2023《砌体结构设计规范 11页

电网规划与建设中的全过程管理 4页

PEP人教版小学英语四年级下册《Unit 3 Weathe.. 3页

2021年外商投资企业合资合作合同范本 10页

佛顶尊胜陀罗尼咒梵文版 2页

临时用电验收记录表(模板格式).DOC 2页

渤海大学本科毕业论文(设计) 27页