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

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

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

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

基本操作题

1.请打开考生文件夹下的解决方案文件proj1,此工程包含一个源程序文件proj1.cpp。文件中将表示数组元素个数的常量Size定义为4,并用int类型对类模板进行了实例化。文件中位于每个注释“//ERROR****found****”之后的一行语句存在错误。请改正这些错误,使程序的输出结果为:

1 2 3 4

注意:模板参数名用T。只修改注释“//ERROR********found********”的下一行语句,不要改动程序中的其他内容。

//proj1.cpp

#include<iostream>

using namespace std;

//将数组元素个数size定义为4

//ERROR********found********

const int size;

template<typename T>

class MyClasS

{

public:

MyClass(T*p)

{

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

arrays[i]=p[j];

}

void Print( );

private:

Tarray[size];

};

template<typename T>

//ERROR*******found*******

void MyClass::Print( )

{

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

cout<<array[i]<<’\t’;

}

int main( )

{

int intArray[Size]={1,2,3,4};

//ERROR*******found*******

MyClass<double>obj(intArray);

obj.Print( );

cout<<endl;

return0;

}

(1)const int Size=4;

(2)void MyClass<T>::Print( )

(3)MyClass<inl>obj(intArray);

解析:(1)主要考查考生对eonst变量的掌握,因为const变量不能修改,所以在定义的同时必须仞始化。

(2)主要考查考生对模板类的成员函数定义的掌握,因为MyClass类是模板类,所以在定义该函数时要加上模板标识符“<T>”,即语句void MyClass<T>::Print( )。

(3)主要考查考生对模板类构造函数的调用的理解,从上一条语句int intArray[Size]={1,2,3,4};中可以知道intArray为int型,因此定义obj时要使用<int>,即MyClass<int>obj(intArrav);。

简单应用题

2.请打开考生文件夹下的解决方案文件proj2,该工程中包含一个程序文件main.cpp,其中有日期类Date、人员类Person及排序函数sortByName和主函数main的定义。请在程序中的横线处填写适当的代码并删除横线,以实现上述类定义和函数定义。此程序的正确输出结果应为:

按姓名排序

排序前

张三 男 出生日期:1978年4月20日

王五 女 出生日期:1965年8月3日

杨六 女 出生日期:1965年9月5日

李四 男 出生日期:1973年5月30日

排序后:

李四 男 出生日期:1973年5月30日

王五 女 出生日期:1965年8月3日

杨六 女 出生日期:1965年9月5日

张三 男 出生日期:1978年4月20日

注意:只能在横线处填写适当的代码,不要改动程序中的其他内容,也不要删除或移动“//****found****”。

#include<iostream>

using namespace std;

class Date{//日期类

int year,month,day;//年、月、日

public:

Date(int year,int month,int day):year(year),month(month),day(day){}

int getYear( )const{return year;}

int getMonth( )const{return month;}

int getDay( )const{return day;}

};

class Person{//人员类

char name[14];//姓名

bool is_male;//性别,为true时表示男性

Date birth_date;//出生日期public:

Person(char*name,bool is_male,Datebirth_date)

//*******found*******

:_______

{

strcpy(this->name,name);

}

const char*getName( )const{return name;}

bool isMale( )const{returnis male;}

Date getBirthdate( )const{return birth date;}

//利用strcmp( )函数比较姓名,返回一个正数、0或负数,分别表示大于、等于、小于

int compareName(const Person&p)const{

//*******found*******

_______)

void show( ){

cout<<endl;

cout<<name<<’ ’<<fiSmale?\\

(1)is_male(is_nla]e),birth_date(birth_date)

(2)return strcmp(name,p.getNanle( ));

(3)<<birth_date.getMonth( )<<\\

解析:(1)主要考查考生对构造函数的掌握,由函数体内strcpy(this->name,name);可知,要使用成员列表初始化的成员为is_male和birth_date。

(2)主要考查考牛对strcmp( )函数的掌握,先看程序对该函数的功能要求:利用strcmp( )函数比较姓名,返回一个正数、0或负数,分别表示大于、等于、小于。因为strcmp( )函数的功能足比较字符串大小,因此可以直接被return语句调用:return strcmp(name,p.getName( ));。

(3)主要考查考生对成员函数的掌握,程序的注释为:显示出生月,由此可以知道这里要输出出生月份,直接调用函数getMonth( )即可。

综合应用题

3.请打开考生文件夹下的解决方案文件proj3,其中该工程中包含定义了用于表示姓名的抽象类Name、表示“先名后姓”的姓名类Name1(名、姓之间用空格隔开)和表示“先姓后名”的姓名类Name2(姓、名之间用逗号隔开);程序应当显示:

Joh

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

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

推荐资源

客服

扫码添加客服微信

热线

官方客服

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

电话客服:

客服微信:pujinet

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

公众号

扫码关注微信公众号