国家二级(C++)机试模拟试卷34(题后含答案及解析)_0

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

国家二级(C++)机试模拟试卷34(题后含答案及解析) 题型有:1. 程序改错题 2. 简单应用题 3. 综合应用题
程序改错题(30分)
使用VC6打开考生文件夹下的工程RevProj15。

此工程包含一个源程序文件RevMain15.cpp,但该程序中类的定义有错误。

请改正程序中的错误,使它能得到正确结果。

注意,不要改动主函数,不得删行或增行,也不得更改程序的结构。

源程序文件RevMain15.cpp中的程序清单如下://RevMain15.cpp #include<iostream>using namespace std;class Sample { private:int x;static int y;public:Sample(int a) {x=a;y+=x;} static void print(Sample s) {cout<<”x=“<<x<<<<”,y=“<<y<<end1;} Sample::y=5;int main( ) {Sampel s1(10);Sample s2(15);Sample::print(s1);Sample::print(s2);return 0;}
正确答案:
简单应用题(40分)
1.请编写一个函数char*change(char instr[]),将输入字符串中的所有小写字母转换为大写字母输出。

要求使用for循环实现。

如输入jinfeiteng,则输出结果是JINFEITENG。

注意:部分源程序已存在文件test21_2.cpp中。

请勿修改主函数main和其他函数中的任何内容,仅在函数change的花括号中填写若干语句。

文件test21_2.cpp的内容如下:char*change(char instr[]);#include”iostream.h”void main( ) { char instr[50];char *outstr;cout<<”Input a string:”<<endl;cin>>instr;outstr=change(instr);cout<<”Over graded string:”<<endl;cout <<outstr<<endl;} char*change(char instr[]) { }
正确答案:char *change(char instr[]) { char *outstr=new char[50];const char delta=‘A’-’a’;int i;for(i=0;instr[i]!=‘\0’;i++) { if(instr[i] >=‘a’ && instr[i] <=‘z’){ outstr[i]=instr[i]+delta;} else { outstr[i]=instr[i];}}outstr[i]=‘\0’;return outstr;}
解析:本题考查的是考生使用for循环和一维数组的综合水平。

对于大小写的ASCII码的差值可以通过delta=‘A’-’a’运算得到,注意在字符串的结尾加入结束标志符’\0’。

综合应用题(30分)
使用VC6打开考生文件夹下的工程MyProj14。

此工程包含一个源程序文件MyMain14.cpp,程序中定义了3个类A、B和C,但类的定义并不完整。

请按要求完成下列操作,将类的定义补充完成:①类A的成员函数set x(int i,int
j)是虚函数,其实现的功能是将类A的保护成员x和y分别设置成i和j并且y 具有默认值0。

请在注释“//* *1* * ”之后添加适当的语句。

②将类A的成员函数print( )声明成员纯虚函数。

请在注释“//* *2* *”之后添加适当的语句。

③完成类A的保护数据成员x和y的定义,它们都是整型变量。

请在注释“//* *3* *”之后添加适当的语句。

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

源程序文件MyMain14.cpp清单如下://MyMain14. cpp #include <iostream>using namespace std; class A { public://* * * 1 * * *//* * * 2 * * * protected://* * * 3 * * * }; class B : public A { public: void print ( ){ cout<<x * x<<”, “;} }; class C : public A { public: void print ( ) { cout <<x* x * x<<end1; } }; int main ( ) {A *pa;B b;C c;pa=&b;pa->setx (5);pa->print ( );pa=&c;pa->setx (2);pa->print ( );return 0; }
正确答案:。

相关文档
最新文档