阅读以下算法说明和流程图,回答问题1和问题2。
【算法说明】
下面是一段插入排序的程序,将R[k+1]插入到R[1...k]的适当位置。
R[0]=R[k+1];
j=k;
while(R[j]>R[0])
{
R[j+1]=R[j];
j--;
}
R[j+1]=R[0];
指出算法的流程图中(1)~(3)处的内容。
阅读下列程序说明和C++代码,将应填入(n)处。
【说明】
源程序中定义了Circle类与Money类,Circle类可对半径为r的圆进行周长与面积的计算,而Money类用于计算一圆形游泳池的造价。游泳池四周有原形过道,过道外围上栅栏,过道宽度为3米,根据键入的游泳池半径,每米栅栏价格及每平方米过道价格,即可计算出游泳池的造价。请按要求完成下列操作,将程序补充完整。
①定义符号常量PI(值为3.14159f)与WIDTH(值为3.00f),分别用于表示圆周率与过道的固定宽度。
②定义Circle类默认构造函数,把私有成员radius初始化为参数r的值。
③完成Money类默认构造函数的定义,把私有成员FencePrice(每米栅栏的价格)、ConcretePrice(每平方米过道的价格)初始化为参数f,c的值。
④完成Money类成员函数float Money::TotalMoney(float fencelen,float conarea)的定义,根据参数fencelen(栅栏的长度)和conarea(过道的面积),返回栅栏与过道的总造价。
注意:除在指定位置添加语句之外,请不要改动程序中的其他内容。
源程序文件test4.cpp清单如下:
#include<iostream.h>
(1)
class Circle
{
private:
float radius;
public:
(2)
float Circumference(){return 2 * P| * radius;}
float Area(){return P|*radius * radius;}
};
class Money
{
private:
float FencePrice;
float ConcretePrice;
public:
Money(float f,float c);
float Tota|Money(float fencelen, float conarea);
};
Money::Money(float f,float c)
{
(3)
}
float Money::Tota|Money(float fencelen, float conarea)
{
(4)
}
void main( )
{
float radius, fence, concrete;
cout. setf(ios:: fixed);
cout. setf(ios:: showpoint);
cout. precision (2);
cout << "Enter the radius of the pool:";
cin > > radius;
cout << "Enter the FencePrice:";
cin > > fence;
cout << "Enter the ConcretePrice: ";
cin > > concrete;
Circle Pool(radius);
Circle PoolRim(radius + WIDTH);
Money mon( fence, concrete);
float totalmoney = mon. TotalMoney( PoolRim. Circumference( ), ( PoolRim. Area ( ) - Pool.
Area ( ) ) );
cout << "The total money is RMB" << totalmoney << end|;
}
【说明】
下面是一个Applet程序,其功能是将完整的图像显示于Applet的区块中,然后可以通过拖动鼠标让图像随着鼠标拖动的轨迹而移动。
程序运行结果如图5所示。
import java. applet. *;
import java. awt. *;
/*
<applet code="ex4_7.class",width=800 height=400>
</applet>
*/
public class ex4_7 extends Applet{
private |mage ilmg;
private int xPos,yPos;
public void init(){
xPos = yPos=(1);
ilmg=getlmage((2)"ex4_7.jpg");
}
publicvoid paint(Graphics g){
g. drawlmage(ilmg,xPos,yPos,(3));
}
public boolean (4) (Evente,int x,int y){
xPos=x;
yPos=y;
(5);
return true;
}
}
ex4_7. html
<HTML>
<HEAD>
<TITLE> ex4_7 </TITLE>
</HEAD>
<BODY>
<appletcode=" ex4_7. class" width =800 height =400 >
</applet>
</BODY>
</HTML>
阅读下列函数说明和C函数,将应填入(n)处。
【函数3说明】
函数DeleteNode(Bitree * r,int e)的功能是:在树根结点指针为r的二叉查找(排序)树上删除键值为e的结点,若删除成功,则函数返回0,否则函数返回-1。二叉查找树结点的类型定义为:
typedef struct Tnode{
int data; /*结点的键值*/
struct Tnode * Lchild,*Rchild; /*指向左、右子树的指针*/
} * Bitree;
在二叉查找树上删除一个结点时,要考虑三种情况:
①若待删除的结点p是叶子结点,则直接删除该结点;
②若待删除的结点p只有一个子结点,则将这个子结点与待删除结点的父结点直接连接,然后删除结点P;
③若待删除的结点p有两个子结点,则在其左子树上,用中序遍历寻找关键值最大的结点s,用结点s的值代替结点p的值,然后删除结点s,结点s必属于上述①、②情况之一。
【函数3】
int DeleteNode(Bitree * r,int e){
Bitree p=*r,pp,s,c;
while((1)){ /*从树根结点出发查找键值为e的结点*/
pp=p;
if(e<p->data)p=p->Lchild;
else p=p->Rchild;
{
if(!p)return-1; /*查找失败*/
if(p->Lchild &&p->Rchild){/*处理情况③*/
s=(2); pp=p;
while((3)){pp=s;s=s->Rchild;}
p->data=s->data;p=s;
}
/*处理情况①、②*/
if((4))c=p->Lchild;
else c=p->Rchild;
if(p==*r)*r=c;
else if((5))pp->Lchild=c;
else pp->Rchild=c;
free(p);
return 0;
}
阅读下列程序说明和C代码,将应填入(n)处。
【程序5说明】
设M叉树采用列表法表示,即每棵子树对应一个列表,列表的结构为:子树根结点的值部分(设为一个字符)和用“()”括起来的各子树的列表(如有子树的话),各子列表间用“,”分隔。例如下面的三叉树可用列表a(b(c,d),e,f(g,h,i))表示。
本程序输入列表,生成一棵M叉树,并由M叉树输出列表。假定输入无错误。
【程序5】
#include<Stdio.h>
#include<Stdlib.h>
#define M 3
typedef struct node{char val;
struct node,subTree[M];
}NODE;
char buf[255],*Str=buf;
NODE * d=NULL
NODE*makeTree()/*由列表生成M叉树*/
{int k;NODE*s;
s=(1);
s->val= *Str++;
for(k=0;k<M;k++)s->subTree[k]=NULL;
if(* str='('){
k=0;
do{str++;
s->sub Tree[k]=(2);
if(*Str==')'){Str++;break;}
k=k+1;
}while((3));
}
return s;
}
void walkTree(NODE*t)/*由M又树输出列表*/
{int i;
if(t!=NULL){
(4)
if(t->subTree[0]==NULL)return;
putchar('(');
for(i=0;i<M;i++){
(5);
if(i!=M-1&&t->subTree[i+1]!=NULL)
putchar(',');
}
putchar(')');
}
}
void main()
{printf("Enter exp:");
scanf("%s",str);
d=makeTree();
walkTree(d);putchar('\n");
}
请补充函数fun(),该函数的功能是将字符串tt中的大写字母都改为对应的小写字母,其他字符不变。例如,若输入“Are you come from Sichuan?”,则输入“are you come from si- chuan?”。
注意:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun()的横线上填入所编写的若干表达式或语句。
试题程序:
#include<stdio.h>
#include<stnng.h>
#include<conlo.h>
char *fun(char tt[])
{
int i;
for(i=0; tt[i];i++)
{
if((tt[i]>='A')&&((1)))
(2);
}
return((3));
}
main()
{
charn[81];
printf("\nPlease enter a string:");
gets(tt);
printf("\nThe result string is:\n%s",fun(tt));
}
说明处理6的功能。
【流程图】
(如图3所示)
处理4能发现哪些错误(不需考虑设备故障错误)?
阅读以下说明和流程图,回答问题1至问题3。
【说明】
某城市电信局受理了许多用户申请在指定电话上开设长话业务。长话包括国内长途和国际长途。电信局保存了长话用户档案和长话业务档案。
(1)请说明流程图1中的文件F0、F1分别是哪个文件。
(2)处理1和处理5分别按照哪些数据项进行分类?
指出测试用例设计中(4)~(9)处的内容。
阅读以下算法说明和流程图,回答问题1和问题2。
【算法说明】
下面是一段插入排序的程序,将R[k+1]插入到R[1...k]的适当位置。
R[0]=R[k+1];
j=k;
while(R[j]>R[0])
{
R[j+1]=R[j];
j--;
}
R[j+1]=R[0];
指出算法的流程图中(1)~(3)处的内容。
高级经济师考试试题精选练习(1)
高级经济师考试模拟练习题之单选题(1
高级经济师考试试题精选练习(2)
高级经济师考试试题精选练习(3)
高级经济师考试试题:经济法案例试题精
高级经济师考试模拟试题及答案
高级经济师考试试题及答案:单选练习题
高级经济师考试试题:经济法案例试题精
高级经济师考试模拟题及答案练习(1)
高级经济师考试模拟题及答案练习(2)