题目内容 (请给出正确答案)

阅读以下说明和流程图,回答问题1~2,将解答填入答题纸对应的解答栏内。[说明] 给定一个十进制整数A

阅读以下说明和流程图,回答问题1~2,将解答填入答题纸对应的解答栏内。

[说明]

给定一个十进制整数A,将其转换为R进制数的方法是:将A的整数部分逐次除以R,直到商等于0为止,将所得的余数由低位到高位排列在一起,就得到了对应R的进制数。以A=11,R=2为例,11÷2=5…1,5÷2=2…1,2÷2=1…0,1÷2=0…1中各式的余数依次为:1,1,0,1,于是与A对应的二进制数为1011。

下面的流程图实现了将十进制数2597转换为八进制数的功能,其中:

(1)循环1执行除法运算并将余数依次记录在数组a中(假定数组长度足够长),如a[1], a[2],……,a[k];

(2)循环2则用于将这些余数按逆序输出,即a[k],a[k-1],……,a[1];

(3)图中i,j分别是循环1和循环2中的循环变量;

(4)图中q用于记录每次除法所得的商值。

[流程图]

[问题1]

将流程图中的(1)~(4)处补充完整,其中(1)~(3)处要求使用C语言格式书写:(1)处为逻辑表达式,(2)、(3)两处为算术表达式;(4)则须按照“循环变量名:循环初值,循环终值,增量”格式描述。

[问题2]该算法运行的结果(5)。

查看答案
您可能会需要:
更多“阅读以下说明和流程图,回答问题1~2,将解答填入答题纸对应的”相关的问题

第1题

阅读以下程序说明和C++程序,将程序段中(1)~(5)空缺处的语句填写完整。【说明】 以下【C++程序】实现一

阅读以下程序说明和C++程序,将程序段中(1)~(5)空缺处的语句填写完整。

【说明】

以下【C++程序】实现一个简单的小型复数类MiniComplex,该复数类能进行输入、输出、复数的加法、减法、乘法和除法运算,还可以进行复数的相等比较。

【C++程序】

ifndef H_MiniComplex

define H_MiniComplex

include <iostream>

using namespace std;

class MiniComplex{

public: //重载流插入和提取运算符

(1) ostream&operator<<(ostream &osObject,const MiniComplex&complex){

osObject<<"("<<complex.realPart<<"+"<<complex.imagPart<<"i"<<")";

return osObject;

}

(2) istream&operator>>(istream&isObject, MiniComplex&complex){

char ch;

isObject >>complex.realPart>>ch>>complex.imagPart>>ch;

return isObject;

}

MiniComplex(double real=0,double imag=0); //构造函数

MiniComplex operator+(const MiniComplex&otherComplex)const; //重载运算符+

MiniComplex operator-(const MiniComplex&otherComplex)const; //重载运算符-

MiniComplex operator*(const MiniComplex&otherComplex)const; //重载运算符*

MiniComplex operator/(const MiniComplex&otherComplex)const; //重载运算符/

bool perator==(const MiniComplex&otherComplex)const; //重载运算符==

private :

double (3);

double imagPart;

};

end if

include "MiniComplex.h"

bool MiniComplex::operator==(const MiniComplex&otherComplex)const{

return(realPart==otherComplex.realPart&&imagPart==ortherComplex.imagPart);

}

MiniComplex::MiniComplex(double real,double imag){

realPart== real; imagPart==imagPart;

}

MiniComplex MiniComplex::operator+(const MiniComplex&otherComplex)const{

MiniComplex temp;

temp.realPart = realPart+ortherComplex. realPart;

temp.imagPart = imagPart +ortherComplex. imagPart;

return temp;

}

(4)

{ MiniComplex temp;

temp.realPart= realPart-ortherComplex. realPart;

temp.imagPart = imagPart-ortherComplex. imagPart;

return temp;

}

