重要提示: 请勿将账号共享给其他人使用,违者账号将被封禁!
查看《购买须知》>>>
找答案首页 > 全部分类 > 计算机类考试
搜题
网友您好, 请在下方输入框内输入要搜索的题目:
搜题
题目内容 (请给出正确答案)
[主观题]

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

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

[说明]

下面程序是为汽车市场编制的一个程序的一部分。其中automobile是基类。

[C++程序]

//Auto.h

ifndef AUTO_H

define AUTO_H

class automobile

{

(1):

int miles_per_gallon; //汽车每加仑行驶公里数

float fuel_capacity; //油箱容积

public:

void initialize(int in_mpg,int in_fuel);

int get_mpg(void);

float get_fuel(void);

float travel_distance(void);

}

endif

//Auto.cpp

include"auto.h"

void automobile::initialize(int in_mpg,float in fuel)

{

miles_per_gallon=in_mpg;

fuel_capacity=in_fuel;

)

int automobile::get_mpg() //提供一辆特定汽车每加仑公里数

{return miles per_gallon;}

float automobile::get_fuel() //提供油箱容积

{return fuel_capacity;}

float automobile::travel_distance()

{return (2) }

//car.h

ifndef CAR_H

define CAR_H

include"auto.h"

class car: (3)

{

int Total_doors;

public:

void initialize(int in_mpg,float in_fuel,int doors=4);

int doors(void);

};

endif

//car.cpp

include"car.h"

void car::initialize(int in_mpg,float in_fuel,int door)

{

Total_doors=door;

miles_per_galion=in_mpg;

fuel_capacity=in_fuel;

}

int car::doors(void)

{return Total doors;}

//Allauto.cpp

include

include"auto.h"

include"car.h"

int main()

{

car sedan;

sedan.initialize(24,20.0,4);

tout<<"The sedan can travel"<< (4) <<"miles.\n";

cout<<"The sedan has"<< (5) <<"doors.\n";

return 0;

}

查看答案
更多“阅读以下说明和C++程序,将应填入(n)处的字句写在对应...”相关的问题

第1题

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

【说明】

下面的程序按照以下规则输出给定名词的复数形式。

a.若名词以“y”结尾,则删除y并添加“ies”;

b.若名词以“s”、“ch”或“sh”结尾,则添加“es”;

c.其他所有情况,直接添加“s”。

【C程序】

include <stdio.h>

include <string.h>

char*plural(char *word)

{

int n;

char *pstr;

n=strlen(word); /*求给定单词的长度*/

pstr=(char*)malloc(n+3);/*申请给定单词的复数形式存储空间*/

if (!pstr||n<2)

return NULL;

strcpy(pstr,word); /*复制给定单词*/

if ((1))

{

pstr[n-1]='i';pstr[n] ='e';pstr[n+1]='s';(2);

}

else

if(pstr[n-1]=='s'| |pstr[n-1]=='h'&&((3)))

{

pstr[n]='e';pstr[n+1]='s';pstr[n+2]='\0';

}

else

{ pstr[n]='s';pstr[n+1]='\0';)

(4);

}

main()

{ int i; char *ps;

char wc[9][10]=

{"chair","dairy","boss","circus","fly","dog","church","clue","dish");

for(i = 0;i<9; i++) {

ps= (5) ;

printf("%s: %s\n",wc[i],ps); /*输出单词及其复数形式*/

free(ps); /*释放空间*/

}

system("pause");

}

点击查看答案

第2题

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

【说明】

以下程序的功能是计算正方体、球体和圆柱体的表面积和体积并输出。

程序由4个类组成:类cube、sphere和cylinder分别表示正方体、球体和圆柱体;抽象类 container为抽象类,提供了两个纯虚拟函数surface_area()和volum(),作为通用接口。

【C++程序】

include<iostream.h>

define pi 3.1416

class container{

protected:

double radius;

public:

container(double radius) {container::radius=radius;}

virtual double surface_area()=0;

virtual double velum()=0;

};

class cube:(1){ //定义正方体类

public:

cube(double radius):container(radius){};

double surface_area () {return 6 * radius * radius;}

double volum() {return radius * radius * radius;}

};

class sphere:(2){ //定义球体类

public:

sphere(double radius): container(radius){};

double surface_area() { return (3);}

double volum() {return pi * radius * radius * radius * 4/3;}

};

