您好,欢迎来到好走旅游网。
搜索
您的当前位置:首页国家二级C++机试操作题模拟试卷389_真题(含答案与解析)-交互

国家二级C++机试操作题模拟试卷389_真题(含答案与解析)-交互

来源:好走旅游网


国家二级C++机试(操作题)模拟试卷389 (总分6, 做题时间90分钟) 2. 基本操作题 1.

使用VC6打开考生文件夹下的源程序文件modil.cpp,该程序运行时有错,请改正其中的错误,使程序正常运行,即使程序在界面输出以下类似内容: 0012FF68 1 0012FF3C 5 0012FF6C 2 0012FF44 4 0012FF70 3 0012FF4C 3 0023FF74 4 0012FF54 2 0012FF78 5 0012FF5C 1 006AFDCC~006AFDEF数据可能因为机器的不同,程序的输出的内容会有差异。只要相差为4的连续地址即可。 注意:不要改动main函数,不能增行或删行,也不能更改程序的结构, 错误的语句在∥********error********的下面。 #include using namespace std; int main() { int*p,a[5]={1,2,3,4,5}; double*q,b[5]={5.0,4.0,3.0,2.0,1.0); int x; p=a; q=b;

∥********error******** for(x=0;x<=5;x++) ∥********error******** cout<<< “ ” << (p+x)<<“”<SSS_TEXT_QUSTI 该问题分值: 2 答案:

正确答案:(1)for(x=0 ; x<5;x++) (2)cout<解析:本题的程序功能是输出相差为4的连续地址。从己定源程序的main主函数开始入手,依次执行程序中的语句,重点分析、调试标识下的错误语句,输出题目要求的结果。 3. 简单应用题 1.

使用VC6打开考生文件夹下的源程序文件modi2.cpp。请完成函数

fun(char*str,char ch),本函数采用二分法,在己按字母次序从小到大排序的字符数组str中,查找字符ch,若ch在数组中,函数返回字符ch在数组中的下标,否则返回一1。 二分法查找的思想是:初始查找区间的下界为0,上界为len一1,查找区间的中后,k=(下界+上界)/2;若list[k]等于ch,查找成功;若list[k]>ch,则新的查找区间的下界不变,上界改为k-1;否则新的查找区间的下界改为k+1,上界不变。在新区间内继续用二分法查找。注意:请勿改动主函数main与其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。#include<iostream.h>int fun(char*Str,char ch){}Void msin(){ char Str[]=(‘a’,‘b’,‘c’,‘d’,‘e’,‘f’,‘g’,‘h’,‘i’,‘j’,‘k’,0); char ch; cout<<“请输入一个字符:”<<end1; Cin>>ch;cout<<“输入数字的位置是:”<<fun(Str,ch)<<end1; return;}

SSS_TEXT_QUSTI

该问题分值: 2 答案:

正确答案:int low=0; //初始查找区间的下界 int high; int k;

for(high=0;str[high]!=0;high++) //求字符串长度 while(low<high)//循环判断字符位置 { k=(low+high)/2; if(Str[k]==ch) return k; else if(str[k]>ch) high=k-1; else low=k+1; } if(Str[low]==ch) return loW; return一1;

解析:根据题干中给出的二分法查找思想,从己给部分源程序的main主函数开始入手,核心函数int fun(char*str,char ch)中的ch参数为输入的字符,其中返回值为ch所在的位置。 4. 综合应用题 1.

使用VC6打开考生文件夹下的源程序文件modi3.cpp。此程序的运行结果为: In CDerive's display().b=1 In CDerive2’s display().b=2 其中定义的类并不完整,按要求完成下列操作,将类的定义补充完整。 (1)定义函数display()为无值型纯虚函数。请在注释∥********1********之后添加适当的语句。 (2)建立类CDerive的构造函数,请在注释∥********2********之后添加适当的语句。 (3)完成类CDerive2成员函数diaplay0的定义。请在注释∥********3********之后添加适当的语句。 (4)定义类Derivel的对象指针d1,类CDerive2的对象指针d2。其初始化值分别为1和2。请在注释

∥********4********之后添加适当的语句。 注意:增加代码,或者修改代码的位置已经用符号表示出来。请不要修改其他的程序代码。 #include using namespace std; Class CBase { public: CBase(int i){b=i;)

∥********1******** protected: int b; }; class CDerive:public CBase { public: ∥********2******** void di splay() { cout<<<SSS_TEXT_QUSTI 该问题分值: 2 答案:

正确答案:(1)添加语句:vi rtual Void di splay()=0 ; (2)添加语句:CDerive(i nt i):CBa se(i){} (3)添加语句:void display(){cout<<‘’In CDerive2’S di spl ay().“<<” b= ”<解析:程序中定义了类CBase、CDerive和CDerive2,CDerive和CDerive2公有派生于类CBase,CDerive和CDerive2均有成员函数display(),用于输出。函数func(CBase*obj)的参数为CBase对象指针,在函数体内通过该指针调用其display()函数。

1

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- haog.cn 版权所有

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务