[计算机类试卷]国家二级C++机试(操作题)模拟试卷495及答案与解析.doc

上传人:explodesoak291 文档编号:497593 上传时间:2018-11-28 格式:DOC 页数:8 大小:35KB
下载 相关 举报
[计算机类试卷]国家二级C++机试(操作题)模拟试卷495及答案与解析.doc_第1页
第1页 / 共8页
[计算机类试卷]国家二级C++机试(操作题)模拟试卷495及答案与解析.doc_第2页
第2页 / 共8页
[计算机类试卷]国家二级C++机试(操作题)模拟试卷495及答案与解析.doc_第3页
第3页 / 共8页
[计算机类试卷]国家二级C++机试(操作题)模拟试卷495及答案与解析.doc_第4页
第4页 / 共8页
[计算机类试卷]国家二级C++机试(操作题)模拟试卷495及答案与解析.doc_第5页
第5页 / 共8页
点击查看更多>>
资源描述

1、国家二级 C+机试(操作题)模拟试卷 495及答案与解析 一、基本操作题 1 请打开考生文件夹下的解决方案文件 proj1,其中定义了一个 CD类。程序中位于每个 ERROR*found*下的语句行有错误,请加以更正,不得修改程序的其他部分。更正后程序的输出应该是: 歌唱祖国 30 义勇军进行曲 95 注意:只能修改每个 ERROR*found*下的那一行,不要改动程序中的:其他内容。 #include iostream #include cstring using namespace std; class CD char name20; int number; public: void in

2、it(char*aa, int bb) ERROR*found* name=aa; number=bb; char*getName( ) ERROR*found* return*name; int getNumber( )returnnumber; void output( ) ERROR*found* cout name20 number endl; ; void main( ) CD dx, dy; dx init(“歌唱祖国 “, 30); dy init(“义勇军进行曲 “, 3*dx getNumber( )+5); dx output( ); dy output( ); 二、简单应

3、用题 2 请打开考生文件夹下的解决方案文件 proj2,该工程中含有一个源程序文件proj2 cpp,其中定义了 CharShape类、 Triangle类和 Rectangle类。 CharShape是一个抽象基类,它表示由字符组成的图形 (简称字符图形 ),纯虚函数Show用于显示不同字符图形的相同操作接口。 Triangle和 Rectangle是 CharShape的派生类,它们分别用于表示字符三角形和字符矩形,并且都定义了成员函数Show,用于实现各自的显示操作。程序的正确输出结果应为: * * * * # # # 请阅读程序,分析输出结果,然后根据以下要求在横线处 填写适当的代码并

4、删除横线。 (1)将 Triangle类的成员函数 Show补充完整,使字符三角形的显示符合输出结果。 (2)将 Rectangle类的成员函数 Show补充完整,使字符矩形的显示符合输出结果。 (3)为类外函数 fun添加合适的形参。 注意:只在指定位置编写适当代码,不要改动程序中的其他内容,也不要删除或移动 “ *found*”。 proj2 cpp #include ioStream using namespace std; class CharShape public: CharShape(char ch): ch(ch); virtual void Show( )=0; protec

5、ted: char ch;组成图形的字符 ; class Triangle: public CharShape public: Triangle(char ch, int r): CharShape(ch), rows(r) void Show( ); private: introws;行数 ; class Rectangle: public CharShape public: Rectangle(char ch, int r, int c): CharShape(ch), rows(r), _clos(c) void Show( ); private: int rows, cols;行数和列