class cylinder:(4){ //定义圆柱体类

double height;

public:

cylinder(double radius,double height):container(radius)

{

container::height=height;

}

double surface_are a () { return 2 * pi * radius * (height+radius); }

double volum () {return (5);}

};

void main()

{

container * p;

cube obj1 (5);

sphere obj2(5);

cylinder obj3(5,5);

p=&obj1;

cout<<“正方体表面积”(<<p->surface_area()<<end1;

cont<<“正方体体积”<<p->volume()<<end1;

p=&obj2;

cout<<“球体表面积”<<p->surface_area()<<end1;

cout<<“球体体积”<<p->volume()<<end1;

p=&obj3;

cout<<“球体表面积”<<p->surface_area()<<end1;

cout<<“球体体积”<<p->volume()<<end1;

}

点击查看答案

第3题

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

【说明】

设计一个日期类Date包括年、月、日等私有数据成员。要求实现日期的基本运算,如某日期加上天数、某日期减去天数、两日期相差的天数等。

在Date类中设计如下重载运算符函数:

Date operator + (int days) : 返回某日期加上天数得到的日期。

Date operator - (int days) : 返回某日期减去天数得到的日期。

int operator - (Date&b): 返回两日期相差的天数。

【程序】

include<iostream.h>

int day tab[2][12]={{31,28,31,30,31,30,31,31,30,31,30,31},

{31,29,31,30,31,30,31,31,30,31,30,31}};

//day_tab二维数组存放各月天数,第一行对应非闰年,第二行对应闰年class Date

{

int year, month, day //年,月,日

int leap(int); //判断是否闰年

int dton(Date&)

Date ntod(int)

public:

Date() { }

Date (int y, int mint d) I year = y; month = m; day = d;}

void setday(intd){day = d;}

void setmonth(int m) {month = m;}

void setyear(int y) {year =y;}

int getday() {return day;}

int getmonth() {return month:}

int getyear() {return yea;}

Date operator + (int days) //+运算符重载函数

{

static Date date;

int number =(1)

date = ntod(number)

return date

}

Date operator - (int days) //-运算符重载函数

{

staffs Date date;

int number=(2);

number - = days;

date = ntod(number)

return date;

}

int operator - (Date &b) //-运算符重载函数

{

int days=(3);

return days;

}

void disp()

{

cout<<year<<"."<<month<<". "<<day<<endl;

}

};

int Date: :leap(int year)

if((4)) //是闰年

return 1; //不是闰年

else

return0:

}

int Date:: dton(Date &d) //求从公元0年0月0日到d日期的天数

{

inty,m,days =0;

for(y=1;y<=d. year;y++)

if((5))days+ =366; //闰年时加366天

else days + = 365; //非闰年时加365天

for(m =0;m<d. month-1;m++)

if((6))

days += day_tab[1] [m];

else

days +=day_tab[0] [m];

days + = d. day;

return days;

}

Date Date::ntod(intn) //将从元0年0月0日的天数转换成日期

