题目内容 (请给出正确答案)
[主观题]

阅读以下说明和C++程序,将应填入(n)处的字句写在答题纸的对应栏内。说明 以下程序的功能是计算三

阅读以下说明和C++程序,将应填入(n)处的字句写在答题纸的对应栏内。

说明

以下程序的功能是计算三角形、矩形和正方形的面积并输出。

程序由4个类组成:类Triangle、Rectangle和Square分别表示三角形、矩形和正方形;抽象类Figure提供了一个纯虚拟函数getArea(),作为计算上述三种图形面积的通用接口。

c++程序

include <iostream.h>

inclule <math.h>

class Figure {

public:

virtual double getArea()= 0; // 纯虚拟函数

};

class Rectangle: (1) {

protected:

double height;

double width;

public:

Rectangle() { };

Rectangle(double height, double width) {

this->height = height;

this->width = width;

}

double getArea() {

return (2) ;

}

class Square: (3) {

public:

Square(double width) {

(4) ;

}

};

class Triangle: (5) {

double la;

double lb;

double lc;

public:

Triangle(double la, double lb, double lc) {

this->la = la; this->lb ='lb; this->lc = lc;

}

double getArea() {

double s = (la+lb+lc)/2.0;

return sqrt(s*(s-la)*(s-lb)*(s-lc));

} }; void main() {

Figure* figures[3] = {

new Triangle(2,3,3), new Rectangle(5,8), new Square(5)};

for (int i = 0; i < 3; i++) {

com << "figures[" << i << "] area =" << (figures[i])->getArea0 << endl;

}

查看答案
如搜索结果不匹配,请 联系老师 获取答案
您可能会需要:
您的账号:,可能会需要:
您的账号:
发送账号密码至手机
发送
更多“阅读以下说明和C++程序,将应填入(n)处的字句写在答题纸的…”相关的问题

第1题

阅读以下说明及C++程序代码,将应填入(n)处的语句写在对应栏内。【说明】 本程序的功能是生成螺旋方

阅读以下说明及C++程序代码,将应填入(n)处的语句写在对应栏内。

【说明】

本程序的功能是生成螺旋方阵,用户可以输入该方阵的行列数,然后就生成对应的螺旋方阵。例如:当n=5时,对应的螺旋方阵如下:

1 16 15 14 13

2 17 24 23 12

3 18 25 22 11

4 19 20 21 10

5 6 7 8 9

【C++代码】

include"stdio.h"

include"iostream,h"

int array[11][11];

int temp;

int ROW;

void godown(int &m,int &a)

{

for(temp=1; temp<=ROW;temp++)

if(array[temp][a]==0)

array[temp][a]=(1);

a++;

}

void goright(int &m,int &b)

{

for(temp=1;temp<=ROW;temp++)

if(array[b][temp]==0)

array[b][temp]=m++;

b--;

}

void goup(int &m.int &c)

{

for(temp=ROW;temp>0;temp-)

if(array[temp][c]==0)

array[temp][c]=m++;

c--;

}

void goleft(int &m,int &d)

{

for(temp=ROW;temp>0;temp--)

if(array[d][temp]==0)

array[d][temp]=m++;

(2);

}

void main()

{

int a,b,c,d,max,m;

cin>>ROW;

cout>>end1;

for(a=1;a<=ROW;a++)

for(b=1;b<=ROW;b++)

(3);

m=1;

a=d=1;

b=c=ROW;

max=(4);

whiie(m<=max)

{

godown(m,a);

(5) (m,b);

goup(m,c);

goleft(m,d):

}

for(a=1;a<=ROW;a++)

{

for(b=1;b<=ROW;b++)

printf("%3d ",array[a][b]);

cout<<end1;

}

}

点击查看答案

第2题

阅读以下说明和C语言函数,将应填入(n)处的语句写在对应栏内。【说明】 下面的程序构造一棵以二叉链

阅读以下说明和C语言函数,将应填入(n)处的语句写在对应栏内。

【说明】

下面的程序构造一棵以二叉链表为存储结构的二叉树。

【函数】

BitTree *createbt(BitTree *bt)

{

BitTree *q;

struct node *s[30];

int j,i;

char x;

printf("i,x=");

scant("%d,%c",&i,&x);

while(i!=0 && x!='$')

{

q=(BitTree *}malloc(sizeof(BitTree));//生成一个结点

(1);

q->lchild=NULL;

q->rchild=NULL;

(2) ;

if ((3))

{

j=i/2; // j为i的双亲结点

if(i%2==0)

(4); //i为j的左孩子

else

(5); //i为j的右孩子

}

printf("i,x=");

scanf("%d,%c",&i,&x);

}

return s[i];

}

点击查看答案

第3题

阅读以下说明和C语言程序,将应填入(n)处的字句写在对应栏内。 【说明】 魔方阵,又叫幻方,在我国古代

阅读以下说明和C语言程序,将应填入(n)处的字句写在对应栏内。

【说明】

魔方阵,又叫幻方,在我国古代称为“纵横图”。由1…N2共N2个自然数构成每行、每列及两对角线上各数之和都相等的N×N方阵,这样的方阵就叫做N阶魔方阵。顾名思义,奇阶魔方阵就是N为奇数的幻方。

奇数阶魔方阵的生成方法如下:

(1)第一个位置在第一行正中。

(2)新位置应当处于最近一个插入位置右上方,但如果右上方位置已超出方阵上边界,则新位置取应选列的最下一个位置;如果超出右边界,则新位置取应选行的最左一个位置。

(3)若最近一个插入元素为N的整数倍,则选下面一行同列上的位置为新位置。本题要求输入一个数据n,然后打印由自然数1到n2的自然数构成的魔方阵(n为奇数)。例如,当n=3时,魔方阵为:

8 1 6

3 5 7

4 9 2

了解其生成方法后,就可以根据此方法来写出程序了。首先设置int变量i,j,m, n。其中i标记魔方阵的行;j标记魔方阵的列;n表示魔方阵的维数,通过输入得到;通过m递加得到插入的数据。数组a[MAX][MAX]用于存放魔方阵元素。这里预定义了 MAX的大小,没有采用动态分配,在此设置为15,即最大求得15×15阶魔方阵。

【程序】

include <stdio.h>

define MAX 15

void main()

{

int n;

int m=1;

int i,j;

int a[MAX][MAX];

printf("Please input the rank of matrix:");

scanf("%d",&n);

i=0;

(1)

while((2))

a[i][j]=m;

m++;

i--;

j++;

if((m-1)%n==0 && m>1)

{

(3)

j=j-1;

}

if(j>(n-1)) //超出上界

(4)

if(j>(n-1))

(5)

}

for(i=0;i<n;i++) //输出魔方阵

for(j=0;j<n;j++)

{

if(a[i][j]/10==0)

printf("%d ",a[i][j]); //对程序无影响,只是使输出的数每一列对齐

else

printf("%d ",a[i][j]);

if(j==(n-1))

printf("\n");

}

}

点击查看答案

第4题

阅读以下说明和C语言函数,将应填入(n)处的语句写在对应栏内。【说明】 本程序从正文文件text.in中读

阅读以下说明和C语言函数,将应填入(n)处的语句写在对应栏内。

【说明】

本程序从正文文件text.in中读入一篇英文短文,统计该短文中不同单词及出现次数,并按词典编辑顺序将单词及出现次数输出到正文文件word.out中。

程序用一棵有序二叉树存储这些单词及其出现的次数,边读入边建立,然后中序遍历该二叉树,将遍历经过的二叉树上的结点内容输出。

【函数】

include <stdio.h>

include <malloc.h>

include <ctype.h>

include <string.h>

define INF "text.in"

define OUTF "word.our'

typedef struct treenode {

char *word;

int count;

struct treenode *left, *right;

} BNODE;

int getword(FILE *fpt, char *word)

{ char c;

c=fgetc(tpt);

if (c==EOF)

return 0;

while(!(tolower(c)>= 'a' && tolower(c)<= 'z'))

{ c=fgetc(fpt);

if (c==EOF)

return 0;

} /* 跳过单词间的所有非字母字符 */

while(tolower(c)>= 'a' && tolower(c)<= 'z')

{ *word++=c;

c=fgetc(fpt);

}

*word='\0';

return 1;

}

void binary_tree(BNODE **t, char *word)

{ BNODE *ptr, *p; int compres;

p=NULL;

(1);

while (ptr) /* 寻找插入位置 */

{ compres=strcmp(word, ptr->word);/* 保存当前比较结果 */

if (!compres)

{ (2); return;}

else

{ p=ptr;

ptr=compres>0 ? ptr->right: ptr->left;

}

}

ptr=(BNODE *)malloc(sizeof(BNODE));

ptr->left=ptr->right=NULL;

ptr->word=(char *)malloc(strlen(word)+1);

strcpy(ptr->word, word);

(3);

if (p==NULL)

*t=ptr;

else if (compres>0)

p->right=ptr;

else

p->left=ptr;

}

void midorder(FILE *fpt, BNODE *t)

{ if (t==NULL)

return;

midorder(fpt,(4));

fprintf(fpt, "%s %d\n", t->word, t->count);

midorder(fpt, t->right);

}

void main()

{ FILE *fpt; char word[40];

BNODE *root=NULL;

if ((fpt=fopen(INF, "r"))==NULL)

{ printf("Can't open file %s\n", INF);

return;

}

while(getword(fpt, word)==1)

binary_tree((5));

fclose(fpt);

fpt=fopen(OUTF, "w");

if (fpt==NULL)

{ printf("Can't open fife %s\n", OUTF);

return;

}

midorder(fpt, root);

fclose(fpt);

}

点击查看答案

第5题

阅读以下函数说明和C语言函数,将应填入(n)处的语句写在对应栏内。 【函数2.1说明】 将一个正整数分

阅读以下函数说明和C语言函数,将应填入(n)处的语句写在对应栏内。

【函数2.1说明】

将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。

【函数2.1】

Fun1 (int n)

{

int i;

for(i=2;i<=n;i++)

{

while ((1))

{

if (n%i==0)

{

printf("%d*",i);

(2);

}

else

break;

}

}

printf("%d",\n);

}

【函数2.2说明】

下面程序的功能是:海滩上有一堆桃子,5只猴子来分。第1只猴子把这堆桃子平均分为5份,多了一个,这只猴子把多的一个扔入海中,拿走了一份。第2只猴子把剩下的桃子又平均分成5份,又多了一个,它同样把多的一个扔入海中,拿走了一份。第 3、4、5只猴子都是这样做的,问海滩上原来最少有多少个猴子?

【函数2.2】

main()

{

int i,m,j,k,count;

for(i=4;i<10000;i+=4)

{

count=0;

(3);

for(k=0;k<5;k++)

{

(4);

i=j;

if(j%4==0)

(5);

else

break;

}

i=m;

if(count==4)

{

printf("%d\n",count);

break;

}

}

}

点击查看答案

第6题

阅读下列说明和C++代码,请回答问题1至问题3。【说明】 已知下列程序运行时的输出应为: 1:1 1:1 1:1【

阅读下列说明和C++代码,请回答问题1至问题3。

【说明】

已知下列程序运行时的输出应为:

1:1

1:1

1:1

【C++程序】

01 include <iostream>

02 using namespace std;

03 class Stock{

04 protect:

05 (1) {};

06 Stock(iht n, int pr=1){

07 shares = n; share_val=pr;

08 };

09 void~Stock(){};

10 public:

11 //成员函数

12 void output(){

13 (2) << shares << ":" << share val << endl;

14 }

15 private:

16 //成员变量

17 int shares;

18 int share_val;

19 };

20

21 void main(){

22 Stock a(1); a.output();

23 Stock b; b.output();

24 Stock c = Stock(); c.output();

25 }

请补齐下述代码中的空缺1和2。

点击查看答案

第7题

阅读以下说明和C程序,将应填入(n)处的字句写在对应栏内。【说明】 下面的程序用DoleRob算法生成N阶(

阅读以下说明和C程序,将应填入(n)处的字句写在对应栏内。

【说明】

下面的程序用DoleRob算法生成N阶(N为奇数)魔方阵(各行、列、对角线数字之和相等)。该算法的过程为:从1开始,按如下方法依次插入各自然数,直到N2为止。

a.在第一行的正中插入1。

b.新位置应当处于最近插入位置的右上方,若该位置已超出方阵的上边界,则新位置取应选列的最下一个位置;若超出右边界,则新位置取应选行的最左一个位置。

c.若最近插入的元素是N的整数倍,则选同列的下一行位置为新位置。

例如,3阶魔方阵如下所示:

8 1 6

3 5 7

4 9 2

【C程序】

include<stdio.h>

include<stdlib.h>

define SIZE 50

main( )

{ int row, col, n,value;

int a[SIZE+1][SIZE+1]; /*不使用下标为0的元素*/

printf("请输入要输出魔方阵的阶数n(奇数,<%d):n=",SIZE);

scanf("%d",&n);

if (!(n % 2)||n < 1 ||(1)) {

printf("输入数据有误!\n"); exit(0);

}

row=1; col = (n+1)/2; value=1;

while(value< =(2)) {

a[row][col] = value;

/*计算下一位置*/

if(value%n !=0){

row--; (3);

if(row<1) row=n;

if(col>n)(4);

}

else row++;

value =(5);

}

printf("\n%d阶魔方阵如下所示:\n\n",n);

for(row = 1;row <= n; row++){

for(col = 1; col <=n; col++)

printf("%5d",a[row][col]);

printf("\n");

}

}

点击查看答案

第8题

阅读以下说明及Visual Basic程序代码,将应填入(n)处的字句写在答题纸的对应栏内。【说明】 甲乙两地

阅读以下说明及Visual Basic程序代码,将应填入(n)处的字句写在答题纸的对应栏内。

【说明】

甲乙两地之间的铁路线上有二十多个火车站,为方便乘客查询票价,特开发了火车票价查询程序,其运行窗口如下图所示。乘客只要通过

两个下拉列表框分别选择起点与终点站名,再单击“查询”按钮,则票价文本框中就会显示相应的票价。

在开发过程中,设选择起点和终点站名的组合框(ComboBox)名分别为ST和SP,显示票价的文本框(TextBox)名为Price,“查询”按钮

(CommandButton)名为Query;设ST与SP中的诸列表项完全相同,且都是从甲地开始依次排列,从第i站到第j站的票价存放在二维对称矩阵P的元

素P(i,j)中。假设从甲地到第i站行驶的距离存放在 d(i)中,火车票价等于其行驶距离乘以C(常数)。

【Visual Basic代码】

Dim p(30,30) As Single '通用声明

Const C=0.2

Private Sub Form_Load()

Dim d (30) As Single

(1)="甲地" '在ST组合框中设置首个列表项

… '在ST和SP中设置其他列表项(若干行语句)

… '对数组d(i)赋值(若干行语句)

For i=0 to ST. (2) -1 '对ST中各列表项循环

For j=0 to SP. (2) -1 '对SP中各列表项循环(这两处填写内容相同)

P (i,j)=(3)

Next j

Next i

End Sub

Private Sub query_Click()

i=(4) '组合框ST中选择的当前项编号

j=… '组合框SP中选择的当前项编号(语句略)

(5)=str$ ( p (i,j))

End Sub

点击查看答案

第9题

阅读以下说明和C语言函数,将应填入(n)处的字句写在答题纸的对应栏内。【说明】 一棵非空二叉树中“最

阅读以下说明和C语言函数,将应填入(n)处的字句写在答题纸的对应栏内。

【说明】

一棵非空二叉树中“最左下”结点定义为:若树根的左子树为空,则树根为“最左下”结点;否则,从树根的左子树根出发,沿结点的左

子树分支向下查找,直到某个结点不存在左子树时为止,该结点即为此二叉树的“最左下”结点。例如,下图所示的以 A为根的二叉树的“最

左下”结点为D,以C为根的子二叉树中的“最左下”结点为C。

二叉树的结点类型定义如下:

typedef stmct BSTNode{

int data;

struct BSTNode*lch,*rch;//结点的左、右子树指针

}*BSTree;

函数BSTree Find Del(BSTree root)的功能是:若root指向一棵二叉树的根结点,则找出该结点的右子树上的“最左下”结点*p,并从

树于删除以*p为根的子树,函数返回被删除子树的根结点指针;若该树根的右子树上不存在“最左下”结点,则返回空指针。

【函数】

BSTrce Find_Del(BSTreeroot)

{ BSTreep,pre;

if ( !root ) return NULL; /*root指向的二叉树为空树*/

(1); /*令p指向根结点的右子树*/

if ( !p ) return NULL;

(2); /*设置pre的初值*/

while(p->lch){ /*查找“最左下”结点*/

pre=p;p=(3);

}

if ((4)==root) /*root的右子树根为“最左下”结点*/

pre->rch=NULL;

else

(5)=NULL; /*删除以“最左下”结点为根的子树*/

reurn p;

}

点击查看答案

第10题

阅读以下说明及Visual Basic程序代码,将应填入(n)处的字句写在答题纸的对应栏内。【说明】 某个文本

阅读以下说明及Visual Basic程序代码,将应填入(n)处的字句写在答题纸的对应栏内。

【说明】

某个文本文件中存放了若干个非零数值有效数据,每个数据占一行,最后一行以数字“0”作为结束标志。下面的程序用于计算该文件中这

些数据之和,其运行窗口如下。

用户只要通过驱动器列表框、目录列表框和文件列表框,选择文本文件所在的驱动器、文件夹及相应的文件名,再单击“累计”按钮,就

能在“总计”文本框中看到该文本文件中的数据之和。

在开发过程中,设驱动器列表框名为Drivel,目录列表框名为Dirl,文件列表框名为Filel,存放数据的文本文件名为D:\test\vb7\datA

.txt,“累计”按钮名为sum,“总计”文本框(TextBox)名为textl。

【Visual Basic代码】

Private Sub Drivel_Change()

Dirl.Path=(1) '户选择的驱动器反映到目录列表框中

End Sub

Private Sub Dirl_Change()

Filel.Path=(2) '用户选择的文件夹改变文件列表框内容

End Sub

Private Sub sum_Click()

Dim (3) As New FileSystemOject, (4) As TextStxeam

'创建自己的文件系统对象,说明自己的文本流对象

If Right (Dirl.Path,1)="\"Then

SetmyTextFile=fso.OpenTextFile (Dirl.Path+Filel.FileNamc)

Else

SetmyTextFile=fso.OpenTextFile(Dirl.Path+”\’+Filel.FileName)

End“

S=0

Do

d=Val (myTextFilE.ReadRow)

S=S+d

Loop While (5)

Textl.Text=Str$(S)

End Sub

点击查看答案
热门考试 全部 >
相关试卷 全部 >
账号:
你好,尊敬的上学吧用户
发送账号至手机
获取验证码
发送
温馨提示
该问题答案仅针对搜题卡用户开放,请点击购买搜题卡。
马上购买搜题卡
我已购买搜题卡, 登录账号 继续查看答案
重置密码
确认修改
谢谢您的反馈

您认为本题答案有误,我们将认真、仔细核查,
如果您知道正确答案,欢迎您来纠错

警告:系统检测到您的账号存在安全风险

为了保护您的账号安全,请在“上学吧”公众号进行验证,点击“官网服务”-“账号验证”后输入验证码“”完成验证,验证成功后方可继续查看答案!

微信搜一搜
上学吧
点击打开微信
警告:系统检测到您的账号存在安全风险
抱歉,您的账号因涉嫌违反上学吧购买须知被冻结。您可在“上学吧”微信公众号中的“官网服务”-“账号解封申请”申请解封,或联系客服
微信搜一搜
上学吧
点击打开微信