首页 > 全部 > 二级C++ > 国家二级C++机试(操作题)模拟试卷341

国家二级C++机试(操作题)模拟试卷341

本单篇文档共4042字,内容预览3600字,预览为有答案版,源文件无水印,下载后包含无答案空白卷版和有答案版,同时也有计算机类NCRE全国计算机二级整科真题模拟题,讲义课件,思维导图,易错高频题等下载。
二级C++ 章节练习 5941人下载
价格: 1.00 原价:¥9.00
收藏

国家二级C++机试(操作题)模拟试卷341

基本操作题

1.使用VC6打开考生文件夹下的源程序文件modi1.cpp,该程序运行时有错误,请改正其中的错误,使程序正常运行,并且输出以下结果:

(4,5)

7,8

(4,8)

注意:错误的语句在//********error********的下面,修改该语句即可。

#include

class CObj0.

{

public:

CObj0(int i,int j)

{

x=i;

y=j;

}

//********error********

virtual void move(int a;int b)

{

x+=a;

y+=b;

}

void print()

{

cout<<\\

(1)virtual void move(int a,int b)

(2)CObj1(int i,int j,int k,int 1):CObj0(i,j)

(3)CObj0::print();

解析:(1)编译程序可知第1标识下有错误,此处是声明虚函数,虚函数的声明方式为:virtual(),参数表中各参数之间应该用“,”隔开,因此第1个标识下应改为“virtual void move(int a,int b)”。

(2)在主函数里“CObjl obil(1,3,7,8);”,可知构造函数CObil()有四个参数,完成变量m、n、x和y的初始化,k和l赋值给m和n,i和i赋值给x和v,x和y的初始化可通过基类构造函数来完成对x和y的初始化,第2个标识下应改为CObil(int i,int i,intk,int 1):CObj0(i,j)。

(3)由程序运行结果可知标识3下调用的是基类的print()函数,而“print();”是调用的派生类的print()函数,因此此时只能通过类名来直接调用print()函数,即第3个标识下应改为“CObj0::print0;”。

简单应用题

2.使用VC6打开考生文件夹下的源程序文件modi2.cpp。阅读下列函数说明和代码,完成空出部分程序。函数fun(char*s,char*s1,char*s2)中形参字符串s1和s2有相同的字符个数,且s1中各字符互不相同。该函数实现将已知字符串S中所有在字符串s1中也存在的字符,都用字符串s2中的对应位置的字符代替。

例如:设字符串S、sl和s2分别为:

S[]=\\

char*p,*q;

for(;*s;s++)

//在串s中找符合条件的字符,然后替换

{

for(p=s1,q=s2;*p;p++,q++)

//让指针p,q分别指向s1和s2

{

if(*p==*s)

//如果s中存在s1中p指向的字符

{

*s=*q;

//那么用q指向的s2中的字符替换

}

}

}

解析:(1)让指针p,q分别指向s1和s2。

(2)然后利用for循环对s中的每一个当前字符与p指向的字符进行比较。

(3)如果(2)中的比较结果相等,那么用q指向s2中对应的字符替换。

综合应用题

3.使用VC6打开考生文件夹下的源程序文件modi3.cpp,阅读下列程序说明和代码,功能如下:

从屏幕输入数字,然后由大到小插入指定的链中。当输入0时,表示输出的数据已经输入完成,然后把数据打印到屏幕,然后释放内存。

其中定义的类并不完整,按要求完成下列操作,将类的定义补充完整。

(1)在父节点的Next中保存新插入的节点的指针,请在注释//********1********后添加适当的语句。

(2)把pNext的子节点赋给pNext本身,请在注释//********2********后添加适当的语句。

(3)判定P的子节点不为空,如果不为空,则打印P其中的数据到屏幕,请在注释//********3********后添加适当的语句。

(4)用tempi保存动态申请内存节点的链表头,请在注释//********4********后添加适当的语句。

注意:仅在函数指定位置添加语句,请勿改动主函数main与其他函数中的任何内容。

#include

Class TestClass

{

public:

TestClass(int data=0)

{

This->data=data;

This->next=NULL;

};

int data;

TestClass* next;

};

void Insert(TestClass*p,int data)

{

TestClass*temp=new TestClass

(data);

TestClass*pParent=p;

TestClass*pNext=p一>next;

while(pNext)

{

if(data>pNext一>data)

{

//********1********

temp一>next=pNext;

return;

}

Else

{

pParent=pNext;

//********2********

}

}

if(pNext==NULL)

{

pParent一>next=temp;

return;

}

}

void printf(TestClass*p)

{

//********3********

while()

{

cout<

next一>data<<\\

(1)添加语句:pParent=>next=temp;

(2)添加语句:pNext=pNext=>next;

(3)将“while()”补充完整为:while(p=>next!=NULL)

(4)将“TestClass*tempi=;”补充完整为:

TestClass*templ=p=>next;

解析:(1)题目1要求“在父节点的Next中保存新插入的节点的指针”。对于指针的操作pParent->next为pPar

本文档预览:3600字符,共4042字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载

剩余未完,查看全文
收藏
国家二级C++机试(操作题)模拟试卷341

推荐资源

客服

扫码添加客服微信

热线

官方客服

如遇问题,请联系客服为您解决

电话客服:

客服微信:pujinet

工作时间:9:00-18:00,节假日休息

公众号

扫码关注微信公众号