题目
阅读以下说明和C++码,填入(n)处。
[说明]
下面代码实现类A、B、C、D的继承定义和应用。仔细阅读[代码5-1],在(n)处写出正确的运行结果。
[代码5-1]
include<iostream.h>
class A {
public:
int a;
A (int v1): a(v1) {} //构造函数
void disp ()
{
cout<<"a in class A="<<a<<endl;
}
};
class B: virtual public A {
public:
int b;
B (int v1,int v2): A(v1),b v2) {} //构造函数
void disp ()
{
cout<<"a in class B="<<a<<endl
cout<<"b in class B="<<b<<endl;
}
};
class C: virtual public A {
public:
int c;
C (int v1,int v2): A(v1) ,c(v2) {} //构造函数
void disp ()
{
cout<<"a in class C="<<a<<endl;
cout<<"c in class C="<<c<<endl;
}
};
class D: public B, public C {
public:
int d;
D (int v1,int v2,int v3,int v4 ): A(v1) ,B(v1,v2) ,C(v1,v3),d(v4) {} //构造函数
void disp ()
{
cout<<"a="<<a<<endl;
cout<<"b="<< b<<endl;
cout<<"c="<<c<<endl;
cout<<"d="<<d<<endl;
}
};
void main()
{
D demo (10,20,30,40);
demo.disp ();
}
[运行结果]
a=(1)
b=(2)
c=(3)
d=(4)
第1题
阅读以下说明和c++码,将应填入(n)处的字名写在的对应栏内。
[说明] 以下函数完成求表达式
的值,请填空使之完成此功能。
float sum (float x )
{ float s=0.0;
int sign = 1;
(1);
for(inti=1;(2); i+ +)
{
t=t*x;
s=s+(3);
sign = - sign;
(4);
}
第2题
阅读以下说明和C++码,填入(n)处。
[说明]
建立一个分数类,使之具有下述功能:建立构造函数,它能防止分母为0,当分数不是最简形式时进行约分以及避免分母为负数。
[C++代码]
include<iostream.h>
include<math.h>
class Num
{
public:
Num (int a,int b);
private:
int num1;
int num2;
}:
Num:: Num (int a,int b)
{
if((1) )
{
cout<<"ERROR"<<endl;
return;
}
int min=fabs(a)<fabs (b)?fabs (a): fabs (b);
int x=1;
for (int i=1;i<=min;i++)
if((2) )
x=i;
a/=X;
b/=x;
if((3) )
{
a=-a;
b=-b;
}
(4)
(5)
}
第3题
阅读以下说明和C++码,将相应的文字填入(n)处,写在对应栏内。
[说明]
以下代码实现了对象引用作为函数参数,仔细阅读以下代码,分析运行结果,填入(n)处。
[代码]
include<iostream.h>
class Sample
{
int x,y;
public:
Sample() {x=y=0; }
Sample (int i, int j ) {x=i; y=j; }
void copy (Sample &s ).,
void setxy (int i, int j ) {x=i; y=j; }
void print ({cout<<"x="<<x<<end1 ; cout <<"y="<<y<<end1;
};
void Sample: copy (Sample &s )
{
X=S.X;
y=s.y;
}
void func (Sample s1, Sample &s2 )
{
s1.setxy (10,20 );
s2.setxy (30,40 );
}
void main ()
{
Sample p (1,2 ) ,q;
q.copy (p );
time (p,q );
p.print ();
q.print ();
}
运行结果
(1)
(2)
(3)
(4)
第4题
阅读以下说明和C++码,将应填入(n)处的字名写在对应栏内。
从下列的3道试题(试题五至试题七)中任选1道解答。
如果解答的试题数超过1道,则题号小的1道解答有效。
[说明] 编写程序,把从键盘上输入的一批整数(以-1作为终止输入的标志)保存到文本文件“a: xxk1. dat”中。
(1)
include <fstream. h >
include < stdlib. h >
void main () {
(2)
if (! four) {
cerr < <“文件没有找开!” < <end1;
exit (1);
}
int x;
cin > >x;
while((3)){
(4)
cin> >x;
}
(5)
}
第5题
阅读以下说明和c++码,将应填入(n)处的字名写在对应栏内。
[说明] 从键盘输入一个字符ch,输出该字符在文本文件input.txt 的每一行中出现的次数。(必须调用函数鳋统计ch的出现次数,函数ff (str,ch)的功能是统计并返回字符ch在字符串str 中出现的次数。)。
例如:如果文件input. txt 中存放了下列数据:
every
121
I am a student
运行程序,并输入e后,输出:
2
0
1
int ff(char * str, char ch)
{ int count =0;
while ((1)) {
if(*str= =ch) count++;
str ++;
}
return count;
}
include < stdio. h >
include < stdlib. h >
void main()
{ char ch, c, s [80];
int k;
FILE *fp;
if((2)){
printf(“打不开文件!n”); return;
}
ch = getchar();
k=0;
while(! feof(fp) ) {
c = fgete(fp);
if (3)
s[k++ ] =c;
else {
s[k]= ";
printf ("%dn" ,ff(s, ch) );
k=0;
}
}
(4)
printf("% dn", ff(s, ch ) );
}
第6题
() 阅读下列说明和C++代码,将应填入空(n)处的字句写在答题纸的对应栏内。【说明】 某中学开展中外中学生野外生存夏令营活动,由于中外学生的语言障碍,随队为外籍学员配置一名翻译。以下代码采用适配器(Adapter)模式模拟翻译适配器。其类图如下:
第7题
阅读以下说明,以及用C++在开发过程中所编写的程序代码,将应填入(n)处的字句写在对应栏内。
【说明】
在下面函数横线处填上适当的字句,使其输出结果为:
构造函数.
构造函数.
1,2
5,6
析构函数
析构函数.
【C++代码】
include "iostream.h"
class AA
{ public;
AA(int i,int j)
{A=i; B=j;
cout<<"构造函数.\n";
}
~AA(){(1);}
void print();
private:
int A, B;
};
void AA∷print()
{cout<<A<<","<<B<<endl;}
void main()
{
AA *a1, *a2;
(2)=new AA(1, 2);
a2=new AA(5, 6);
(3);
a2->print();
(4) a1;
(5) a2;
}
第8题
阅读以下说明和C++代码,填入(n)处。
[说明]
以下C++代码使用虚函数实现了同一基类shape派生出来的Class rectangle、Class triangle、Class circle实现了计算矩形、圆形面积的计算。仔细阅读以下代码,将(n)处语句补充完整。
[代码5-1]
include<iostream.h>
define PI 3.14159
class shape {//基类
protected:
(1);
public:
(2);
(3);
};
[代码5-2]
class rectangle: public shape {
public:
rectangle (int x2,int y2,int r2): (4) {};
double area () {return x*y; };
};
class circle: public shape {
public:
circle (int x3,int y3,int r3):(5){};
double area () {return r*r*PI; };
};
[代码5-3]
void main ()
{
rectangle r (10,20,0);
circle c (0,0,30);
shape (6);
cout<<"长方形面积="<<s1->area () <<endl;
cout<<"圆形面积="<<s2->area () <<endl;
}
[运行结果]
长方形面积=200
圆形面积=2827.43
第9题
阅读下列程序说明和C++程序,把应填入其中(n)处的字句,写在对应栏内。
【说明】
阅读下面几段C++程序回答相应问题。
比较下面两段程序的优缺点。
①for (i=0; i<N; i++ )
{
if (condition)
//DoSomething
…
else
//DoOtherthing
…
}
②if (condition) {
for (i =0; i<N; i++ )
//DoSomething
}else {
for (i=0; i <N; i++ )
//DoOtherthing
…
}
第10题
阅读以下说明和C++ 程序,将应填入(n)处的字句写在对应栏内。
[说明]
试从含有n个int 型数的数组中删去若干个成分,使剩下的全部成分构成一个不减的子序列。设计算法和编写程序求出数组的不减子序列的长。
[C++ 程序]
include<stdio.h>
define N 100
int b[]={9,8,5,4,3,2,7,6,8,7,5,3,4,5,9,1};
int a [N];
define n sizeofb/sizeofb[0]
void main ()
{
kit k,i,j;
(1)
(2)
for (i=1;i<n; i++ )
{
for (j=k;(3); j--);
(4); /*长为 j+1 的子序列的终元素存储在 a[j+1]*/
if ((5)k++; /*最长不减子序列长 k 增1*/
}
printf ("K = %d\n ",k );
}
为了保护您的账号安全,请在“赏学吧”公众号进行验证,点击“官网服务”-“账号验证”后输入验证码“”完成验证,验证成功后方可继续查看答案!