MiniComplex MiniComplex::operator*(const MiniComplex&otherComplex)const{

MiniComplex temp;

temp.realPart = (realPart*ortherComplex. realPart)-(imagPart *ortherComplex.imagPart);

temp.imagPart = (realPart*ortherComplex. imagPart)+(imagPart *ortherComplex.realPart);

return temp;

}

MiniComplex MiniComplex::operator/(const MiniComplex&otherComplex)const{

MiniComplex temp;

float tt;

tt=1/(ortherComplex.realPart*ortherComplex.realPart+ortherComplex.imagPart *ortherComplex. imagPart);

temp.realPart=((realPart*ortherComplex, realPart)+(imagPart *ortherComplex. imagPart))*tt;

temp.imagPart =((imagPart *ortherComplex. realPart)-(realPart*ortherComplex. imagPart))*tt;

return temp;

}

include <iostream>

include <MiniComplex.h>

using namespace std;

int main(){

MiniComplex numl(23, 34),num2(56, 35);

cout<<"Initial Value of num1="<<num1<<"\n Initial Value of num2="<<num2<<end1;

cout<<num1<<"+"<<num2<<"="<<num1+num2<<end1; //使用重载的加号运算符

cout<<num1<<"-"<<num2<<"="<<num

请帮忙给出正确答案和分析,谢谢!

点击查看答案

第2题

阅读以下说明和C++程序,将应填入(n)处的字句写在对应栏内。 【说明】 设计一个评选优秀教师和学生的

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

【说明】

设计一个评选优秀教师和学生的程序,其类结构如图6所示。当输入一系列教师或学生的记录后,将优秀学生及教师的姓名列出来。

【程序】

include<iostream.h>

include<stdio.h>

enum boolean {False,True}

class base

{

protected:

char name[8];

public:

void getname() {cout<<"姓名:" ;cin>>name; }

void printname() {cout<<"姓名:"<<name<<endU3

virtual boolean isgood() =0;

}

class student:(1)

{

int num;

public:

void getnum()

cout<<"考试成绩:" cin>>num;

boolean isgood() {return (2);{

};

class teacher:(3) public base

int num;

public:

void getnum()

cout<<"每年发表论文数:" ;cin>>num;

boolean isgood() {return (4);}

};

void main()

base* p[50];

student * pstud;

teacher * ptech;

char ch;

int count =0;

do

cout<<"输入教师(t)或学生(s):"

cin>>ch;

if(ch =='s')

{

pstud = new student;

pstud ->getname();

pstud ->getnum();

p[count ++ ] = pstud;

}

else if(ch == 't')

{

ptech = newteacher;

ptech - >getname( )

ptech ->getnum();

p[count++]=ptech;

}

else

cout<<"输入错误<<endl;

cout<<"继续输入码(Y/n)";

cin>>ch;

} while(ch == 'y')

for(int i=0;i<count;i++)

{

if((5)) //若为优秀,则输出

p[i]->printname();

}

}

请帮忙给出正确答案和分析,谢谢!

点击查看答案

第3题

阅读下列函数说明和C函数,将应填入______处的语句写在答题纸的对应栏内。 [函数6说明] 函数DelA_I

阅读下列函数说明和C函数,将应填入______处的语句写在答题纸的对应栏内。

[函数6说明]

函数DelA_InsB(LinkedList La,LinkedList Lb,int key1,int key2,int len)的功能是:将线性表A中关键码为key1的结点开始的len个结点,按原顺序移至线性表B中关键码为key2的结点之前,若移动成功,则返回0;否则返回-1。线性表的存储结构为带头结点的单链表,La为表A的头指针,Lb为表B的头指针。单链表结点的类型定义为:

typedef struct node {

int key;

struct node * next;

} * LinkedList;

[函数6]

int DelA InsB(LinkedList La,LinkedList Lb,int key1,int key2,int len)

{ LinkedListp,q,s,prep,pres;

int k;

if(! La->next‖! Lb->next‖->next‖len<=0)return-1;

p=La->next;prep=La;

while(p&&p->key!=key1){ / * 查找表A中键值为key1的结点 * /

prep=p;p=p->next;

}

if(! p)return -1; / * 表A中不存在键值为key1的结点 * /

q=p;k=1;

while(q&& (1) ){ / * 在表A中找出待删除的len个结点 * /

(2);k++;

}

if(! q)return-1: / * 表A中不存在要被删除的len个结点 * /

s=Lb->next; (3);

while(s s && s->key!=key2){ / * 查找表B中键值为key2的结点 * /

pres=s;s=s->next;

}

if(! s)return-1; / * 表B中不存在键值为key2的结点 * /

(4)=q->next; / * 将表A中的len个结点删除 * /

q->next=(5);

pres->next=p; / * 将len个结点移至表B * /

return 0;

}

请帮忙给出正确答案和分析,谢谢!

点击查看答案

第4题

阅读以下说明和Java程序,将应填入(n)处的字句写在对应栏内 [说明] 以下程序的功能时三角形、矩

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

[说明]

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

程序由5个类组成:areatest是主类,类Triangle,Rectangle和Square分别表示三角形、矩形和正方形,抽象类Figure提供了一个计算面积的抽象方法。

[Java程序]

public class areatest {

public static viod main(string args[]){

Figure[]Figures={

New triangle(2,3,3),new rectangle(5,8),new square(5)

};

for(int i=0; i<Figures.length;i++){

system.out.println(Figures+"area="+Figures.getarea());

}

}

}

public abstract class figure {

public abstract double getarea();

}

public class rectangle extends (1) {

double height;

double width;

public rectangle (double height,double width){

this.height=height;

this.width=width;

}

public string tostring(){

return"rectangle:height="+height+",width="+width+":";

}

public double getarea(){

return (2)

}

}

public class square exends (3)

{

public square(double width){

(4);

}

public string tostring(){

return"square:width="+width":";

}

}

public class triangle entends (5)

{

double la;

double lb;

double lc;

public triangle(double la,double lb,double lc){

this.la=la;this.lb=lb;this.lc=lc;

}

public string tostring()(

return"triangle:sides="+la+","+lb+","+lc+":";

}

public double get area(){

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

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

}

}

请帮忙给出正确答案和分析,谢谢!

点击查看答案

第5题

阅读以下说明和C++代码,将应填入(n)处的字句写在对应栏内。【说明】 某网络游戏存在战士(Fighter)、

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

【说明】

某网络游戏存在战士(Fighter)、野蛮人(Savage)、白法师(White Witch)三种角色,它们具有Role接口,角色的类图关系如图1.1所示。现要将黑法师(BlackWitch)角色加入此网络游戏以实现功能扩充。已知某第三方库已经提供了法师(Witch)类,且完全满足系统新增的黑法师角色所需的功能,但法师 (Witch)不是由Role派生而来,它提供的接口不能被系统直接使用。代码8-1既使用了法师(Witch),又遵循了Role规定的接口,既避免了从头开发一个新的黑法师类,又可以不修改游戏中已经定义的接口。代码8-2根据用户指定的参数生成特定的角色实例,并对之进行显示操作。

游戏中定义的接口与黑法师(BlackWitch)提供的显示接口及其功能见表1.1。

【代码8-1】

class BlackWitch: public (1) {

private:

(2) m_BlackWitch;

public:

void display( ) {

m_BlaekWitch. (3) ;

} };

【代码8-2】

class Factory {

public:

(4) getRolelnstance( int type){ //生成特定类实例

switch (type) {

case 0: return new Fighter;

case 1: return new Savage;

case 2: return new WhiteWitch;

case 3: return new BlackWitch;

default: return NULL;

}

}

};

void main(int arge,ehar * argv[ ] ) {

if(arge ! =2){

cout < < "error parameters !" < < end1;

return;

}

int type = atoi(argv[ 1 ] );

Factory factory;

Role * s;

s = factory. (5);

if(s = = NULL) {

cout < < "Error get the instance !" < < end1;

return;

}

s-- > display( );

delete s;

return;

}

请帮忙给出正确答案和分析,谢谢!

点击查看答案

第6题

阅读下列程序说明和C++程序,把应填入其中(n)处的字句,写在对应栏内。【说明】阅读下面几段C++程序回

阅读下列程序说明和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

}

