国家二级C++机试(操作题)模拟试卷327
基本操作题
1.使用VC6打开考生文件夹下的源程序文件modi1.zpp,但该程序运行时有错,请改正程序中的错误,使程序输出的结果为:
number1=a
number2=a
number1=a
number2=b
注意:错误的语句在//********error********的下面,修改该语句即可。
#include
class CMyClass
{
public:
//********error********
friend void SetValue(CMyClass
obj,char c)
{
obj.numberl=c;
obj.number2,=c;
}
//********error********
void SetValue(CMyClass obj,
char c1,char c2)
{
obj.numberl=c1;
obj.number2=c2;
}
void display()
{
cout<<\\
(1)friend void SetValue(CMyClass&obj,char c)
(2)void SetValue(CMyClass&obj,charc1,char c2)
(3)t.SetValue(t,’a’,’b’);
解析:(1)根据程序的输出结果,函数SetValue(t,’a’)执行后,输出number1和number2的值均为a,在SetValue(t,’a’)执行中改变了对象t的成员number1和number2的值,故SetValue(t,’a’)的第一个参数传递的是引用,因此第1个标识下应改为“friendvoid SetValue(CMyC lass&obj,char C)”。
(2)主函数中t.SetValue(t,’a’,’b’)后调用t的display()函数,在屏幕上打印,“number1=a number2=b”,可知在SetValue(CMyClass obj,char c1,char c2)中改变了对象t的成员numberl和number2的值,因此第一个参数传递为引用方式,故第2个标识下应改为“voidSetValue(CMyClass&obj,char c1,char c2)”。
(3)由2可知,第3个标识下是调用函数SetValue(CMyClass&oN,char c1,char c2)函数,函数的第一个参数为引用,直接使用变量名即可,因此第3标识下的引用使用错误,应改为“t.SetValue(t,’a’,’b’);”。
简单应用题
2.使用VC6打开考生文件夹下的源程序文件modi2.cpp。请完成函数fun(int i),实现以下功能:当i等于5时,则打印如下内容。
#
##
###
####
#####
注意:不能修改程序的其他部分,只能修改fun()函数。
#include
void fun(int n)
{
}
void main()
{
int n;
cout<<\\
int i;
for(i=0;i<n;i++)
//外层循环,要打印的行数
{
int j;
for(j=0;j<n-i-1;j++)
//循环打印空格
{
cout<<’ ’;
}
for(;j<n;j++) //循环打印#
{
cout<<\\
解析:(1)外层循环打印每一行。
(2)内层循环,分为打印空格和打印#。打印空格由第一个位置到第n-i-1。打印#,是由打印完空格开始一直到行结束。
(3)最后在外循环中打印每一行的结束。
综合应用题
3.使用VC6打开考生文件夹下的源程序文件modi3.cpp。其中定义的类并不完整,按要求完成列操作,将类的定义补充完整,实现以下功能:
(1)完成CBook类构造函数,对整型变量ID和作者Author进行赋值,请在注释//********1********后添加适当的语句。
(2)完成类CBooks的析构函数,释放申请的内存,请在注释//********2********后添加适当的语句。
(3)完成类CBooks的AddBookMember函数,请在注释//********3********后添加适当的语句。
(4)完成CBooks类,用于由书的ID检索到作者的函数char*GetBookAuthor(int nID),请在注释//********4********后添加适当的语句。
(5)程序的输出结果为:
Tom
Harry
注意:除在指定位置添加语句之外,请不要改动程序中的其他内容。
#include
#include
Class CBook
{
public:
int ID;
char Author[32];
public:
CBook(int ID Number,char*
Author Name)
{
this->ID=ID Number;
//********1********
}
};
clas s CBooks
{
private:
Class Node
{
public:
Node*next;
CBook*book;
}*m pBook;
public:
CBooks()
{
m pBook=NULL;
}
~CBooks()
{
//********2********
while()
{
Node*p = m
pBook->next;
delete m pBook
->book;
delete m pBook;
m-pBook=p;
}
}
int AddBookMenber(int
nID,char*Author)
本文档预览:3600字符,共5451字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载