EXAM12110405022qxsbWord文件下载.docx
《EXAM12110405022qxsbWord文件下载.docx》由会员分享,可在线阅读,更多相关《EXAM12110405022qxsbWord文件下载.docx(16页珍藏版)》请在冰豆网上搜索。
("
;
inta,b,c,n(0),s(0);
for(inti=100;
i<
=999;
i++)
{
a=i%10;
b=i/10%10;
c=i/100%10;
if(a*a*a+b*b*b+c*c*c==1099)
{
cout<
+"
s=s+i;
n++;
}
}
'
\b'
)/"
n<
="
s/n<
endl;
}
2、实验结果
(二)实验题目二:
定义5×
5二维数组,找出第m行中元素的最大值,并输出最大值元素以及所在的列号。
找出第n列中元素的最小值,并输出最小值元素以及所在的行号。
(m和n均在1~5之间)
(1)数组定义及产生正确(5分)
(2)求最大值及列号功能正确(5分)
(3)求最小值及行号功能正确(5分)
(4)输出格式正确,格式如下:
5×
5数组为:
4587323454
5456767866
4678872343
1232445678
5566778899
输入m=2(即第3行),则程序输出:
第3行的最大值:
87,所在列号:
3
输入n=3(即第4列),则程序输出:
第4列的最小值:
23,所在行号:
doublea[5][5];
intm,n,k,l;
按行输入一个*5方阵的元素:
for(inti=0;
5;
for(intj=0;
j<
j++)
cin>
>
a[i][j];
此方阵为:
a[i][j]<
\t'
cout<
输入行号(1~5):
cin>
m;
doublet=a[m-1][0];
for(inti=1;
if(a[m-1][i]-t>
0)
t=a[m-1][i];
k=i;
第"
m<
行最大值:
t<
所在列号:
k+1<
输入列号(1~5):
n;
doubles=a[0][n-1];
if(a[i][n-1]-s<
s=a[i][n-1];
l=i;
列最小值:
s<
所在行号:
l+1<
2、实验结果:
(三)实验题目三:
编写一个函数,将某个字符串中所有非字母和数字字符均用*替代。
例如:
字符串“Iamagentlman_18!
”,形成字符串为“I*am*a*gentlman*18*”其原型为:
char*mycode(char*string);
其中参数string为字符串,返回值为指向string的指针。
并编出主函数进行验证。
(1)子函数头设计正确;
(2)子函数功能正确;
(3)主函数调用的方法正确;
(4)输出结果正确;
1、程序源代码
char*mycode(char*string)
char*s;
s=string;
while(*string!
='
\0'
)
if(*string<
A'
||*string>
Z'
if(*string<
a'
z'
if(*string<
0'
9'
{
*string='
*'
string++;
}
else
else
string++;
else
string++;
returns;
chara[100];
输入字符串(不超过个字符):
cin.get(a,100);
形成字符串:
mycode(a)<
(四)实验题目四:
定义勾股数类triangle,实际上就是直角三角形类,应有两个构造函数(即triangle()和triangle(int,intint))、计算面积函数、勾股数输出函数(即输出a*a+b*b=c*c)、运算符+重载函数(注意:
对应边相加,仍然形成直角三角形),赋值号=重载函数。
(1)给出满足要求的完整的勾股数类的定义及其成员函数;
(2)+和=运算符重载函数编写正确;
(3)计算面积函数正确;
(4)编写主函数,测试输出正确(5分)
classtriangle
intA,B,H;
public:
triangle()
A=0;
B=0;
H=0;
triangle(inta,intb,inth)
Settriangle(a,b,h);
~triangle()
{;
voidSettriangle(intaa,intbb,intcc)
if(aa*aa+bb*bb==cc*cc)
A=aa;
B=bb;
H=cc;
您输入的三个数不属于勾股数类!
doublemianji(triangle&
c)
returnc.A*c.B/2;
voidshowme()
A<
^2+"
B<
^2="
H<
^2"
triangle&
operator+(triangle&
A=A+c.A;
B=B+c.B;
H=H+c.H;
return*this;
intoperator=(triangle&
if(A==c.A&
&
B==c.B&
H==c.H)
return1;
return0;
operator==(triangle&
A=c.A;
B=c.B;
H=c.H;
};
请输入一组勾股数:
inta,b,c;
a>
b>
c;
请输入另外一组勾股数:
inta1,b1,c1;
a1>
b1>
c1;
trianglet1(a,b,c),t2(a1,b1,c1),t;
第一组勾股数为:
t1.showme();
面积为:
t1.mianji(t1)<
第二组勾股数为:
t2.showme();
t2.mianji(t2)<
t==t1;
t1+t2;
t1+t2="
t1+t2的面积为:
if(t=t2)
两组勾股数相等!
else
两组勾股数不相等!
2、实验结果
(五)实验题目五:
编写一个程序,可以读入一个数据文件s_data中以N×
N二维数组排列的数据(N不小于3),将二维数组置逆,然后写入另一个文件t_data中。
假设s_data文件中数据如下:
45873234
54567678
46788723
12324456
则t_data文件中的数据如下:
45544612
87567832
32768744
34782356
(1)程序开始执行时提示:
“Pleaseinputfilename:
”,能正确输入文件名;
(2)文件打开和关闭正确;
(3)能正确读取文件数据;
(4)能正确产生输出文件。
(5分)
fstream>
intmain()
constintM=20;
constintm=4;
constintn=4;
intc;
pleaseinputfilename:
chara[M];
cin.get(a,M);
ifstreaminfile;
infile.open("
s_data.txt"
);
if(!
infile)
Cannotopenfile!
return1;
ofstreamfile("
t_date.txt"
file)
intb[m][n];
inti=0,j=0;
while(infile)
infile>
if(c!
\n'
b[i][j]=c;
j++;
i++;
j=0;
file<
b[j][i]<
file<
infile.close();
file.close();
return0;
2、实验结果
三.个人小结
这次实验内容是这学期期末考试前第一次模拟测验。
这次实验的主要目的是熟悉一下考试中常考的点,并对这学期学的内容做一个复习。
我发现本次模拟试题比我们平时做的题的要简单,从程序的长度上就可以看出来。
平时的实验题目,有时候一道题可以达到两三百行。
这次模拟测试的第一题的主要考点是if语句的运用和一个整数各位数字的提取,比较简单。
第二题是关于数组的,控制结构部分主要是一个判断大小,也不难。
第三题是主要考指针,这道题考得也不难。
第四题是类的题,主要是重载的时候出了点小问题,其他也没难点。
第五题的文件处理结果正确,但有DebugError。
本来想问老师,后来老师不在。
希望老师给我检查一下,能把DebugError去除。
这次看的是刘建超的实验报告。
他的第一题没有将除的结果进行强制类型转换,测试时也不全。
测试部分程序也有待改进。
第二题,我用了动态存储分配,感觉比他的好。
第三题的信息比较详尽。
第四题的测试,我感觉还得加一个测试读入任意文件。