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

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

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

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

基本操作题

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

a=7,b=0

a=8,b=10

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

#include

Class CObj

{

public:

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

friend void func(CObj&,int,

int);

void display()

{

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

cout<<\\

(1)添加语句:

friend void func(CObj&,int);

(2)cout<<\\

解析:(1)标识1处是声明一个友元函数,友元函数是在类声明中由关键字friend修饰的非成员函数,由friend void func(CObj&,int,int)可知,函数mncO是CObj类的友元,由程序后面的具体实现可知该函数重载了,已经声明了友元函数friend voidfunc(CObj&,int,int),另外一个友元函数func(CObj&obj,int t)没有声明,因此第1个标识下应添加“friendvoid func(CObj&,int);”。

(2)display()N数打印类成员变量a和b的值,cout流中的数据是用流插入运算符“<<”顺序加入的,因此“<<<<”不正确,第2个标识下应改为“cout<<\\

简单应用题

2.使用VC6打开考生文件夹下的源程序文件modi2.cpp。阅读下列函数说明和代码,补充空出的代码。函数convert(char*des*char*str,char c,char*str2)的功能是:

如果str中包含字符“!”,则替换成’a’;

如果str中包含字符“&”,则替换成’b’;

如果str中包含字符“*”,则替换成str2。

并用函数返回目标转换后的指针。

注意:只能补充函数convert(char*des.char*str,char*str2)。

#include

#include

#define MAXLEN 1024

void convert(char*des,char*

str,char*str2)

{

}

Void main()

{

char dest[MAXLEN];

char*str=\\

des[0]=0;

char temp[2]={0,0);

for(int i=0;str[i]!=NULL;i++)

{

if(str[i]==’!’)

{

temp[0]=’a’; //替换成’a’

strcat(des,temp);

}

else if(str[i]==’&’)

{

temp[0]=’b’;

strcat(des,temp);

//替换成’b’

}

else if(str[i]==’*’)

{

strcat(des,str2);

//替换成str2

}

else

{

temp[0]=str[i];

strcat(des,temp);

//其他情况则添加在后面

}

}

解析:(1)由审题分析可知,利用循环中不断检索str字符串每一个字符,循环变量i从0开始,直到到了sir字符结束,即srt[i]==NULL为循环判断结束条件。

(2)在循环体内,用ifelse语句判断是不是“!”、“&”或“*”这些特定的字符,如果是这些特定的字符则进行相应的替换,如果不是则将该字符直接加在des后面。

(3)字符串的连接可以使用字符串连接函数strcat(),将新字符连接在des后面,即strcat(des,temp)。

综合应用题

3.使用VC6打开考生文件夹下的源程序文件modi3.cpp,其中定义了用于表示学生学号的类CStudentlD,但类CStudentID的定义并不完整。

运行结果为:

学生的学号为:200805

学生名为:李伟

删除学生学号为:200805

请按要求完成下列操作,将类CStudentlD的定义补充完成:

(1)定义class CStudentlD类的私有数据成员IDvalue表示学生的学号,为long型的数据。请在注释//********1********之后添加适当的语句。

(2)完成默认构造函数CSmdentID的定义,使CStudentID对象的默认值为:id=0,并把学生的学号赋给IDvalue,并输出“赋给学生的学号:”及学号。请在注释//********2********之后添加适当的语句。

(3)完成默认析构函数CStudentlD的定义,使CStudentlD析构时输出“删除学号:”及学号。请在注释//********3********之后添加适当的语句。

(4)完成默认构造函数CStudentlnfo的定义。对应两个默认参数:要求定义char stName[],其默认值为“no name”,定义long stID,其默认值设为0,并使它们赋值给相应的类数据成员。请在注释//********4********之后添加适当的语句。

注意:除在指定位置添加语句之外,请不要改动程序中的其他内容。

#include

#include

Class CStudentID

{

//********1********定义私有数据成员

public:

//********2********定义默认构造函数

{

IDvalue:id;

cout<<\\

(1)添加语句:long IDvalue;

(2)添加语句:CStudentID(long id=0)

(3)添加语句:~CStudentID()

(4)添加语句:CStudentInfo (char stName[]=\\

解析:(1)第1个标识下完成CStudentlD类的私有数据成员IDvalue的定义,为long犁的数据,因此第1个标识下应添加“long IDvalue;”。

(2)构造函数完成类成员变量的初始化,构造函数名和类名一致,该构造函数带有一个参数id,其默认值为id=0,因此第2个标识下应添加“CStudentID(10ng id=0)”。

<

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

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

推荐资源

客服

扫码添加客服微信

热线

官方客服

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

电话客服:

客服微信:pujinet

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

公众号

扫码关注微信公众号