请帮忙给出正确答案和分析,谢谢!

点击查看答案

第7题

阅读以下说明和C++程序,将应填入(n)处的字句写在对应栏内。【说明】下面程序的功能是计算并输出某年

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

【说明】

下面程序的功能是计算并输出某年某月的天数,函数IsLeap Year()能够判断是否是闰年。

【C++程序】

include < iostream >

using namespace std;

(1) Month {Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec };

class Date {

public:

Date( int year, Month m_ month) {

this→year = year;

if( (2) ) month: Jan;

else month = m_ month;

};

~Date(){};

bool IsLeap Year( ) {

return ((year%4= =0 &&year% 100 ! =0)|| year%400= =0);

};

int CaculateDays( ) {

switch(m_month ) {

case (3) ;{

if (4) return 29;

else return 28;

}

case Jan: case Mar: case May: case Jul: case Aug: case Oct: case Dec: return 31;

case Apr: case Jun: case Sop: case Nov: return 30;

}

}

private:

int year;

Month month;

};

void main( ) {

Date day(2000,Feb);

cout < <day. (5) ( );

}

请帮忙给出正确答案和分析,谢谢!

点击查看答案

第8题

阅读以下说明和C++程序,将应填入(n)处的字句写在对应栏内。【说明】以下程序实现了二叉树的结点删除

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

