国家二级C++机试(操作题)模拟试卷343
基本操作题
1.使用VC6打开考生文件夹下的源程序文件modi1.cpp,该程序运行时有错,请改正其中的错误,使程序正确运行,并且使程序输出的结果为:
CMyObject,in the construtor
~CMyObject,in the destrutor
注意:错误的语句在//********error********的下面,修改该语句即可。
#include
class CMyObject
{
//********error********
//********error********
CMyObject{cout<<\\
(1)添加语句:public:
(2)CMyObject(){cout<<\\
解析:(1)构造函数和析构函数均为公有函数,而在C++中默认的访问属性为私有(private),因此构造函数和析构函数必须说明为public,即第1个标识下应添加“public:”。
(2)函数定义中在函数名后均有一对括号表示函数声明,因此第2个标识下应改为“ CMyObjectO{cout<< \\
简单应用题
2.使用VC6打开考生文件夹下的源程序文件modi2.cpp。请完成函数fun(int n),求出n×n矩阵的对角线数字的平方和。如果n为奇数,则对角线交叉部位数字只参与一次计算。
注意:请勿改动主函数main与其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。
#include
#define MAX_N 10
int XX[MAX_N][MAX_N];
int fun(int n)
{
}
void main()
{
int nj
do
{
cout<<”please input N f 1<:
N<10):”<<endl;
Cin>>n;
if(n=1)
{
break;
}
}while(1);
for(int i=0;i<n;i++)
{
for(int j=0;J<n;j++)
{
cout<<\\
int data=0;
//初始化求平方和变量
for(int i=0;i<n;i++)
{
data+=XX[i][i]*XX[i][i];
//求正对角线平方和
if(i!=n—i一1)
data+=XX[i][n-i-1]*XX[i][n-i-
1];//求逆对角线平方和
}
return data;
解析:(1)首先初始化求平方和变量,设置求平方和的变量为0。
(2)然后利用for循环求得矩阵正对角线平方和。
(3)最后求得逆对角线平方和,返回平方和变量。
综合应用题
3.使用VC6打开源程序文件modi3.cpp。其中类TestClass用于把文件输出到屏幕,然后进行文件的分割。分割的方法如下:第一个文件的大小是文件的前一半,另外一个文件的大小是剩余部分。
此程序将int.txt文件中的内容输出到屏幕,并且将文件按照以上方式分割,存于文件out1.txt和out2.txt中。其中定义的类并不完整,按要求完成下列操作,将类的定义补充完整。
(1)从输入文件中获得一个字符,并判断是否到文件结尾,如果到文件结尾,则退出循环。请在注释//********1********后添加适当的语句。
(2)把获得的输入文件的内容存储到buf中,并且用len记录下文件的长度。请在注释//********2********后添加适当的语句。
(3)将输入文件的后一半内容存储在第二个文件中,请在注释//********3********后添加适当的语句。
(4)使用文件流对象打开输入文件in.txt,请在注释//********4********后添加适当的语句。
注意:仅在函数指定位置添加语句,请勿改动主函数main与其他函数中的任何内容。
#include
#include
#include
Class TestClass
{
public:
TestClass(char*fileName)
{
len=0;
fstream infile;
infile.open(fileName,
ios::in);
char ch;
//********1********
while()
{
cout<<ch;
//********2********
}
infile.Close();
}
void split()
{
fstream outfile1;
fstream outfile2;
outfilel.open(\\
(1)将“while()”完整为:while(infile.get(ch))
(2)添加语句:buf[len++]=ch;
(3)添加语句:outfile2<<buf[i++];
(4)将“Testclass Fsp();”完整为:
TestClass Fsp(\\
解析:(1)题目1要求“从输入文件中获得一个字符,并判断是否到文件结尾”。程序中的“while()”循环判断语句中缺少从文件中获得的字符,所以这里补全while循环判断条件, 即“while(infile.get(ch))”。
(2)题目2要求“把获得的输入文件的内容存储到buf中,并且用len记录下文件的长度。”所以为buf分配空间,即“buf[len++]=ch;”。
(3)题目3要求“将输入文件的后一半内容存储在第二个文件中。”在C++中,用流插入运算符为“<<”,所将buf中存放的数据存入文件outfile2,以根据题干中的要求,即这里补全“outfile2<<bufIi++];”。
(4)题目4要求“使用文件流对象打开输入文件modi3.txt。”程序应该是调用类“TestClass”中的成员函数“split”。类的构造函数定义中存在参数char*fileName,所以修改注释下的语句缺少参数。即“TestClass Fsp(\\
本文档预览:3600字符,共3544字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载