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

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

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

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

基本操作题

1.使用VC6打开考生文件夹下的源程序文件modil.cpp,请修改程序中的错误,使程序能得出正确的结果:

num:0

num:1

num:10

注意:不要改动main函数,不能增行或删行,也不能更改程序的结构,错误的语句在//*******error*******的下面。

#include

int i=10;

C1ass TestClass

{

public:

TestClass(int i)

{

cout<<\\

(1)this->i=i+1;或TestClass::i=i+1:或(*this).i=i+1:

(2)TestClass print(0);

(3)cout<<\\

解析:(1)打开modi1.cpp,调试程序,显示错误提示为第二标识下“modi1.cpp(22):error C2512:TestClass’:no appropriate default constructor available”,主函数中首先调用的就是第2个标识下的TestClassprint函数,构造函数的名字和类的名字是一样的,而程序中给出的“TestClass print;”没有给出参数,所以程序调试时无法确定调用的函数。根据TestClass构造函数“TestClass(int i)”的定义,应该存在int型参数,并且题目要求第一次输出的值为“0”,所以第2个标识正确的调用函数为“TestClass print(0);”。

(2)运行,发现第一次的输出正确,但是第二次的输出值为“-858993460”,并不是题目中要求的“1”。在主函数中, 可知第二次输出调用的是“print.Print();”,即类TestClass的成员函数“Print()”。成员函数Print的定义“void Print()const”中的输出语句为“cout<<”num.\\

简单应用题

2.使用VC6打开考生文件夹下的源程序文件modi.cpp。请完成函数fun(char*s1,char*s2),此函数的功能是计算s1中出现s2的个数,当不出现时,则返回0。如:

s1为\\

int size=0; //初始化字符串

统计变量个数

int sllen;

int s2len;

for(sllen=0;s1[sllen]!=0;sllen

++);//第一个字符串循环

for(s2len=0;s2[s2len]!=0;s2len

++);//第二个字符串循环

for(int i=0;i<sllen;i++)

{

int j=0;

for(;j<s2len;j++)

if(s1[i+j]!=s2[j]) //将第二个串中的字符与第一个串中的字符比较

break;

if(j=s2len)

{

++size;

i+=j;

–i;

}

}

return size;

解析:(1)size变量用来存放s1中出现s2的个数,初始值赋为0。

(2)然后利用for循环对s2中的每一个字符与s1中的字符进行比较。

(3)如果循环中有符合条件的字符串,就将变量size个数加1。

综合应用题

3.用VC6打开考生文件夹下的源程序文件modi3.cpp,这个程序完成输出到屏幕一些特定的信息,但工程有错误或者不完整,请完成以下功能:

(1)初始化m_Num2的值为j,请在注释//********1********后添加适当的语句。

(2)补充全局函数fun()使之能够调用类TestClass的成员变量,请在注释//********2********后添加适当的语句。

(3)初始化静态变量,请在注释//********3********后添加适当的语句。

(4)修改注释//********4********后的语句。

使得程序输出以下内容:

m-Num1=1

m_Num2=2

m_Num3=1

m_Num1=4

m_Num2=2

m_Num3=7

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

#include

class TestClass

{

public:

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

TestClass(int i,int j)

{

m_Num1=i;

m_Num3+=i;

}

void Print()

{

cout<<\\

(1)添加语句:TestClass(int i,int j):m_Num2(j)

(2)添加语句:friend void fun();

(3)添加语句:int TestClass::m_Num3=0;

(4)将“Num.Add();”补充完整为:Num.Add(5);

解析:(1)根据“const int m_Num2;”语句知道m_Num2为类TestClass中的私有数据,另外,C++定义构造函数的初始化数据成员的方法中可以在原有函数末尾加一个冒号,然后列出参数的初始化表实现,即“TestClass(int i,int j):m_Num2(j)”。

(2)在C++中,如果在本类以外的其他地方定义了一个函数,在类体中是用friend对该函数进行声明的,此函数称为本类的友元函数,并且能够调用本类中的成员变量。程序中fun()在类TestClass以外的地方定义的,为了实现其对类TestClass中成员变量的调用,在类TestClass中补全“friend void fun();”,即声明fun()为类TestClass的友元函数。

(3)在C++中,初始化类中数据成员的格式可以是“类名class::参数=”,其中为要初始化参数的类型,“::”为作用域符号,说明参数是class中的参数,所以这里补全“int TestClass::m_Num3=0;”。

(4)函数fun()中“Num.Add();”语句应该是调用类“TestClass”中的成员函数“void Add(int i)”。其定义中存在参数int i,所以注释下修改的语句缺少参数。

主函数首先调用“Num.Print();”,即实现题目中输出的前三条语句,而“fun();”语句实现后面三条语句的输出,即“m_Num3=7”才是调用Nmn.Add的输出结果,即“m_Num3+=i;”的计算结果。“TestClassNum(1,2);”中将i的值初始化为1,“m_Num3”的值在上一次“Num.Print();”调用中为1,如果计算结果为7,那么Add(int i)中i的初始化值为5,即“Num.Add(5);”。

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

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

推荐资源

客服

扫码添加客服微信

热线

官方客服

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

电话客服:

客服微信:pujinet

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

公众号

扫码关注微信公众号