【说明】以下程序实现了二叉树的结点删除算法,若树中存在要删除的结点,则删除它,否则返回。 FindNode ()函数能够在二叉树中找到给定值的结点,并返回其地址和父结点。

【C++程序】

template < class T >

void BinSTree < T >: :Delete( const T& item)

{

TreeNode < T > * DelNodePtr, * ParNodePtr, * RepNodePtr;

if(( DelNodePtr = FindNode (item,ParNodePtr)) = = NULL)

(1)

if(DelNodePtr→right = = NULL) //被删除结点只有一个子结点的情况

RepNodePtr = DelNodePtr→left;

else if( DelNodePtr→left = = NULL)

(2);

else // 被删除结点有两个子结点的情况

{

TreeNode < T >* PofRNodePtr = DelNodePtr;

RepNodePtr = DelNodePtr→left;

while(RepNodePtr→right ! = NULL)

{ //定位左子树的最右结点

PofRNodePtr =RepNodePtr;

RepNodePtr = RepNodePtr→right;

}

if(PofRNodePtr = = DelNodePtr) //左子树没有右子结点

(3);

else //用左子顷的最右结点替换删除的结点

{

(4)

RepNodePtr→left = DelNodePtr→left;

RepNodePtr→right = DelNodePtr→right;

}

}

if (5)//要删除结点是要结点的情况

root = RepNodePtr;

else if ( DelNodePtr→data < ParNodePtr→Data)

ParNodePtr→left = RepNodePtr;

else

ParNodePtr→right =RepNodePtr;

FirstTreeNode ( DelNodePtr ) ;//释放内存资源

size→;

}

请帮忙给出正确答案和分析,谢谢!

点击查看答案

第9题

阅读以下说明和C程序,将填入(n)处的字句在对应栏内。 [说明] 某旅游服务应用程序运行时,根据输入

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

[说明]

某旅游服务应用程序运行时,根据输入的两个城市名查找其问的距离。各城市问的距离如表4-1所示。表格中的第一行和第一列表示城市名,表中的每个元素是一个整数,代表该元素所在行和列对应的城市之间的距离(单位:km)。