6、数 ; void Triangle: Show( ) 输出字符组成的三角形 for(int i=1; i =_rows; i+) *found* for(int j=1; j =_; j+) cout ch; cout endl; void Rectangle: Show( ) 输出字符组成的矩形 *found* for(int i=1; i =_; i+) *found* for(int j=1; j =_; j+) cout ch; cout endl; *found*为 fun函数添加形参 void fun(_)cs Show( ); intmain( ) Triangle tri(*,

7、 4); Rectanglerect(#, 3, 8); fun(tri); fun(rect); return0; 三、综合应用题 3 请打开考生文件夹下的解决方案文件 proj3,此工程包含一个源程序文件proj3 cpp,其功能是从文本文件 in dat中读取全部整数,将整数序列存放到intArray类的对象 myArray中,然后对整数序列按非递减排序,最后由函数writeToFile选择序列中的部分数据输出到文件 out dat中。文件 in dat中的整数个数不大于 300个。 要求: 补充 编制的内容写在 “ *333*”与 “*666*”两行之间。 实现对整数序列按非递减排序,

8、并将排序结果在屏幕上输出。不得修改程序的其他部分。 注意:程序最后已将结果输出到文件 out dat中。输出函数 writeToFile已经给出并且调用。 proj3 cpp #include iostream #include fstream #include cstring using namespace std; class intArray private: int*array;整数序列首地址 int length;序列中的整数个数 publiC: 构造函数,从文件中读取数据用于初始化新对象。参数是文件名 intArray(char*filename); void sort( );对整

9、数序列按非递减排序 intArray( ); VOid writeToFile(char*filename); ; intArray: intArray(char*filename) ifstream myFile(filename); int len=300; array=new intlen; length=0; while(myFile arraylength+); length-; myFile close( ); void intArray: sort( ) *333* *666* intArray: intArray( ) delete array; void intArray:

10、writeToFile (char*filename) int step=0; ofstream outFile(filename); for(int i=0; i length; i=i+Step) outFile arrayi endl; step+; outFile close( ); void main( ) intArray myArray(“in dat“); myArray sort( ); myArray writeToFile(“out dat“); 国家二级 C+机试 (操作题)模拟试卷 495答案与解析 一、基本操作题 1 【正确答案】 (1)strcpy(name, a

11、a); (2)return name; (3)cout name number endl; 【试题解析】 程序定义 CD类,它包含两个数据成员:字符数组 name和整型变量 number;还包含四个公有成员函数, init( )函数接收两个参数,用参数对数据成员进行赋值; getName( )函数返回数据成员 name; getNumber( )函数返回数据成员 number; output( )函 数将数据成员 name和 number输出。 cD类的定义体中,有三个错误: (1)init( )函数将形参 aa赋给 name,由于。 name是字符数组,所以不能通过简单的赋值运算符进行赋值,

12、应该使用 strcpy( )函数将形参 aa指向的字符串拷贝到name中。 (2)getName( )函数的返回值为 char*类型,所以函数体的 return语句应该返回name,而不是 name指向的字符串。 (3)output( )函数需要输出两个数据成员,输出字符数组时,只需要给出数组名name即可。 二、简单应用题 2 【正确答案】 (1)i*2-1 (2)_rows (3)_cols (4)CharShape&cs 【试题解析】 (1)考查 for循环语句,该语句所在的函数的功能是输出宁符组成的三角形。从外层循环中可以看出下标 i代表行数,那么下标 j就代表每一行字符的个数,因为要

13、输出的是三角形,所以每一行的个数与该行的行数相关,即 j =i*2-1;。 (2)考查 for循环语句,该语句所在的函数的功能是输出字符组成的矩形。回到Rectangle类中可以知道矩形的长和宽就是类中私有成员的行数和列数,因此在这里只要要求下标 i不大于行数即可。 (3)考查 for循环语句,该语句所在的函数的功能是输出字符组成的矩形。回到Rectangle类中可以知道矩形的长和宽就是类中私有成员的行数和列数,因此在这里只要要求下标 j不大于列数即可。 (4)主要考查考生对虚函数的掌握,该语句所在的函数是普通函数 fun,题目要求为fun函数添加形参。从函数体中可以知道形参名为 cs,那么形

14、参的类型是什么呢 ?就是抽象类 CharShape,因此要使用 CharShape&cs才可以实现题目要求输出的内容。 三、综合应用题 3 【正确答案】 for(int 1=0; 1 length; +i)遍历整个数组 for(intJ=ijJ length; +j)从 i+遍历整数组 if(arrayi arrayj) 如果 arragi arrayj,把 arrayi与 arrayi进行对换 int temp;定义一个临时变量 temp temp=arrayi;把 arrayi值放到变量 temp arrayi=arrayj;把 arrayj值赋给 arrayi arrayj=temp;把变量 temp存放 在值 arrayj中 for(int a=0; a length; +a) 遍历数组,把数组中的所有元素打印到控制台上 cout arraya “ “; 【试题解析】 题目要求对整数序列按非递减排序,要排序就必须要有比较,因此定义两个下标 i和 j,按题目非递减排序要求,当 arrayi比 arrayj大时就交换其值,利用中间变量 temp来实现。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 考试资料 > 职业资格

copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
备案/许可证编号:苏ICP备17064731号-1