{

int y=1,m = 1,d,rest = n,lp;

while(1)

{ if(leap(y))

if(rest<= 366) break;

else rest - = 366;

else //非闰年

if(rest = 365 ) break;

else rest-=365;

点击查看答案

第4题

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

【说明】

字符串在程序设计中扮演着重要角色。现需要设计字符串基类string,包含设置字 符串、返回字符串长度及内容等功能。另有一个具有编辑功能的串类edlt_string,派生于string,在其中设置一个光标,使其能支持在光标处的插入、删除操作。

【程序】

include <iostream.h>

include <stdio.h>

include <string.h>

class string

{

int length;

char *data;

public:

int get_length() {return length;}

char *get_data() {return data;}

~string() {delete data;}

int set data(int in_length, char *in_data);

int set_data(char *data);

void print() {cout<<data<<endl;}

};

class edit_string: public string

{

int cursor;

public:

int get_cursor() {return cursor;}

void move_cursor(int dis) {cursor=dis;}

int add_data(string *new_data);

void delete_data(int num);

};

int string::set_data(int in_length,char *in_data)

{

length=in_length;

if(!data)

delete data;

(1)

strcpy(data,in_data);

return length;

}

int string::set data(char *in_data)

{

(2)

if(!data)

delete data;

(1)

strcpy(data,in_data);

return length;

}

int edit_string::add_data(string *new_data)

{

int n,k,m;

char *cp,*pt;

n=new_data->get_length();

pt=new_data->get_data();

cp=this->get_data();

m=this->get_length();

char *news=new char[n+m+1];

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

news[i]=cp[i];

k=i;

for(int j=0; j<n; i++,j++)

news[i]=pt[j];

cursor=i;

for(j=k; j<m; j++,i++)

(3)

news[i]='\0';

(4)

delete news;

return cursor;

}

void edit string::delete_data(int num)

{

int m;

char *cp;

cp=this->get_data();

m=this->get_length();

for(int i=cursor; i<m; i++)

(5)

cp[i]='\0';

}

点击查看答案

第5题

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

[说明]

下面程序用来将打乱的单词还原为原来的次序,比如将rty还原为try。单词的原来次序存储于wordlist.txt文件中,原则上可用穷举法(rty对应的穷举为:rty、ryt、try、tyr、ytr、yrt),但考虑到破译速度,采用如下方法。

注意到单词列表中不存在组成字符完全相同的单词(如Hack12与Hack21包含完全相同的字符),因此将单词中的字符进行重组再进行比较,例如,try单词重组为rty(按ASCⅡ码顺序),这样不管打乱的单词是什么顺序,只要是由r、t、y三个字母组成的均破译为try,大大提高破译速度。程序中借助二叉排序树以进一步提高查找效率,二叉排序树左子树(如果有)上的节点对应的值均小于根节点的值,右子树(如果有)上的节点对应的值均大于根节点的值。

函数中使用的符号定义如下:

#define NumberofWords 1275//单词总数

#define MaxLength 10//最长单词所含字符数

char WordList[NumberofWords][MaxLength];//存储单词列表

int cmp(Node *q,Node *p);//q与p比较。p小,返回负值;P大返回正值:相等,返回0

typedef struct Node(//二叉树节点

char *eleLetters;//重组后的字符串

int index;//对应单词表中的下标

struct Node *lChiId,*rChiid;//左右子节点

}Node;

[C代码]

void reCompose(Node *p,char *temp)

//重纰,亦即将temp字符串中的字符升序排序,存储于p节点中

//采用直接插入排序法

{

char c;

strcpy(p->eleLetters,temp);//

int len=strlen(temp);

int i,j,k;

for(i=0;i<len-1;i++){

k=i;

for(j=i+1;j<lan;j++){

if(p->eleLetters[j]<P->eleLetters[k])k=J;

}

if( (1) ){

C=P->eleLetters[i];

P->eleLetters[i]=P->eleLetters[k];

P->eleLetters[k]=c;

}//if

}//for

};

int find(Node &root,char *temp)

//在二叉排序树root中查找与temp匹配的单词。

//若匹配返回相应单词在WordList中下标;若查找失败,返回-1

{

Node *P,*q;

int flag;

P=(2);//临时存储

reCompose(p,temp);//将temp重组

q=&root;

while((flag=(3))&&q !=NULL){

if(flag<0){//搜索左子树

q=q->lChiid;

}else(//搜索右子树

q=q->rChild;

}

}//while

if(flag==0){//找到匹配的,保存下标

return (4);

}

}

if( (5) ){//查找失败

printf("cant unscramble the following word:%s",temp);;

return -1;

}

};

(1)

点击查看答案

第6题

试题三(共 15 分)

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

点击查看答案

第7题

试题二(共 15 分)

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

[说明]

下面的程序按照以下规则输出给定名词的复数形式:

a. 若名词以“y”结尾,则删除 y 并添加“ies” ;

b. 若名词以“s” 、 “ch”或“sh”结尾,则添加“es” ;

c. 其他所有情况,直接添加“s” 。

[C 程序]

#include <stdio.h>

#include <string.h>

char *plural(char *word)

{

int n;

char *pstr;

n = strlen(word); /*求给定单词的长度*/

pstr = (char *)malloc(n+3); /*申请给定单词的复数形式存储空间*/

if (!pstr || n < 2)

return NULL;

strcpy(pstr,word); /*复制给定单词*/

if ( (1) )

{

pstr[n-1] = 'i'; pstr[n] = 'e'; pstr[n+1] = 's'; (2) ;

}

else

if(pstr[n-1]=='s'||pstr[n-1]== 'h' && ( (3) ))

{

pstr[n] = 'e'; pstr[n+1] = 's'; pstr[n+2] = '\0';

}

else

{ pstr[n] = 's'; pstr[n+1] = '\0'; }

(4) ;

}

main( )

{ int i; char *ps;

char wc[9][10] =

{"chair","dairy","boss","circus","fly","dog","church","clue","dish"}

for(i = 0; i < 9; i++) {

ps = (5) ;

printf("%s: %s\n",wc[i],ps); /*输出单词及其复数形式*/

free(ps); /*释放空间*/

}

system("pause");

}

点击查看答案

第8题

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

[说明]

以下程序的功能是统计学生成绩,包括输入学生的姓名和成绩,按成绩从高到低排列打印输出,对前百分之七十的学生定为合格(PASS),而后百分之三十的学生定为不合格(FAIL)。例如,当输入4名学生的姓名和成绩“Alice 67 Mary 90 Tom 56 John 88”后,程序的执行结果如下:

姓名 成绩 合格否

Mary 90 PASS

John 88 PASS

Alice 67 FAIL

Tom 56 FAIL

[C++程序]

include <stdio.h>

include <string.h>

define N 10

class student

{ protected:

char name[10];

int deg;

public:

void setname(charna[]) {strcpy(name,na);}

char * getname() {return name;}

void setdeg(int d) {deg= d;}

int getdeg(){return deg;}

};

class compute

{ int ns;

student na[N];

public:

void getdata();

void sort();

void disp();

};

void compute::getdata()

{ int i,tdeg;

char tname[10];

printf("输入学生人数:");

scanf("%d",&ns);

printf("输入学生姓名和成绩:\n");

for(i=0;i<ns;i+ +){

scanf("%s%d",tname,&tdeg);

(1);

na[i].setdeg(tdeg);

}

}

void compute::sort()

{ int i,j,pick;

(2);

for(i=0;i<ns-1;i+ +){

pick=i;

for(j=i+1;j<ns;j+ +)

if(na[j].getdeg()>na[pick].getdeg()) (3);

temp=na[i];

na[i]=na[pick];

na[pick]=temp;

}

}

void compute::disp()

{ int cutoff,i;

printf("RESULT\n");

printf("姓名 成绩 合格否\n");

cutoff=ns*7/10-1;

for(i=0;i<ns;i+ +) {

printf("%-6s%3d",(4));

if((5)) printf("\tPASS\n");

else printf("\tFAIL\n");

void main()

{ compute obj;

obj.getdata();

obj.sort();

obj.disp();

}

点击查看答案

第9题

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

【程序说明】

某网络由n个端点组成,这些端点被物理地分成若干个分离的端点组。同一组内的两件端点i和j,它们或直接相连,或间接相连(端点i和端点j间接相连是指在这两件端点之间有一个端点相连序列,其中端点i和j分别与这相连序列中的某个端点直接相连)。网络的n个端点被统一编号为0,1,…,n-1。本程序输入所有直接相连的端点号对,分别求出系统各分离端点组中的端点号并输出。

程序根据输入的直接相连的两件端点号,建立n个链表,其中第i个链表的首指针为s[i],其结点是与端点i直接相连的所有端点号。

程序依次处理各链表。在处理s[i]链表中,用top工作链表重新构造s[i]链表,使s[i]链表对应系统中的一个端点组,其中结点按端点号从小到大连接。

【程序】

inelude

define N 100

typeef struct node{

int data;

struct node *link;

}NODE;

NODE * s[N];

int i,j,n,t;

NODE *q,*p,*x,*y,*top;

main()

{

printf(“Enter namber of components.”);

scanf(“%d”,&n);

for(i=0;i<n;i++) printf(“Enter pairs.\n”);

while(scanf(“%d%d”,&i,&j)==2)

{ /*输入相连端点对,生成相连端点结点链表*/

p=(NODE*)malloc(sizeof(NODE));

p→data=j;p→link=s[i];s[i]=p;

p=(NODE*)malloc(sizeof(NODE));

p→data=i;p→link=s[j];s[j]=p;

}

for(i=0;i<n;i++) /*顺序处理各链表*/

for(top=s[i], (1);top! =NULL;)

{ /*将第i链表移入top工作链表,并顺序处理工作链表的各结点*/

q=top;

(2);

if(s¨[j=q→data]!=NULL)

{ /将j链表也移入工作链表*/

for(p=s[j];p→link! =NULL;p= p→link);

p→link= top;top=s[j];

(3);

}

/*在重新生成的第i链表中寻找当前结点的插入点*/

for(y=s[i]; (4);x=y,y=y→link);

if(y!=NULL && y→data==q→data)

free(q); /*因重新生成的第i链表已有当前结点,当前结点删除*/

else{

(5);

if(y ==s[i])s[i]=q;

else x→link=q;

}

}

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

{/*输出结果*/

if(s[i]==NULL)continue;

for(p=s[i];p!=NULL;){

printf(“\t%d”,p→data);

q=p→link;free(p);p=q;

}

printf(“\n”);

}

}

点击查看答案

第10题

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

[说明]

下面程序是为汽车市场编制的一个程序的一部分。其中automobile是基类。

[C++程序]

//Auto.h

ifndef AUTO_H

define AUTO_H

class automobile

{

(1):

int miles_per_gallon; //汽车每加仑行驶公里数

float fuel_capacity; //油箱容积

public:

void initialize(int in_mpg,int in_fuel);

int get_mpg(void);

float get_fuel(void);

float travel_distance(void);

}

endif

//Auto.cpp

include"auto.h"

void automobile::initialize(int in_mpg,float in fuel)

{

miles_per_gallon=in_mpg;

fuel_capacity=in_fuel;

)

int automobile::get_mpg() //提供一辆特定汽车每加仑公里数

{return miles per_gallon;}

float automobile::get_fuel() //提供油箱容积

{return fuel_capacity;}

float automobile::travel_distance()

{return (2) }

//car.h

ifndef CAR_H

define CAR_H

include"auto.h"

class car: (3)

{

int Total_doors;

public:

void initialize(int in_mpg,float in_fuel,int doors=4);

int doors(void);

};

endif

//car.cpp

include"car.h"

void car::initialize(int in_mpg,float in_fuel,int door)

{

Total_doors=door;

miles_per_galion=in_mpg;

fuel_capacity=in_fuel;

}

int car::doors(void)

{return Total doors;}

//Allauto.cpp

include

include"auto.h"

include"car.h"

int main()

{

car sedan;

sedan.initialize(24,20.0,4);

tout<<"The sedan can travel"<< (4) <<"miles.\n";

cout<<"The sedan has"<< (5) <<"doors.\n";

return 0;

}

点击查看答案
下载上学吧APP
客服
TOP
重置密码
账号:
旧密码:
新密码:
确认密码:
确认修改
购买搜题卡查看答案
购买前请仔细阅读《购买须知》
请选择支付方式
微信支付
支付宝支付
选择优惠券
优惠券
请选择
点击支付即表示你同意并接受《服务协议》《购买须知》
立即支付
搜题卡使用说明

1. 搜题次数扣减规则:

功能 扣减规则
基础费
(查看答案)
加收费
(AI功能)
文字搜题、查看答案 1/每题 0/每次
语音搜题、查看答案 1/每题 2/每次
单题拍照识别、查看答案 1/每题 2/每次
整页拍照识别、查看答案 1/每题 5/每次

备注:网站、APP、小程序均支持文字搜题、查看答案;语音搜题、单题拍照识别、整页拍照识别仅APP、小程序支持。

2. 使用语音搜索、拍照搜索等AI功能需安装APP(或打开微信小程序)。

3. 搜题卡过期将作废,不支持退款,请在有效期内使用完毕。

请使用微信扫码支付(元)
订单号:
遇到问题请联系在线客服
请不要关闭本页面,支付完成后请点击【支付完成】按钮
遇到问题请联系在线客服
恭喜您,购买搜题卡成功 系统为您生成的账号密码如下:
重要提示: 请勿将账号共享给其他人使用,违者账号将被封禁。
发送账号到微信 保存账号查看答案
怕账号密码记不住?建议关注微信公众号绑定微信,开通微信扫码登录功能
警告:系统检测到您的账号存在安全风险

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

- 微信扫码关注上学吧 -
警告:系统检测到您的账号存在安全风险
抱歉,您的账号因涉嫌违反上学吧购买须知被冻结。您可在“上学吧”微信公众号中的“官网服务”-“账号解封申请”申请解封,或联系客服
- 微信扫码关注上学吧 -
请用微信扫码测试
选择优惠券
确认选择
谢谢您的反馈

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

上学吧找答案