表4-1

在程序中,城市名用一维全局数组cityTable存储,城市之间的距离矩阵用二维全局数组kmTable表示,并用相应的值对这两个数组进行初始化。

define NCities 8 /*城市个数*/

define TRUE 1

static char * cityTable[NCities]={ /*城市名按字典序升序排列*/

"Beijing",

…… /*其他城市名略去*/

"Sanya",

};

StatiC int kmTable[NCities][NCities]={

{0, 1697, 2695, 937, 1784, 1356, 926, 2543},

{1697, 0, 313, 1840, 533, 940, 1409,1505},

…… /*剩余元素的初始值略去*/

};

程序执行时,首先按提示输入两个城市名,然后在cityTable中查找与城市名对应的下标,最后用该下标在kmTable中找到这两个城市之间的距离。

程序中定义的函数FindCitylnSortedArray和GetCity说明如下:

(1)函数FindCitylnSortedArray的功能是用二分查找法在全局数组cityTable中查找城市名所对应的下标值。

(2)函数GetCity的功能是读入城市名,调用函数FindCityInSortedArray来获取城市所对应的下标值。如果该城市名不存在,则提示用户重新输入。

[C程序]

int main() {

int city1,city2;

city1=GetCity("输入第1个城市名:");

city2=GetCity("输入第2个城市名:");

printf("%S和%s之间的距离为:%d km.\n”,cityTable[city1],

cityTable[city2],

kmTable[cityl][city2]);

return 0;

}

StatiC int GetCity(char * prompt) {

char * CityName;

int index;

cityName=(char *)malloc(20*sizeof(char));

while(TRUE){

printf("%S",prompt);

gets(cityName); /*获取输入字符串*/

index=FindCityInSortedArray(cityName);

if( (1) ________ )break;

printf("城市名不存在,请重新输入。\n");

}

free(cityName);

return (2)__________;

}

Static int FindCityInSortedArray(char * key) {

int lh, rh, mid, cmp;

lh=0;

rh=NCities-1;

while( (3)________){

mid=(1h+rh)/2;

cmp=strcmp( (4)______ ); /*比较两个城市名是否相同*/

if(cmp==0)return (5)_______; /*两个城市名相同*/

if(cmp<0){rh=mid-1;)

else {lh=mid+1;)

}

return (-1); /*城市名不存在时返回-1 */

}

请帮忙给出正确答案和分析,谢谢!

点击查看答案

第10题

阅读以下说明和流程图,填补流程图中的空缺(1)~(5),将解答填入对应栏内。[说明] 下面的流程图旨在

阅读以下说明和流程图,填补流程图中的空缺(1)~(5),将解答填入对应栏内。

[说明]

下面的流程图旨在统计指定关键词在某一篇文章中出现的次数。

设这篇文章由字符A(0),…,A(n-1)依次组成,指定关键词由字符B(0),…,B(m-1)依次组成,其中,n>m≥1。注意,关键词的各次出现不允许有交叉重叠。例如,在“aaaa”中只出现两次“aa”。

该流程图采用的算法是:在字符串A中,从左到右寻找与字符串B相匹配的并且没有交叉重叠的所有子串。流程图中,i为字符串A中当前正在进行比较的动态予串首字符的下标,j为字符串B的下标,k为指定关键词出现的次数。

[流程图]

请帮忙给出正确答案和分析,谢谢!

点击查看答案
热门考试 全部 >
最新试卷 全部 >
找答案
账号:
你好,尊敬的上学吧用户
粘贴 取消
搜索
如搜索结果不匹配,请 联系老师上传试题 获取答案
发送账号至手机
看不清?点击更换
发送
谢谢您的反馈

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

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

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

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

您的免费查看次数已用完,

需要开通会员才能继续使用。

马上开通会员 我已开通会员,登录会员账号继续查看答案
重置密码
确认修改